about summary refs log tree commit diff
path: root/Completion
diff options
context:
space:
mode:
authorPaul Ackersviller <packersv@users.sourceforge.net>2007-04-12 03:07:53 +0000
committerPaul Ackersviller <packersv@users.sourceforge.net>2007-04-12 03:07:53 +0000
commitef49f45c7fde6f13945a12ae34086c717f1b308f (patch)
tree48aa33bee8e3ddca0999a85fe57ea1f1b9056e1f /Completion
parenta7589435512f24fce13ba09ffe204eee4b356e6e (diff)
downloadzsh-ef49f45c7fde6f13945a12ae34086c717f1b308f.tar.gz
zsh-ef49f45c7fde6f13945a12ae34086c717f1b308f.tar.xz
zsh-ef49f45c7fde6f13945a12ae34086c717f1b308f.zip
Merge from trunk of workers/{22052,22309,22425}.
Diffstat (limited to 'Completion')
-rw-r--r--Completion/Unix/Command/_surfraw432
1 files changed, 426 insertions, 6 deletions
diff --git a/Completion/Unix/Command/_surfraw b/Completion/Unix/Command/_surfraw
index 20c8349d0..89da0b8e5 100644
--- a/Completion/Unix/Command/_surfraw
+++ b/Completion/Unix/Command/_surfraw
@@ -1,15 +1,435 @@
 #compdef surfraw sr
 
-_arguments \
+local curcontext="$curcontext" expl state line args ret=1
+
+_arguments -C -A \
   '-browser=[set browser]:browser:_command_names' \
-  '-elvi[list Surfraw mechanisms for conquering evil]' \
+  '-elvi[list web sites that can be searched]' \
   '-escape-url-args=[apply url escaping to arguments]:bool:(yes no)' \
   '(-g -graphical)'{-g,-graphical}'[get some windowed sin]' \
-  '-p0rn=[yes, yes, harder, deeper, faster, oh baybe]:bool:(yes no)' \
-  '-help' \
+  '-help[display help information]' \
   '-quiet:bool:(yes no)' \
   '-new[start in a new window]' \
   '(-t -text)'{-t,-text}'[back to the yellow brick road]' \
   '(-q -quote)'{-q,-quote}'[quote arguments with quote characters]' \
-  '-version[display Surfraw version]' \
-  ':elvi: compadd ${${(f)"$(surfraw -elvi)"}%%[[:space:]]##--*}'
+  '-version[display version information]' \
+  ':elvi:->elvi' \
+  '*::arg:->subcmd' && ret=0
+
+case $state in
+  subcmd)
+    args=(
+      '-help[display help information]'
+      '*:string:_guard "^-*" "search string"'
+    )
+    case "$words[1]" in
+      ask|cia|cnn|deblogs|excite|filesearching|foldoc|happypenguin|slashdot|slinuxdoc|sundocs|sunsolve|xxx)
+        _message -e string 'search string'
+      ;;
+      alioth)
+        _arguments $args \
+          '-type=-:search type:(soft skill people)' && ret=0
+      ;;
+      altavista)
+        _arguments $args \
+        '-results=-:[number of results to return]' && ret=0
+      ;;
+      amazon)
+        _arguments $args \
+          '-country=-:country code:(uk de fr jp us)' \
+          '-search=-:topic:(all auctions books cars classical \
+            dvd electronics garden kitchen music \
+            outlet photo software toys tools \
+            vhs videogames zshops wireless)' && ret=0
+      ;;
+      austlii)
+        _arguments $args \
+          '-method=-:search method:(any all phrase title boolean)' \
+          '-results=-:[number of results to return]:number' && ret=0
+      ;;
+      bbcnews)
+        _arguments $args \
+          '-scope=-:search scope:(world uk)' && ret=0
+      ;;
+      cddb)
+        _arguments $args \
+          '-artists[search artists]' \
+          '-albums[search albulms]' \
+          '-songs[search songs]' \
+          '-all[search all artists, albums and songs]' && ret=0
+      ;;
+      cite)
+        _arguments \
+          '-results=-:[number of results to return]' \
+          '*:search string' && ret=0
+      ;;
+      ctan)
+	_arguments $args \
+	'-name[Search by filename]' \
+	'-desc[Search descriptions (default)]'\
+	'-doc[Search documentation]'
+      ;;
+      currency)
+        _arguments \
+          '-l[List all known currency symbols]' \
+          '-from=-:currency symbol:(EUR USD GBP CAD AUD JPY INR NZD CHF ZAR)' \
+          '-to=-:currency symbol:(EUR USD GBP CAD AUD JPY INR NZD CHF ZAR)' \
+          '*:currency amount' && ret=0
+      ;;
+      cve)
+        _message -e numbers 'CVE Number'
+      ;;
+      debbugs)
+        _arguments \
+          '-search=:search type:(pkg src bug maint tag submitter severity tag)' \
+          '-arc[show archived bugs]' \
+          '-raw[do not sort by status or severity]' \
+          '-rb[reverse order of bugs shown]' \
+          '-rst[reverse order of statuses shown]' \
+          '-rse[reverse order of severities shown]' \
+          '-merge[sisplay merged bugs only once]' \
+          '-nohead[so not show table of contents header]' \
+          '-nofoot[so not show statistics in the footer]' \
+          '-mbox[view results in mbox format]' \
+          '-incstat=-[include given status list]:status:_values -s , status open
+              forwarded pending fixed done' \
+          '-exstat=-[exclude given status list]:status:_values -s , status open
+              forwarded pending fixed done' \
+          '-incsev=-[include given severities]:severity:_values -s , severity
+              critical grave serious important normal minor wishlist fixed' \
+          '-exsev=-[exclude given severities]:severity:_values -s , severity
+              critical grave serious important normal minor wishlist fixed' \
+          '-inctag=-[include given tags]:tag:_values -s , tag potato woody sarge
+              sarge-ignore sid experimental confirmed d-i fixed
+              fixed-in-experimental fixed-upstream help moreinfo patch pending
+              security unreproducible upstream wontfix' \
+          '-extag=-[exclude given tags]:tag:_values -s , tag potato woody sarge
+              sarge-ignore sid experimental confirmed d-i fixed
+              fixed-in-experimental fixed-upstream help moreinfo patch pending
+              security unreproducible upstream wontfix' \
+          '*:package:_deb_packages avail' && ret=0
+        ;;
+      debcontents)
+        _arguments \
+          '-arch=-[search specific architecture]:architecture:(i386 m68k alpha sparc powerpc arm)' \
+          '-distro=-[search specific distribution]:distribution:(stable testing unstable)' \
+          '*:package:_deb_packages avail' && ret=0
+      ;;
+      deblists)
+        _arguments $args \
+          '-shelp[go to search help page]' \
+          '-results=-[specifiy number of results to return]:number' \
+          '-dates=-[quarters to search]:date' \
+          '-case[use case sensitive search]' \
+          '-errors=-[specify errors allowed]:errors:(0 1 2 best)' \
+          '-partial[allow partial matches]' \
+          '-sameline[semi-colon separated words must appear on same line]' \
+          '-lines=-[specify maximum lines per message]:lines:(0 5 10 50 100)' \
+          '-list=-[specify list to search]:list:(68k accessibility admintool
+              alpha amd64 announce apache arm autobuild beowulf books boot bsd
+              cd cd-vendors cdwrite changes chinese chinese-big5 chinese-gb
+              commercial consultants ctte curiosa custom dak debbugs deity
+              desktop devel devel-announce devel-changes devel-french
+              devel-games devel-italian devel-m68k-changes devel-portuguese
+              devel-powerpc-changes devel-s390-changes devel-spanish
+              devel-sparc-changes doc dpkg edu emacsen embedded esperanto
+              events-eu events-na faq firewall french gcc glibc gtk-gnome hams
+              handheld hppa hurd i18n ia64 ipv6 isp italian japanese java jr kde
+              kernel l10n-arabic l10n-catalan l10n-czech l10n-danish l10n-dutch
+              l10n-english l10n-finnish l10n-french l10n-german l10n-greek
+              l10n-hungarian l10n-italian l10n-korean l10n-polish
+              l10n-portuguese l10n-romanian l10n-russian l10n-spanish
+              l10n-turkish laespiral laptop lcs-eng legal lex lint-maint lsb
+              lsb-confcall lsb-discuss lsb-impl lsb-spec lsb-test med mentors
+              mips mirrors multimedia newmaint newmaint-admin newmaint-discuss
+              news news-french news-german news-portuguese nonprofit ocaml-maint
+              openoffice parisc perl pilot policy pool powerpc project publicity
+              python qa qa-packages qa-private qt-kde release ruby russian s390
+              s390-changes security security-announce sgml simplified-chinese
+              snapshots sparc sparc-changes spi-announce spi-general ssh superh
+              testing tetex-maint toolchain ultralinux user user-catalan
+              user-danish user-de user-french user-german user-icelandic
+              user-indonesian user-polish user-portuguese user-spanish
+              user-swedish user-turkish user-ukrainian vgui-discuss vote win32
+              wnpp women www x)' && ret=0
+      ;;
+      debpackages)
+        _arguments \
+          '-release=-:Search release:(all main non-US contrib non-free)' \
+          '-distro=-:Search distribution:(all stable testing unstable)' \
+          '*:package:_deb_packages avail' && ret=0
+      ;;
+      debpts)
+        _arguments $args \
+          '-doc[view PTS documentation]' && ret=0
+      ;;
+      debsec)
+        _message -e string 'package name, bug number or CVE ID'
+      ;; 
+      deja)
+        _arguments $args \
+          '-results=-:[number of results to return]' \
+          '-m[search for Message-ID]' && ret=0
+      ;;
+      dmoz)
+        _arguments $args \
+          '-cat=-[specify category]:category:(All Arts Business Computers Games
+              Health Home Kids_and_Teens News Recreation Reference Regional
+              Science Shopping Society Sports World Adult)' \
+          '-type=-:type:((c\:categories\ only s\:sites\ only b\:both))' \
+          '-kids[sites for kids]' \
+          '-teens[sites for teens]' \
+          '-mteens[sites for mature teens]' && ret=0
+      ;;
+      ebay)
+        _arguments $args \
+          '-country=-:country:(com de uk fr)' \ 
+          '-results=-:[number of results to return]:number' && ret=0
+      ;;
+      etym)
+        _wanted dictword expl 'dictionary word' \
+           compadd $(look "${PREFIX}") && ret=0
+      ;;
+      fast)
+        _arguments $args \
+          '-type=-:search type:(all any phrase)' && ret=0
+      ;;
+      freebsd)
+        _arguments $args \
+          '-mail=-[search mailing lists]:enable:(yes no)' \
+          '-gg=-[search [Google Groups]:enable:(yes no)' \
+          '-pr=-[query problem reports]:enable:(yes no)' \
+          '-cvs=-[query cvsweb]:enable:(yes no)' \
+          '-mid=-[query mailing lists by Message-ID]:enable:(yes no)' \
+          '-ps=-[go to the port survey page]:enable:(yes no)' \
+          '-prs=-[go to the problem report survey page]:enable:(yes no)' \
+          '-elogs=-[go to the build error logs page]:enable:(yes no)' && ret=0
+      ;;
+      freedb)
+        _arguments $args \
+          '-artists[search artists]' \
+          '-albums[search albums]' \
+          '-songs[search songs]' \
+          '-rest[search the rest of the data]' \
+          '-all[search all fields]' \
+          '-bycat[sort results by category]' \
+          '*-cat=-:category:(all blues classical country data folk
+              jazz misc newage reggae rock soundtrack)' && ret=0
+      ;;
+      freshmeat)
+        _deb_packages avail && ret=0
+      ;;
+      fsfdir)
+	_arguments $args
+      ;;
+      google)
+        _arguments $args \
+          '(-l --lucky)'{-l,--lucky}'[feeling lucky?]' \
+          '-results=-:[number of results to return]:' \
+          '-search=-:topic:(bsd linux mac unclesam)' && ret=0
+      ;;
+      gutenberg)
+	_arguments $args \
+	  '-title[Search titles (default)]'
+	  '-author[Search authors]'
+	  '-num[Search etext numbers]'
+      ;;       
+      imdb)
+        _arguments $args \
+          '-category=-:category:(All Titles MyMovies People Characters Quotes Bios Plots)' && ret=0
+      ;;
+      ixquick)
+	_arguments $args \
+	  '-search=-:search type:(web pics)' \
+	  '-lang=-:language:(english dansk deutsch espanol francais italiano nederlands norsk polski portugues suomi svenska turkce jiantizhongwen nihongo fantizhengwen hangul)'
+      ;;
+      jake)
+        _arguments $args \
+          '-method=-:search type:(title issn)' \
+          '-volume=-:volume' \
+          '-issue=-:issue' \
+          '-spage=-:start page' \
+          '-epage=-:end page' \
+          '-year=-:year' && ret=0
+      ;;
+      leodict)
+        _arguments \
+          '-tol=:special character tolerance:(off standard high)' \
+          '-to=:language:(de en either)' \
+          '-lang=:Webpage is in this language:(en de)' \
+          '-link=:Link results:(on off)' \
+          '-head=:Display headlines:(on off)' \
+          '-grid=:Show results in grid:(on off)' \
+          '-spell=:Spelling tolerance:(off standard force)' \
+          '*:dictionary word:->dictword' && ret=0
+
+        [[ "$state" = dictword ]] && _wanted words expl 'dictionary word' \
+            compadd $(look "${PREFIX}") && ret=0
+      ;;
+      netbsd|openbsd)
+        _arguments $args \
+          '-mail=-[search mailinglists]:enable:(no yes)' \
+          '-pr=-[query problem reports]:enable:(no yes)' && ret=0
+      ;;
+      pgpkeys)
+        _arguments \
+          '-s[display key signatures]' \
+          '*:KeyID or email' && ret=0
+      ;;
+      pubmed)
+        _arguments $args \
+          '-db=-:[specify database]:database:(PubMed Nucleotide Protein Genome
+              Structure Popset)' && ret=0
+      ;;
+      rfc)
+        _arguments $args \
+          '-results=-:[specify number of results to return]:number' \
+          '-pdf[return files as PDFs]' \
+          '-rev[reverse order of results]' \
+          '-exact[match exact words (instead of prefixes)]' \
+          '-abs[show abstracts]' \
+          '-keywords[show keywords]' \
+          "-nodirect[don't try and go direct to RFC]" \
+          '-ftp[retrieve RFCs via FTP instead of HTTP]' \
+          '-field=-:search field:(all number title author keyword)' \
+          '-search=-:collection:(all rfc std bcp fyi)' && ret=0
+      ;;
+      scaleplus)
+        _arguments $args \
+          '-results=-:[number of results to return]' && ret=0
+      ;;
+      sourceforge)
+        _arguments \
+          '-exact=-[require all words}:enable:(yes no)' \
+          '-type=:search type:(soft people freshmeat)' \
+          '*:project:_deb_packages avail' && ret=0
+      ;;
+      stockquote)
+          _arguments $args \
+          '-provider=-[select quote provider]:provider:(yahoo nasdaq quote)' && ret=0
+      ;;
+      thesaurus|webster)
+        _wanted words expl 'word' compadd $(look "${PREFIX}") && ret=0
+      ;;
+      rae)
+        _wanted dictionary expl 'palabra diccionario' \
+            compadd $(look "${PREFIX}") && ret=0
+      ;;
+      translate)
+        _arguments \
+          '-from=-:language:(de en es fr it ja ko pt ru zh)' \
+          '-to=-:language:(de en es fr it ja ko pt ru zh)' \
+          '-provider=-[select translation service provider]:provider:(raging bablefish)' \
+          '*:dictionary word:->dictword' && ret=0
+
+        [[ "$state" = dictword ]] && _wanted words expl 'dictionary word' \
+            compadd $(look "${PREFIX}") && ret=0
+      ;;
+      rhyme)
+        _arguments \
+          '-method=-:type of word correlation:(perfect syn hom cons rel sub spell pic shake def)' \
+          '*:dictionary word:->dictword' && ret=0
+
+        [[ "$state" = dictword ]] && _wanted words expl 'dictionary word' \
+            compadd $(look "${PREFIX}") && ret=0
+      ;;
+      w3css)
+        _arguments \
+          '-warnings=-[specify level of warnings displayed]:warning level:(all normal important none)' \
+          '-profile=-:CSS profile:(none css1 css2 css3 svg svgbasic svgtiny mobile atsv-tv tv)' \
+          '-medium=-:user medium:(all aural braille embossed handheld print projection
+              screen tty tv presentation)' \
+          :URL:_urls && ret=0
+      ;;
+      w3html)
+        _arguments \
+          '-usage[go to validator help page]' \
+          '-encoding=-[set page encoding]' \
+          '-encfb[fall back to encoding rather than override]' \
+          '-doctype=-":[set page doctype]:' \
+          '-docfb[fall back to doctype rather than override]' \
+          '-nv[be less verbose]' \
+          '-showsource[show page source]' \
+          '-showoutline[show page outline (headings)]' \
+          '-showparsetree[show parse tree]' \
+          '-excludeatt[exclude attributes from parse tree]' \
+          '-err[validate Error (404) pages]' \
+          :URL:_urls && ret=0
+        ;;
+      w3link)
+        _arguments \
+          '-r[check linked documents recursively]' \
+          '-d=-[recursion depth]:depth' \
+          '-s[summary only]' \
+          '-hiderd[hide redirects]' \
+          '-dhiderd[hide redirects for directories only]' \
+          "-nolang[don't send the Accept-Language: header]" \
+          '-cookie[save options in a cookie]' \
+          :URL:_urls && ret=0
+      ;;
+      w3rdf)
+        _arguments \
+          '-output=-:output type:(Triples Graphs Both)' \
+          '-format=-:graph format:(PNG_EMBED PNG_LINK SVG_LINK SVG_EMBED
+              GIF_EMBED \ GIF_LINK PS_LINK HP_PCL_LINK HP_GL_LINK ISV_ZVTM)' \
+          '-savedot[save GraphViz DOT file]' \
+          '-ntriples[display triples in N-Triples format]' \
+          '-embedded[RDF is not enclosed in <RDF> tags]' \
+          '-useme[grant w3c permission to save the RDF for developing test cases]' \
+          '-anon[make anonymous nodes unlabelled]' \
+          '-fontsize=-:font Size:(10 12 14 16 20)' \
+          '-orient=-:orientation:(TB LR)' \
+          '-node=-:node Colour:(Black Blue Darkgreen Red)' \
+          '-nodetext=-[node text color]:color:(Black Blue Darkgreen Red)' \
+          '-arc=-[arc color]:color:(Black Blue Darkgreen Red)' \
+          '-arctext=-:[arc text color]:color:(Black Blue Darkgreen Red)' \
+          :URL:_urls && ret=0
+      ;;
+      wayback)
+	_arguments $args \
+	  '-syear=-[Start search from this year]:year' \
+	  '-smonth=-:[Start search from this month]:month:(jan feb mar apr may jun jul aug sep oct nov dec)' \
+	  '-sday=-[Start search from this day]:number' \
+	  '-eyear=-[End search in this year]:year' \
+	  '-emonth=-[End search in this month]:month:(jan feb mar apr may jun jul aug sep oct nov dec)' \
+	  '-eday=-[End search in this day]:number' \
+	  '-list[List all pages that match search criteria]' \
+	  '-dups[Show dups]' \
+	  '-compare[Compare pages]' \
+	  '-pdf[Show as PDF]' \
+	  '-alias=-[How to handle site aliases]:alias:(merge show hide)' \
+	  '-redir=-[How to handle redirections]:redir:(hide flag show)' \
+	  '-type=-[File type to search for]:type:(image audio video binary text pdf)'
+      ;;
+      wetandwild)
+        _arguments \
+          '-city=-[town or City or (US only) zipcode]:' \
+          '-country=-[two letter domain-style country code]:' \
+          '-state=-[specify state, province or region]:state' && ret=0
+      ;;
+      wikipedia)
+        _arguments $args \
+          '-language=-:[two letter language code]:' && ret=0
+        ;;
+      woffle)
+        _arguments $args \
+          '-method=-:search method:(and or bool)' \
+          '-format=-:result format:(short long)' \
+          '-sort=-:sort method:(score revscore time revtime title revtitle)' && ret=0
+      ;;
+      yahoo)
+          _arguments $args \
+          '-results=-[specify number of results to return]:number' && ret=0
+      ;;
+      yubnub)
+        _message -e command 'Yubnub Command'
+      ;;
+    esac
+  ;;
+  elvi)
+    _wanted elvi expl elvi compadd \
+      ${${${(f)"$(_call_program elvi surfraw -elvi)"}%%[[:space:]]##--*}%:*} && ret=0
+  ;;
+esac  
+
+return ret