;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 "". 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) " \fe 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 deb \"\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$!LJ" [delete-process open-network-stream "ffap-machine-p" nil host service "discard" t] 6) ((error (byte-code "A@ \"Ă5 \" 5 ƚ/8Ț?585@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\"\n33\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ʼn  * @ A ˏUU\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˚ĈPK\nа)єѕOP)z!e!xGUxy)" [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#>\nOT B c cA\"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:@)AP8BBCMBBDEFMEB" ["\\.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 xA`){ \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\"WXӉ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!oy\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 !UX \"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 / GB0C&!?!)" [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 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@ * *ǂ+BB#" [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) "!!!! " 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) " ! )\" Ŏ! \" !)5t2 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 " "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)