mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-10-25 17:20:25 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			435 lines
		
	
	
	
		
			18 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			435 lines
		
	
	
	
		
			18 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| #compdef surfraw sr
 | |
| 
 | |
| local curcontext="$curcontext" expl state line args ret=1
 | |
| 
 | |
| _arguments -C -A \
 | |
|   '-browser=[set browser]:browser:_command_names' \
 | |
|   '-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]' \
 | |
|   '-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 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
 |