summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Completion/Unix/Command/_surfraw478
2 files changed, 480 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index ef55dcf8a..f3f1e29e3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2005-12-05  Clint Adams  <clint@zsh.org>
+
+	* Micah Anderson: 22052: Completion/Unix/Command/_surfraw:
+	improvements to surfraw completion.
+
 2005-12-05  Oliver Kiddle  <opk@zsh.org>
 
 	* 22050: configure.ac, Completion/Unix/Command/_mount,
diff --git a/Completion/Unix/Command/_surfraw b/Completion/Unix/Command/_surfraw
index 20c8349d0..b9b3e4bc3 100644
--- a/Completion/Unix/Command/_surfraw
+++ b/Completion/Unix/Command/_surfraw
@@ -1,15 +1,487 @@
 #compdef surfraw sr
 
-_arguments \
+local expl
+
+_arguments -A \
   '-browser=[set browser]:browser:_command_names' \
   '-elvi[list Surfraw mechanisms for conquering evil]' \
   '-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' \
   '-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:]]##--*}'
+  ':elvi: compadd ${${(f)"$(surfraw -elvi)"}%%[[:space:]]##--*}' \
+  '*::arg:->subcmd' && return 0
+
+case "$state" in
+	(subcmd)
+	case "$line[1]" in
+		(alioth)
+		  _arguments \
+			'-type=-:Search type:(soft skill people)' \
+		  '*:Search String:->string'
+		;;
+		(altavista)
+		  _arguments \
+			'-results=-:[Number of results to return]:' \
+		  '*:Search String:->string'
+		;;
+		(amazon)
+		  _arguments \
+			'-country=-:Two letter domain-style country code:(uk de fr jp us)' \
+			'-search=-:Specialized search on topic:(all auctions books cars classical \
+								dvd electronics garden kitchen music \
+								outlet photo software toys tools \
+							       	vhs videogames zshops wireless)' \
+		  '*:Search String:->string'
+		;;
+		(ask)
+		  _message 'Search String' \
+		  '*:Search String:->string'
+		;;
+		(austlii)
+		  _arguments \
+			'-method=-:Search method:(any all phrase title boolean)' \
+  			'-results=-:[Number of results to return]:' \
+		  '*:Search String:->string'
+		;;
+		(bbcnews)
+		  _arguments \
+			'scope=-:Search scope:(world uk)' \
+		  '*:Search String:->string'
+		;;
+		(cddb)
+		  _arguments \
+			'-artists[Search artists]' \
+			'-albulms[Search albulms]' \
+			'-songs[Search songs]' \
+			'-all[Search all artists, albulms and songs]' \
+		  '*:Search String:->string'
+		;;
+		(cia)
+		  _message 'Search String' \
+		  '*:Search String:->string'
+		;;
+		(cite)
+		  _arguments \
+			'-results=-:[Number of results to return]:' \
+		  '*:Search String:->string'
+		;;
+		(cnn)
+		  _message 'Search String' \
+		  '*:Search String:->string'
+		;;
+		(currency)
+	 	  _arguments \
+			'-l[List all known currency symbols]' \
+			'-from=-:Symbol for currency to convert from:(EUR USD GBP CAD AUD JPY INR NZD CHF ZAR)' \
+			'-to=-:Symbol for currency to convert to:(EUR USD GBP CAD AUD JPY INR NZD CHF ZAR)' \
+			'*:Currency Amount:->string'
+		;;
+		(cve)
+		  _message 'CVE Number' \
+		  '*:CVE Number:->string'
+		;;
+		(debbugs)
+		  _arguments \
+			'-search=:Search Type:(pkg src bug maint tag submitter)' \
+			'-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[Display merged bugs only once]' \
+	  		'-nohead[Do not show table of contents header]' \
+  			'-nofoot[Do not show statistics in the footer]' \
+          		'-mbox[View results in mbox format]' \
+			'-incstat=:Include statuses:_values -s , open forwarded pending fixed done' \
+  			'-exstat=-:Exclude statuses:_values -s , open forwarded pending fixed done' \
+	  		'-incsev=-:Include severities:_values -s , critical grave serious important \
+								   normal minor wishlist fixed' \
+ 			'-exsev=-:Exclude severities:_values -s , critical grave serious important \
+								  normal minor wishlist fixed' \
+  			'-inctag=-:Include tags:_values -s , 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 tags:_values -s , potato woody sarge sarge-ignore sid \
+							    experimental confirmed d-i fixed \
+        	                         		    fixed-in-experimental fixed-upstream \
+							    help moreinfo patch pending security \ 
+							    unreproducible upstream wontfix' 
+			_deb_packages avail
+		;;
+		(debcontents)
+		  _arguments \
+			'-arch=-:Seach specific architecture:(i386 m68k alpha sparc powerpc arm)' \
+			'-distro=-:Search specific distribution:(stable testing unstable)'
+			_deb_packages avail
+		;;
+		(deblists)
+		  _arguments \
+			'-shelp[Go to search help page]' \
+			'-results=-[Number of results to return]' \
+			'-dates=-[Quarters to search]' \
+			'-case=-:Case sensitivity:(no yes)' \
+			'-errors=-:Allowed errors:(0 1 2 best)' \
+			'-partial:Partial matches:(no yes)' \
+			'-sameline:Semicolon separated words must appear on same line:(no yes)' \
+			'-lines=-:Maximum lines per message:(0 5 10 50 100)' \
+			'-list=-: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)'
+		  '*:Search String:->string'
+		;;
+		(deblogs)
+		  _message 'Search String' \
+		  '*:Search String:->string'
+		;;
+		(debpackages)
+		  _arguments \
+			'-release=-:Search release:(all main non-US contrib non-free)' \
+  			'-distro=-:Search distribution:(all stable testing unstable)' 
+		  _deb_packages avail
+		;;
+		(debpts)
+		  _arguments \
+			'-doc[Display documentation]'
+		;;
+		(deja)
+		  _arguments \
+			'-results=-:[Number of results to return]:' \
+			'-m[Search for Message-ID]' \
+		  '*:Search String:->string'
+		;;
+		(dmoz)
+		  _arguments \
+			'-cat=-:Search category:(All Arts Business Computers Games Health Home \
+						Kids_and_Teens News Recreation Reference Regional \
+						Science Shopping Society Sports World Adult)' \
+		  	'-type=-:Search type:(c s b)' \
+  			'-kids[Sites for kids]' \
+  			'-teens[Sites for teens]' \
+  			'-mteens[Sites for mature teens]' \
+		  '*:Search String:->string'
+		;;
+		(ebay)
+		  _arguments \
+			'-country=-:Country:(com de uk fr)' \	
+			'-results=-:[Number of results to return]:' \ 
+		  '*:Search String:->string'
+		;;
+		(etym)
+		  _wanted dictword expl 'dictionary word' \
+		    	compadd $(look "${PREFIX}")
+		;;
+		(excite)
+		  _message 'Search String' \
+		  '*:Search String:->string'
+		;;
+		(fast)
+		  _arguments \
+			'-type=-:Search type:(all any phrase)' \
+		  '*:Search String:->string'
+		;;
+		(filesearching)
+		  _message 'Search String' \
+		  '*:Search String:->string'
+		;;
+		(foldoc)
+		  _message 'Search String' \
+		  '*:Search String:->string'
+		;;
+		(freebsd)
+		  _arguments \
+		  	'-mail=-:Search mailinglists:(yes no)' \
+			'-gg=-:Search mailinglists at Google Groups:(yes no)' \
+			'-pr=-:Query problem reports:(yes no)' \
+  			'-cvs=-:Query cvsweb:(yes no)' \
+ 			'-mid=-:Query mailing lists by Message-ID:(yes no)' \
+			'-ps=-:Teleport to the Port Survey Page:(yes no)' \
+  			'-prs=-:Teleport to the Problem Report Survey Page:(yes no)' \
+  			'-elogs=-:Teleport to the Build Error Logs Page:(yes no)' \
+		  '*:Search String:->string'
+		;;
+		(freedb)
+		  _arguments \
+			'-artists[Search artists]' \
+			'-albulms[Search albulms]' \
+			'-songs[Search songs]' \
+			'-rest[Search the rest of the data]' \
+			'-all[Search all fields]' \
+			'-bycat[Sort results by category]' \
+			'*-cat=-:Category to search:(all blues classical country data folk \
+							jazz misc newage reggae rock soundtrack)' \
+		  '*:Search String:->string'
+		;;
+		(freshmeat)
+		  _deb_packages avail
+		;;
+		(google)
+		  _arguments \
+			'(-l --lucky)'{-l,--lucky}'[Feeling lucky?]' \
+			'-results=-:[Number of results to return]:' \
+			'-search=-:Search on topic:(bsd linux mac unclesam)' \
+		  '*:Search String:->string'
+		;;			 
+		(happypenguin)
+		  _message 'Search String' \
+		  '*:Search String:->string'
+		;;
+		(imdb)
+		  _arguments \
+  			'-category=-:Category:(All Titles MyMovies People Characters Quotes Bios Plots)' \
+		  '*:Search String:->string'
+		;;
+		(jake)
+		  _arguments \
+			'-method=-:Search type:(title issn)' \
+ 			'-volume=-:[Volume]:' \
+ 			'-issue=-:[Issue]:' \
+			'-spage=-:[Start page]:' \
+ 			'-epage=-:[End page]:' \
+ 			'-year=-:[Year]:' \
+		  '*:Search String:->string'
+		;;
+		(leodict)
+		  _arguments \
+			'-tol=:Special character tolerance:(off standard high)' \
+                  	'-to=: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' && return 0
+
+		  case "$state" in
+			(dictword)
+		  		_wanted dictword expl 'dictionary word' \
+		  			compadd $(look "${PREFIX}")
+			;;
+		  esac
+		;;
+		(netbsd)
+		  _arguments \
+			'-mail=-:Search netbsd mailinglists:(no yes)' \
+			'-pr=-:Query problem reports:(no yes)' \
+		  '*:Search String:->string'
+		;;
+		(openbsd)
+		  _arguments \
+			'-mail=-:Search netbsd mailinglists:(no yes)' \
+			'-pr=-:Query problem reports:(no yes)' \
+		  '*:Search String:->string'
+		;;
+		(pgpkeys)
+		  _arguments \
+			'-s[Display key signatures]' \
+		  '*:KeyID or Email:->string'
+		;;
+		(pubmed)
+		  _arguments \
+			'-db=-:Search Database:(PubMed Nucleotide Protein Genome Structure Popset)' \
+		  '*:Search String:->string'
+		;;
+		(rfc)
+		  _arguments \
+                        '-results=-:[Number of results to return]:' \
+  			'-pdf[Return files as PDFs]' \
+  			'-rev[Reverse order of results]' \
+  			'-exact[Match exact words (instead of prefixes)]' \
+  			'-abs[Show abstracts]' \
+  			'-keywords[Show keywords]' \
+  			'-nodirect[Do not try and go direct to RFC]' \
+  			'-ftp[Retrieve RFCs via FTP instead of HTTP]' \
+  			'-field=-:Search fields:(all number title author keyword)' \
+  			'-search=-:Collection to search(all rfc std bcp fyi)' \
+		  '*:Search String:->string'
+		;;
+		(scaleplus)
+		  _arguments \
+                        '-results=-:[Number of results to return]:' \
+		  '*:Search String:->string'
+		;;
+		(slashdot)
+	 	  _message 'Search String' \
+		  '*:Search String:->string'
+		;;
+		(slinuxdoc)
+		  _message 'Search String' \
+		  '*:Search String:->string'
+		;;
+		(sourceforge)
+		  _arguments \
+			'-exact=-:Require all words:(yes no)' \
+			'-type=:Type of search:(soft people freshmeat)'
+		  _deb_packages avail
+		;;
+		(stockquote)
+		  _arguments \
+			'-provider=-:Quote provider(yahoo nasdaq quote)' \
+		  '*:Search String:->string'
+		;;
+		(sundocs)
+	 	  _message 'Search String' \
+		  '*:Search String:->string'
+		;;
+		(sunsolve)
+	 	  _message 'Search String' \
+		  '*:Search String:->string'
+		;;
+		(thesaurus)
+		  _wanted dictword expl 'thesaurus word' \
+		    	compadd $(look "${PREFIX}")
+		;;
+		(webster)
+		  _wanted dictword expl 'dictionary word' \
+		    	compadd $(look "${PREFIX}")
+		;;
+		(rae)
+		  _wanted dictionary expl 'palabra diccionario' \
+		    	compadd $(look "${PREFIX}")
+		;;
+		(translate)
+		  _arguments \
+                  	'-from=-:From language:(de en es fr it ja ko pt ru zh)' \
+                  	'-to=-:To language:(de en es fr it ja ko pt ru zh)' \
+                  	'-provider=-:Translation service provider:(raging bablefish)' \
+                  	'*:dictionary word:->dictword' && return 0
+
+		  case "$state" in
+			(dictword)
+				_wanted dictword expl 'dictionary word' \
+			    		compadd $(look "${PREFIX}")
+		  	;;
+		  esac	
+		;;
+		(rhyme)
+		  _arguments \
+			'-method=-:Type of word correlation:(perfect syn hom cons rel sub spell pic shake def)' \
+		  '*:dictionary word:->dictword' && return 0
+
+		  case "$state" in
+			(dictword)
+				_wanted dictword expl 'dictionary word' \
+					compadd $(look "${PREFIX}")
+			;;
+		  esac
+		;;
+		(w3css)
+		  _arguments \
+			'-warnings=-:Level of warnings displayed:(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
+		;;
+		(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
+		;;
+		(w3link)
+		  _arguments \
+			'-r[Check linked documents recursively]' \
+	 	 	'-d=-:[Recursion depth]:' \
+		  	'-s[Summary only]' \
+			'-hiderd[Hide redirects]' \
+  			'-dhiderd[Hide redirects for directories only]' \
+  			'-nolang[Dont send the Accept-Language: header]' \
+  			'-cookie[Save options in a cookie]' \
+		  :URL:_urls
+		;;
+		(w3rdf)
+		  _arguments \
+  			'-output=-:Type of output displayed:(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[I 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 Colour:(Black Blue Darkgreen Red)' \
+  			'-arc=-:Arc Colour:(Black Blue Darkgreen Red)' \
+  			'-arctext=-:Arc Text Colour:(Black Blue Darkgreen Red)' \
+		  :URL:_urls
+		;;
+		(wetandwild)
+		  _arguments \
+			'-city=-:[Town or City or (US only) zipcode]:' \
+			'-country=-:[Two letter domain-style country code]:' \
+			'-provider=-yahoo[Weather provision service (Yahoo only right now)]' \
+			'-state=-:[State, province or region]:'
+		;;
+		(wikipedia)
+		  _arguments \
+			'-language=-:[Two letter language code]:' \
+		  '*:Search String:->string'
+		;;
+		(woffle)
+		  _arguments \
+			'-method=-:Search method:(and or bool)' \
+  			'-format=-:Result format:(short long)' \
+  			'-sort=-:Sort method:(score revscore time revtime title revtitle)' \
+		  '*:Search String:->string'
+		;;
+		(xxx)
+  		  _message 'Search String' \
+		  '*:Search String:->string'		
+		;;
+		(yahoo)
+		  _arguments \
+			'-results=-:[Number of results to return]:' \
+		  '*:Search String:->string'
+		;;
+		(yubnub)
+  		  _message 'Yubnub Command' \
+		  '*:Yubnub Command:->string'
+		;;
+	esac
+	;;
+esac
\ No newline at end of file