#compdef ispell buildhash munchlist findaffix tryaffix icombine ijoin case "$service" in ispell) _arguments -s \ '(-n -h)-t[input file is in TeX/LaTeX format]' \ '(-t -h)-n[input file is in nroff/troff format]' \ '(-n -t)-h[input file is in HTML format]' \ '(-x)-b[create backup file]' \ '(-b)-x[don'"'"'t create backup file]' \ '(-C)-B[report run-together words as errors]' \ '(-B)-C[take run-together words as compounds]' \ '-P[don'"'"'t generate extra root/affix combinations]' \ '-m[make possible root/affix combinations]' \ '-S[sort guesses by probable correctness]' \ '-d[specify alternate dictionary file]:dictionary file:_files' \ '-p[specify alternate personal dictionary file]:personal dictionary file:_files' \ '-w[specify additional word characters]:word characters:' \ '-W[specify length of legal words]:length of legal words:' \ '-T[specify formatter type]:formatter type:(nroff mm ms me man NeXT tex bib)' \ '(-N)-M[show menu]' \ '(-M)-N[don'"'"'t show menu]' \ '-L-[specify number of context lines to show]:number of context lines:' \ '-V[show non-7-bit characters escaped]' \ '-l[produce list of misspelled words on stdout]' \ '-s[stop after each line of input (SIGTSTP)]' \ '-f[specify output file name]:output file:_files' \ '(-A)-a[single line input/output mode]' \ '(-a)-A[single line input/output mode (with include-files)]' \ '(-e)-c[produce list of possible root words and affixes]' \ '(-c)-e-[expand affix flags]::expansion level:((1\:normal 2\:append\ prepend\ original\ root/affix\ combination 3\:output\ multiple\ lines 4\:append\ root\ length\ ratios))' \ '-D[dump affix tables]' \ '*-v[show version]' \ ':file to spell-check:_files' ;; buildhash) _arguments \ '(-c)-s[silent operation]' \ '(: -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' ;; munchlist) _arguments -s \ '-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' \ '-D[debug mode]' \ '-v[verbose mode]' \ '-w[specify additional word characters]:word characters:' \ '*:dictionary file:_files' ;; findaffix) _arguments -s \ '(-s)-p[search possible prefixes]' \ '(-p)-s[search possible suffixes]' \ '-f[sort affixes by frequency]' \ '-c[clean output]' \ '-m[specify minimum affix length]:minimum affix length:' \ '-M[specify maximum affix length]:maximum affix length:' \ '-e[specify header/trailer length of suppressed affixes]:header/trailer length of suppressed affixes:' \ '-t[specify field separator character]:field separator character:' \ '-l[specify minimum occurrence count]:minimum occurrence count:' \ '*:dictionary file:_files' ;; tryaffix) _arguments -s \ '(-s)-p[estimate effectiveness of prefix]' \ '(-p)-s[estimate effectiveness of suffix]' \ '-c[write only summary of the results]' \ ':expanded dictionary file:_files:' \ '*:affix and optional addition:' ;; icombine) _arguments \ '-T[specify string character type]:string character type:' \ ':affix file:_files -g \*.\(\#i\)aff' ;; ijoin) _arguments -s \ '(-u)-s[use signed comparison]' \ '(-s)-u[use unsigned comparison]' \ '-a[print lines for unpairable lines and normal output]:file number:(1 2)' \ '-v[print lines for unpairable lines instead of normal output]:file number:(1 2)' \ '-e[specify replacement string]:replacement string:' \ '-o[specify output field list]:output field list:' \ '-t[specify field separator character]:field separator character:' \ '(-1 -2)-j-[specify join file and field]:file number:(1 2):field number:' \ '(-j)-1[specify join field]:field number:' \ '(-j)-2[specify join field]:field number:' \ ':first input file:_files' \ ':second input file:_files' ;; esac