about summary refs log tree commit diff
path: root/Completion/Unix/Command
diff options
context:
space:
mode:
authorOliver Kiddle <opk@users.sourceforge.net>2004-01-21 13:53:28 +0000
committerOliver Kiddle <opk@users.sourceforge.net>2004-01-21 13:53:28 +0000
commit63b336243fdf5e60058472fa456ed11e75280189 (patch)
treef101df4260c4cef5d32c63456ca98e23d6b54449 /Completion/Unix/Command
parent1b530bf152e1ca8c9c135c58a4753899d68db8e4 (diff)
downloadzsh-63b336243fdf5e60058472fa456ed11e75280189.tar.gz
zsh-63b336243fdf5e60058472fa456ed11e75280189.tar.xz
zsh-63b336243fdf5e60058472fa456ed11e75280189.zip
19387: add (-.) glob qualifier to globs where only files are directly applicable
Diffstat (limited to 'Completion/Unix/Command')
-rw-r--r--Completion/Unix/Command/_aap2
-rw-r--r--Completion/Unix/Command/_antiword2
-rw-r--r--Completion/Unix/Command/_bison10
-rw-r--r--Completion/Unix/Command/_bzip24
-rw-r--r--Completion/Unix/Command/_cdrecord4
-rw-r--r--Completion/Unix/Command/_compress4
-rw-r--r--Completion/Unix/Command/_dvi60
-rw-r--r--Completion/Unix/Command/_ecasound4
-rw-r--r--Completion/Unix/Command/_figlet4
-rw-r--r--Completion/Unix/Command/_flex2
-rw-r--r--Completion/Unix/Command/_gcc8
-rw-r--r--Completion/Unix/Command/_gdb2
-rw-r--r--Completion/Unix/Command/_gprof4
-rw-r--r--Completion/Unix/Command/_gzip4
-rw-r--r--Completion/Unix/Command/_imagemagick2
-rw-r--r--Completion/Unix/Command/_ispell12
-rw-r--r--Completion/Unix/Command/_java16
-rw-r--r--Completion/Unix/Command/_links2
-rw-r--r--Completion/Unix/Command/_lynx2
-rw-r--r--Completion/Unix/Command/_lzop4
-rw-r--r--Completion/Unix/Command/_mh4
-rw-r--r--Completion/Unix/Command/_mysqldiff2
-rw-r--r--Completion/Unix/Command/_pack4
-rw-r--r--Completion/Unix/Command/_pbm36
-rw-r--r--Completion/Unix/Command/_perl2
-rw-r--r--Completion/Unix/Command/_perldoc2
-rw-r--r--Completion/Unix/Command/_python23
-rw-r--r--Completion/Unix/Command/_rar2
-rw-r--r--Completion/Unix/Command/_ruby2
-rw-r--r--Completion/Unix/Command/_sablotron2
-rw-r--r--Completion/Unix/Command/_sccs4
-rw-r--r--Completion/Unix/Command/_texinfo18
-rw-r--r--Completion/Unix/Command/_tiff104
-rw-r--r--Completion/Unix/Command/_vorbis4
-rw-r--r--Completion/Unix/Command/_w3m2
-rw-r--r--Completion/Unix/Command/_xmlsoft4
-rw-r--r--Completion/Unix/Command/_yodl2
-rw-r--r--Completion/Unix/Command/_zip8
38 files changed, 187 insertions, 190 deletions
diff --git a/Completion/Unix/Command/_aap b/Completion/Unix/Command/_aap
index 6a06480ed..1e0ddd51f 100644
--- a/Completion/Unix/Command/_aap
+++ b/Completion/Unix/Command/_aap
@@ -27,7 +27,7 @@ _arguments \
   {-j,--jobs=}'[maximum number of parallel jobs]:number of jobs:' \
   {-u,--search-up,--up}'[search directory tree upwards for main.aap recipe]' \
   \*{-I,--include=}'[directory to search for included recipes]:include directory:_files -/' \
-  {-f,--recipe=}'[recipe file to be executed]:recipe file:_files -g \*.aap' \
+  {-f,--recipe=}'[recipe file to be executed]:recipe file:_files -g \*.aap\(-.\)' \
   '--install=[install specified package]:package name:' \
   '--[end of options, targets and assignments follow]' \
   '*:aap target:->target' && ret=0
diff --git a/Completion/Unix/Command/_antiword b/Completion/Unix/Command/_antiword
index 2f99593e4..0fc4c80b8 100644
--- a/Completion/Unix/Command/_antiword
+++ b/Completion/Unix/Command/_antiword
@@ -11,6 +11,6 @@ _arguments -s -S \
   '(-t -w)-L[use landscape mode (PostScript only)]' \
   '-s[show hidden (by Word) text]' \
   '(* -)-h[give a help message]' \
-  '*:MS Word file:_files -g \*.doc' && return
+  '*:MS Word file:_files -g "*.doc(-.)"' && return
 
 return 1
diff --git a/Completion/Unix/Command/_bison b/Completion/Unix/Command/_bison
index 350847cdd..67ad7f0e4 100644
--- a/Completion/Unix/Command/_bison
+++ b/Completion/Unix/Command/_bison
@@ -1,21 +1,21 @@
 #compdef bison
 
 _arguments -s -S \
-  '(--file-prefix)-b+[specify output file prefix]:output file prefix:' \
+  '(--file-prefix)-b+[specify output file prefix]:output file prefix' \
   '(--defines)-d[write token definition file]' \
   '(--raw)-r[output bison token numbers]' \
   '(--token-table)-k[output token table]' \
   '(--no-lines)-l[don'"'"'t generate #line directives]' \
   '(--no-parser)-n[don'"'"'t generate parse (only declarations)]' \
   '(--output-file)-o+[specify parser output file name]:parser file name:_files' \
-  '(--name-prefix)-p+[change yy prefix]:prefix string:' \
+  '(--name-prefix)-p+[change yy prefix]:prefix string' \
   '(--debug)-t[output YYDEBUG definition]' \
   '(--verbose)-v[verbose mode]' \
   '(--version)-V[show version]' \
   '(--help)-h[show help]' \
   '(--yacc --fixed-output-file)-y[imitate yacc'"'"'s output file convention]' \
-  ':input file:_files -g \*.\(\#i\)\(bison\|yacc\|y\)' \
+  ':input file:_files -g \*.\(\#i\)\(bison\|yacc\|y\)\(-.\)' \
   -- \
   '*=outfile:parser file name:_files' \
-  '*file-prefix=prefix:output file prefix:' \
-  '*name-prefix=prefix:prefix string:'
+  '*file-prefix=prefix:output file prefix' \
+  '*name-prefix=prefix:prefix string'
diff --git a/Completion/Unix/Command/_bzip2 b/Completion/Unix/Command/_bzip2
index 15a78e578..75f051a57 100644
--- a/Completion/Unix/Command/_bzip2
+++ b/Completion/Unix/Command/_bzip2
@@ -49,10 +49,10 @@ if [[ "$state" = files ]]; then
       $+opt_args[--test] )) && unset decompress
   if [[ -z "$decompress" ]]; then
     _description files expl 'compressed file'
-    _files "$expl[@]" -g '*.(bz2|tbz|tbz2)' && return
+    _files "$expl[@]" -g '*.(bz2|tbz|tbz2)(-.)' && return
   else
     _description files expl 'file to compress'
-    _files "$expl[@]" -g '*~*.(bz2|tbz|tbz2)' && return
+    _files "$expl[@]" -g '^*.(bz2|tbz|tbz2)(-.)' && return
   fi
 fi
 
diff --git a/Completion/Unix/Command/_cdrecord b/Completion/Unix/Command/_cdrecord
index 02226f9d2..129f46eea 100644
--- a/Completion/Unix/Command/_cdrecord
+++ b/Completion/Unix/Command/_cdrecord
@@ -80,8 +80,8 @@ if [[ -n $state ]]; then
 	'mcn[set media catalog number for this CD]:text' \
 	'isrc[set isrc number for the next track]:text' \
 	'index[set the index list for the next track]:list' \
-	'textfile[set the file with CD-Text data]:name:_files -g "*.inf"' \
-	'cuefile[set the file with CDRWIN CUE data]:name:_files -g "*.cue"' && ret=0
+	'textfile[set the file with CD-Text data]:name:_files -g "*.inf(-.)"' \
+	'cuefile[set the file with CDRWIN CUE data]:name:_files -g "*.cue(-.)"' && ret=0
     fi
     _requested files expl track _files && ret=0
     (( ret )) || break
diff --git a/Completion/Unix/Command/_compress b/Completion/Unix/Command/_compress
index b8f691373..cd96b8e80 100644
--- a/Completion/Unix/Command/_compress
+++ b/Completion/Unix/Command/_compress
@@ -38,10 +38,10 @@ esac
 if [[ "$state" = files ]]; then
   if [[ -z "$decompress" ]] || (( $+opt_args[-d] )); then
     _description files expl 'file to compress'
-    _files "$expl[@]" -g '*~*.Z' && return
+    _files "$expl[@]" -g '^*.Z(-.)' && return
   else
     _description files expl 'compressed file'
-    _files "$expl[@]" -g '*.Z' && return
+    _files "$expl[@]" -g '*.Z(-.)' && return
   fi
 fi
 
diff --git a/Completion/Unix/Command/_dvi b/Completion/Unix/Command/_dvi
index 672b4419d..154be68fb 100644
--- a/Completion/Unix/Command/_dvi
+++ b/Completion/Unix/Command/_dvi
@@ -3,10 +3,10 @@
 local expl args
 
 args=(
-  '-i[specify input file]:input DVI file:_files -g \*.\(dvi\|DVI\)' \
-  '-o[specify output file]:output DVI file:_files -g \*.\(dvi\|DVI\)' \
-  ':input DVI file:_files -g \*.\(dvi\|DVI\)' \
-  ':output DVI file:_files -g \*.\(dvi\|DVI\)'
+  '-i[specify input file]:input DVI file:_files -g "*.(dvi|DVI)(-.)"' \
+  '-o[specify output file]:output DVI file:_files -g "*.(dvi|DVI)(-.)"' \
+  ':input DVI file:_files -g "*.(dvi|DVI)(-.)"' \
+  ':output DVI file:_files -g "*.(dvi|DVI)(-.)"'
 )
 
 case "$service" in
@@ -15,52 +15,52 @@ dvips)
     '-a[make three passes]' \
     '(-B)-A[print only odd numbered pages]' \
     '(-A)-B[print only even numbered pages]' \
-    '(-c -C)-b[select number of copies (duplicating body)]:number of copies:' \
-    '(-b -C)-c[select number of copies]:number of copies:' \
-    '(-b -c)-C[select number of copies (collated)]:number of copies:' \
-    '-d[set debug flags]:debug flags:' \
-    '(-X -Y)-D[set resolution]:resolution in dots per inch:' \
-    '-e[set maximum character offset]:maximum character offset:' \
+    '(-c -C)-b[select number of copies (duplicating body)]:number of copies' \
+    '(-b -C)-c[select number of copies]:number of copies' \
+    '(-b -c)-C[select number of copies (collated)]:number of copies' \
+    '-d[set debug flags]:debug flags' \
+    '(-X -Y)-D[set resolution]:resolution in dots per inch' \
+    '-e[set maximum character offset]:maximum character offset' \
     '-E[generate EPSF file]' \
     '(-o)-f[write to stdout]' \
     '-F[append control-D]' \
-    '-h[specify additional header file]:postscript header file:_files -g \*.\(\#i\)\(ps\|eps\)' \
+    '-h[specify additional header file]:postscript header file:_files -g "*.(#i)(ps|eps)(-.)"' \
     '-i[one file per section]' \
     '-k[print crop marks]' \
     '-K[include postscript comments]' \
-    '(-pp)-l[specify last page to print]:number of last page:' \
+    '(-pp)-l[specify last page to print]:number of last page' \
     '-m[specify manual feed for printer]' \
     '-M[no automatic font generation]' \
-    '(-pp)-n[specify maximum number of pages to print]:maximum number of pages:' \
+    '(-pp)-n[specify maximum number of pages to print]:maximum number of pages' \
     '-N[turn off structured comments]' \
-    '(-f)-o[specify output file name]:output file name:_files -g \*.\(\#i\)\(ps\|eps\)' \
-    '-O[specify offset of origin]:offset of origin (<x>,<y>):' \
+    '(-f)-o[specify output file name]:output file name:_files -g "*.(#i)(ps|eps)(-.)"' \
+    '-O[specify offset of origin]:offset of origin (<x>,<y>)' \
     '(-p -l -n)-pp[specify which pages to print]:list of pages or ranges to print:' \
-    '(-pp)-p[specify first page to print]:number of first page:' \
-    '-P[specify printer]:printer name:' \
+    '(-pp)-p[specify first page to print]:number of first page' \
+    '-P[specify printer]:printer name' \
     '-q[quiet operation]' \
     '-r[reverse order of pages]' \
     '-s[enclose output in save/restore pair]' \
-    '-S[set maximum number of pages per section]:maximum number of pages per section:' \
+    '-S[set maximum number of pages per section]:maximum number of pages per section' \
     '(-T)*-t[specify paper type]:paper type:(letter legal ledger a4 a3 landscape)' \
-    '(-t)-T[set paper size]:paper size (<x>,<y>):' \
-    '-x[set magnification ratio]:magnification ratio (per mille):' \
-    '(-D)-X[set horizontal resolution]:horizontal resolution:' \
-    '(-D)-Y[set vertical resolution]:vertical resolution:' \
+    '(-t)-T[set paper size]:paper size (<x>,<y>)' \
+    '-x[set magnification ratio]:magnification ratio (per mille)' \
+    '(-D)-X[set horizontal resolution]:horizontal resolution' \
+    '(-D)-Y[set vertical resolution]:vertical resolution' \
     '-Z[compress bitmapped fonts]' \
-    ':input file:_files -g \*.\(dvi\|DVI\)'
+    ':input file:_files -g "*.(dvi|DVI)(-.)"'
   ;;
 dvibook)
   _arguments -s \
     '-q[quiet operation]' \
-    '-s-[specify signature size]:signature size:' \
+    '-s-[specify signature size]:signature size' \
     "$args[@]"
   ;;
 dviconcat)
   _arguments \
-    '-m[specify magnification]:magnification factor:' \
-    '-o[specify output file]:output DVI file:_files -g \*.\(dvi\|DVI\)' \
-    '*:input DVI file:_files -g \*.\(dvi\|DVI\)'
+    '-m[specify magnification]:magnification factor' \
+    '-o[specify output file]:output DVI file:_files -g "*.(dvi|DVI)(-.)"' \
+    '*:input DVI file:_files -g "*.(dvi|DVI)(-.)"'
   ;;
 dvidvi)
   _arguments -s \
@@ -71,8 +71,8 @@ dvidvi)
     '(-i -x)-n[select number of pages]:maximum number of pages:' \
     '(-f -l -n)-i[specify included pages]:list of included pages:' \
     '(-f -l -n)-x[specify excluded pages]:list of excluded pages:' \
-    ':input DVI file:_files -g \*.\(dvi\|DVI\)' \
-    ':output DVI file:_files -g \*.\(dvi\|DVI\)'
+    ':input DVI file:_files -g "*.(dvi|DVI)(-.)"' \
+    ':output DVI file:_files -g "*.(dvi|DVI)(-.)"'
   ;;
 dviselect)
   _arguments -s \
@@ -90,6 +90,6 @@ dvitodvi)
   ;;
 *)
   _description files expl 'DVI file'
-  _files "$expl[@]" -g '*.(dvi|DVI)'
+  _files "$expl[@]" -g '*.(dvi|DVI)(-.)'
   ;;
 esac
diff --git a/Completion/Unix/Command/_ecasound b/Completion/Unix/Command/_ecasound
index 67b9c363a..204ce869a 100644
--- a/Completion/Unix/Command/_ecasound
+++ b/Completion/Unix/Command/_ecasound
@@ -29,7 +29,7 @@ _arguments \
   '*-Md\:-[set the active MIDI-device]:device name:_files' \
   '*-Mms\:-[send MMC start/stop to MIDI device-id]:device id' \
   '*-mss[sends MIDI-sync to the selected MIDI-device]' \
-  '*-pf\:-[use the first preset found from file as chain operator]:preset file:_files -g *.epp' \
+  '*-pf\:-[use the first preset found from file as chain operator]:preset file:_files -g \*.epp\(-.\)' \
   '*-pn\:-[find preset from global preset database]:preset name:->pn' \
   '*-ev[analyze sample data to find max apm value without clipping]' \
   '*-ezf[find the optimal value for DC-adjusting]' \
@@ -135,7 +135,7 @@ case $state in
       fi
     else
       _alternative \
-        'files:input/output file:_files -g "*.(aif|aiff|mid|wav|ewf|mp3|mp2)"' \
+        'files:input/output file:_files -g "*.(aif|aiff|mid|wav|ewf|mp3|mp2)(-.)"' \
         'streams:stream:(stdin stdout)' \
 	'devices:realtime device:((/dev/dsp alsa\:alsa\ device null\:null\ device))'
     fi
diff --git a/Completion/Unix/Command/_figlet b/Completion/Unix/Command/_figlet
index 0a5ba0a2f..32bed4790 100644
--- a/Completion/Unix/Command/_figlet
+++ b/Completion/Unix/Command/_figlet
@@ -27,9 +27,9 @@ _arguments -s -S \
   "(-L -R)-X[use default writing direction of font]" \
   "(-t)-w+[specify output width]:output width (in columns)" \
   "-d+[specify font directory]:font directory:_path_files -/" \
-  '-f+[specify font]:font:_files -W ${~opt_args[-d]\:-$fontdir} -g \*flf\*\(\:r\)' \
+  '-f+[specify font]:font:_files -W ${~opt_args[-d]\:-$fontdir} -g \*flf\*\(-.\:r\)' \
   '(-k -S -s -o -W)-m+[specify layout mode]:layout mode' \
-  '(-N)-C+[specify control file]:control file:_files -W ${~opt_args[-d]\:-$fontdir} -g \*flc\*\(\:r\)' \
+  '(-N)-C+[specify control file]:control file:_files -W ${~opt_args[-d]\:-$fontdir} -g \*flc\*\(-.\:r\)' \
   "(-v)-I+[display info]:info code:((
     -1\:normal\ operation\ \(default\)
     0\:version,\ copyright\ and\ usage\ information
diff --git a/Completion/Unix/Command/_flex b/Completion/Unix/Command/_flex
index 82e219758..7ca5b0f83 100644
--- a/Completion/Unix/Command/_flex
+++ b/Completion/Unix/Command/_flex
@@ -29,7 +29,7 @@ _arguments -C -s \
   '-o-[specify output file]:output file:_files' \
   '-P-[change yy prefix]:prefix string:' \
   '-S-[override skeleton file]:skeleton file:_files' \
-  '*:input files:_files -g \*.\(\#i\)\(f\|\)lex' && ret=0
+  '*:input files:_files -g "*.(#i)(f|)lex(-.)"' && ret=0
 
 if [[ -n "$state" ]]; then
   _values -s '' 'table compression' \
diff --git a/Completion/Unix/Command/_gcc b/Completion/Unix/Command/_gcc
index 6f105155d..c5287473d 100644
--- a/Completion/Unix/Command/_gcc
+++ b/Completion/Unix/Command/_gcc
@@ -13,7 +13,7 @@ if [[ "$service" = -value-* ]]; then
     args2=()
   fi
 else
-  args2=( '*:input file:_files -g \*.\(\[cCmisSoak\]\|cc\|cxx\|ii\|k\[ih\]\)' )
+  args2=( '*:input file:_files -g "*.([cCmisSoak]|cc|cxx|ii|k[ih])(-.)"' )
 fi
 
 args=()
@@ -179,7 +179,7 @@ esac
 _arguments -C -M 'L:|-{fW}no-=-{fW} r:|[_-]=* r:|=*' \
   "$args[@]" \
   -c -S -E -v -a -w -C -H -P -s '(-pg)-p' '(-p)-pg' \
-  '-o:output file:_files -g \^\*.\(c\|h\|cc\|C\|cxx\)' \
+  '-o:output file:_files -g "^*.(c|h|cc|C|cxx)(-.)"' \
   '-x:input file language:(c objective-c c++ c-header cpp-output c++-cpp-output assembler assembler-with-cpp none)' \
   '+e-:virtual function definitions in classes:((0\:only\ interface 1\:generate\ code))' \
   '-d-:dump:->dump' \
@@ -202,8 +202,8 @@ _arguments -C -M 'L:|-{fW}no-=-{fW} r:|[_-]=* r:|=*' \
   '-V:gcc version:' \
   '-print-file-name=:library:->library' \
   '-print-prog-name=:program:' \
-  '*-include:include file:_files -g \*.h' \
-  '*-imacros:macro input file:_files -g \*.h' \
+  '*-include:include file:_files -g \*.h\(-.\)' \
+  '*-imacros:macro input file:_files -g \*.h\(-.\)' \
   '*-idirafter:second include path directory:_files -/' \
   '*-iprefix:prefix:_files' \
   '*-iwithprefix:second include path directory:_files -/' \
diff --git a/Completion/Unix/Command/_gdb b/Completion/Unix/Command/_gdb
index f13a897a3..48c9d654f 100644
--- a/Completion/Unix/Command/_gdb
+++ b/Completion/Unix/Command/_gdb
@@ -47,7 +47,7 @@ else
   done
 
   if [[ $#w -gt 1 ]]; then
-    _alternative "files:: _files -g '*core'" "processes:: _pids -m ${w[1]:t}"
+    _alternative "files:: _files -g '*core(-.)'" "processes:: _pids -m ${w[1]:t}"
   else
     _description files expl executable
     _files "$expl[@]" -g '*(-*)'
diff --git a/Completion/Unix/Command/_gprof b/Completion/Unix/Command/_gprof
index 1f7a0fd0e..3bb7a5765 100644
--- a/Completion/Unix/Command/_gprof
+++ b/Completion/Unix/Command/_gprof
@@ -8,8 +8,8 @@ _arguments -C -s -{a,b,c,D,h,i,l,L,s,T,v,w,x,y,z} \
 	   '-I:directory:_dir_list' \
 	   '-d-:debug level:' '-k:function names:->pair' \
 	   '-m:minimum execution count:' \
-	   ':executable:_files -g \*\(\*\)' \
-	   ':profile file:_files -g gmon.\*' \
+	   ':executable:_files -g \*\(-\*\)' \
+	   ':profile file:_files -g gmon.\*\(-.\)' \
 	   -- -s '((#s)--[no-] --)' \
            '*=name*:function name:->funcs' \
 	   '*=dirs*:directory:_dir_list' && ret=0
diff --git a/Completion/Unix/Command/_gzip b/Completion/Unix/Command/_gzip
index 3f5aeb1b7..5c88fac39 100644
--- a/Completion/Unix/Command/_gzip
+++ b/Completion/Unix/Command/_gzip
@@ -79,10 +79,10 @@ files)
   else
     if [[ -z "$decompress" ]]; then
       _description files expl 'file to compress'
-      _files "$expl[@]" -g '*~*.(([tT]|)[gG]|)[zZ]' && return
+      _files "$expl[@]" -g '^*.(([tT]|)[gG]|)[zZ](-.)' && return
     else
       _description files expl 'compressed file'
-      _files "$expl[@]" -g '*.(([tT]|)[gG]|)[zZ]' && return
+      _files "$expl[@]" -g '*.(([tT]|)[gG]|)[zZ](-.)' && return
     fi
   fi
   ;;
diff --git a/Completion/Unix/Command/_imagemagick b/Completion/Unix/Command/_imagemagick
index fd9780ad7..43f3a277a 100644
--- a/Completion/Unix/Command/_imagemagick
+++ b/Completion/Unix/Command/_imagemagick
@@ -14,7 +14,7 @@ typeset -A opt_args
 formats=jpg:jpeg:tiff:miff:ras:bmp:cgm:dcx:ps:eps:fig:fits:fpx:gif:mpeg:pbm:pgm:ppm:pcd:pcl:pdf:pcx:png:rad:rgb:rgba:rle:sgi:html:shtml:tga:ttf:uil:xwd:xbm:xpm:yuv
 
 if (( $# )); then
-  _files "$@" "$expl[@]" -g '*.(#i)(${~format//:/|})'
+  _files "$@" "$expl[@]" -g '*.(#i)(${~format//:/|})(-.)'
   return
 fi
 
diff --git a/Completion/Unix/Command/_ispell b/Completion/Unix/Command/_ispell
index 3eacee87f..6a3e86d42 100644
--- a/Completion/Unix/Command/_ispell
+++ b/Completion/Unix/Command/_ispell
@@ -36,17 +36,17 @@ ispell)
 buildhash)
   _arguments \
     '(-c)-s[silent operation]' \
-    '(: -s)-c[count mode]:count: :affix file:_files -g \*.\(\#i\)aff' \
+    '(: -s)-c[count mode]:count: :affix file:_files -g "*.(#i)aff(-.)"' \
     ':raw dictionary file:_files:' \
-    ':affix file:_files -g \*.\(\#i\)aff' \
-    ':hashed output file:_files \*.\(\#i\)hash'
+    ':affix file:_files -g "*.(#i)aff(-.)"' \
+    ':hashed output file:_files "*.(#i)hash(-.)"'
   ;;
 munchlist)
   _arguments -s \
-    '-l[specify affix file]:affix file:_files -g \*.\(\#i\)aff' \
+    '-l[specify affix file]:affix file:_files -g "*.(#i)aff(-.)"' \
     '-c[specify converted output file name]:converted file name:_files' \
     '-T[specify string character type]:string character type:' \
-    '-s[specify strip hash file]:hash file:_files \*.\(\#i\)hash' \
+    '-s[specify strip hash file]:hash file:_files "*.(#i)hash(-.)"' \
     '-D[debug mode]' \
     '-v[verbose mode]' \
     '-w[specify additional word characters]:word characters:' \
@@ -76,7 +76,7 @@ tryaffix)
 icombine)
   _arguments \
     '-T[specify string character type]:string character type:' \
-    ':affix file:_files -g \*.\(\#i\)aff'
+    ':affix file:_files -g "*.(#i)aff(-.)"'
   ;;
 ijoin)
   _arguments -s \
diff --git a/Completion/Unix/Command/_java b/Completion/Unix/Command/_java
index 10f23c39d..680238ebc 100644
--- a/Completion/Unix/Command/_java
+++ b/Completion/Unix/Command/_java
@@ -22,7 +22,7 @@ javac)
     '-source[provide source compatibility with specified release]:release:(1.3 1.4)' \
     '-target[specify VM version]:release:(1.{1..4})' \
     '-help[print a synopsis of standard options]' \
-    '*:java source file:_files -g \*.java' && return 0
+    '*:java source file:_files -g \*.java\(-.\)' && return 0
   ;;
 
 jdb)
@@ -43,7 +43,7 @@ java)
     '-verbose\:jni[print JNI information]' \
     '-version[print version]' \
     '-help[print help message]' \
-    '(- 1)-jar[specify a program capsulated as jar]:jar:_files -g \*.jar' \
+    '(- 1)-jar[specify a program capsulated as jar]:jar:_files -g \*.jar\(-.\)' \
     '(-):class:_java_class -m main ${(kv)opt_args[(i)(-classpath|-cp)]}' \
     '*::args: _normal' \
      && return 0
@@ -118,7 +118,7 @@ jar)
     jar_cmd="${words[2]#-}"
     tmpassoc=(
       m ':manifest file:_files'
-      f ':archive file:_files -g \*.\([ejw]ar\|zip\)'
+      f ':archive file:_files -g "*.([ejw]ar|zip)(-.)"'
     )
     _arguments -C \
       "${jar_cmd/[^-]*/:dummy:}" \
@@ -165,7 +165,7 @@ javap)
 extcheck)
   _arguments \
     '-verbose[print verbose messages]' \
-    ':target jar file:_files -g \*.jar' && return 0
+    ':target jar file:_files -g \*.jar\(-.\)' && return 0
   ;;
 
 rmic)
@@ -336,14 +336,14 @@ jarsigner)
     '-storepass[specify password for keystore]:password:' \
     '-keypass[specify password for private key]:password:' \
     '-sigfile[specify base file name of .SF and .DSA files to be generated]:sigfile:_files' \
-    '-signedjar[specify signed JAR file]:_files -g \*.\(jar\|zip\)' \
+    '-signedjar[specify signed JAR file]:_files -g "*.(jar|zip)(-.)"' \
     '(2)-verify[verify mode]' \
     '-certs[output certificate information in verify mode]' \
     '-verbose[print verbose messages]' \
     '-internalsf[old behaviour]' \
     '-sectionsonly[omit header of hash of the whole manifest file]' \
     '-J-[specify java option]:java option:' \
-    ':jar file:_files -g \*.\(jar\|zip\)' \
+    ':jar file:_files -g "*.(jar|zip)(-.)"' \
     ':alias:' && return 0
   ;;
 
@@ -374,7 +374,7 @@ classpath|sourcepath|bootstrapclasspath|docletpath)
   compset -P '*:'
   compset -S ':*'
   _alternative \
-    "classpath:$state:_path_files -qS: -g '*.(jar|zip)'" \
+    "classpath:$state:_path_files -qS: -g '*.(jar|zip)(-.)'" \
     "classpath:$state:_path_files -r': ' -/" && return
   ;;
 
@@ -553,7 +553,7 @@ docsrc)
   if compset -P @; then
     _wanted files expl 'package/source list file' _files && return
   else
-    _wanted files expl 'package or source' _files -g '*.java' && return
+    _wanted files expl 'package or source' _files -g '*.java(-.)' && return
   fi
   ;;
 
diff --git a/Completion/Unix/Command/_links b/Completion/Unix/Command/_links
index 47869ad6a..d2bc9be14 100644
--- a/Completion/Unix/Command/_links
+++ b/Completion/Unix/Command/_links
@@ -29,7 +29,7 @@ _arguments -C \
 
 case $state in
   html)
-    _alternative 'files:file:_files -g "*.x#html"' 'urls:url:_urls' && ret=0
+    _alternative 'files:file:_files -g "*.x#html(-.)"' 'urls:url:_urls' && ret=0
   ;;
   graphics_drivers)
     vals=(${=${${${(f)"$(_call_program links-graphics-drivers links -driver help 2>&1)"}[-1]}//','/''}} )
diff --git a/Completion/Unix/Command/_lynx b/Completion/Unix/Command/_lynx
index 6bbe01449..e53fa8415 100644
--- a/Completion/Unix/Command/_lynx
+++ b/Completion/Unix/Command/_lynx
@@ -140,7 +140,7 @@ restrictions)
     outside_telnet print shell suspend telnet_port useragent && return
   ;;
 html)
-  _alternative 'files:file:_files -g "*.x#html"' 'urls:url:_urls' && return
+  _alternative 'files:file:_files -g "*.x#html(-.)"' 'urls:url:_urls' && return
   ;;
 esac
 
diff --git a/Completion/Unix/Command/_lzop b/Completion/Unix/Command/_lzop
index bad9c14d4..46e27691a 100644
--- a/Completion/Unix/Command/_lzop
+++ b/Completion/Unix/Command/_lzop
@@ -83,10 +83,10 @@ case "$state" in
 	$+opt_args[--test] || $+opt_args[-t] || $+opt_args[--list] ||
 	$+opt_args[-l] || $+opt_args[--ls] || $+opt_args[--info] )); then
       _description files expl 'compressed file'
-      _files "$expl[@]" -g '*.[tl]zo' && ret=0
+      _files "$expl[@]" -g '*.[tl]zo(-.)' && ret=0
     else
       _description files expl 'file to compress'
-      _files "$expl[@]" -g '*~*.[tl]zo' && ret=0
+      _files "$expl[@]" -g '*~*.[tl]zo(-.)' && ret=0
 
     fi
   ;;
diff --git a/Completion/Unix/Command/_mh b/Completion/Unix/Command/_mh
index 6f965ce4f..5e5245441 100644
--- a/Completion/Unix/Command/_mh
+++ b/Completion/Unix/Command/_mh
@@ -49,7 +49,7 @@ elif [[ "$prev" = -(form|audit|filter) ]]; then
   mhlib=${${$(mhparam mhlproc 2>/dev/null):h}:-/usr/lib/mh}
   mhfpath=($mymhdir $mhlib)
 
-  _wanted files expl 'MH template file' _files -W mhfpath -g '*(.)'
+  _wanted files expl 'MH template file' _files -W mhfpath -g '*(-.)'
 elif [[ $service = mhmail ]]; then
   _email_addresses
 elif [[ "$prev" = -(no|)cc ]]; then
@@ -83,7 +83,7 @@ else
       compadd "$expl[@]" $(mark $foldnam 2>/dev/null | awk -F: '{ print $1 }') &&
         ret=0
       compadd "$expl[@]" reply next cur prev first last all unseen && ret=0
-      _path_files "$expl[@]" -W folddir -g '<->' && ret=0
+      _path_files "$expl[@]" -W folddir -g '<->(-.)' && ret=0
     done
     (( ret )) || return 0
   done
diff --git a/Completion/Unix/Command/_mysqldiff b/Completion/Unix/Command/_mysqldiff
index 1409afda5..094694d32 100644
--- a/Completion/Unix/Command/_mysqldiff
+++ b/Completion/Unix/Command/_mysqldiff
@@ -24,7 +24,7 @@ _mysqldiff () {
 _mysql_db_or_file () {
   _alternative \
     'databases:MySQL databases:_mysql_databases' \
-    'files:MySQL database definition files:_files -g \*.\(my\|\)sql'
+    'files:MySQL database definition files:_files -g "*.(my|)sql(-.)"'
 }
 
 _mysql_utils
diff --git a/Completion/Unix/Command/_pack b/Completion/Unix/Command/_pack
index b0172dca8..ccd1db8f5 100644
--- a/Completion/Unix/Command/_pack
+++ b/Completion/Unix/Command/_pack
@@ -7,10 +7,10 @@ case $service in
     _arguments -C \
       '-f[force packing even for files which will not benefit]' \
       '-[show statistics for files]' \
-      '*:file to compress:_files -g \*\~\*.z'
+      '*:file to compress:_files -g "^*.z(-.)"'
   ;;
   unpack)
     _description files expl 'compressed file'
-    _files "$expl[@]" -g '*.z'
+    _files "$expl[@]" -g '*.z(-.)'
   ;;
 esac
diff --git a/Completion/Unix/Command/_pbm b/Completion/Unix/Command/_pbm
index 17963c1e7..747aed3ce 100644
--- a/Completion/Unix/Command/_pbm
+++ b/Completion/Unix/Command/_pbm
@@ -9,16 +9,16 @@
 local pat expl ret=1
 
 if [[ "$service" = pnm* ]]; then
-  pat='*.(#i)p[bgp]m'
+  pat='*.(#i)p[bgp]m(-.)'
 elif [[ "$service" = *top[bgpn]m ]]; then
-  pat="*.(#i)${service%%top[bgpn]m}"
+  pat="*.(#i)${service%%top[bgpn]m}(-.)"
 else
-  pat="*.(#i)${service[1,3]}"
+  pat="*.(#i)${service[1,3]}(-.)"
 fi
 
 if (( $# + $+_in_pbm )); then
   _wanted files expl 'picture file' _path_files "$@" -g "$pat" - ||
-      _files "$@" "$expl[@]" -g '*.(#i)p[bgp]m'
+      _files "$@" "$expl[@]" -g '*.(#i)p[bgp]m(-.)'
   return
 fi
 
@@ -114,7 +114,7 @@ pbmreduce)
 
 pbmtext)
   _arguments \
-    '(-builtin)-font[specify font file]:font file:_files -g \*.\(\#i\)pbm' \
+    '(-builtin)-font[specify font file]:font file:_files -g "*.(#i)pbm(-.)"' \
     '(-font)-builtin[select builtin font]:builtin font:(bdf fixed)' \
     '-space[add space between characters]:space (pixels)' \
     '*:text'
@@ -184,8 +184,8 @@ pbmtopk)
     '*-v[specify vertical escapement of next character]:vertical escapement' \
     '*-x[specify x offset of next character]:x offset' \
     '*-y[specify y offset of next character]:y offset' \
-    ':pk file:_files -g \*.\(\#i\)pk' \
-    ':tfm file:_files -g \*.\(\#i\)tfm' \
+    ':pk file:_files -g "*.(#i)pk(-.)"' \
+    ':tfm file:_files -g "*.(#i)tfm(-.)"' \
     '*:file:_pbm'
   ;;
 
@@ -269,7 +269,7 @@ pgmtoppm)
     return ret
   elif [[ CURRENT -eq 3 && "$words[2]" = -map ]]; then
     _description files expl 'map file'
-    _files "$expl[@]" -g '*.(#i)ppm'
+    _files "$expl[@]" -g '*.(#i)ppm(-.)'
   else
     _pbm
   fi
@@ -280,7 +280,7 @@ pktopbm)
     '*-x[set width of next bitmap]:width' \
     '*-y[set height of next bitmap]:height' \
     '*-c[set next character number]:character number' \
-    ':pk file:_files -g \*.\(\#i\)pk' \
+    ':pk file:_files -g "*.(#i)pk(-.)"' \
     '*:file:_pbm'
   ;;
 
@@ -332,7 +332,7 @@ pnmcomp)
     '(-valign)-yoff[specify overlay y offset]:y offset' \
     '(-xoff)-align=[specify horizontal alignment for overlay image]:alignment:(left center right)' \
     '(-yoff)-valign=[specify vertical alignment for overlay image]:alignment:(top middle bottom)' \
-    '-alpha[specify alpha mask file]:alpha mask file:_files -g \*.\(\#i\)pgm' \
+    '-alpha[specify alpha mask file]:alpha mask file:_files -g "*.(#i)pgm(-.)"' \
     ':overlay file:_pbm' '*:file:_pbm'
   ;;
 
@@ -384,8 +384,8 @@ pnmhisteq)
   _arguments \
     '-verbose[verbose mode]' \
     '-gray[modify only gray pixels]' \
-    '-rmap[specify input luminosity map file]:luminosity map file:_files -g \*.\(\#i\)pgm' \
-    '-wmap[specify output luminosity map file]:luminosity map file:_files -g \*.\(\#i\)pgm' \
+    '-rmap[specify input luminosity map file]:luminosity map file:_files -g "*.(#i)pgm(-.)"' \
+    '-wmap[specify output luminosity map file]:luminosity map file:_files -g "*.(#i)pgm(-.)"' \
     ':file:_pbm'
   ;;
 pnmhistmap)
@@ -470,7 +470,7 @@ pnmtile)
 pnmtoddif)
   _arguments \
     '-resolution:horizontal resolution::vertical resolution' \
-    ':file:_pbm' ':ddif file:_files -g \*.\(\#i\)ddif'
+    ':file:_pbm' ':ddif file:_files -g "*.(#i)ddif(-.)"'
   ;;
 
 pnmtofits)
@@ -664,7 +664,7 @@ ppmquant)
     return ret
   elif [[ CURRENT -eq 3 && "$words[2]" = -map ]]; then
     _description files expl 'map file'
-    _files "$expl[@]" -g '*.(#i)ppm'
+    _files "$expl[@]" -g '*.(#i)ppm(-.)'
   else
     _pbm
   fi
@@ -798,7 +798,7 @@ ppmtoyuvsplit)
 psidtopgm)
   _arguments \
     ':width' ':height' ':bits per sample' \
-    ':postscript file:_files -g "*.(#i)(ps|eps)"'
+    ':postscript file:_files -g "*.(#i)(ps|eps)(-.)"'
   ;;
 pstopnm)
   _arguments \
@@ -813,7 +813,7 @@ pstopnm)
     '-xborder:x border fraction' '-yborder:y border fraction' \
     '-xmax:maximum width' '-ymax:maximum height' \
     '-xsize:width' '-ysize:height' \
-    ':postscript file:_files -g \*.\(\#i\)\(ps\|eps\)'
+    ':postscript file:_files -g "*.(#i)(ps|eps)(-.)"'
   ;;
 
 rawtopgm)
@@ -848,7 +848,7 @@ rgb3toppm)
 
   if [[ -n "$expl" ]]; then
     _description files expl "$expl"
-    _files "$expl" -g '*.(#i)pgm'
+    _files "$expl" -g '*.(#i)pgm(-.)'
   fi
   ;;
 
@@ -887,5 +887,5 @@ zeisstopnm)
 
 *)
   _wanted files expl 'picture file' _path_files -g "$pat" ||
-      _files "$expl[@]" -g '*.(#i)p[bgp]m'
+      _files "$expl[@]" -g '*.(#i)p[bgp]m(-.)'
 esac
diff --git a/Completion/Unix/Command/_perl b/Completion/Unix/Command/_perl
index 0229f3e73..9d07b562d 100644
--- a/Completion/Unix/Command/_perl
+++ b/Completion/Unix/Command/_perl
@@ -31,7 +31,7 @@ _perl () {
     "-V-[print perl configuration information]:configuration keys:_perl_config_vars" \
     '-w[TURN WARNINGS ON FOR COMPILATION OF YOUR SCRIPT. Recommended.]' \
     '-x-[strip off text before #!perl line and perhaps cd to directory]:directory to cd to:_files -/' \
-    '1:Perl script:_files -/ -g \*.\(p\[ml\]\|PL\)' \
+    '1:Perl script:_files -/ -g "*.(p[ml]|PL)(-.)"' \
     '*::args: _normal' 
 }
 
diff --git a/Completion/Unix/Command/_perldoc b/Completion/Unix/Command/_perldoc
index 9a017a184..f0595fc9f 100644
--- a/Completion/Unix/Command/_perldoc
+++ b/Completion/Unix/Command/_perldoc
@@ -17,7 +17,7 @@ _perl_pods () {
   _alternative \
     'modules:: _perl_modules' \
     'pods:: _perl_basepods' \
-    'files:Perl modules and .pods:_files -g \*.\(pod\|pm\)'
+    'files:Perl modules and .pods:_files -g "*.(pod|pm)(-.)"'
 }
 
 _perldoc "$@"
diff --git a/Completion/Unix/Command/_python b/Completion/Unix/Command/_python
index 08d2f3887..02697bff4 100644
--- a/Completion/Unix/Command/_python
+++ b/Completion/Unix/Command/_python
@@ -1,26 +1,23 @@
 #compdef python
 
-# Python 2.2.2
-
 _arguments -s -S \
   '(1 -)-c+[program passed in as string (terminates option list)]:python command:' \
-  '-d[debug output from parser (also PYTHONDEBUG=x)]' \
+  '-d[debug output from parser]' \
   '-E[ignore environment variables (such as PYTHONPATH)]' \
-  '(1 * -)-h[print this help message and exit]' \
-  '-i[inspect interactively after running script (also PYTHONINSPECT=x)]' \
-  '-O[optimize generated bytecode (a tad; also PYTHONOPTIMIZE=x)]' \
+  '(1 * -)-h[display help information]' \
+  '-i[inspect interactively after running script]' \
+  '-O[optimize generated bytecode]' \
   '-OO[remove doc-strings in addition to the -O optimizations]' \
-  '-Q+[division options: -Qold (default), -Qwarn, -Qwarnall, -Qnew]:division option:(old warn warnall new)' \
+  '-Q+[division options]:division option:(old warn warnall new)' \
   "-S[don't imply 'import site' on initialization]" \
   '-t[issue warnings about inconsistent tab usage]' \
   '-tt[issue errors about inconsistent tab usage]' \
-  '-u[unbuffered binary stdout and stderr (also PYTHONUNBUFFERED=x)]' \
-  '-v[verbose (trace import statements) (also PYTHONVERBOSE=x)]' \
-  '(1 * -)-V[print the Python version number and exit]' \
-  '-W+[warning control (arg is action:message:category:module:lineno)]:warning filter:(default always ignore module once error)' \
+  '-u[unbuffered binary stdout and stderr]' \
+  '-v[verbose (trace import statements)]' \
+  '(1 * -)-V[display version information]' \
+  '-W+[warning control]:warning filter (action:message:category:module:lineno):(default always ignore module once error)' \
   '-x[skip first line of source, allowing use of non-Unix forms of #!cmd]' \
-  '(1 -)-[program read from stdin (default; interactive mode if a tty)]' \
-  '(-)1:script file:_files -g \*.py\(\|c\|o\)' \
+  '(-)1:script file:_files -g "*.py(|c|o)(-.)"' \
   '*:script argument:_files' && return
 
 return 1
diff --git a/Completion/Unix/Command/_rar b/Completion/Unix/Command/_rar
index 910989437..c766b198f 100644
--- a/Completion/Unix/Command/_rar
+++ b/Completion/Unix/Command/_rar
@@ -39,7 +39,7 @@ case $service in
     if (( CURRENT == 2 )); then
       _wanted commands expl 'rar command' compadd e l lt p t v vt x && return
     else
-      _arguments "$common[@]" '*:RAR files:_files -g \*.rar' && return
+      _arguments "$common[@]" '*:RAR files:_files -g \*.rar\(-.\)' && return
     fi
   ;;
   rar)
diff --git a/Completion/Unix/Command/_ruby b/Completion/Unix/Command/_ruby
index d6df7dfd2..500dadbfd 100644
--- a/Completion/Unix/Command/_ruby
+++ b/Completion/Unix/Command/_ruby
@@ -32,7 +32,7 @@ _arguments -C -s -S \
   '(1 * -)--copyright[print the copyright]' \
   '(1 * -)'{-h,--help}'[print help message]' \
   '(1 * -)--version[print the version]' \
-  '(-)1:script file:_files -g \*.rb' \
+  '(-)1:script file:_files -g "*.rb(-.)"' \
   '*:script argument:_files' && ret=0
 
 case $state in
diff --git a/Completion/Unix/Command/_sablotron b/Completion/Unix/Command/_sablotron
index a8d332103..170f08abd 100644
--- a/Completion/Unix/Command/_sablotron
+++ b/Completion/Unix/Command/_sablotron
@@ -33,7 +33,7 @@ if [[ -n "$state" ]]; then
       case $mode:${#words[1,CURRENT-1]:#(-*|*=*)}; in
         default:1|chain:<3->|batch-x:2|batch-s:1)
 	  _description files expl stylesheet
-	  _files "$expl[@]" -g \*.xsl && ret=0
+	  _files "$expl[@]" -g "*.xsl(-.)" && ret=0
 	;;
         default:2|chain:1|batch-x:1|batch-s:2)
 	  _description files expl 'input file'
diff --git a/Completion/Unix/Command/_sccs b/Completion/Unix/Command/_sccs
index 40463b2f1..8d7babfb7 100644
--- a/Completion/Unix/Command/_sccs
+++ b/Completion/Unix/Command/_sccs
@@ -10,7 +10,7 @@ _sccs_files() {
   PREFIX="$pref"
   IPREFIX="$ipref"
   _wanted sccs-files expl 'sccs file' _files -W ${PROJECTDIR:-~+} \
-      -g 's.*' && ret=0
+      -g 's.*(-.)' && ret=0
   
   return ret
 }
@@ -49,7 +49,7 @@ subcmds=(
 
 ropt='-r+[specify sccs delta id]:sccs delta id'
 copt='-c+[specify date]:date-stamp'
-sfiles=":file:_files -g s.\*"
+sfiles=':file:_files -g "s.*(-.)"'
 
 if [[ $service = sccs ]]; then
   _arguments -C -A "-*" \
diff --git a/Completion/Unix/Command/_texinfo b/Completion/Unix/Command/_texinfo
index 240111990..13a5944f0 100644
--- a/Completion/Unix/Command/_texinfo
+++ b/Completion/Unix/Command/_texinfo
@@ -11,12 +11,12 @@ case $service in
       '(: -)--apropos=[look up string in indices]:search string: ' \
       '(-f --file)'{\*-d,\*--directory=}'[add directory to infopath]:info dir:_files -/' \
       '--dribble=[record keystrokes]:file with keystrokes:_files' \
-      '(-f --file -d --directory)'{-f,--file=}'[info file to show]:info file:_files -g "*.info(|.gz|.bz2)"' \
+      '(-f --file -d --directory)'{-f,--file=}'[info file to show]:info file:_files -g "*.info(|.gz|.bz2)(-.)"' \
       '(: - -h --help)'{-h,--help}'[display usage]' \
       '(-o --output -O)--index-search=[go directly to node if found]:search string: ' \
-      '(--index-search -o --output -O)'{-o,--output=}'[dump selected nodes to filename]:filename:_files -g "*(^/)"' \
+      '(--index-search -o --output -O)'{-o,--output=}'[dump selected nodes to filename]:filename:_files -g "*(-.)"' \
       '(-R --raw-escapes)'{-R,--raw-escapes}'[do not remove ANSI escapes from man pages]' \
-      '--restore=[read keystrokes from file]:filename:_files -g "*(^/)"' \
+      '--restore=[read keystrokes from file]:filename:_files -g "*(-.)"' \
       '(--index-search -o --output -O --show-options --usage)'{-O,--show-options,--usage}'[go to command-line options node]' \
       '--subnodes[recursively output menu items]' \
       '--vi-keys[use Vi-like key bindings]' \
@@ -43,21 +43,21 @@ case $service in
         '--keep-old=[inhibit replacement of existing entries/removal of empty sections]' \
         '--test[do not update dir file]' \
         '--debug[enable debugging]' \
-        '*:info file:_files -g \*.info'
+        '*:info file:_files -g "*.info(-.)"'
 	return
     else
       _arguments \
         '(--delete --remove)'{--delete,--remove}'[delete existing entries]' \
-        '(2)--dir-file=[specify dir file]:dir file:_files -g dir' \
+        '(2)--dir-file=[specify dir file]:dir file:_files -g "dir(-.)"' \
         \*{--entry,--info}'[specify directory entry to add]:text' \
         '(- 1 2)--help[display help information]' \
-        '(1)--info-file=[specify info file to install in the directory]:info file:_files -g *.info' \
+        '(1)--info-file=[specify info file to install in the directory]:info file:_files -g "*.info(-.)"' \
         '(2)--info-dir=[specify directory containing dir file]:info directory:_files -/' \
         '--quiet[suppress warnings]' \
         '(--delete --remove)--section=[put new entries in specified section]' \
         '(- 1 2)--version[display version information]' \
-        '1:info file:_files -g \*.info' \
-        '2:dir file:_files -g dir'
+        '1:info file:_files -g "*.info(-.)"' \
+        '2:dir file:_files -g "dir(-.)"'
 	return
     fi
   ;;
@@ -137,7 +137,7 @@ case $service in
       '-searchlook:search match display:(color inverse underline)' \
       '-iconic' \
       '-dir:info path:_dir_list' \
-      '-file:info file:_files -g "*.info(|.gz|.bz2)"' \
+      '-file:info file:_files -g "*.info(|.gz|.bz2)(-.)"' \
       '-node:info node:->item' \
       '*::menu items:->item' && ret=0
     info=( _call_program info info ${(kv)opt_args[(I)-file]/-file/-f} )
diff --git a/Completion/Unix/Command/_tiff b/Completion/Unix/Command/_tiff
index 0b3d55df3..588476d5a 100644
--- a/Completion/Unix/Command/_tiff
+++ b/Completion/Unix/Command/_tiff
@@ -3,9 +3,9 @@
 local pat expl ret=1
 
 if [[ "$service" = *2tiff ]]; then
-  pat="*.(#i)${service}"
+  pat="*.(#i)${service}(-.)"
 else
-  pat="*.(#i)tiff"
+  pat='*.(#i)tiff(-.)'
 fi
 
 if [[ $# -ne 0 || $+_in_tiff -ne 0 ]]; then
@@ -14,7 +14,7 @@ if [[ $# -ne 0 || $+_in_tiff -ne 0 ]]; then
     set -- "$expl[@]"
   fi
   _wanted files expl 'picture file' _path_files "$@" -g "$pat" - ||
-      _files "$@" "$expl[@]" -g '*.(#i)tiff'
+      _files "$@" "$expl[@]" -g '*.(#i)tiff(-.)'
   return
 fi
 
@@ -27,67 +27,67 @@ case "$service" in
 tiff2bw)
   _arguments -C \
     '-c[specify compression scheme]:compression scheme:->compress' \
-    '-r[specify rows per strip]:rows per strip:' \
-    '-R[specify percentage of red channel]:percentage of red channel:' \
-    '-G[specify percentage of green channel]:percentage of green channel:' \
-    '-B[specify percentage of blue channel]:percentage of blue channel:' \
-    ':input file:_files -g \*.\(\#i\)tif\(\|f\)' \
-    ':output file:_files -g \*.\(\#i\)tif\(\|f\)' && ret=0
+    '-r[specify rows per strip]:rows per strip' \
+    '-R[specify percentage of red channel]:percentage of red channel' \
+    '-G[specify percentage of green channel]:percentage of green channel' \
+    '-B[specify percentage of blue channel]:percentage of blue channel' \
+    ':input file:_files -g "*.(#i)tif(|f)(-.)"' \
+    ':output file:_files -g "*.(#i)tif(|f)(-.)"' && ret=0
   ;;
 tiff2ps)
   _arguments \
     '-1[generate PostScript Level I output]' \
     '-2[generate PostScript Level II output]' \
     '-a[generate output for all IFDs]' \
-    '-d[set initial TIFF directory]:initial TIFF directory:' \
+    '-d[set initial TIFF directory]:initial TIFF directory' \
     '(-p)-e[generate Encapsulated PostScript]' \
-    '-o[set initial TIFF directory (file offset)]:file offset:' \
+    '-o[set initial TIFF directory (file offset)]:file offset' \
     '(-e)-p[generate non-Encapsulated PostScript]' \
-    '-h[set page height]:page height:' \
-    '-w[set page width]:page width:' \
+    '-h[set page height]:page height' \
+    '-w[set page width]:page width' \
     '-8[disable use of ASCII85 encoding]' \
     '-D[print two pages per sheet]' \
-    '-O[specify output file]:output file:_files -g \*.\(\#i\)ps' \
+    '-O[specify output file]:output file:_files -g "*.(#i)ps(-.)"' \
     '-s[generate output for a single image]' \
     '-T[print pages for top edge binding]' \
-    '*:input TIFF file:_files -g \*.\(\#i\)tif\(\|f\)' && ret=0
+    '*:input TIFF file:_files -g "*.(#i)tif(|f)(-.)"' && ret=0
   ;;
 tiffcmp)
   _arguments \
     '-l[list all differing bytes]' \
     '-t[ignore differences in directories]' \
-    ':first input TIFF file:_files -g \*.\(\#i\)tif\(\|f\)' \
-    ':second input TIFF file:_files -g \*.\(\#i\)tif\(\|f\)' && ret=0
+    ':first input TIFF file:_files -g "*.(#i)tif(|f)(-.)"' \
+    ':second input TIFF file:_files -g "*.(#i)tif(|f)(-.)"' && ret=0
   ;;
 tiffcp)
   _arguments -C \
     '-B[write output in bin-endian byte order]' \
     '-c[specify compression scheme]:compression scheme:->compress' \
-    '-o[set initial TIFF directory (file offset)]:file offset:' \
+    '-o[set initial TIFF directory (file offset)]:file offset' \
     '-p[set sample packing]:sample packing:(contig separate)' \
     '(-t)-s[write output in strips]' \
     '(-s)-t[write output in tiles]' \
     '-i[ignore read errors]' \
-    '-r[specify rows per strip]:rows per strip:' \
-    '-w[specify output tile width]:output tile width:' \
-    '-l[specify output tile length]:output tile length:' \
+    '-r[specify rows per strip]:rows per strip' \
+    '-w[specify output tile width]:output tile width' \
+    '-l[specify output tile length]:output tile length' \
     '-f[specify fill order]:fill order:(lsb2msb msb2lsb)' \
-    '*:input TIFF file:_files -g \*.\(\#i\)tif\(\|f\)' && ret=0
+    '*:input TIFF file:_files -g "*.(#i)tif(|f)(-.)"' && ret=0
   ;;
 tiffdither)
   _arguments -C \
     '-c[specify compression scheme]:compression scheme:->compress' \
     '-f[specify fill order]:fill order:(lsb2msb msb2lsb)' \
-    '-r[specify rows per strip]:rows per strip:' \
-    '-t[set threshold for dithering]:dither threshold value:' \
-    ':input file:_files -g \*.\(\#i\)tif\(\|f\)' \
-    ':output file:_files -g \*.\(\#i\)tif\(\|f\)' && ret=0
+    '-r[specify rows per strip]:rows per strip' \
+    '-t[set threshold for dithering]:dither threshold value' \
+    ':input file:_files -g "*.(#i)tif(|f)(-.)"' \
+    ':output file:_files -g "*.(#i)tif(|f)(-.)"' && ret=0
   ;;
 tiffdump)
   _arguments \
     '-o[set initial TIFF directory (file offset)]:file offset:' \
     '-h[print numbers in hexadecimal]' \
-    '*:input TIFF file:_files -g \*.\(\#i\)tif\(\|f\)' && ret=0
+    '*:input TIFF file:_files -g "*.(#i)tif(|f)(-.)"' && ret=0
   ;;
 tiffinfo)
   _arguments \
@@ -95,26 +95,26 @@ tiffinfo)
     '-D[read and decompress data]' \
     '-d[print decompressed data]' \
     '-j[display JPEG-related tags]' \
-    '-o[set initial TIFF directory (file offset)]:file offset:' \
+    '-o[set initial TIFF directory (file offset)]:file offset' \
     '-s[display offsets and byte counts for all data strips]' \
     '-i[ignore read errors]' \
     '-f[force fill order]:fill order:(lsb2msb msb2lsb)' \
     '-w[display raw data in words]' \
-    '*:input TIFF file:_files -g \*.\(\#i\)tif\(\|f\)' && ret=0
+    '*:input TIFF file:_files -g "*.(#i)tif(|f)(-.)"' && ret=0
   ;;
 tiffmedian)
   _arguments -C \
-    '-r[specify rows per strip]:rows per strip:' \
-    '-C[specify number of colormap entries]:number of colormap entries:' \
+    '-r[specify rows per strip]:rows per strip' \
+    '-C[specify number of colormap entries]:number of colormap entries' \
     '-c[specify compression scheme]:compression scheme:->compress' \
     '-f[use Floyd-Steinberg dithering]' \
-    ':input file:_files -g \*.\(\#i\)tif\(\|f\)' \
-    ':output file:_files -g \*.\(\#i\)tif\(\|f\)' && ret=0
+    ':input file:_files -g "*.(#i)tif(|f)(-.)"' \
+    ':output file:_files -g "*.(#i)tif(|f)(-.)"' && ret=0
   ;;
 tiffsplit)
   _arguments \
-    ':input file:_files -g \*.\(\#i\)tif\(\|f\)' \
-    ':output file prefix:' && ret=0
+    ':input file:_files -g "*.(#i)tif(|f)(-.)"' \
+    ':output file prefix' && ret=0
   ;;
 fax2tiff)
   _arguments \
@@ -125,46 +125,46 @@ fax2tiff)
     '(-B)-W[0 in input is white]' \
     '(-M)-L[input is lsb-to-msb]' \
     '(-L)-M[input is msb-to-lsb]' \
-    '-R[specify resolution]:resolution (lines per inch):' \
-    '-o[specify output file]:output file:_files -g \*.\(\#i\)tif\(\|f\)' \
+    '-R[specify resolution]:resolution (lines per inch)' \
+    '-o[specify output file]:output file:_files -g "*.(#i)tif(|f)(-.)"' \
     '(-f)-c[generate `classic'"'"' TIFF format]' \
     '(-c)-f[generate TIFF Class F format]' \
     '-m[output in msb-to-lsb order]' \
-    '-p[don'"'"'t align EOL codes]' \
+    "-p[don't align EOL codes]" \
     '-s[duplicate all rows]' \
     '-v[verbose mode]' \
-    ':FAX input file:_files -g \*.\(\#i\)\(g\[34\]\|fax\)' && ret=0
+    ':FAX input file:_files -g "*.(#i)(g[34]|fax)(-.)"' && ret=0
   ;;
 gif2tiff)
   _arguments -C \
-    '-r[specify rows per strip]:rows per strip:' \
+    '-r[specify rows per strip]:rows per strip' \
     '-c[specify compression scheme]:compression scheme:->compress' \
-    ':input GIF file:_files -g \*.\(\#i\)gif' \
-    ':output file:_files -g \*.\(\#i\)tif\(\|f\)' && ret=0
+    ':input GIF file:_files -g "*.(#i)gif(-.)"' \
+    ':output file:_files -g "*.(#i)tif(|f)(-.)"' && ret=0
   ;;
 ppm2tiff)
   _arguments -C \
-    '-r[specify rows per strip]:rows per strip:' \
+    '-r[specify rows per strip]:rows per strip' \
     '-c[specify compression scheme]:compression scheme:->compress' \
     '-R[specify resolution]:resolution:' \
-    ':input GIF file:_files -g \*.\(\#i\)ppm' \
-    ':output file:_files -g \*.\(\#i\)tif\(\|f\)' && ret=0
+    ':input GIF file:_files -g "*.(#i)ppm(-.)"' \
+    ':output file:_files -g "*.(#i)tif(|f)(-.)"' && ret=0
   ;;
 ras2tiff)
   _arguments -C \
-    '-r[specify rows per strip]:rows per strip:' \
+    '-r[specify rows per strip]:rows per strip' \
     '-c[specify compression scheme]:compression scheme:->compress' \
-    ':input raster image file:_files -g \*.\(\#i\)ras\(\|t\)' \
-    ':output file:_files -g \*.\(\#i\)tif\(\|f\)' && ret=0
+    ':input raster image file:_files -g "*.(#i)ras(|t)(-.)"' \
+    ':output file:_files -g "*.(#i)tif(|f)(-.)"' && ret=0
   ;;
 pal2rgb)
   _arguments -C \
     '-C[specify number of bits for colormap entries]:bits for colormap entries:(8 16)' \
     '-p[set sample packing]:sample packing:(contig separate)' \
     '-c[specify compression scheme]:compression scheme:->compress' \
-    '-r[specify rows per strip]:rows per strip:' \
-    ':input file:_files -g \*.\(\#i\)tif\(\|f\)' \
-    ':output file:_files -g \*.\(\#i\)tif\(\|f\)' && ret=0
+    '-r[specify rows per strip]:rows per strip' \
+    ':input file:_files -g "*.(#i)tif(|f)(-.)"' \
+    ':output file:_files -g "*.(#i)tif(|f)(-.)"' && ret=0
   ;;
 *)
   _description files expl 'picture file'
@@ -185,7 +185,7 @@ if [[ -n "$state" ]]; then
 	'fill[byte-align EOL codes]' && ret=0
       ;;
     jpeg)
-      _message -e values 'compression quality (0-100), or `r'"'"' (output RGB)'
+      _message -e values "compression quality (0-100), or \`r' (output RGB)"
       ret=0
       ;;
     lzw|zip)
diff --git a/Completion/Unix/Command/_vorbis b/Completion/Unix/Command/_vorbis
index 93122b91c..45772bd8d 100644
--- a/Completion/Unix/Command/_vorbis
+++ b/Completion/Unix/Command/_vorbis
@@ -30,7 +30,7 @@ case $service in
       '(-N --tracknum)'{-N,--tracknum}'[set the track number comment field to the given value]:track number' \
       '(-t --title)'{-t,--title}'[set the track title comment field to title]:title' \
       '(-l --album)'{-l,--album}'[set the album comment field to album]' \
-      '*:wav file:_files -g "(#i)*.wav"' && ret=0
+      '*:wav file:_files -g "(#i)*.wav(-.)"' && ret=0
   ;;
   ogg123)
     _arguments -C -s \
@@ -76,7 +76,7 @@ esac
 case $state in
   oggfiles)
     _wanted files expl 'ogg vorbis file' \
-	_files "$expl[@]" -g '(#i)*.ogg' && return
+	_files "$expl[@]" -g '(#i)*.ogg(-.)' && return
   ;;
   devopts)
     if compset -p '*:'; then
diff --git a/Completion/Unix/Command/_w3m b/Completion/Unix/Command/_w3m
index 1106d5987..4e849ce0c 100644
--- a/Completion/Unix/Command/_w3m
+++ b/Completion/Unix/Command/_w3m
@@ -38,7 +38,7 @@ if [[ -n $state ]]; then
 
   _tags files w3mhistory urls
   while _tags; do
-    _requested files expl 'file' _files -g "*.x#html" && ret=0
+    _requested files expl 'file' _files -g "*.x#html(-.)" && ret=0
     _requested urls expl 'url' _urls && ret=0
     if [[ -s ~/.w3m/history ]] && _requested w3mhistory; then
       w3mhistory=( ${(f)"$(<~/.w3m/history)"} )
diff --git a/Completion/Unix/Command/_xmlsoft b/Completion/Unix/Command/_xmlsoft
index e6425cea7..2af60a253 100644
--- a/Completion/Unix/Command/_xmlsoft
+++ b/Completion/Unix/Command/_xmlsoft
@@ -29,8 +29,8 @@ case $service in
       '--xinclude[do XInclude processing on document input]' \
       '--load-trace[print trace of all external entites loaded]' \
       {--profile,--norman}'[dump profiling information]' \
-      '1:stylesheet:_files -g \*.xsl' \
-      ':file:_files -g \*.xml' && return
+      '1:stylesheet:_files -g "*.xsl(-.)"' \
+      ':file:_files -g "*.xml(-.)"' && return
   ;;
   xmllint)
     local -a encoding
diff --git a/Completion/Unix/Command/_yodl b/Completion/Unix/Command/_yodl
index f52c50b6c..1e9d16e5c 100644
--- a/Completion/Unix/Command/_yodl
+++ b/Completion/Unix/Command/_yodl
@@ -11,4 +11,4 @@ _arguments -s \
   '-v[enable verbose mode]' \
   '-w[enable warnings]' \
   '-h[show usage information]' \
-  '*:YODL input file:_files -g \*.\(\#i\)yo\(\|dl\)'
+  '*:YODL input file:_files -g "*.(#i)yo(|dl)(-.)'
diff --git a/Completion/Unix/Command/_zip b/Completion/Unix/Command/_zip
index 479b05aba..bcba76325 100644
--- a/Completion/Unix/Command/_zip
+++ b/Completion/Unix/Command/_zip
@@ -50,7 +50,7 @@ case $service in
       '(-0 -1 -2 -3 -4 -5 -6 -7 -8   )-9[compress better]' \
       '-x[exclude the following names]' \
       '-i[include only the following names]' \
-      "(-f -d -R -q -c -b -@ -F -FF -A -T -y -e -h -u -m -g -j -l -ll -L -v -z -t -tt -o -D -J -X -n -0 -1 -2 -3 -4 -5 -6 -7 -8 -9):zip file:_files -g '(#i)*.(zip|[ejw]ar)'" \
+      "(-f -d -R -q -c -b -@ -F -FF -A -T -y -e -h -u -m -g -j -l -ll -L -v -z -t -tt -o -D -J -X -n -0 -1 -2 -3 -4 -5 -6 -7 -8 -9):zip file:_files -g '(#i)*.(zip|[ejw]ar)(-.)'" \
       '*:file:->files' && ret=0
   ;;
   unzip)
@@ -75,7 +75,7 @@ case $service in
       '-M[page output]' \
       '-x[exclude the following names]' \
       '-Z[zipinfo mode]:zipinfomode:->zipinfo' \
-      "(-p -f -u -l -t -z -n -o -j -C -X -q -qq -a -aa -v -L -M)1:zip file:_files -g '(#i)*.(zip|[ejw]ar)'" \
+      "(-p -f -u -l -t -z -n -o -j -C -X -q -qq -a -aa -v -L -M)1:zip file:_files -g '(#i)*.(zip|[ejw]ar)(-.)'" \
       '*:file:->files' && ret=0
   ;;
 esac
@@ -98,7 +98,7 @@ if [[ $service == zipinfo ]] || [[ -n $uzi ]]; then
       '(-1 -2)-T[use sortable decimal format for file times]' \
       '-M[page output]' \
       '-x[exclude the following names]' \
-      "(-1 -2 -s -m -l -v -h -z -C -t -T -M)1:zip file:_files -g '(#i)*.(zip|[ejw]ar)'" \
+      "(-1 -2 -s -m -l -v -h -z -C -t -T -M)1:zip file:_files -g '(#i)*.(zip|[ejw]ar)(-.)'" \
       '*:file:->files' && ret=0
 fi
 
@@ -112,7 +112,7 @@ case $state in
   ;;
   files)
     if [[ $service = zip ]] && (( ! ${+opt_args[-d]} )); then
-      _wanted files expl zfile _files -g '^(#i)*.(zip|[ejw]ar)' && return
+      _wanted files expl zfile _files -g '^(#i)*.(zip|[ejw]ar)(-.)' && return
     else
       zipfile=( $~line[1](|.zip|.ZIP) )
       [[ -z $zipfile[1] ]] && return 1