about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Doc/Zsh/contrib.yo10
-rw-r--r--Functions/MIME/zsh-mime-setup8
3 files changed, 20 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 0c20d1859..a75d568f3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-06-23  Peter Stephenson  <pws@csr.com>
+
+	* 25236: Doc/Zsh/contrib.yo, Functions/MIME/zsh-mime-setup:
+	zsh-mime-setup -l can take suffix arguments.
+
 2008-06-21  Peter Stephenson  <p.w.stephenson@ntlworld.com>
 
 	* 25231: Completion/Unix/Type/_path_files: fix approximation
diff --git a/Doc/Zsh/contrib.yo b/Doc/Zsh/contrib.yo
index 042a5bd9c..645894692 100644
--- a/Doc/Zsh/contrib.yo
+++ b/Doc/Zsh/contrib.yo
@@ -1504,7 +1504,7 @@ command to an appropriate viewer.
 startitem()
 findex(zsh-mime-setup)
 findex(zsh-mime-handler)
-xitem(tt(zsh-mime-setup [-flv]))
+xitem(tt(zsh-mime-setup) [ tt(-fv) ] [ tt(-l) [ var(suffix ...) ] ])
 item(tt(zsh-mime-handler))(
 These two functions use the files tt(~/.mime.types) and tt(/etc/mime.types),
 which associate types and extensions, as well as tt(~/.mailcap) and
@@ -1525,8 +1525,14 @@ Repeated calls to tt(zsh-mime-setup) do not override the existing
 mapping between suffixes and executable files unless the option tt(-f)
 is given.  Note, however, that this does not override existing suffix
 aliases assigned to handlers other than tt(zsh-mime-handler).
+
 Calling tt(zsh-mime-setup) with the option tt(-l) lists the existing
-mappings without altering them.  Calling tt(zsh-mime-setup) with the option
+mappings without altering them.  Suffixes to list (which may contain
+pattern characters that should be quoted from immediate interpretation
+on the command line) may be given as additional arguments, otherwise
+all suffixes are listed.
+
+Calling tt(zsh-mime-setup) with the option
 tt(-v) causes verbose output to be shown during the setup operation.
 
 The system respects the tt(mailcap) flags tt(needsterminal) and
diff --git a/Functions/MIME/zsh-mime-setup b/Functions/MIME/zsh-mime-setup
index 9a3e69610..0e3a29e56 100644
--- a/Functions/MIME/zsh-mime-setup
+++ b/Functions/MIME/zsh-mime-setup
@@ -37,7 +37,13 @@ if [[ -n $o_list ]]; then
   # 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
+  local -a handlers
+  if (( $# )); then
+    handlers=(${(k)zsh_mime_handlers[(I)${(j.|.)*}]})
+  else
+    handlers=(${(k)zsh_mime_handlers})
+  fi
+  for suffix in ${(o)handlers}; do
       zstyle -s ":mime:.$suffix:" handler list_word ||
         list_word=${zsh_mime_handlers[$suffix]}
       print ${(r.10.)suffix}$list_word