;ELC   
;;; compiled by roland@charlie-brown.gnu.ai.mit.edu on Mon Mar 25 03:10:47 1996
;;; from file /gd/gnu/emacs/19.0/lisp/ffap.el
;;; emacs version 19.30.94.1.
;;; bytecomp version FSF 2.10
;;; optimization is on.
;;; this file uses opcodes which do not exist in Emacs 18.

(if (and (boundp 'emacs-version)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`ffap.el' was compiled for Emacs 19.29 or later"))


(provide (quote ffap))
#@49 Whether ffap thinks it is running under XEmacs.
(defvar ffap-xemacs (byte-code "\n\" Ç" [string-match "X[Ee]macs" emacs-version t] 3) (#$ . 502))
#@108 Return value of symbol with NAME, if it is interned.
Otherwise return nil (or the optional DEFAULT value).
(defalias 'ffap-soft-value #[(name &optional default) "	! \n! \nJ \f)" [intern-soft name sym boundp default] 3 (#$ . 660)])
#@122 *Treat paths matching this as remote ftp paths.  Nil to disable.
Nil also disables the generation of such paths by ffap.
(defvar ffap-ftp-regexp (byte-code "!  !  !! \f\"  \f\"! ȇ" [featurep ange-ftp efs boundp file-name-handler-alist rassq ange-ftp-hook-function efs-file-handler-function "\\`/[^/:]+:"] 3) (#$ . -909))
#@66 *If non-nil, convert "file:" url to local path before prompting.
(defvar ffap-url-unwrap-local t (#$ . -1252))
#@111 *If non-nil, convert "ftp:" url to remote path before prompting.
This is ignored if `ffap-ftp-regexp' is nil.
(defvar ffap-url-unwrap-remote t (#$ . -1370))
#@121 *User name in ftp paths generated by `ffap-host-to-path'.
Nil to rely on `efs-default-user' or `ange-ftp-default-user'.
(defvar ffap-ftp-default-user (byte-code "! !? " [ffap-soft-value "ange-ftp-default-user" "anonymous" "efs-default-user"] 2) (#$ . -1534))
#@57 *Matching paths are treated as remote.  Nil to disable.
(defvar ffap-rfs-regexp "\\`/\\(afs\\|net\\)/." (#$ . -1813))
#@62 Regexp matching url's.  Nil to disable url features in ffap.
(defvar ffap-url-regexp (concat "\\`\\(" "news\\(post\\)?:\\|mailto:\\|file:" "\\|" "\\(ftp\\|http\\|telnet\\|gopher\\|www\\|wais\\)://" "\\).") (#$ . 1937))
#@105 *Presumed url prefix type of strings like "<foo.9z@bar>".
Sensible values are nil, "news", or "mailto".
(defvar ffap-foo-at-bar-prefix "mailto" (#$ . -2163))
#@172 *A regexp matching filename wildcard characters, or nil.
If `find-file-at-point' gets a filename matching this pattern,
it passes it on to `dired' instead of `find-file'.
(defvar ffap-dired-wildcards nil (#$ . -2328))
#@65 *Whether `find-file-at-point' prompts about a nonexistent file.
(defvar ffap-newfile-prompt nil (#$ . -2552))
#@156 *If set, reverses the prefix argument to `find-file-at-point'.
This is nil so neophytes notice ffap.  Experts may prefer to disable
ffap most of the time.
(defvar ffap-require-prefix nil (#$ . -2669))
#@61 *The command called by `find-file-at-point' to find a file.
(defvar ffap-file-finder (quote find-file) (#$ . -2876))
(put (quote ffap-file-finder) (quote risky-local-variable) t)
#@166 *A function of one argument, called by ffap to fetch an URL.
Reasonable choices are `w3-fetch' or `browse-url-netscape'.
For a fancier alternative, get ffap-url.el.
(defvar ffap-url-fetcher (byte-code "! ! " [fboundp w3-fetch browse-url-netscape] 2) (#$ . -3062))
(put (quote ffap-url-fetcher) (quote risky-local-variable) t)
#@57 *Regular expression governing movements of `ffap-next'.
(defvar ffap-next-regexp "[/:.~a-zA-Z]/\\|@[a-zA-Z][-a-zA-Z0-9]*\\." (#$ . -3408))
#@43 Last value returned by `ffap-next-guess'.
(defvar ffap-next-guess nil (#$ . 3553))
#@260 Move point to next file or url, and return it as a string.
If nothing is found, leave point at limit and return nil.
Optional BACK argument makes search backwards.
Optional LIM argument limits the search.
Only considers strings that match `ffap-next-regexp'.
(defalias 'ffap-next-guess #[(&optional back lim) " 	\f e d`=, 	 Ă #  	4 ɂ5 8b\f)" [lim back nil guess re-search-backward re-search-forward ffap-next-regexp move ffap-guesser 0 1 ffap-string-at-point-region ffap-next-guess] 5 (#$ . 3643)])
#@322 Search buffer for next file or url, and run ffap.
Optional argument BACK says to search backwards.
Optional argument WRAP says to try wrapping around if necessary.
Interactively: use a single prefix to search backwards,
double prefix to wrap forward, triple to wrap backwards.
Actual search is done by `ffap-next-guess'.
(defalias 'ffap-next #[(&optional back wrap) "`	!\n  \f  	 d eb  	\"\n0 !\n!!? b\f= ˂> \"*" [ffap-next-guess back guess pt wrap sit-for 0 find-file-at-point ffap-prompter message "No %sfiles or URL's found." "" "more "] 3 (#$ . 4185) (byte-code "	!A" [prefix-numeric-value current-prefix-arg ((1) (4 t) (16 nil t) (64 t t))] 2)])
#@54 Like `ffap-next', but search with `ffap-url-regexp'.
(defalias 'ffap-next-url #[(&optional back wrap) "t\f ! \f\")" [ffap-url-regexp ffap-next-regexp call-interactively ffap-next back wrap] 3 (#$ . 4874) nil])
#@62 In remote FULLNAME, replace path with NAME.  May return nil.
(defalias 'ffap-replace-path-component #[(fullname name) "\"	 	M 	\")" [nil found mapcar #[(sym) "	!	 	" [fboundp sym found] 2] (efs-replace-path-component ange-ftp-replace-path-component ange-ftp-replace-name-component) ffap-replace-path-component fullname name] 3 (#$ . 5100)])
#@54 Return FILE (maybe modified) if it exists, else nil.
(defalias 'ffap-file-exists-string #[(file) " ! \n; \n )" [file file-exists-p exists] 3 (#$ . 5468)])
#@105 *A symbol, one of: ping, accept, reject.
What `ffap-machine-p' does with hostnames that have no domain.
(defvar ffap-machine-p-local (quote reject) (#$ . -5645))
#@151 *A symbol, one of: ping, accept, reject.
What `ffap-machine-p' does with hostnames that have a known domain
(see mail-extr.el for the known domains).
(defvar ffap-machine-p-known (quote ping) (#$ . -5814))
#@154 *A symbol, one of: ping, accept, reject.
What `ffap-machine-p' does with hostnames that have an unknown domain
(see mail-extr.el for the known domains).
(defvar ffap-machine-p-unknown (quote reject) (#$ . -6027))
(defalias 'ffap-what-domain #[(domain) "!! \"B	\"N" [require mail-extr boundp mail-extr-all-top-level-domains ffap-soft-value "all-top-level-domains" obarray current-load-list intern-soft domain domain-name] 3])
#@615 Decide whether HOST is the name of a real, reachable machine.
Depending on the domain (none, known, or unknown), follow the strategy
named by the variable `ffap-machine-p-local', `ffap-machine-p-known',
or `ffap-machine-p-unknown'.  Pinging uses `open-network-stream'.
Optional SERVICE specifies the port used (default "discard").
Optional QUIET flag suppresses the "Pinging..." message.
Optional STRATEGY overrides the three variables above.
Returned values:
 t      means that HOST answered.
'accept means the relevant variable told us to accept.
"mesg"  means HOST exists, but does not respond for some reason.
(defalias 'ffap-machine-p #[(host &optional service quiet strategy) "\n\"\f \n\"?? \n\" \nŔTO+ !, \nK = \fI \nG I =V ς =a Ƃ { \n;v \n\n#{ \n\"׏*" [string-match "[^-a-zA-Z0-9.]" host "[^0-9]" "\\.[^.]*$" 0 nil domain ffap-what-domain "Local" what-domain strategy ffap-machine-p-local ffap-machine-p-unknown ffap-machine-p-known accept reject quiet message "Pinging %s (%s)..." "Pinging %s ..." error (byte-code "\f\n $!Ǉ" [delete-process open-network-stream "ffap-machine-p" nil host service "discard" t] 6) ((error (byte-code "A@	\" Ă5 	\" 	5 	ƚ/ 8Ț?5 85 @A\")" [error mesg string-match "^Unknown host" nil "not responding$" "connection failed" 2 "permission denied" signal] 3)))] 5 (#$ . 6482)])
#@64 If FILENAME looks remote, return it (maybe slightly improved).
(defalias 'ffap-file-remote-p #[(filename) "% \n\"% \n\"! \nĉTO\nĕOP\" \n3 3 \n\"3 \n" [ffap-ftp-regexp string-match filename "//" 0 nil ffap-rfs-regexp] 4 (#$ . 7903)])
#@52 Return machine name at point if it exists, or nil.
(defalias 'ffap-machine-at-point #[nil "!\n! \n)" [ffap-string-at-point machine mach ffap-machine-p] 2 (#$ . 8164)])
#@114 Convert HOST to something like "/anonymous@HOST:".
Looks at `ffap-ftp-default-user', returns "" for "localhost".
(defalias 'ffap-host-to-path #[(host) " \f ư" [host "localhost" "" "/" ffap-ftp-default-user "@" ":"] 5 (#$ . 8346)])
(put (quote ffap-host-to-path) (quote byte-optimizer) (quote byte-compile-inline-expand))
(defalias 'ffap-fixup-machine #[(mach) "	 	; 	\" 	Q	\"# 	Q	C 	\n˚5 ̂B = \nϰ)" [ffap-url-regexp mach nil string-match "\\`gopher[-.]" "gopher://" "/" "\\`w\\(ww\\|eb\\)[-.]" "http://" ffap-ftp-regexp host "localhost" "" ffap-ftp-default-user "@" ":"] 6])
#@60 Return STRING if it looks like a newsgroup name, else nil.
(defalias 'ffap-newsgroup-p #[(string) "	\n\"X \fŉ		* 	@	A	ˏ U U \n\"T \nϕOT T \n)," [string-match ffap-newsgroup-regexp string (gnus-active-hashtb gnus-newsrc-hashtb gnus-killed-hashtb) ffap-newsgroup-heads nil ret htb heads htbs (byte-code "	\nJ\"\f 	ć" [intern-soft string htb ret nil htbs heads] 3) ((error)) "\\`\\([a-z]+\\)\\." head 0 1] 5 (#$ . 8979)])
#@52 Strings not matching this fail `ffap-newsgroup-p'.
(defvar ffap-newsgroup-regexp "^[a-z]+\\.[-+a-z_0-9.]+$" (#$ . 9466))
#@52 Used by `ffap-newsgroup-p' if gnus is not running.
(defvar ffap-newsgroup-heads (quote ("alt" "comp" "gnu" "misc" "news" "sci" "soc" "talk")) (#$ . 9593))
#@68 If STRING looks like an url, return it (maybe improved), else nil.
(defalias 'ffap-url-p #[(string) "\n \n\f\" \f)" [t case-fold-search ffap-url-regexp string-match string] 3 (#$ . 9754)])
(put (quote ffap-url-p) (quote byte-optimizer) (quote byte-compile-inline-expand))
#@65 Return URL as a local file, or nil.  Ignores `ffap-url-regexp'.
(defalias 'ffap-url-unwrap-local #[(url) "\n\" \nÕTO" [string-match "\\`\\(file\\|ftp\\):/?\\([^/]\\|\\'\\)" url 1 nil] 3 (#$ . 10040)])
(put (quote ffap-url-unwrap-local) (quote byte-optimizer) (quote byte-compile-inline-expand))
#@66 Return URL as a remote file, or nil.  Ignores `ffap-url-regexp'.
(defalias 'ffap-url-unwrap-remote #[(url) "\n\", \nÔÕOŚ Ƃ$   \fʰ)\n˔˕OP" [string-match "\\`\\(ftp\\|file\\)://\\([^:/]+\\):?\\(/.*\\)" url 2 host "localhost" "" "/" ffap-ftp-default-user "@" ":" 3] 6 (#$ . 10348)])
(put (quote ffap-url-unwrap-remote) (quote byte-optimizer) (quote byte-compile-inline-expand))
#@51 Clean up URL and return it, maybe as a file name.
(defalias 'ffap-fixup-url #[(url) "; \n \" ŕTO)z \\ \\ \"X ɔɕO\n˚C ̂P K \nа)єѕOP)z !e !x GUx y )" [url nil ffap-url-unwrap-local string-match "\\`\\(file\\|ftp\\):/?\\([^/]\\|\\'\\)" 1 ffap-url-unwrap-remote ffap-ftp-regexp "\\`\\(ftp\\|file\\)://\\([^:/]+\\):?\\(/.*\\)" 2 host "localhost" "" "/" ffap-ftp-default-user "@" ":" 3 fboundp url-normalize-url normal 0] 7 (#$ . 10751)])
(byte-code "! B" [boundp path-separator ":" current-load-list] 2)
#@256 Directory list parsed from path envinronment variable ENV.
Optional EMPTY is default if (getenv ENV) is undefined, and is also
substituted for the first empty-string component, if there is one.
Uses `path-separator' to separate the path into directories.
(defalias 'ffap-list-env #[(env &optional empty) "\n \n!e ĉ\n!	P	\n#> \nOTB c c A\"a ," [empty getenv env 0 nil ret dir match start path-separator string-match "" append] 4 (#$ . 11337)])
#@55 Remove duplicates and non-directories from PATH list.
(defalias 'ffap-reduce-path #[(path) "/ A	@Ě 	Š	@\n 	@! 	\n	 \n*" [nil tem ret path "." "" file-directory-p] 2 (#$ . 11858)])
#@58 Return PATH augmented with its immediate subdirectories.
(defalias 'ffap-add-subdirs #[(path) " Ǐ\"@\nBA \n*" [nil subs ret path mapcar #[(f) "	! 	\nB" [file-directory-p f ret] 2] (byte-code "	@#" [directory-files path t "[^.]"] 4) ((error))] 6 (#$ . 12072)])
#@212 List of compression suffixes tried by `ffap-locate-file'.
If not a list, it is initialized by `ffap-locate-file',
and it becomes nil unless you are using jka-compr.
Typical values are nil or '(".gz" ".z" ".Z").
(defvar ffap-locate-jka-suffixes t (#$ . 12371))
#@361 A generic path-searching function, mimics `load' by default.
Returns path to file that (load FILE) would load, or nil.
Optional NOSUFFIX, if nil or t, is like the fourth argument
for load: whether to try the suffixes (".elc" ".el" "").
If a nonempty list, it is a list of suffixes to try instead.
Optional PATH is a list of directories instead of `load-path'.
(defalias 'ffap-locate-file #[(file &optional nosuffix path) " 	! !C!:  * ) ǂ* 	\n<Q !O !?O O @\"?O \n\n` 	\"\"	։  	  @P@\"! ! )Aw Aj +" [path load-path file-name-absolute-p file file-name-directory file-name-nondirectory nosuffix ("") (".elc" ".el" "") suffixes-to-try ffap-locate-jka-suffixes featurep jka-compr jka-aux jka-compr-file-name-handler-entry string-match "foo" (".gz" ".Z") apply nconc mapcar #[(suf) "\"B" [suf mapcar #[(x) "	P" [suf x] 2] ffap-locate-jka-suffixes] 4] nil suffixes found expand-file-name try file-exists-p file-directory-p] 6 (#$ . 12638)])
#@438 Alist of (KEY . FUNCTION) pairs parsed by `ffap-file-at-point'.
If string NAME at point (maybe "") is not a file or url, these pairs
specify actions to try creating such a string.  A pair matches if either
  KEY is a symbol, and it equals `major-mode', or
  KEY is a string, it should matches NAME as a regexp.
On a match, (FUNCTION NAME) is called and should return a file, an
url, or nil. If nil, search the alist for further matches.
(defvar ffap-alist (byte-code "MBMBMBMBMB!/ BMB!H B#MMBMBMBMBMBMBMB! :  > :@ )A P8BB C MB BD E F ME B" ["\\.info\\'" ffap-info #[(name) "	! ! \"C#" [ffap-locate-file name ("" ".info") ffap-soft-value "Info-directory-list" "Info-default-directory-list" "Info-directory" "~/info/"] 6] "\\`info/" ffap-info-2 #[(name) "	O!" [ffap-info name 5 nil] 4] "\\`[-a-z]+\\'" ffap-info-3 #[(name) " \n !" [ffap-string-around "()" ffap-info name] 2] "\\.elc?\\'" ffap-el #[(name) "	\"" [ffap-locate-file name t] 3] emacs-lisp-mode ffap-el-mode #[(name) "\n\"?\f \n\"" [string-match "\\.el\\'" name ffap-locate-file (".el")] 3] (finder-mode . ffap-el-mode) (help-mode . ffap-el-mode) c-mode boundp ffap-c-path ("/usr/include" "/usr/local/include") current-load-list ffap-c-mode #[(name) "	#" [ffap-locate-file name t ffap-c-path] 4] (c++-mode . ffap-c-mode) (cc-mode . ffap-c-mode) ("\\.\\([chCH]\\|cc\\|hh\\)\\'" . ffap-c-mode) tex-mode ffap-tex-path t put variable-documentation "Path where `ffap-tex-mode' looks for tex files.\nIf t, `ffap-tex-init' will initialize this when needed." ffap-tex-init #[nil "=  !  C!\"\"!#!" [ffap-tex-path t message "Initializing ffap-tex-path ..." ffap-reduce-path append "." ffap-list-env "TEXINPUTS" ffap-add-subdirs "TEXINPUTS_SUBDIR" ffap-soft-value "TeX-macro-global" ("/usr/local/lib/tex/macros" "/usr/local/lib/tex/inputs")] 10] ffap-tex-mode #[(name) " \n\f#" [ffap-tex-init ffap-locate-file name (".tex" "") ffap-tex-path] 4] latex-mode ffap-latex-mode #[(name) " \n\f#" [ffap-tex-init ffap-locate-file name (".cls" ".sty" ".tex" "") ffap-tex-path] 4] "\\.\\(tex\\|sty\\|doc\\|cls\\)\\'" ffap-tex #[(name) " \n\f#" [ffap-tex-init ffap-locate-file name t ffap-tex-path] 4] "\\.bib\\'" ffap-bib #[(name) "	\"#" [ffap-locate-file name t ffap-list-env "BIBINPUTS" ("/usr/local/lib/tex/macros/bib")] 6] math-mode ffap-math-mode #[(name) "\n\" \nÉO\nÕOQ  \n!#" [string-match "`" name 0 "/" nil ffap-locate-file (".m" "") ffap-soft-value "Mathematica-search-path"] 5] "\\`\\." ffap-home #[(name) "	#" [ffap-locate-file name t ("~")] 4] "\\`~/" ffap-lcd #[(name) " \"  ĝ9 \"ɚ ʂ, \f' ΰ)\"!OQ" [string-match "Lisp Code Dir" buffer-name ffap-string-around ("||" "|\n") ffap-soft-value "elisp-archive-host" "archive.cis.ohio-state.edu" host "localhost" "" "/" ffap-ftp-default-user "@" ":" file-name-as-directory "elisp-archive-directory" "/pub/gnu/emacs/elisp-archive/" name 2 nil] 6] "^[Rr][Ff][Cc][- #]?\\([0-9]+\\)" ffap-rfc-path "ds.internic.net" host "localhost" "" "/" ffap-ftp-default-user "@" ":" "/rfc/rfc%s.txt" ffap-rfc #[(name) "	\nÔÕO\"" [format ffap-rfc-path name 1] 5] "\\`[^/]*\\'" ffap-dired #[(name) "`y!1 #1 #1 ϔϕ{\"!1 	," [nil try dir pt 0 looking-at " *[-d]r[-w][-x][-r][-w][-x][-r][-w][-x] " re-search-backward "^ *$" t re-search-forward "^ *\\([^ 	\n:]*\\):\n *total " file-exists-p expand-file-name name 1] 5]] 24) (#$ . 13693))
(put (quote ffap-alist) (quote risky-local-variable) t)
#@360 Alist of (MODE CHARS BEG END), where MODE is a symbol,
possibly a `major-mode' or some symbol internal to ffap
(such as 'file, 'url, 'machine, and 'nocolon).
`ffap-string-at-point' uses the data fields as follows:
1. find a maximal string of CHARS around point,
2. strip BEG chars before point from the beginning,
3. Strip END chars after point from the end.
(defvar ffap-string-at-point-mode-alist (quote ((file "--:$+<>@-Z_a-z~" "<@" "@>;.,!?:") (url "--:?$+@-Z_a-z~#,%" "^A-Za-z0-9" ":;.,!?") (nocolon "--9$+<>@-Z_a-z~" "<@" "@>;.,!?") (machine "-a-zA-Z0-9." "" ".") (math-mode ",-:$+<>@-Z_a-z~`" "<" "@>;.,!?`:"))) (#$ . 17379))
#@65 List (BEG END), last region returned by `ffap-string-at-point'.
(defvar ffap-string-at-point-region (quote (1 1)) (#$ . 18018))
#@49 Last string returned by `ffap-string-at-point'.
(defvar ffap-string-at-point nil (#$ . 18152))
#@291 Return a string of characters from around point.
MODE (defaults to `major-mode') is a symbol used to lookup string
syntax parameters in `ffap-string-at-point-mode-alist'.
If MODE is not found, we fall back on the symbol 'file.
Sets `ffap-string-at-point' and `ffap-string-at-point-region'.
(defalias 'ffap-string-at-point #[(&optional mode) " 	\n \nA`\f@x\fA@w`)\f@w\f8xA`){	\nF 	G	$	+" [mode major-mode ffap-string-at-point-mode-alist file args pt nil ffap-string-at-point-region 2 str ffap-xemacs set-text-properties 0 ffap-string-at-point] 5 (#$ . 18254)])
#@100 Return string of two chars around last `ffap-string-at-point'.
Assumes the buffer has not changed.
(defalias 'ffap-string-around #[nil "\n@bh\nA@bg#)" [format "%c%c" ffap-string-at-point-region] 4 (#$ . 18862)])
#@62 Call `ffap-string-at-point', and copy result to `kill-ring'.
(defalias 'ffap-copy-string-as-kill #[(&optional mode) "	!Ú ! \n!\n\")" [ffap-string-at-point mode str "" message "No string found around point." kill-new "Copied to kill ring: %s"] 4 (#$ . 19086) nil])
#@52 Return url from around point if it exists, or nil.
(defalias 'ffap-url-at-point #[nil " =  `!  \n!:  \n8) !\n\n\"; \nO\n \n\"k  КW \n\"W X Ӊg \nQ\n) \n!{ \nP\n \n\"  К \nP!\" \nP\n\n \" * \n)" [ffap-url-regexp nil tem major-mode w3-mode w3-zone-at w3-zone-data 2 ffap-string-at-point url name string-match "^url:" 4 "\\`[^:</>@]+@[^:</>@]+[a-zA-Z]\\'" ffap-string-around "<>" "[$.0-9].*[$.0-9].*@" ffap-foo-at-bar-prefix "mailto" prefix ":" ffap-newsgroup-p "news:" "\\`[a-z0-9]+\\'" "~" expand-file-name "mailto:" string t case-fold-search] 6 (#$ . 19371)])
#@109 Regexp Matching a line in a gopher bookmark (maybe indented).
The two subexpressions are the KEY and VALUE.
(defvar ffap-gopher-regexp "^.*\\<\\(Type\\|Name\\|Path\\|Host\\|Port\\) *= *\\(.*\\) *$" (#$ . 20043))
#@61 If point is inside a gopher bookmark block, return its url.
(defalias 'ffap-gopher-at-point #[nil "y\n! \n! o y\n \n!# yƉ	\n\f\n!U Ĕĕ{!ΔΕ{Ly*2 \nt \n\"t \nSO\nOQ \fGU 	 	ǚ ւ P\f\n-)" [0 looking-at ffap-gopher-regexp -1 1 "1" nil "70" port host path name type intern 2 val var string-match "^ftp:.*@" "ftp://" 4 "gopher://" "" ":" "/"] 7 (#$ . 20261)])
#@114 Strings matching this are coerced to ftp paths by ffap.
That is, ffap just prepends "/".  Set to nil to disable.
(defvar ffap-ftp-sans-slash-regexp (byte-code " " [ffap-ftp-regexp "\\`\\([^:@]+@[^:@]+:\\|[^@.:]+\\.[^@:]+:\\|[^:]+:[~/]\\)\\([^:]\\|\\'\\)"] 1) (#$ . 20710))
#@231 Return filename from around point if it exists, or nil.
Existence test is skipped for names that look remote.
If the filename is not obvious, it also tries `ffap-alist',
which may actually result in an url rather than a filename.
(defalias 'ffap-file-at-point #[nil "  ȏ 		!\f\f͎	Ν) Ƃ75 	!7A 	!U X 	\"X 	P!7d 	!7	\"} !	} 	!7Ɖ  @A@= @; @	\" A	!  \" * ! ! ,7\f!= \" OQ#6	\".#	O\"!6#	\"!*." [t case-fold-search match-data data ffap-string-at-point string nil (byte-code "\n\"? \n!" [string-match "//" string substitute-in-file-name] 3) ((error)) name file-name-absolute-p abs default-directory ((store-match-data data)) ("" "/" "//") ffap-file-exists-string ffap-file-remote-p ffap-ftp-sans-slash-regexp string-match "/" path-separator nocolon ffap-alist try tem alist major-mode ffap-url-regexp ffap-rfs-regexp internal-ange-ftp-mode "^\\*ftp \\(.*\\)@\\(.*\\)\\*$" buffer-name 5 -1 ":" remote-dir "\\`\\(/?~?ftp\\)/" ffap-replace-path-component 1] 7 (#$ . 20995)])
#@66 Read file or url from minibuffer, with PROMPT and initial GUESS.
(defalias 'ffap-read-file-or-url #[(prompt guess) " 	! ! !!!\n/ GB0 C&!? !)" [guess default-directory nil dir ffap-url-p ffap-file-remote-p abbreviate-file-name expand-file-name file-name-directory completing-read prompt ffap-read-file-or-url-internal file-name-history substitute-in-file-name] 7 (#$ . 22177)])
#@62 Complete url's from history, treating given string as valid.
(defalias 'ffap-read-url-internal #[(string dir action) "! \n\"& & =% \n\"& C& )" [ffap-soft-value "url-global-history-hash-table" hist action try-completion string t all-completions] 3 (#$ . 22603)])
(defalias 'ffap-read-file-or-url-internal #[(string dir action) " \" * ##" [string t case-fold-search ffap-url-regexp string-match ffap-read-url-internal dir action read-file-name-internal] 4])
(defalias 'ffap-complete-as-file-p #[nil "=   \" *?>" [minibuffer-completion-table ffap-read-file-or-url-internal buffer-string string t case-fold-search ffap-url-regexp string-match (read-file-name-internal read-directory-name-internal)] 3])
(byte-code "!! ! ! !$\"ˇ" [featurep complete boundp PC-completion-as-file-name-predicate ffap-complete-as-file-p require advice ad-add-advice PC-do-completion (ffap-fix nil t (advice lambda nil "Work with ffap." (let ((minibuffer-completion-table (if (eq t (ffap-complete-as-file-p)) (quote read-file-name-internal) minibuffer-completion-table))) ad-do-it))) around nil ad-activate-on] 5)
#@59 If non-nil, ffap highlights the current buffer substring.
(defvar ffap-highlight (byte-code " " [window-system t] 1) (#$ . 23794))
#@35 Overlay used by `ffap-highlight'.
(defvar ffap-highlight-overlay nil (#$ . 23936))
#@257 If `ffap-highlight' is set, highlight the guess in this buffer.
That is, the last buffer substring found by `ffap-string-at-point'.
Optional argument REMOVE means to remove any such highlighting.
Uses the face `ffap' if it is defined, or else `highlight'.
(defalias 'ffap-highlight #[(&optional remove) "\f 	8 	! ć	\" 	@A@p$\"	\"6 ̂7 #" [remove ffap-highlight-overlay delete-overlay ffap-highlight nil move-overlay ffap-string-at-point-region apply make-overlay overlay-put face internal-find-face ffap highlight] 6 (#$ . 24026)])
#@60 Return file or url or nil, guessed from text around point.
(defalias 'ffap-guesser #[nil "  \f  !    !" [ffap-url-regexp ffap-fixup-url ffap-url-at-point ffap-gopher-at-point ffap-file-at-point ffap-fixup-machine ffap-machine-at-point] 2 (#$ . 24593)])
(defalias 'ffap-prompter #[(&optional guess) "\n Â\f     \")" [((ffap-highlight t)) ffap-read-file-or-url ffap-url-regexp "Find file or URL: " "Find file: " guess ffap-guesser ffap-highlight] 4])
#@410 Find FILENAME (or url), guessing default from text around point.
If `ffap-dired-wildcards' is set, wildcard patterns are passed to dired.
See also the functions `ffap-file-at-point', `ffap-url-at-point'.
With a prefix, this command behaves *exactly* like `ffap-file-finder'.
If `ffap-require-prefix' is set, the prefix meaning is reversed.

See <ftp://ftp.mathcs.emory.edu/pub/mic/emacs/> for latest version.
(defalias 'find-file-at-point #[(&optional filename) "t  	? 	 \f!)  	\n5 \n\"5 *A \f!)R \"R !c !c !i \f!!E\"" [ffap-require-prefix current-prefix-arg nil call-interactively ffap-file-finder filename ffap-prompter string t case-fold-search ffap-url-regexp string-match ffap-url-fetcher ffap-dired-wildcards dired ffap-newfile-prompt file-exists-p y-or-n-p "File does not exist, create buffer? " expand-file-name signal file-error "Opening file buffer" "no such file or directory"] 5 (#$ . 25083) nil])
(defalias (quote ffap) (quote find-file-at-point))
#@173 *If non-nil, overrides `ffap-next-regexp' during `ffap-menu'.
Make this more restrictive for faster menu building.
For example, try ":/" for url (and some ftp) references.
(defvar ffap-menu-regexp nil (#$ . -26118))
#@54 Buffer local cache of menu presented by `ffap-menu'.
(defvar ffap-menu-alist nil (#$ . 26340))
(make-variable-buffer-local (quote ffap-menu-alist))
#@126 Text properties applied to strings found by `ffap-menu-rescan'.
These properties may be used to fontify the menu references.
(defvar ffap-menu-text-plist (byte-code " 	\n Ç" [window-system ffap-xemacs (face bold highlight t) (face bold mouse-face highlight)] 1) (#$ . 26495))
#@296 Put up a menu of files and urls mentioned in this buffer.
Then set mark, jump to choice, and try to fetch it.  The menu is
cached in `ffap-menu-alist', and rebuilt by `ffap-menu-rescan'.
The optional RESCAN argument (a prefix, interactively) forces
a rebuild.  Searches with `ffap-menu-regexp'.
(defalias 'ffap-menu #[(&optional rescan) " 	   @\nAb\n@ *   * ǂ+ BB#" [ffap-menu-alist rescan first ffap-guesser ffap-menu-rescan ffap-menu-ask ffap-url-regexp "Find file or URL" "Find file" "*Rescan Buffer*" -1 ffap-menu-cont] 4 (#$ . 26785) "P"])
(defalias 'ffap-menu-cont #[(choice) "AW ! AbŎ!  !  !@!)" [choice 0 ffap-menu t push-mark ((ffap-highlight t)) ffap-highlight ffap-guesser sit-for find-file-at-point] 2])
#@401 Prompt from a menu of choices, and then apply some action.
Arguments are TITLE, ALIST, and CONT (a continuation).
This uses either a menu or the minibuffer depending on invocation.
The TITLE string is used as either the prompt or menu title.
Each (string . data) ALIST entry defines a choice (data is ignored).
Once the user makes a choice, function CONT is applied to the entry.
Always returns nil.
(defalias 'ffap-menu-ask #[(title alist cont) "!! !! <! 	\"BD\"9 	@@#	%)!ŚG 	@@;U 	\"c !g !)χ" [fboundp x-popup-menu boundp last-nonmenu-event t "" title mapcar #[(i) "@B" [i] 2] alist minibuffer-completion-help minibuffer-setup-hook completing-read format "%s (default %s): " nil sit-for 0 choice assoc cont message "No choice made!"] 8 (#$ . 27560)])
#@129 Search buffer for `ffap-menu-regexp' to build `ffap-menu-alist'.
Applies `ffap-menu-text-plist' text properties at all matches.
(defalias 'ffap-menu-rescan #[nil " 	deZ\f  	eb O `B	B	\f@`#`eZ_#$ .!	\"	A @@A@@| AA_ Aa )	\"	" [ffap-menu-regexp ffap-next-regexp nil major-mode ffap-string-at-point-mode-alist file buffer-read-only item range ffap-menu-alist ffap-next-guess add-text-properties ffap-string-at-point-region ffap-menu-text-plist message "Scanning...%2d%% <%s>" 100 "Scanning...done" sort #[(a b) "@	@" [a b] 2] ptr #[(a b) "A	AW" [a b] 2]] 7 (#$ . 28386) nil])
#@94 Invoked by `ffap-at-mouse' if no file or url at click.
A command symbol, or nil for nothing.
(defvar ffap-at-mouse-fallback (quote ffap-menu) (#$ . 29057))
(put (quote ffap-at-mouse-fallback) (quote risky-local-variable) t)
#@105 Find file or url guessed from text around mouse point.
If none is found, call `ffap-at-mouse-fallback'.
(defalias 'ffap-at-mouse #[(e) "	! )\"  Ŏ!\"!)5 t2 2 !5 !)" [mouse-set-point e ffap-guesser guess ffap-highlight ((ffap-highlight t)) sit-for 0 message "Guessing `%s'" find-file-at-point ffap-at-mouse-fallback call-interactively "No file or URL found at mouse click."] 4 (#$ . 29288) "e"])
#@48 Like `ffap', but put buffer in another window.
(defalias 'ffap-other-window #[nil "!" [switch-to-buffer-other-window ((byte-code "!p" [call-interactively ffap] 2))] 2 (#$ . 29719) nil])
#@47 Like `ffap', but put buffer in another frame.
(defalias 'ffap-other-frame #[nil "!" [switch-to-buffer-other-frame ((byte-code "!p" [call-interactively ffap] 2))] 2 (#$ . 29919) nil])
#@43 Submit a bug report for the ffap package.
(defalias 'ffap-bug #[nil "!#\"#)" [require reporter t reporter-prompt-for-summary-p reporter-submit-bug-report "Michelangelo Grigni <mic@mathcs.emory.edu>" "ffap 1.6" mapcar intern all-completions "ffap-" obarray boundp] 9 (#$ . 30116) nil])
(fset (quote ffap-submit-bug) (quote ffap-bug))
#@56 Bind `ffap-next' and `ffap-menu' to M-l and M-m, resp.
(defalias 'ffap-ro-mode-hook #[nil "\"\"" [local-set-key "" ffap-next "" ffap-menu] 3 (#$ . 30471)])
#@66 Bind `ffap-gnus-next' and `ffap-gnus-menu' to M-l and M-m, resp.
(defalias 'ffap-gnus-hook #[nil "!L\"\"" [make-local-variable ffap-foo-at-bar-prefix "news" local-set-key "" ffap-gnus-next "" ffap-gnus-menu] 3 (#$ . 30643)])
(defalias 'ffap-gnus-wrapper #[(form) "p	!=   !!	!~`e=' #Ύ!*" [get-buffer gnus-summary-buffer gnus-summary-select-article window-buffer selected-window sb gnus-configure-windows article pop-to-buffer gnus-article-buffer search-forward "\n\n" nil t ((pop-to-buffer sb)) eval form] 4])
#@45 Run `ffap-next' in the gnus article buffer.
(defalias 'ffap-gnus-next #[nil "!" [ffap-gnus-wrapper (ffap-next nil t)] 2 (#$ . 31198) nil])
#@45 Run `ffap-menu' in the gnus article buffer.
(defalias 'ffap-gnus-menu #[nil "!" [ffap-gnus-wrapper (ffap-menu)] 2 (#$ . 31346) nil])
#@210 List of forms evaluated by function `ffap-bindings'.
A reasonable ffap installation needs just these two lines:
  (require 'ffap)
  (ffap-bindings)
These are only suggestions, they may be modified or ignored.
(defvar ffap-bindings (byte-code "=\n   Ă Ƥ" [window-system x nil ffap-xemacs ((global-set-key (quote (shift button3)) (quote ffap-at-mouse))) ((global-set-key [S-down-mouse-3] (quote ffap-at-mouse))) ((global-set-key "" (quote find-file-at-point)) (global-set-key "4f" (quote ffap-other-window)) (global-set-key "5f" (quote ffap-other-frame)) (add-hook (quote gnus-summary-mode-hook) (quote ffap-gnus-hook)) (add-hook (quote gnus-article-mode-hook) (quote ffap-gnus-hook)) (add-hook (quote vm-mode-hook) (quote ffap-ro-mode-hook)) (add-hook (quote rmail-mode-hook) (quote ffap-ro-mode-hook)))] 2) (#$ . 31489))
#@49 Evaluate the forms in variable `ffap-bindings'.
(defalias 'ffap-bindings #[nil "\nB!" [eval progn ffap-bindings] 3 (#$ . 32334)])
(byte-code " É# !" [ffap-xemacs load "ffap-xe" t message "ffap warning: ffap-xe.el not found"] 4)
