;ELC   
;;; Compiled by rms@psilocin.gnu.org on Sun Apr  5 14:56:52 1998
;;; from file /gd/gnu/emacs/lisp/webjump.el
;;; in Emacs version 20.2.9.4
;;; with bytecomp version 2.38
;;; with all optimizations.
;;; This file uses opcodes which do not exist in Emacs 18.

(if (and (boundp 'emacs-version)
	 (< (aref emacs-version (1- (length emacs-version))) ?A)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`webjump.el' was compiled for Emacs 19.29 or later"))


(require 'browse-url)
#@113 Sample hotlist for WebJump.  See the documentation for the `webjump'
function and the `webjump-sites' variable.
(defvar webjump-sample-sites '(("GNU Project FTP Archive" . [mirrors "ftp://prep.ai.mit.edu/pub/gnu/" "ftp://ftp.cs.titech.ac.jp" "ftp://tron.um.u-tokyo.ac.jp/pub/GNU/prep" "ftp://cair-archive.kaist.ac.kr/pub/gnu" "ftp://ftp.nectec.or.th/pub/mirrors/gnu" "ftp://archie.au/gnu" "ftp://archie.oz/gnu" "ftp://archie.oz.au/gnu" "ftp://ftp.sun.ac.za/pub/gnu" "ftp://ftp.technion.ac.il/pub/unsupported/gnu" "ftp://irisa.irisa.fr/pub/gnu" "ftp://ftp.univ-lyon1.fr/pub/gnu" "ftp://ftp.mcc.ac.uk" "ftp://unix.hensa.ac.uk/mirrors/uunet/systems/gnu" "ftp://src.doc.ic.ac.uk/gnu" "ftp://ftp.ieunet.ie/pub/gnu" "ftp://ftp.eunet.ch" "ftp://nic.switch.ch/mirror/gnu" "ftp://ftp.informatik.rwth-aachen.de/pub/gnu" "ftp://ftp.informatik.tu-muenchen.de" "ftp://ftp.win.tue.nl/pub/gnu" "ftp://ftp.nl.net" "ftp://ftp.etsimo.uniovi.es/pub/gnu" "ftp://ftp.funet.fi/pub/gnu" "ftp://ftp.denet.dk" "ftp://ftp.stacken.kth.se" "ftp://isy.liu.se" "ftp://ftp.luth.se/pub/unix/gnu" "ftp://ftp.sunet.se/pub/gnu" "ftp://archive.eu.net" "ftp://ftp.inf.utfsm.cl/pub/gnu" "ftp://ftp.unicamp.br/pub/gnu" "ftp://ftp.cs.ubc.ca/mirror2/gnu" "ftp://wuarchive.wustl.edu/systems/gnu" "ftp://labrea.stanford.edu" "ftp://ftp.digex.net/pub/gnu" "ftp://ftp.kpc.com/pub/mirror/gnu" "ftp://f.ms.uky.edu/pub3/gnu" "ftp://jaguar.utah.edu/gnustuff" "ftp://ftp.hawaii.edu/mirrors/gnu" "ftp://uiarchive.cso.uiuc.edu/pub/gnu" "ftp://ftp.cs.columbia.edu/archives/gnu/prep" "ftp://gatekeeper.dec.com/pub/GNU" "ftp://ftp.uu.net/systems/gnu"]) ("GNU Project Home Page" . "www.gnu.ai.mit.edu") ("Emacs Lisp Archive" . "ftp://archive.cis.ohio-state.edu/pub/gnu/emacs/elisp-archive/") ("AltaVista" . [simple-query "www.altavista.digital.com" "www.altavista.digital.com/cgi-bin/query?pg=aq&what=web&fmt=.&q=" "&r=&d0=&d1="]) ("Archie" . [simple-query "hoohoo.ncsa.uiuc.edu/cgi-bin/AA.pl" "hoohoo.ncsa.uiuc.edu/cgi-bin/AA.pl?query=" ""]) ("Lycos" . [simple-query "www.lycos.com" "www.lycos.com/cgi-bin/pursuit?cat=lycos&query=" ""]) ("Yahoo" . [simple-query "www.yahoo.com" "search.yahoo.com/bin/search?p=" ""]) ("Interactive Weather Information Network" . webjump-to-iwin) ("Usenet FAQs" . [simple-query "www.cis.ohio-state.edu/hypertext/faq/usenet/FAQ-List.html" "www.cis.ohio-state.edu/htbin/search-usenet-faqs/form?find=" ""]) ("RTFM Usenet FAQs by Group" . "ftp://rtfm.mit.edu/pub/usenet-by-group/") ("RTFM Usenet FAQs by Hierachy" . "ftp://rtfm.mit.edu/pub/usenet-by-hierarchy/") ("X Consortium Archive" . "ftp.x.org") ("Yahoo: Reference" . "www.yahoo.com/Reference/") ("Association for Computing Machinery" . "www.acm.org") ("Computer Professionals for Social Responsibility" . "www.cpsr.org/dox/") ("Electronic Frontier Foundation" . "www.eff.org") ("IEEE Computer Society" . "www.computer.org") ("Risks Digest" . webjump-to-risks) ("Bastard Operator from Hell" . "www.replay.com/bofh/")) (#$ . 551))
(byte-code "\302\300!\204 \303\300	B\302\207" [webjump-state-to-postal-alist current-load-list boundp (("Alabama" . "al") ("Alaska" . "ak") ("Arizona" . "az") ("Arkansas" . "ar") ("California" . "ca") ("Colorado" . "co") ("Connecticut" . "ct") ("Delaware" . "de") ("Florida" . "fl") ("Georgia" . "ga") ("Hawaii" . "hi") ("Idaho" . "id") ("Illinois" . "il") ("Indiana" . "in") ("Iowa" . "ia") ("Kansas" . "ks") ("Kentucky" . "ky") ("Louisiana" . "la") ("Maine" . "me") ("Maryland" . "md") ("Massachusetts" . "ma") ("Michigan" . "mi") ("Minnesota" . "mn") ("Mississippi" . "ms") ("Missouri" . "mo") ("Montana" . "mt") ("Nebraska" . "ne") ("Nevada" . "nv") ("New Hampshire" . "nh") ("New Jersey" . "nj") ("New Mexico" . "nm") ("New York" . "ny") ("North Carolina" . "nc") ("North Dakota" . "nd") ("Ohio" . "oh") ("Oklahoma" . "ok") ("Oregon" . "or") ("Pennsylvania" . "pa") ("Rhode Island" . "ri") ("South Carolina" . "sc") ("South Dakota" . "sd") ("Tennessee" . "tn") ("Texas" . "tx") ("Utah" . "ut") ("Vermont" . "vt") ("Virginia" . "va") ("Washington" . "wa") ("West Virginia" . "wv") ("Wisconsin" . "wi") ("Wyoming" . "wy"))] 2)
#@1645 *Hotlist for WebJump.

The hotlist is represented as an association list, with the CAR of each cell
being the name of the Web site, and the CDR being the definition for the URL of
that site.  The URL definition can be a string (the URL), a vector (specifying
a special "builtin" which returns a URL), a symbol (name of a function which
returns a URL), or a list (which when `eval'ed yields a URL).

If the URL definition is a vector, then a "builtin" is used.  A builtin has a
Lisp-like syntax, with the name as the first element of the vector, and any
arguments as the following elements.  The three current builtins are `name',
which returns the name of the site as the URL, `simple-query', which
returns a URL that is a function of a query entered by the user, and `mirrors',
which allows the user to select from among multiple mirror sites for the same
content.

The first argument to the `simple-query' builtin is a static URL to use if the
user enters a blank query.  The second and third arguments are the prefix and
suffix, respectively, to add to the encoded query the user enters.  This
builtin covers Web sites that have single-string searches with the query
embedded in the URL.

The arguments to the `mirrors' builtin are URLs of mirror sites.

If the symbol of a function is given, then the function will be called with the
Web site name (the one you specified in the CAR of the alist cell) as a
parameter.  This might come in handy for various kludges.

For convenience, if the `http://', `ftp://', or `file://' prefix is missing
from a URL, WebJump will make a guess at what you wanted and prepend it before
submitting the URL.
(defvar webjump-sites webjump-sample-sites (#$ . -4650))
(defalias 'webjump-to-iwin #[(name) "\304\305\306\307\310	\"#\n\203 \311\n\312\305\313\314\315$\316\260\202  *\207" [name webjump-state-to-postal-alist state prefix "http://iwin.nws.noaa.gov/" webjump-read-choice "state" append (("Puerto Rico" . "pr")) "iwin/" "/" "option" (("Hourly Report" . "hourly") ("State Forecast" . "state") ("Local Forecast" . "local") ("Zone Forecast" . "zone") ("Short-Term Forecast" . "shortterm") ("Weather Summary" . "summary") ("Public Information" . "public") ("Climatic Data" . "climate") ("Aviation Products" . "aviation") ("Hydro Products" . "hydro") ("Special Weather" . "special") ("Watches and Warnings" . "warnings")) "zone" ".html"] 9])
(defalias 'webjump-to-risks #[(name) "\303\211\304\n\305P!\211\203  \304\n\306P!\211\203  \307\310	#\202! \311*\207" [volume issue name nil webjump-read-number " volume" " issue" format "catless.ncl.ac.uk/Risks/%d.%02d.html" "catless.ncl.ac.uk/Risks/"] 4])
#@233 Jumps to a Web site from a programmable hotlist.

See the documentation for the `webjump-sites' variable for how to customize the
hotlist.

Please submit bug reports and other feedback to the author, Neil W. Van Dyke
<nwv@acm.org>.
(defalias 'webjump #[nil "\306\307\310\311	\312\306$	\"\211@\nA\313\f\204 \314\202Y \f;\203% \f\202Y \315\f!\2032 \316\f\"\202Y \f<\203= \317\f!\202Y \f9\203U \320\f!\203N \f!\202Y \321\322\f\"\202Y \321\323\"!!,\207" [completion-ignore-case webjump-sites item name expr browse-url-browser-function t assoc-ignore-case completing-read "WebJump to site: " nil webjump-url-fix "" vectorp webjump-builtin eval fboundp error "WebJump URL function \"%s\" undefined." "WebJump URL expression for \"%s\" invalid."] 7 (#$ . 7306) nil])
(defalias 'webjump-builtin #[(expr name) "G\303W\203\f \304\305	\"\210\306H\211\307=\203, G\303U\203! \304\310!\210\311	\312\313\"A\"\202V \n\301=\2036 	\202V \n\314=\203Q \315	\316#\210\317	\303H\320H\316H$\202V \304\321\n	#)\207" [expr name builtin 1 error "WebJump URL builtin for \"%s\" empty." 0 mirrors "WebJump URL builtin \"mirrors\" for \"%s\" needs at least 1 arg." webjump-choose-mirror append nil simple-query webjump-builtin-check-args 3 webjump-do-simple-query 2 "WebJump URL builtin \"%s\" for \"%s\" invalid."] 7])
(defalias 'webjump-builtin-check-args #[(expr name count) "G	TU\206 \303\304\305H\n	$\207" [expr count name error "WebJump URL builtin \"%s\" for \"%s\" needs %d args." 0] 5])
(defalias 'webjump-choose-mirror #[(name urls) "\302\303P	\304	!#\207" [name urls webjump-read-url-choice " mirror" webjump-mirror-default] 5])
(defalias 'webjump-do-simple-query #[(name noquery-url query-prefix query-suffix) "\305\306P!\211\203 \n\307	!Q\202 \f)\207" [name query query-prefix query-suffix noquery-url webjump-read-string " query" webjump-url-encode] 4])
(defalias 'webjump-mirror-default #[(urls) "@\207" [urls] 1])
(defalias 'webjump-read-choice #[(name what choices &optional default) "\306\307	\310\n\311R\312\306$\313\f!\203 \202 \314\f\"A*\207" [completion-ignore-case name what choices choice default t completing-read " " ": " nil webjump-null-or-blank-string-p assoc] 5])
(defalias 'webjump-read-number #[(prompt) "\302!\211\205 \303	!)\207" [prompt input webjump-read-string string-to-number] 3])
(defalias 'webjump-read-string #[(prompt) "\302\303P!\304	!?\205 	)\207" [prompt input read-string ": " webjump-null-or-blank-string-p] 3])
(defalias 'webjump-read-url-choice #[(what urls &optional default) "\305\306\"\307\n\310P	\311\312$\313!\203 \f\202 \314	\"@*\207" [urls completions what input default mapcar #[(n) "\211B\207" [n] 2] completing-read ": " nil t webjump-null-or-blank-string-p assoc] 5])
(defalias 'webjump-null-or-blank-string-p #[(str) "?\206	 \301\302\"\207" [str string-match "^[ 	]*$"] 3])
(defalias 'webjump-url-encode #[(str) "\301\302\303#\207" [str mapconcat #[(c) "\301U\203 \302\207\303Y\203 \304X\204, \305Y\203  \306X\204, \307Y\2030 \310X\2030 \311!\207\312\313\"\226\207" [c 32 "+" 97 122 65 90 48 57 char-to-string format "%%%02x"] 3] ""] 4])
(defalias 'webjump-url-fix #[(url) "\301!\203 \302\207\303\304\305\"\203 \202> \304\306\"\203! \307P\202> \304\310\"\203= \311\312\"\227\313\230\2036 \313\2027 \314\315Q\202> !\207" [url webjump-null-or-blank-string-p "" webjump-url-fix-trailing-slash string-match "^[a-zA-Z]+:" "^/" "file://" "^\\([^\\./]+\\)" match-string 1 "ftp" "http" "://"] 4])
(defalias 'webjump-url-fix-trailing-slash #[(url) "\301\302\"\203 \303P\207\207" [url string-match "^[a-zA-Z]+://[^/]+$" "/"] 3])
(provide 'webjump)
