;ELC   
;;; Compiled
;;; in Emacs version 30.2
;;; with all optimizations.


#@89 Return value of symbol SYM, if bound, or DEFAULT otherwise.

(fn SYM &optional DEFAULT)
(byte-code "\300\301!\210\300\302!\210\303\304\305\306\307\310\307\311&\207" [require url-parse thingatpt custom-declare-group ffap nil "Find file or URL at point." :group matching convenience] 8)
(defalias 'ffap-symbol-value #[513 "\300!\203	 J\207\207" [boundp] 4 (#$ . 83)])#@111 Paths matching this regexp are stripped off the shell prompt.
If nil, ffap doesn't do shell prompt stripping.#@2 #@119 File names matching this regexp are treated as remote ffap.
If nil, ffap neither recognizes nor generates such names.#@214 If non-nil, convert some URLs to local file names before prompting.
Only "file:" and "ftp:" URLs are converted, and only if they
do not specify a host, or the host is either "localhost" or
equal to `system-name'.#@190 If non-nil, convert URLs to remote file names before prompting.
If the value is a list of strings, that specifies a list of URL
schemes (e.g. "ftp"); in that case, only convert those URLs.#@230 If non-nil, allow lax URL matching.
The default non-nil value might produce false URLs in C++ code
with symbols like "std::find".  On the other hand, setting
this to nil will disable recognition of URLs that are not
well-formed.#@149 User name in FTP file names generated by `ffap-host-to-filename'.
Note this name may be omitted if it equals the default
(`ange-ftp-default-user').#@65 Matching file names are treated as remote.  Use nil to disable.#@111 Regexp matching the beginning of a URI, for ffap.
If the value is nil, disable URL-matching features in ffap.
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\306\315\310\311&\210\300\316\302\303\317DD\320\306\321\310\311&\210\300\322\302\303\323DD\324\306\325\310\311\326\327&	\210\300\330\302\303\331DD\332\306\321\310\311\326\333&	\210\300\334\302\303\335DD\336\306\337\310\311&\210\300\340\302\303\341DD\342\306\343\310\311&\207" [custom-declare-variable ffap-shell-prompt-regexp funcall function #[0 "\300\207" ["[$%><]*"] 1 (#$ . 572)] (#$ . 458) :type (choice (const :tag "Disable" nil) (const :tag "Standard" "[$%><]*") regexp) :group ffap ffap-ftp-regexp #[0 "\300\207" ["\\`/[^/:]+:"] 1 (#$ . 572)] (#$ . 579) (choice (const :tag "Disable" nil) (const :tag "Standard" "\\`/[^/:]+:") regexp) ffap-url-unwrap-local #[0 "\300\207" [t] 1 (#$ . 572)] (#$ . 703) boolean ffap-url-unwrap-remote #[0 "\300\207" [("ftp")] 1 (#$ . 572)] (#$ . 922) (choice (repeat string) boolean) :version "24.3" ffap-lax-url #[0 "\300\207" [nil] 1 (#$ . 572)] (#$ . 1117) "30.1" ffap-ftp-default-user #[0 "\300\207" ["anonymous"] 1 (#$ . 572)] (#$ . 1352) string ffap-rfs-regexp #[0 "\300\207" ["\\`/\\(afs\\|net\\)/."] 1 (#$ . 572)] (#$ . 1505) (choice (const :tag "Disable" nil) regexp)] 10)
(defvar ffap-url-regexp "\\(news\\(post\\)?:\\|mailto:\\|file:\\|\\(ftp\\|https?\\|telnet\\|gopher\\|gemini\\|www\\|wais\\)://\\)" (#$ . 1575))#@104 Presumed URL prefix type of strings like "<foo.9z@bar>".
Sensible values are nil, "news", or "mailto".#@133 Maximum active region length.
When the region is active and larger than this value,
`ffap-string-at-point' returns an empty string.
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable ffap-foo-at-bar-prefix funcall function #[0 "\300\207" ["mailto"] 1 (#$ . 572)] (#$ . 3046) :type (choice (const "mailto") (const "news") (const :tag "Disable" nil)) :group ffap] 8)
(defvar ffap-max-region-length 1024 (#$ . 3155))#@632 A regexp matching filename wildcard characters, or nil.

If `find-file-at-point' gets a filename matching this pattern,
and `ffap-pass-wildcards-to-dired' is nil, it passes it on to
`find-file' with non-nil WILDCARDS argument, which expands
wildcards and visits multiple files.  To visit a file whose name
contains wildcard characters you can suppress wildcard expansion
by setting `find-file-wildcards'.  If `find-file-at-point' gets a
filename matching this pattern and `ffap-pass-wildcards-to-dired'
is non-nil, it passes it on to `dired'.

If `dired-at-point' gets a filename matching this pattern,
it passes it on to `dired'.#@70 If non-nil, pass filenames matching `ffap-dired-wildcards' to Dired.#@64 Whether `find-file-at-point' prompts about a nonexistent file.#@155 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.#@60 The command called by `find-file-at-point' to find a file.#@61 The command called by `dired-at-point' to find a directory.#@61 A function of one argument, called by ffap to fetch an URL.#@56 Regular expression governing movements of `ffap-next'.#@154 If non-nil, reverse the prefix argument to `dired-at-point'.
This is nil so neophytes notice ffap.  Experts may prefer to
disable ffap most of the time.
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\306\315\310\311&\210\300\316\302\303\317DD\320\306\315\310\311&\210\321\316\322\323#\210\300\324\302\303\325DD\326\306\315\310\311&\210\300\327\302\303\330DD\331\306\303\310\311\332\333&	\210\300\334\302\303\335DD\336\306\303\310\311\332\333&	\210\300\337\302\303\340DD\341\306\342\310\311\332\333&	\210\300\343\302\303\344DD\345\306\346\310\311&\210\300\347\302\303\350DD\351\306\315\310\311\352\353&	\207" [custom-declare-variable ffap-dired-wildcards funcall function #[0 "\300\207" ["[*?][^/]*\\'"] 1 (#$ . 572)] (#$ . 3611) :type (choice (const :tag "Disable" nil) (const :tag "Enable" "[*?][^/]*\\'")) :group ffap ffap-pass-wildcards-to-dired #[0 "\300\207" [nil] 1 (#$ . 572)] (#$ . 4247) boolean ffap-newfile-prompt #[0 "\300\207" [nil] 1 (#$ . 572)] (#$ . 4321) make-obsolete-variable find-file-not-found-functions "29.1" ffap-require-prefix #[0 "\300\207" [nil] 1 (#$ . 572)] (#$ . 4390) ffap-file-finder #[0 "\300\207" [find-file] 1 (#$ . 572)] (#$ . 4549) :risky t ffap-directory-finder #[0 "\300\207" [dired] 1 (#$ . 572)] (#$ . 4613) ffap-url-fetcher #[0 "\300\207" [browse-url] 1 (#$ . 572)] (#$ . 4678) (choice (const browse-url) function) ffap-next-regexp #[0 "\300\207" ["[/:.~[:alpha:]]/\\|@[[:alpha:]][-[:alnum:]]*\\."] 1 (#$ . 572)] (#$ . 4743) regexp dired-at-point-require-prefix #[0 "\300\207" [nil] 1 (#$ . 572)] (#$ . 4804) :version "20.3"] 10)
(defalias 'ffap-mouse-event #[0 "<\205 \207" [last-nonmenu-event] 1])#@14 

(fn EVENT)
(make-obsolete 'ffap-mouse-event nil "28.1")
(defalias 'ffap-event-buffer #[257 "\300\301!@!\207" [window-buffer event-start] 4 (#$ . 6497)])#@43 Last value returned by `ffap-next-guess'.
(make-obsolete 'ffap-event-buffer nil "28.1")
(defvar ffap-next-guess nil (#$ . 6658))#@78 List (BEG END), last region returned by the function `ffap-string-at-point'.
(defvar ffap-string-at-point-region '(1 1) (#$ . 6792))#@285 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'.

(fn &optional BACK LIM)
(defalias 'ffap-next-guess #[512 "\211\204 \203 \210e\202 \210d\303\211\204/ `=\204/ \203\" \304\202# \305\306#\210\307 \262\202 \2037 \310\2028 \311	8b\210\211\211\207" [ffap-next-regexp ffap-string-at-point-region ffap-next-guess nil re-search-backward re-search-forward move ffap-guesser 0 1] 7 (#$ . 6931)])#@383 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 \[universal-argument] to search backwards,
double prefix to wrap forward, triple to wrap backwards.
Actual search is done by the function `ffap-next-guess'.

(fn &optional BACK WRAP)
(defalias 'ffap-next #[512 "`\300!\211\204 \203 \203 d\202 eb\210\300\"\262\211\203+ \301\302!\210\303\304!!\207b\210\305\306\2038 \307\2029 \310\"\207" [ffap-next-guess sit-for 0 find-file-at-point ffap-prompter message "No %sfiles or URLs found" "" "more "] 7 (#$ . 7545) (byte-code "\301!\302\236A\207" [current-prefix-arg prefix-numeric-value ((1) (4 t) (16 nil t) (64 t t))] 2)])#@80 Like `ffap-next', but search with `ffap-url-regexp'.

(fn &optional BACK WRAP)
(defalias 'ffap-next-url #[512 "\302\303!\203 \304\305!\202 \305\")\207" [ffap-url-regexp ffap-next-regexp called-interactively-p interactive call-interactively ffap-next] 5 (#$ . 8331) nil])#@171 Return non-nil if SYMBOL is `accept' or `reject'.
Otherwise, return nil.  This is intended for use as the
predicate in the `:safe' property of user options.

(fn SYMBOL)
(defalias 'ffap-accept-or-reject-p #[257 "\211\300>\207" [(accept reject)] 3 (#$ . 8614)])#@129 What `ffap-machine-p' does with hostnames that have no domain.
Value should be a symbol, one of `ping', `accept', and `reject'.#@176 What `ffap-machine-p' does with hostnames that have a known domain.
Value should be a symbol, one of `ping', `accept', and `reject'.
See `mail-extr.el' for the known domains.#@179 What `ffap-machine-p' does with hostnames that have an unknown domain.
Value should be a symbol, one of `ping', `accept', and `reject'.
See `mail-extr.el' for the known domains.#@15 

(fn DOMAIN)
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313&	\210\300\314\302\303\315DD\316\306\317\310\311\312\313\320\321&\210\300\322\302\303\323DD\324\306\325\310\311\312\313&	\207" [custom-declare-variable ffap-machine-p-local funcall function #[0 "\300\207" [reject] 1 (#$ . 572)] (#$ . 8881) :type (choice (const ping) (const accept) (const reject)) :safe ffap-accept-or-reject-p :group ffap ffap-machine-p-known #[0 "\300\207" [accept] 1 (#$ . 572)] (#$ . 9015) (choice (const ping) (const accept) (const reject)) :version "29.1" ffap-machine-p-unknown #[0 "\300\207" [reject] 1 (#$ . 572)] (#$ . 9196) (choice (const ping) (const accept) (const reject))] 12)
(defalias 'ffap-what-domain #[257 "\300\301!\210\302\303!\211\205 \304\227\"\305N\207" [require mail-extr ffap-symbol-value mail-extr-all-top-level-domains intern-soft domain-name] 5 (#$ . 9379)])#@662 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.

(fn HOST &optional SERVICE QUIET STRATEGY)
(defalias 'ffap-machine-p #[1025 "\303\304\"\206\f \303\305\"??\205\261 \303\306\"\205 \307\224T\310O\227\211\203( \311!\202) \312\204@ \2045 \202> \211\204= 	\202> \n\262\313\267\202J \314\207\310\207\315\316!\204R \310\207\204k \211;\203e \317\320#\210\202k \317\321\"\210\3221\201 \323\316\324\310		\206{ \325$!\210\3260\207\211A@\303\327\"\203\215 \310\207\303\330\"\203\225 \207\211\331\232\203\251 \3328\227\333\230?\205\257 \3328\207\334@A\"\266\204\207" [ffap-machine-p-local ffap-machine-p-unknown ffap-machine-p-known string-match "[^-[:alnum:].]" "[^0-9]" "\\.[^.]*$" 0 nil ffap-what-domain "Local" #s(hash-table test eq purecopy t data (accept 70 reject 72)) accept fboundp open-network-stream message "Pinging %s (%s)..." "Pinging %s ..." (error) delete-process "ffap-machine-p" "discard" t "\\(^Unknown host\\|Name or service not known$\\)" "not responding$" "connection failed" 2 "permission denied" signal] 13 (#$ . 10271)])#@82 In remote FULLNAME, replace path with NAME.  May return nil.

(fn FULLNAME NAME)
(defalias 'ffap-replace-file-component #[514 ";\205 \211;\205 \300!P\207" [file-remote-p] 4 (#$ . 11903)])#@67 Return trailing `.foo' suffix of FILE, or nil if none.

(fn FILE)
(defalias 'ffap-file-suffix #[257 "\300\301\"\211\205\f \302O\207" [string-match "\\.[^./]*\\'" nil] 5 (#$ . 12101)])#@54 List of suffixes tried by `ffap-file-exists-string'.
(make-obsolete 'ffap-file-suffix 'file-name-extension "29.1")
(defvar ffap-compression-suffixes '(".gz" ".Z") (#$ . 12293))#@281 Return FILE (maybe modified) if the file exists, else nil.
When using jka-compr (a.k.a. `auto-compression-mode'), the returned
name may have a suffix added from `ffap-compression-suffixes'.
The optional NOMODIFY argument suppresses the extra search.

(fn FILE &optional NOMODIFY)
(defalias 'ffap-file-exists-string #[513 "\203 G\302U\203 \303\207\304!\203 \207\211\203 \303\207\305\306\"\204$ \303\207\307\310\"	\235\203/ \303\207	\303\211\203Q \304@P\211\262!\203J \210\211\303\262\2022 A\262\2022 \207" [file-name-handler-alist ffap-compression-suffixes 0 nil file-exists-p rassq jka-compr-handler file-name-extension t] 8 (#$ . 12476)])#@79 If FILENAME looks remote, return it (maybe slightly improved).

(fn FILENAME)
(defalias 'ffap-file-remote-p #[257 "\203% \302\"\203% \302\303\"\203! \211\304\211\224TO\304\225\305OP\202\" \211\2061 	\2051 \302	\"\2051 \211\207" [ffap-ftp-regexp ffap-rfs-regexp string-match "//" 0 nil] 5 (#$ . 13138)])#@52 Return machine name at point if it exists, or nil.
(defalias 'ffap-machine-at-point #[0 "\300\301!\302!\205\n \211\207" [ffap-string-at-point machine ffap-machine-p] 3 (#$ . 13452)])#@132 Convert HOST to something like "/USER@HOST:" or "/HOST:".
Looks at `ffap-ftp-default-user', returns "" for "localhost".

(fn HOST)
(defalias 'ffap-host-to-filename #[257 "\211\301\232\203 \302\207\211\303\304!\232\203 \210\305\306\211\205 \307\310\260\207" [ffap-ftp-default-user "localhost" "" ffap-symbol-value ange-ftp-default-user nil "/" "@" ":"] 7 (#$ . 13642)])#@13 

(fn MACH)
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put ffap-host-to-filename speed -1 put byte-optimizer byte-compile-inline-expand] 5)
(defalias 'ffap-fixup-machine #[257 "\203	 \211;\204 \303\207\304\305\"\203 \306\307Q\207\304\310\"\203# \311\307Q\207	\205H \211\211\312\232\2030 \313\207\n\211\314\315!\232\203; \210\303\307\211\205B \316\317\260\266\202\207" [ffap-url-regexp ffap-ftp-regexp ffap-ftp-default-user nil string-match "\\`gopher[-.]" "gopher://" "/" "\\`w\\(ww\\|eb\\)[-.]" "https://" "localhost" "" ffap-symbol-value ange-ftp-default-user "@" ":"] 9 (#$ . 14023)])#@81 If STRING looks like an URL, return it (maybe improved), else nil.

(fn STRING)
(defalias 'ffap-url-p #[257 "\211;\205$ \205$ \302\303\"\211\304=\203 \202! \211\205! \305O)\262\207" [ffap-url-regexp case-fold-search t string-match 0 nil] 5 (#$ . 14645)])#@52 Return URL as a local file name, or nil.

(fn URL)
(defalias 'ffap-url-unwrap-local #[257 "\302!\303!>\204 \304\305\306D\"\210\211\307H\310!@\303!>\204( \304\305\306D\"\210\311H\312\235\205M \313\314\315 E\235\205M 	\316>\203L \317\320\"\203L \211\311\321O\207\211\207" [cl-struct-url-tags system-type url-generic-parse-url type-of signal wrong-type-argument url 4 url-path-and-query 1 ("ftp" "file") "" "localhost" system-name (ms-dos windows-nt cygwin) string-match "\\`/[a-zA-Z]:" nil] 8 (#$ . 14914)])#@53 Return URL as a remote file name, or nil.

(fn URL)
(defalias 'ffap-url-unwrap-remote #[257 "\302!\303!>\204 \304\305\306D\"\210\211\307H	<\203 	\202 \310\303!>\204. \304\305\306D\"\210\311H\312!\303!>\204D \304\305\306D\"\210\313H\314!@\235\205~ \315\316\"\205~ \317\232?\205~ \320\321\205l \322P\205y \323\324	!P\321\260\207" [cl-struct-url-tags ffap-url-unwrap-remote url-generic-parse-url type-of signal wrong-type-argument url 1 ("ftp") 4 url-port-if-non-default 2 url-path-and-query string-match "\\`[a-zA-Z][-a-zA-Z0-9+.]*\\'" "" "/" ":" "@" "#" number-to-string] 16 (#$ . 15437)])#@61 Clean up URL and return it, maybe as a file name.

(fn URL)
(defalias 'ffap-fixup-url #[257 "\211;\204 \302\207\203 \300!\206 	\203 \301!\206 \211\207" [ffap-url-unwrap-local ffap-url-unwrap-remote nil] 3 (#$ . 16067)])#@60 Clean up EMAIL and return it as a mailto: URL.

(fn EMAIL)
(defalias 'ffap-fixup-email #[257 "\211;\205 \300\301\"\203 \207\301P\207" [string-prefix-p "mailto:"] 4 (#$ . 16300)])#@294 Return a list of strings parsed from environment variable ENV.
Optional EMPTY is the default list if (getenv ENV) is undefined, and
also is substituted for the first empty-string component, if there is one.
Uses `path-separator' to separate the path into substrings.

(fn ENV &optional EMPTY)
(defalias 'ffap-list-env #[513 "\211\204\n \301!\205X \302\303\211\211\301!P\262\304#\211\262\2035 O\262T\262B\262\202 \237\203V \305\235\211\262\203V \306\243A\"\241\210\242\206T \240\210\266\203\207" [path-separator getenv 0 nil string-match "" append] 10 (#$ . 16489)])#@66 Remove duplicates and non-directories from PATH list.

(fn PATH)
(defalias 'ffap-reduce-path #[257 "\300\211\203/ \210\211A\262\211@\301\232\203 \211\302\240\210\211@\235\204 \303@!\203 \211\241\210\211\262\202 \237\207" [nil "." "" file-directory-p] 5 (#$ . 17091)])#@245 Return list of all subdirectories under DIR, starting with itself.
Directories beginning with "." are ignored, and directory symlinks
are listed but never searched (to avoid loops).
Optional DEPTH limits search depth.

(fn DIR &optional DEPTH)
(defalias 'ffap-all-subdirs #[513 "\300!\205 \301\302!\206 \303\"\207" [file-exists-p ffap-all-subdirs-loop expand-file-name -1] 5 (#$ . 17377)])#@18 

(fn DIR DEPTH)#@10 

(fn D)
(defalias 'ffap-all-subdirs-loop #[514 "\211C\211\242S\240\210\242\300=?\205! \301\302\303\304\305\"\306\307\310#\"\"B\207" [-1 apply nconc mapcar make-closure #[257 "\301!\204 \302\207\303!\203 C\207\304\300\242\"\207" [V0 file-directory-p nil file-symlink-p ffap-all-subdirs-loop] 4 (#$ . 17799)] directory-files t "\\`[^.]"] 12 (#$ . 17777)])#@125 Bound on depth of subdirectory search in `ffap-kpathsea-expand-path'.
Set to 0 to avoid all searching, or nil for no limit.
(defvar ffap-kpathsea-depth 1 (#$ . 18172))#@266 Replace each "//"-suffixed dir in PATH by a list of its subdirs.
The subdirs begin with the original directory, and the depth of the
search is bounded by `ffap-kpathsea-depth'.  This is intended to mimic
kpathsea, a library used by some versions of TeX.

(fn PATH)#@12 

(fn DIR)
(defalias 'ffap-kpathsea-expand-path #[257 "\300\301\302\303\"\"\207" [apply nconc mapcar #[257 "\301\302\"\203 \303\304\305O\"\207C\207" [ffap-kpathsea-depth string-match "[^/]//\\'" ffap-all-subdirs 0 -2] 5 (#$ . 18616)]] 6 (#$ . 18346)])#@416 A generic path-searching function.
Returns the name of file in PATH, 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.
PATH is a list of directories.

This uses `ffap-file-exists-string', which may try adding suffixes from
`ffap-compression-suffixes'.

(fn FILE NOSUFFIX PATH)
(defalias 'ffap-locate-file #[771 "\300!\203 \301!\262C\302!\262\302!\303\232:\203 \202( \203' \304\202( \305\306\211\211\203k \262\203d \307\310	@P@\"!\262\203] \204R \311!\204] \210\211\306\262\306\262\2022 A\262\2022 A\262\202+ \207" [file-name-absolute-p file-name-directory file-name-nondirectory #1="" (#1#) (".elc" ".el" #1#) nil ffap-file-exists-string expand-file-name file-directory-p] 12 (#$ . 18879)])#@595 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 match 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.
While calling FUNCTION, the match data is set according to KEY if KEY
is a string, so that FUNCTION can use `match-string' and friends
to extract substrings.
(defvar ffap-alist '((#2="" . ffap-completable) (#2# . ffap-in-project) ("\\.info\\'" . ffap-info) ("\\`info/" . ffap-info-2) ("\\`[-[:lower:]]+\\'" . ffap-info-3) ("\\.elc?\\'" . ffap-el) (emacs-lisp-mode . ffap-el-mode) (finder-mode . ffap-el-mode) (help-mode . ffap-el-mode) (c++-mode . ffap-c++-mode) (cc-mode . ffap-c-mode) ("\\.\\([chCH]\\|cc\\|hh\\)\\'" . ffap-c-mode) (fortran-mode . ffap-fortran-mode) ("\\.[fF]\\'" . ffap-fortran-mode) (plain-tex-mode . ffap-tex-mode) (latex-mode . ffap-latex-mode) (plain-TeX-mode . ffap-tex-mode) (LaTeX-mode . ffap-latex-mode) ("\\.\\(tex\\|sty\\|doc\\|cls\\)\\'" . ffap-tex) ("\\.bib\\'" . ffap-bib) ("\\`\\." . ffap-home) ("\\`[Rr][Ff][Cc][-#]?\\([0-9]+\\)" . ffap-rfc) (dired-mode . ffap-dired)) (#$ . 19743))#@13 

(fn NAME)
(put 'ffap-alist 'risky-local-variable t)
(defalias 'ffap-completable #[257 "\301!\206 \302\303!\"\211\205 P\207" [default-directory file-name-directory file-name-completion file-name-nondirectory] 5 (#$ . 21102)])
(defalias 'ffap-in-project #[257 "\300 \211\205\f \301\302!\"\207" [project-current file-name-concat project-root] 5 (#$ . 21102)])
(defalias 'ffap-home #[257 "\300\301\302#\207" [ffap-locate-file t ("~")] 5 (#$ . 21102)])
(defalias 'ffap-info #[257 "\300\301\302\303!\206\f \302\304!#\207" [ffap-locate-file ("" ".info") ffap-symbol-value Info-directory-list Info-default-directory-list] 6 (#$ . 21102)])
(defalias 'ffap-info-2 #[257 "\300\301\302O!\207" [ffap-info 5 nil] 5 (#$ . 21102)])
(defalias 'ffap-info-3 #[257 "\300 \301\232\205\n \302!\207" [ffap-string-around "()" ffap-info] 3 (#$ . 21102)])
(defalias 'ffap-el #[257 "\301\302#\207" [load-path ffap-locate-file t] 5 (#$ . 21102)])
(defalias 'ffap-el-mode #[257 "\301\302\"?\205 \303\304#\207" [load-path string-match "\\.el\\'" ffap-locate-file (".el")] 5 (#$ . 21102)])#@50 List of directories to search for include files.
(defvar ffap-c-path (byte-code "\300\301\302\"r\211q\210\303\304\"\216\3051 \306\307\310\311\310\312%0\202 \210\310\313=\205* eb\210`\314 {*\262\211G\313U\2036 \315\207\316\315\317\320\"C\"\207" [generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	 \302\300!\207" [V0 buffer-name kill-buffer] 2] (error) call-process "gcc" nil (t nil) "-print-multiarch" 0 line-end-position ("/usr/include" "/usr/local/include") append expand-file-name "/usr/include"] 7) (#$ . 22188))
(defalias 'ffap-c-mode #[257 "\301\302#\207" [ffap-c-path ffap-locate-file t] 5 (#$ . 21102)])
(defvar ffap-c++-path (byte-code "\301\302\303\"r\211q\210\304\305\"\216\3061 \307\310\311\303\311\312%0\202 \210\311\313=\205B eb\210\314\315\311\316#\2034 \317\320!\202B \314\321\311\316#\205B \322\317\320!\323\"*\262\211\203M \211B\207\207" [ffap-c-path generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	 \302\300!\207" [V0 buffer-name kill-buffer] 2] (error) call-process "g++" nil "-v" 0 re-search-forward "--with-gxx-include-dir=\\([^[:space:]]+\\)" noerror match-string 1 "gcc version \\([[:digit:]]+.[[:digit:]]+.[[:digit:]]+\\)" expand-file-name "/usr/include/c++/"] 7) (#$ . 22188))
(defalias 'ffap-c++-mode #[257 "\301\302#\207" [ffap-c++-path ffap-locate-file t] 5 (#$ . 21102)])
(defvar ffap-fortran-path '("../include" "/usr/include"))
(defalias 'ffap-fortran-mode #[257 "\301\302#\207" [ffap-fortran-path ffap-locate-file t] 5 (#$ . 21102)])#@105 Path where `ffap-tex-mode' looks for TeX files.
If t, `ffap-tex-init' will initialize this when needed.
(defvar ffap-tex-path t (#$ . 23707))#@173 List of rules for guessing a filename.
Each rule is a cons (PREFIX . SUFFIX) used for guessing a
filename from the word at point by prepending PREFIX and
appending SUFFIX.
(defvar ffap-latex-guess-rules '((#1="" . ".sty") (#1# . ".cls") (#1# . ".ltx") (#1# . ".tex") (#1# . #1#) ("beamertheme" . ".sty") ("beamercolortheme" . ".sty") ("beamerfonttheme" . ".sty") ("beamerinnertheme" . ".sty") ("beameroutertheme" . ".sty") (#1# . ".ldf")) (#$ . 23855))
(defalias 'ffap-tex-init #[0 "\301=\205 \302\303!\205 \304\305\306\307\310\311!\312\313\314\"\"!B!\211\207" [ffap-tex-path t message "Initializing ffap-tex-path ..." ffap-reduce-path "." ffap-kpathsea-expand-path append ffap-list-env "TEXINPUTS" ffap-symbol-value TeX-macro-global ("/usr/local/lib/tex/macros" "/usr/local/lib/tex/inputs")] 8])
(defalias 'ffap-tex-mode #[257 "\301 \210\302\303#\207" [ffap-tex-path ffap-tex-init ffap-locate-file (".tex" "")] 5 (#$ . 21102)])#@200 `ffap' function suitable for latex buffers.
This uses the program kpsewhich if available.  In this case, the
variable `ffap-latex-guess-rules' is used for building a filename
out of NAME.

(fn NAME)#@13 

(fn RULE)
(defalias 'ffap-latex-mode #[257 "\304!\203 \207\305\306!\204 \307 \210\310\311#\207p	\212\312\313\314\315\316\"!\317 \320#)\2035 \321\322\323\324!\316\"ABB\262\325\326\320\"r\211q\210\327\330\"\216\331\303\"\331\302\"\332\333\306\334\320\334\314\327\335\f\"	\"&*\210edW\205j eb\336 {*\207" [ffap-tex-path ffap-latex-guess-rules exec-path process-environment file-exists-p executable-find "kpsewhich" ffap-tex-init ffap-locate-file (".cls" ".sty" ".tex" #1="") re-search-backward regexp-opt mapcar car (("input" . ".tex") ("include" . ".tex") ("usepackage" . ".sty") ("RequirePackageWithOptions" . ".sty") ("RequirePackage" . ".sty") ("documentclass" . ".cls") ("documentstyle" . ".cls") ("LoadClass" . ".cls") ("LoadClassWithOptions" . ".cls") ("bibliography" . ".bib") ("addbibresource" . #1#)) line-beginning-position t #1# assoc match-string 0 generate-new-buffer " *temp*" make-closure #[0 "\301\300!\205	 \302\300!\207" [V0 buffer-name kill-buffer] 2] buffer-local-value apply call-process nil #[257 "\211@\300AQ\207" [V0] 4 (#$ . 25000)] line-end-position] 14 (#$ . 24796)])
(defalias 'ffap-tex #[257 "\301 \210\302\303#\207" [ffap-tex-path ffap-tex-init ffap-locate-file t] 5 (#$ . 21102)])
(defvar ffap-bib-path (byte-code "\300\301\302\303!\"\207" [ffap-list-env "BIBINPUTS" ffap-reduce-path ("/usr/local/lib/tex/macros/bib" "/usr/lib/texmf/bibtex/bib")] 4))
(defalias 'ffap-bib #[257 "\301\302#\207" [ffap-bib-path ffap-locate-file t] 5 (#$ . 21102)])
(defalias 'ffap-dired #[257 "`\300\212\301 \210\302\303!\205- \304\305\300\306#\205- \307\310\306#\205- \311\312\313\224\313\225{\"\211\262!\205- \211)\207" [nil beginning-of-line 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 1] 8 (#$ . 21102)])
(defalias 'ffap-lcd #[257 "\301\302\303 \"\204 \304 \305\235\205A \306\307\310\"\211\311\232\203 \210\312\2026 \211\306\313!\232\203) \210\314\315\211\2050 \316\317\260\266\202\320\306\321\322\"!\323\314OQ\207" [ffap-ftp-default-user string-match "Lisp Code Dir" buffer-name ffap-string-around ("||" "|\n") ffap-symbol-value elisp-archive-host "archive.cis.ohio-state.edu" "localhost" "" ange-ftp-default-user nil "/" "@" ":" file-name-as-directory elisp-archive-directory "/pub/gnu/emacs/elisp-archive/" 2] 8 (#$ . 21102)])#@222 A `format' string making a filename for RFC documents.
This can be an URL, an ange-ftp or Tramp remote filename to
download, or a local filename if you have the full set of RFCs
locally.  See also `ffap-rfc-directories'.#@109 A list of directories to look for RFC files.
If a given RFC isn't in these then `ffap-rfc-path' is offered.
(byte-code "\300\301\302\303#\210\304\305\306\307\310DD\311\312\313\314\315&\210\304\316\306\307\317DD\320\312\321\314\322&\207" [make-obsolete ffap-lcd nil "29.1" custom-declare-variable ffap-rfc-path funcall function #[0 "\300\207" ["https://www.rfc-editor.org/in-notes/rfc%s.txt"] 1 (#$ . 572)] (#$ . 27399) :type string :version "28.1" ffap-rfc-directories #[0 "\300\207" [nil] 1 (#$ . 572)] (#$ . 27626) (repeat directory) "23.1"] 8)
(defalias 'ffap-rfc #[257 "\302\303\"\304\305\306\"\307#\206 \305	\"\207" [ffap-rfc-directories ffap-rfc-path match-string 1 ffap-locate-file format "rfc%s.txt" t] 6 (#$ . 21102)])#@448 Alist of (MODE CHARS BEG END), where MODE is a symbol.
This is possibly a major-mode name, or one of the symbols
`file', `url', `machine', and `nocolon'.
Function `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.
The arguments CHARS, BEG and END are handled as described in
`skip-chars-forward'.
(defvar ffap-string-at-point-mode-alist '((file "--:\\\\${}+<>@-Z_[:alpha:]~*?#" "{<@" "@>;.,!:}") (url "--:=&?$+@-Z_[:alpha:]~#,%;*()!'" "^[0-9a-zA-Z]" ":;.,!?") (nocolon "--9$+<>@-Z_[:alpha:]~" "<@" "@>;.,!?") (machine "-[:alnum:]." "" ".") (math-mode ",-:$+<>@-Z_[:lower:]~`" "<" "@>;.,!?`:") (latex-mode "--:\\\\$+<>@-Z_[:alpha:]~*?" "<@" "@>;.,!:") (plain-tex-mode "--:\\\\$+<>@-Z_[:alpha:]~*?" "<@" "@>;.,!:") (LaTeX-mode "--:\\\\$+<>@-Z_[:alpha:]~*?" "<@" "@>;.,!:") (plain-TeX-mode "--:\\\\$+<>@-Z_[:alpha:]~*?" "<@" "@>;.,!:") (xml-mode "--:\\\\${}+@-Z_[:alpha:]~*?#" "{<@" "@>;.,!:}") (nxml-mode "--:\\\\${}+@-Z_[:alpha:]~*?#" "{<@" "@>;.,!:}")) (#$ . 28367))#@62 Last string returned by the function `ffap-string-at-point'.
(defvar ffap-string-at-point nil (#$ . 29489))#@342 If non-nil, enable looking for paths with spaces in `ffap-string-at-point'.
Enabling this variable may lead to `find-file-at-point' guessing
wrong more often when trying to find a file name intermingled
with normal text, but can be useful when working on systems that
normally use spaces in file names (like Microsoft Windows and the
like).#@763 Search backward position point where file would probably end.
Optional DIR-SEPARATOR defaults to "/".  The search maximum is
`line-end-position' or optional END point.

Suppose the cursor is somewhere that might be near end of file,
the guessing would position point before punctuation (like comma)
after the file extension:

  C:\temp\file.log, which contain ....
  =============================== (before)
  ---------------- (after)


  C:\temp\file.log on Windows or /tmp/file.log on Unix
  =============================== (before)
  ---------------- (after)

The strategy is to search backward until DIR-SEPARATOR which defaults to
"/" and then take educated guesses.

Move point and return point if an adjustment was done.

(fn &optional DIR-SEPARATOR END)
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable ffap-file-name-with-spaces funcall function #[0 "\300\207" [nil] 1 (#$ . 572)] (#$ . 29603) :type boolean :version "28.1"] 8)
(defalias 'ffap-search-backward-file-end #[512 "\204 \300\262`\301\211\211\302\303!\304 \305#\205k \306u\210\307\310\206# \311 \305#\203` \312\225\262\313\306!\262\314\315!\262b\210\316\230\203J \211\203J `S\262\202` \316\230\203] \314\317!\203] \312\225\262\202` `\262b\210\205k b\210\207" ["/" nil re-search-backward regexp-quote line-beginning-position t 1 re-search-forward "\\([][<>()\"'`,.:;]\\)" line-end-position 0 match-string looking-at "[ 	\n]\\|$" "." "[a-zA-Z0-9.]+"] 10 (#$ . 29950)])#@224 Search DIR-SEPARATOR and position point at file's maximum ending.
This includes spaces.
Optional DIR-SEPARATOR defaults to "/".
Call `ffap-search-backward-file-end' to refine the ending point.

(fn &optional DIR-SEPARATOR)
(defalias 'ffap-search-forward-file-end #[256 "\211\204 \210\300\301\300\230\203 \302\202 \300\303Q\211\304\203  \305!\202! \300\304\260\306!\205. \307\225b\207" ["/" "[^][^<>()\"'`;,#*|" "\\\\" "	\n]" "*" regexp-quote looking-at 0] 7 (#$ . 31451)])#@139 Search backward and forward for closest slash or backlash in line.
Return string slash or backslash.  Point is moved to closest position.
(defalias 'ffap-dir-separator-near-point #[0 "`\300\211\301\302!\203 \303\262\304\225\262\301\305!\203( \211\203! \304\225W\203( \306\262\304\225\262b\210\307\303\310 \311#\203G \211\203B `ZZW\203G \266\303`Tb\210\307\312\310 \311#\203f \211\203a `ZZW\203f \266\306`T\211\203m \211b\210\207" [nil looking-at ".*?/" "/" 0 ".*?\\\\" "\\" re-search-backward line-beginning-position t "\\\\"] 7 (#$ . 31940)])#@719 Return a string of characters from around point.

MODE (defaults to value of `major-mode') is a symbol used to look up
string syntax parameters in `ffap-string-at-point-mode-alist'.

If MODE is not found, we use `file' instead of MODE.

If the region is active, return a string from the region.

If the point is in a comment, ensure that the returned string does not
contain the comment start characters (especially for major modes that
have "//" as comment start characters).

Set the variables `ffap-string-at-point' and
`ffap-string-at-point-region'.

When the region is active and larger than `ffap-max-region-length',
return an empty string, and set `ffap-string-at-point-region' to `(1 1)'.

(fn &optional MODE)
(defalias 'ffap-string-at-point #[256 "\306\206 	\236\206 \307	\236A\310 `\203 \311 \202M \212\n\203@ \312>\203@ \313 \211\262\203K \314\315!\316 \317#\203K \320\224b\210\202. @\306x\210A@w\210`)\203V \321 \202v \212@\306w\210\3228x\210\n\203t \323>\203t \324!\210\325!\210`)]^Z\204\244 \212\326\327!8)\203\244 \212\327!\3268\204\242 \330\306\211\331&\210`\262)\210\332!\203\273 \211W\203\273 D\333\"\211\207\334\211D\335\211\207" [major-mode ffap-string-at-point-mode-alist ffap-file-name-with-spaces ffap-max-region-length ffap-string-at-point-region ffap-string-at-point nil file use-region-p region-beginning (nil file) ffap-dir-separator-near-point re-search-backward regexp-quote line-beginning-position t 0 region-end 2 (nil file) ffap-search-forward-file-end ffap-search-backward-file-end 4 syntax-ppss parse-partial-sexp :commentstop natnump buffer-substring-no-properties 1 ""] 16 (#$ . 32507)])#@119 Return string of two chars around last result of function
`ffap-string-at-point'.
Assumes the buffer has not changed.
(defalias 'ffap-string-around #[0 "\212\301\302@b\210hA@b\210g#)\207" [ffap-string-at-point-region format "%c%c"] 4 (#$ . 34179)])#@92 Call function `ffap-string-at-point', and copy result to `kill-ring'.

(fn &optional MODE)
(defalias 'ffap-copy-string-as-kill #[256 "\300!\211\301\232\203 \302\303!\207\304!\210\302\305\"\207" [ffap-string-at-point "" message "No string found around point." kill-new "Copied to kill ring: %s"] 5 (#$ . 34435) nil])#@131 Return URL from around point if it exists, or nil.

Sets the variable `ffap-string-at-point-region' to the bounds of URL, if any.
(defalias 'ffap-url-at-point #[0 "\205+ 	\306\307\f\310 \205 \311 \312 B\"\262\211\203( \313\f!\211@AD\210*\266\202\207" [ffap-url-regexp ffap-foo-at-bar-prefix thing-at-point-default-mail-uri-scheme thing-at-point-beginning-of-url-regexp ffap-lax-url ffap-string-at-point-region nil thing-at-point-url-at-point use-region-p region-beginning region-end thing-at-point-bounds-of-url-at-point] 7 (#$ . 34761)])#@94 Regexp matching a key in a gopher bookmark.
Set to nil to disable matching gopher bookmarks.
(defvar ffap-gopher-regexp "\\<\\(Type\\|Name\\|Path\\|Host\\|Port\\) *= *" (#$ . 35315))#@58 Return (KEY . VALUE) of gopher bookmark on current line.
(defalias 'ffap--gopher-var-on-line #[0 "\212\301\210\302\301x\210`\303 \210\304\305#\205$ \306\307!\310\311\225\"\312\227!B\266\202)\207" [ffap-gopher-regexp nil " " beginning-of-line re-search-forward t match-string 1 buffer-substring-no-properties 0 intern] 5 (#$ . 35503)])#@140 If point is inside a gopher bookmark block, return its URL.

Sets the variable `ffap-string-at-point-region' to the bounds of URL, if any.
(defalias 'ffap-gopher-at-point #[0 ";\205\227 \212\302 \210o\204 \303 \203 \304y\210\202	 `\305\211\211\303 \262\2035 B\262\306y\210m\2045 \210\305\202 \210\266\201\237\211\205\224 `D\211\307\244\310\236A\311\236A\312\236A\313\236A\203q \314\315\"\203q \316\317\320\225SO\320\225\305OQ\266\205\202\224 G\306U\205\222 \205\222 \321\322\232\203\210 \323\202\213 \324P\325\260\266\205)\266\202\207" [ffap-gopher-regexp ffap-string-at-point-region beginning-of-line ffap--gopher-var-on-line -1 nil 1 ((type . "1") (port . "70")) path type host port string-match "\\`ftp:.*@" "ftp://" 4 0 "gopher://" "70" "" ":" "/"] 13 (#$ . 35850)])#@119 Strings matching this are coerced to FTP file names by ffap.
That is, ffap just prepends "/".  Set to nil to disable.
(defvar ffap-ftp-sans-slash-regexp (byte-code "\205 \301\207" [ffap-ftp-regexp "\\`\\([^:@]+@[^:@]+:\\|[^@.:]+\\.[^@:]+:\\|[^:]+:[~/]\\)\\([^:]\\|\\'\\)"] 1) (#$ . 36656))#@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 #[0 "\306\307 \310 \3111 \312\313\"?\205 \314!0\202 \210\202  \206! \211\315!	\316\317\"\216\320\235\2037 \321\202\257\204A \322!\206\257\204V \323\324\"\203V \322\325\211\224O!\206\257\n\203o \204o \323\n\"\203o \322\325\225\321O!\206\257\203y \326!\206\257\203\203 \322!\206\257\203\230 \323\324\"\203\230 \322\325\211\224O!\206\257\323\"\203\264 \310\327!\211G\325V\205\257 \211\262\322!\262\206\257\f\321\211\211\203\211\204@\262A\262@=\204\337 @;\203\271 \323@\"\203\271 \3301\354 A!0\202\356 \210\321\211\262\203\271 \331!\206\326!\206\322!\262\202\271 )\266\202\206\257\204'&\203'\323&\"\203'\326\332P!\206\257\321'\326	!\206F\333=\205F\323\334\335 \"\205F\332\335 \336\337O\340Q\211\205f\323\341\"\203_\322\342\343\225\321O\"!\206f\322\342\"!)\262\206\257(\203\213\323(\"\203\213\203\213\322\344\345!!!\203\213\206\257\211\203\243\322!\204\243\211\344\345!!\211\262\232\203\214\211\332\230?\205\255\322!\262+\207" [case-fold-search default-directory ffap-shell-prompt-regexp path-separator ffap-alist major-mode t match-data ffap-string-at-point (error) string-search "//" substitute-in-file-name file-name-absolute-p make-closure #[0 "\301\300!\207" [V0 set-match-data] 2] ("" "/" "//" "/*" ".") nil ffap-file-exists-string string-match ":[0-9]" 0 ffap-file-remote-p nocolon (error) ffap-url-p "/" internal-ange-ftp-mode "^\\*ftp \\(.*\\)@\\(.*\\)\\*$" buffer-name 5 -1 ":" "\\`\\(/?~?ftp\\)/" ffap-replace-file-component 1 file-name-directory directory-file-name ffap-ftp-sans-slash-regexp ffap-rfs-regexp ffap-dired-wildcards] 12 (#$ . 36954)])#@29 

(fn OPERATION &rest ARGS)
(defalias 'ffap--url-file-handler #[385 "\302B\303\267\202 \211@\202 \211@\202 \304\"*\207" [inhibit-file-name-handlers inhibit-file-name-operation ffap--url-file-handler #s(hash-table test eq purecopy t data (substitute-in-file-name 12 expand-file-name 17)) apply] 5 (#$ . 38891)])#@85 Read file or URL from minibuffer, with PROMPT and initial GUESS.

(fn PROMPT GUESS)
(defalias 'ffap-read-file-or-url #[514 "\303B\304\305\"\216\211	B\306!\203 \307\211#\202: \204! \n\262\310!\204. \311\312!!\262\313\314!\315\211\316!%)\207" [ffap-url-regexp file-name-handler-alist default-directory ffap--url-file-handler make-closure #[0 "\302\300	\"\211\207" [V0 file-name-handler-alist delq] 3] ffap-url-p read-file-name-default ffap-file-remote-p abbreviate-file-name expand-file-name read-file-name file-name-directory nil file-name-nondirectory] 10 (#$ . 39217)])#@59 If non-nil, ffap highlights the current buffer substring.
(defvar ffap-highlight t (#$ . 39810))#@54 Face used to highlight the current buffer substring.
(custom-declare-face 'ffap '((t :inherit highlight)) '(#$ . 39912) :group 'ffap :version "22.1")#@44 Overlay used by function `ffap-highlight'.
(defvar ffap-highlight-overlay nil (#$ . 40067))#@280 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'.

(fn &optional REMOVE)
(defalias 'ffap-highlight #[256 "\211\203\f \205* \303!\207	\204 \304\207\203  \305\n@\nA@p$\207\306\307\n\"\310\311\312#\207" [ffap-highlight-overlay ffap-highlight ffap-string-at-point-region delete-overlay nil move-overlay apply make-overlay overlay-put face ffap] 6 (#$ . 40165)])#@60 Return file or URL or nil, guessed from text around point.
(defalias 'ffap-guesser #[0 "\203 \301\302 \206\f \303 !\206! \304 \206! \305\306\307!!\206! \310\311 !\207" [ffap-url-regexp ffap-fixup-url ffap-url-at-point ffap-gopher-at-point ffap-file-at-point ffap-fixup-email thing-at-point email ffap-fixup-machine ffap-machine-at-point] 3 (#$ . 40741)])#@31 

(fn &optional GUESS SUFFIX)
(defalias 'ffap-prompter #[512 "\302\216\30323 \304\203 \305\306\206 \307\"\202 \305\310\206 \307\"\311\206& \312 )\211\262\2031 \313 \210\"0)\207" [ffap-url-regexp mark-active #[0 "\300\301!\207" [ffap-highlight t] 2] ffap-prompter ffap-read-file-or-url format "Find file or URL%s: " "" "Find file%s: " nil ffap-guesser ffap-highlight] 6 (#$ . 41103)])#@476 Find FILENAME, guessing a default from text around point.
If `ffap-url-regexp' is not nil, the FILENAME may also be an URL.
With a prefix, this command behaves exactly like `ffap-file-finder'.
If `ffap-require-prefix' is set, the prefix meaning is reversed.
See also the variables `ffap-dired-wildcards',
`ffap-url-unwrap-local', `ffap-url-unwrap-remote',
`ffap-file-name-with-spaces', and the functions `ffap-file-at-point'
and `ffap-url-at-point'.

(fn &optional FILENAME)
(defalias 'find-file-at-point #[256 "\306\307!\203 \203 	?\202 	\203 \310\311\n!)\207\211\204\" \312 \262\313!\211\2030 \310!)\207\f\203D \203D \314\"\203D !\207\203a \314\"\203a \203a \n\315>\203a \n\316!\317\"\207\203r \320!\204r \321\322!\203x \n\316!!\207\323\324\325\326E\"\207" [ffap-require-prefix current-prefix-arg ffap-file-finder ffap-url-fetcher ffap-pass-wildcards-to-dired ffap-dired-wildcards called-interactively-p interactive nil call-interactively ffap-prompter ffap-url-p string-match (find-file find-alternate-file) expand-file-name t file-exists-p y-or-n-p "File does not exist, create buffer? " signal file-missing "Opening file buffer" "No such file or directory" ffap-directory-finder find-file-wildcards ffap-newfile-prompt] 7 (#$ . 41504) nil])#@176 If non-nil, regexp overriding `ffap-next-regexp' in `ffap-menu'.
Make this more restrictive for faster menu building.
For example, try ":/" for URL (and some FTP) references.#@54 Buffer local cache of menu presented by `ffap-menu'.
(byte-code "\300\301\302\"\210\303\304\305\306\307DD\310\311\312\313\301&\207" [defalias ffap find-file-at-point custom-declare-variable ffap-menu-regexp funcall function #[0 "\300\207" [nil] 1 (#$ . 572)] (#$ . 42784) :type (choice (const nil) regexp) :group] 8)
(defvar ffap-menu-alist nil (#$ . 42964))#@126 Text properties applied to strings found by `ffap-menu-rescan'.
These properties may be used to fontify the menu references.
(make-variable-buffer-local 'ffap-menu-alist)
(defvar ffap-menu-text-plist (byte-code "\300 \203 \301\207\302\207" [display-mouse-p (face bold mouse-face highlight) nil] 1) (#$ . 43330))#@319 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'.

(fn &optional RESCAN)
(defalias 'ffap-menu #[256 "\203 \211\204 \203! @\212\211Ab\210\211@\302 \232)\262\204! \303 \210\304	\203* \305\202+ \306\307\310BB\311#\207" [ffap-menu-alist ffap-url-regexp ffap-guesser ffap-menu-rescan ffap-menu-ask "Find file or URL" "Find file" "*Rescan Buffer*" -1 ffap-menu-cont] 5 (#$ . 43649) "P"])#@15 

(fn CHOICE)
(defalias 'ffap-menu-cont #[257 "\211A\301W\203 \302\303!\207\304 \210\211Ab\210\305\216\203  \306 \203  \300 \210\307\301!\210\310@!)\207" [ffap-highlight 0 ffap-menu t push-mark #[0 "\300\301!\207" [ffap-highlight t] 2] ffap-guesser sit-for find-file-at-point] 3 (#$ . 44288)])#@401 Prompt from a menu of choices, and then apply some action.
Arguments are TITLE, ALIST, and CONT (a continuation function).
This uses either a menu or the minibuffer depending on invocation.
The TITLE string is used as either the prompt or menu title.
Each ALIST entry looks like (STRING . DATA) and defines one choice.
Function CONT is applied to the entry chosen by the user.

(fn TITLE ALIST CONT)#@10 

(fn I)
(defalias 'ffap-menu-ask #[771 "\302\303\304!\203\" <\203\" \203\" \304\305\306\307\310\"BD\"\262\202B \311\312\313@@\"\302\305\302%)\262\314\315!\210\316\"\206@ @\262\211\203J !\207\317\320!\302\207" [last-nonmenu-event minibuffer-setup-hook nil fboundp x-popup-menu t "" mapcar #[257 "\211@B\207" [] 3 (#$ . 44996)] minibuffer-completion-help completing-read format-prompt sit-for 0 assoc message "No choice made!"] 12 (#$ . 44591)])#@129 Search buffer for `ffap-menu-regexp' to build `ffap-menu-alist'.
Applies `ffap-menu-text-plist' text properties at all matches.#@12 

(fn A B)
(defalias 'ffap-menu-rescan #[0 "\206 	deZ\306 \307\310\n\236\203 \n\202 \311\310\312\313\"\216\212eb\210\314 \211\262\203O \211`BB\315@`#\210\316\317\320`eZ\321_\"#\210\202' -\266\316\322!\210\323\324\"\211\211A\203y \211@@A@@\232\203u \211AA\241\210\202\\ A\202\\ \210\323\325\"\211\207" [ffap-menu-regexp ffap-next-regexp major-mode ffap-string-at-point-mode-alist inhibit-read-only ffap-menu-alist buffer-modified-p t nil file make-closure #[0 "\300\206 \301\302!\207" [V0 restore-buffer-modified-p nil] 2] ffap-next-guess add-text-properties message "Scanning...%2d%% <%s>" floor 100.0 "Scanning...done" sort #[514 "@@\231\207" #1=[] 4 (#$ . 45599)] #[514 "AAW\207" #1# 4 (#$ . 45599)] ffap-string-at-point-region ffap-menu-text-plist] 11 (#$ . 45466) nil])#@128 Command invoked by `ffap-at-mouse' if nothing found at click, or nil.
Ignored when `ffap-at-mouse' is called programmatically.
(defvar ffap-at-mouse-fallback nil (#$ . 46413))#@284 Find file or URL guessed from text around mouse click.
Interactively, calls `ffap-at-mouse-fallback' if no guess is found.
Return value:
  * if a guess string is found, return it (after finding it)
  * if the fallback is called, return whatever it returns
  * otherwise, nil

(fn E)
(put 'ffap-at-mouse-fallback 'risky-local-variable t)
(defalias 'ffap-at-mouse #[257 "\212\301!\210\302 )\211\203( \303\304!@!q\210\305 \210\306\216\307\310!\210\311\312\"\210\313!)\210\207\314\315!\205; \2036 \316!\207\311\317!\210\320\207" [ffap-at-mouse-fallback mouse-set-point ffap-guesser window-buffer event-start ffap-highlight #[0 "\300\301!\207" [ffap-highlight t] 2] sit-for 0 message "Finding `%s'" find-file-at-point called-interactively-p interactive call-interactively "No file or URL found at mouse click." nil] 5 (#$ . 46595) "e"])#@98 Like `ffap', but put buffer in another window.
Only intended for interactive use.

(fn FILENAME)
(defalias 'ffap-other-window #[257 "\300 \301\302\"\216\303!)\262\304!\203 \305!\207\211:\205) \211\242\304!\205' \305!\262\207" [current-window-configuration make-closure #[0 "\301\300!\207" [V0 set-window-configuration] 2] find-file-at-point bufferp switch-to-buffer-other-window] 5 (#$ . 47438) (byte-code "\300\301\302\"C\207" [ffap-prompter nil " other window"] 3)])#@97 Like `ffap', but put buffer in another frame.
Only intended for interactive use.

(fn FILENAME)
(defalias 'ffap-other-frame #[257 "\300 \301!\302\303\304#\216\305\302\"\210\306\307 \303\310\"\216\311!\262\312!\204/ \312\242!\204/ p\262p)\262!)\210\207" [selected-window window-dedicated-p nil make-closure #[0 "\302\301\300\"\207" [V0 V1 set-window-dedicated-p] 3] set-window-dedicated-p switch-to-buffer-other-frame current-window-configuration #[0 "\301\300!\207" [V0 set-window-configuration] 2] find-file-at-point bufferp] 9 (#$ . 47921) (byte-code "\300\301\302\"C\207" [ffap-prompter nil " other frame"] 3)])#@95 Like `ffap', but put buffer in another tab.
Only intended for interactive use.

(fn FILENAME)
(defalias 'ffap-other-tab #[257 "\300 \301\302\"\216\303!)\262\304!\203 \305!\207\211:\205) \211\242\304!\205' \305!\262\207" [current-window-configuration make-closure #[0 "\301\300!\207" [V0 set-window-configuration] 2] find-file-at-point bufferp switch-to-buffer-other-tab] 5 (#$ . 48553) (byte-code "\300\301\302\"C\207" [ffap-prompter nil " other tab"] 3)])#@23 

(fn BUFFER-OR-LIST)
(defalias 'ffap--toggle-read-only #[257 "\211<\203	 \211\202 \211C\211\205 \211@r\211q\210\300\301!)\266A\202 \207" [read-only-mode 1] 5 (#$ . 49024)])#@94 Like `ffap', but mark buffer as read-only.
Only intended for interactive use.

(fn FILENAME)
(defalias 'ffap-read-only #[257 "\300!\301!\204 \301\242!\204 \210p\302!\210\207" [find-file-at-point bufferp ffap--toggle-read-only] 4 (#$ . 49207) (byte-code "\300\301\302\"C\207" [ffap-prompter nil " read only"] 3)])#@120 Like `ffap', but put buffer in another window and mark as read-only.
Only intended for interactive use.

(fn FILENAME)
(defalias 'ffap-read-only-other-window #[257 "\300!\301!\210\207" [ffap-other-window ffap--toggle-read-only] 4 (#$ . 49532) (byte-code "\300\301\302\"C\207" [ffap-prompter nil " read only other window"] 3)])#@119 Like `ffap', but put buffer in another frame and mark as read-only.
Only intended for interactive use.

(fn FILENAME)
(defalias 'ffap-read-only-other-frame #[257 "\300!\301!\210\207" [ffap-other-frame ffap--toggle-read-only] 4 (#$ . 49867) (byte-code "\300\301\302\"C\207" [ffap-prompter nil " read only other frame"] 3)])#@117 Like `ffap', but put buffer in another tab and mark as read-only.
Only intended for interactive use.

(fn FILENAME)
(defalias 'ffap-read-only-other-tab #[257 "\300\301!!\302!\210\207" [window-buffer ffap-other-tab ffap--toggle-read-only] 4 (#$ . 50198) (byte-code "\300\301\302\"C\207" [ffap-prompter nil " read only other tab"] 3)])#@90 Like `ffap' and `find-alternate-file'.
Only intended for interactive use.

(fn FILENAME)
(defalias 'ffap-alternate-file #[257 "\301\302!)\207" [ffap-file-finder find-alternate-file find-file-at-point] 3 (#$ . 50539) (byte-code "\300\301\302\"C\207" [ffap-prompter nil " alternate file"] 3)])#@103 Like `ffap' and `find-alternate-file-other-window'.
Only intended for interactive use.

(fn FILENAME)
(defalias 'ffap-alternate-file-other-window #[257 "\301\302!)\207" [ffap-file-finder find-alternate-file-other-window find-file-at-point] 3 (#$ . 50839) (byte-code "\300\301\302\"C\207" [ffap-prompter nil " alternate file other window"] 3)])#@98 Like `ffap' and command `find-file-literally'.
Only intended for interactive use.

(fn FILENAME)
(defalias 'ffap-literally #[257 "\301\302!)\207" [ffap-file-finder find-file-literally find-file-at-point] 3 (#$ . 51190) (byte-code "\300\301\302\"C\207" [ffap-prompter nil " literally"] 3)])#@62 Bind `ffap-next' and `ffap-menu' to \`M-l' and \`M-m', resp.
(defalias 'find-file-literally-at-point 'ffap-literally)
(defalias 'ffap-ro-mode-hook #[0 "\300\301\302\"\210\300\303\304\"\207" [local-set-key "\354" ffap-next "\355" ffap-menu] 3 (#$ . 51487)])#@72 Bind `ffap-gnus-next' and `ffap-gnus-menu' to \`M-l' and \`M-m', resp.
(defalias 'ffap-gnus-hook #[0 "\301\300!\210\302\303\304\305\"\210\303\306\307\"\207" [thing-at-point-default-mail-uri-scheme make-local-variable "news" local-set-key "\354" ffap-gnus-next "\355" ffap-gnus-menu] 3 (#$ . 51749)])#@13 

(fn FORM)
(defalias 'ffap-gnus-wrapper #[257 "p\302!=\203 \303 \210\304 \305\306!\210\307	!\210~\210`e=\203# \310\311\312\313#\210\314\315\"\216\316!)\207" [gnus-summary-buffer gnus-article-buffer get-buffer gnus-summary-select-article window-buffer gnus-configure-windows article pop-to-buffer search-forward "\n\n" nil t make-closure #[0 "\301\300!\207" [V0 pop-to-buffer] 2] eval] 6 (#$ . 52055)])#@45 Run `ffap-next' in the gnus article buffer.
(defalias 'ffap-gnus-next #[0 "\300\301!\207" [ffap-gnus-wrapper (ffap-next nil t)] 2 (#$ . 52467) nil])#@45 Run `ffap-menu' in the gnus article buffer.
(defalias 'ffap-gnus-menu #[0 "\300\301!\207" [ffap-gnus-wrapper (ffap-menu)] 2 (#$ . 52621) nil])#@156 Start Dired, defaulting to file at point.  See `ffap'.
If `dired-at-point-require-prefix' is set, the prefix meaning is reversed.

(fn &optional FILENAME)
(defalias 'dired-at-point #[256 "\305\306!\203 \203 	?\202 	\203 \307\310\n!)\207\211\204\" \311 \262\312!\211\203- !\207\f\203< \313\f\"\203< \n!\207\314!\203V \315!\203N \n\316!!\207\n\316!\317P!\207\320\321\322!!\206` !\203r \323\324!\203r \325!\210\n!\207\326\327\330\331E\"\207" [dired-at-point-require-prefix current-prefix-arg ffap-directory-finder ffap-url-fetcher ffap-dired-wildcards called-interactively-p interactive nil call-interactively dired-at-point-prompter ffap-url-p string-match file-exists-p file-directory-p expand-file-name "*" file-writable-p file-name-directory directory-file-name y-or-n-p "Directory does not exist, create it? " make-directory signal file-missing "Opening directory" "No such file or directory"] 7 (#$ . 52770) nil])#@24 

(fn &optional GUESS)
(defalias 'dired-at-point-prompter #[256 "\302\216\303\304=\203 \305\202 	\203 \306\202 \307\206 \310 \211\204% \210\311\202W \312!\206U \313!\204W \314\315!!\262\316!\203F \317!\262\202W \320!\203T \321!\262\202W \211\262\211\262\203a \322 \210\")\207" [ffap-directory-finder ffap-url-regexp #[0 "\300\301!\207" [ffap-highlight t] 2] ffap-read-file-or-url list-directory "List directory (brief): " "Dired file or URL: " "Dired file: " ffap-guesser nil ffap-url-p ffap-file-remote-p abbreviate-file-name expand-file-name file-directory-p file-name-as-directory file-regular-p file-name-directory ffap-highlight] 7 (#$ . 53713)])#@93 Like `dired-at-point', but put buffer in another window.
Only intended for interactive use.
(defalias 'ffap-dired-other-window #[0 "\300\301\302 \303\304\"\216\305\306!\262p)\262!\210\207" [nil switch-to-buffer-other-window current-window-configuration make-closure #[0 "\301\300!\207" [V0 set-window-configuration] 2] call-interactively dired-at-point] 6 (#$ . 54390) nil])#@92 Like `dired-at-point', but put buffer in another frame.
Only intended for interactive use.
(defalias 'ffap-dired-other-frame #[0 "\300 \301!\302\303\304#\216\305\302\"\210\306\307 \303\310\"\216\311\312!\262p)\262!)\210\207" [selected-window window-dedicated-p nil make-closure #[0 "\302\301\300\"\207" [V0 V1 set-window-dedicated-p] 3] set-window-dedicated-p switch-to-buffer-other-frame current-window-configuration #[0 "\301\300!\207" [V0 set-window-configuration] 2] call-interactively dired-at-point] 8 (#$ . 54773) nil])#@80 Like `dired-at-point' and `list-directory'.
Only intended for interactive use.
(defalias 'ffap-list-directory #[0 "\301\302\303!)\207" [ffap-directory-finder list-directory call-interactively dired-at-point] 2 (#$ . 55312) nil])#@101 Try to get a file name at point.
This hook is intended to be put in `file-name-at-point-functions'.
(defalias 'ffap-guess-file-name-at-point #[0 "\3001\n \301 0\202\f \210\302\211;\2052 \303!\211\2060 \304!\204% \305\306!!\262\307!\203/ \310!\207\262\207" [(error) ffap-guesser nil ffap-url-p ffap-file-remote-p abbreviate-file-name expand-file-name file-directory-p file-name-as-directory] 5 (#$ . 55548)])#@202 List of binding forms evaluated by function `ffap-bindings'.
A reasonable ffap installation needs just this one line:
  (ffap-bindings)
Of course if you do not like these bindings, just roll your own!
(defvar ffap-bindings '((global-set-key [S-mouse-3] 'ffap-at-mouse) (global-set-key [C-S-mouse-3] 'ffap-menu) (global-set-key [remap find-file] 'find-file-at-point) (global-set-key [remap find-file-read-only] 'ffap-read-only) (global-set-key [remap find-alternate-file] 'ffap-alternate-file) (global-set-key [remap find-file-other-window] 'ffap-other-window) (global-set-key [remap find-file-other-frame] 'ffap-other-frame) (global-set-key [remap find-file-other-tab] 'ffap-other-tab) (global-set-key [remap find-file-read-only-other-window] 'ffap-read-only-other-window) (global-set-key [remap find-file-read-only-other-frame] 'ffap-read-only-other-frame) (global-set-key [remap dired] 'dired-at-point) (global-set-key [remap dired-other-window] 'ffap-dired-other-window) (global-set-key [remap dired-other-frame] 'ffap-dired-other-frame) (global-set-key [remap list-directory] 'ffap-list-directory) (add-hook 'gnus-summary-mode-hook 'ffap-gnus-hook) (add-hook 'gnus-article-mode-hook 'ffap-gnus-hook) (add-hook 'vm-mode-hook 'ffap-ro-mode-hook) (add-hook 'rmail-mode-hook 'ffap-ro-mode-hook)) (#$ . 55970))#@49 Evaluate the forms in variable `ffap-bindings'.
(defalias 'ffap-bindings #[0 "\301\302B!\207" [ffap-bindings eval progn] 3 (#$ . 57285) nil])
(byte-code "\300\301\302\303#\210\304\211\203& \211@\301N\203! \302N\204! \305\302\301N#\210\210A\202 \210\306\301\302\307#\210\300\310\311\303#\210\304\211\203S \211@\310N\203N \311N\204N \305\311\310N#\210\210A\2024 \210\306\310\311\307#\210\312\313\314\303#\210\315\313\314\307#\210\316\317!\207" [defvaralias ffap-newsgroup-regexp thing-at-point-newsgroup-regexp nil (saved-value saved-variable-comment) put make-obsolete-variable "30.1" ffap-newsgroup-heads thing-at-point-newsgroup-heads defalias ffap-newsgroup-p thing-at-point-newsgroup-p make-obsolete provide ffap] 7)
