about summary refs log tree commit diff
path: root/Functions/MIME/zsh-mime-setup
diff options
context:
space:
mode:
Diffstat (limited to 'Functions/MIME/zsh-mime-setup')
-rw-r--r--Functions/MIME/zsh-mime-setup16
1 files changed, 12 insertions, 4 deletions
diff --git a/Functions/MIME/zsh-mime-setup b/Functions/MIME/zsh-mime-setup
index 150d4c07f..9a3e69610 100644
--- a/Functions/MIME/zsh-mime-setup
+++ b/Functions/MIME/zsh-mime-setup
@@ -32,11 +32,19 @@ done
 
 
 if [[ -n $o_list ]]; then
-  # List and return.
+  # List and return.  Remember that suffixes may be overridden by styles.
+  # However, we require some sort of standard handler to be present,
+  # so we don't need to search styles for suffixes that aren't
+  # handled.  Yet.
+  local list_word
   for suffix in ${(ko)zsh_mime_handlers}; do
-      print ${(r.10.)suffix}${zsh_mime_handlers[$suffix]}
-      if [[ -n ${zsh_mime_flags[$suffix]} ]]; then
-	print "  flags: ${zsh_mime_flags[$suffix]}"
+      zstyle -s ":mime:.$suffix:" handler list_word ||
+        list_word=${zsh_mime_handlers[$suffix]}
+      print ${(r.10.)suffix}$list_word
+      zstyle -s ":mime:.$suffix:" flags list_word ||
+        list_word=${zsh_mime_flags[$suffix]}
+      if [[ -n $list_word ]]; then
+	print "  flags: $list_word"
       fi
   done
   return 0