X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/c99310d54819188ad371d1901eba9acb9bc844e1..87e7795ecea5c89342917bb3de23995a49742195:/lisp/ffap.el?ds=sidebyside diff --git a/lisp/ffap.el b/lisp/ffap.el index ab9d223256..ff35ae0dea 100644 --- a/lisp/ffap.el +++ b/lisp/ffap.el @@ -1,6 +1,7 @@ ;;; ffap.el --- find file (or url) at point -;; Copyright (C) 1995, 96, 97, 2000, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1996, 1997, 2000, 2002, 2003, 2004, +;; 2005 Free Software Foundation, Inc. ;; Author: Michelangelo Grigni ;; Maintainer: Rajesh Vaidheeswarran @@ -22,8 +23,8 @@ ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. ;;; Commentary: @@ -217,10 +218,13 @@ Sensible values are nil, \"news\", or \"mailto\"." "*A regexp matching filename wildcard characters, or nil. If `find-file-at-point' gets a filename matching this pattern, -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'. +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'." @@ -230,6 +234,11 @@ it passes it on to `dired'." ) :group 'ffap) +(defcustom ffap-pass-wildcards-to-dired nil + "*If non-nil, pass filenames matching `ffap-dired-wildcards' to dired." + :type 'boolean + :group 'ffap) + (defcustom ffap-newfile-prompt nil ;; Suggestion from RHOGEE, 11 Jul 1994. Disabled, I think this is ;; better handled by `find-file-not-found-hooks'. @@ -962,7 +971,7 @@ If t, `ffap-tex-init' will initialize this when needed.") ;; * no commas (good for latex) (file "--:$+<>@-Z_a-z~*?" "<@" "@>;.,!:") ;; An url, or maybe a email/news message-id: - (url "--:=&?$+@-Z_a-z~#,%;" "^A-Za-z0-9" ":;.,!?") + (url "--:=&?$+@-Z_a-z~#,%;*" "^A-Za-z0-9" ":;.,!?") ;; Find a string that does *not* contain a colon: (nocolon "--9$+<>@-Z_a-z~" "<@" "@>;.,!?") ;; A machine: @@ -1371,9 +1380,7 @@ 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-newfile-prompt', -and the functions `ffap-file-at-point' and `ffap-url-at-point'. - -See for latest version." +and the functions `ffap-file-at-point' and `ffap-url-at-point'." (interactive) (if (and (interactive-p) (if ffap-require-prefix (not current-prefix-arg) @@ -1386,6 +1393,10 @@ See for latest version." ((ffap-url-p filename) (let (current-prefix-arg) ; w3 2.3.25 bug, reported by KPC (funcall ffap-url-fetcher filename))) + ((and ffap-pass-wildcards-to-dired + ffap-dired-wildcards + (string-match ffap-dired-wildcards filename)) + (funcall ffap-directory-finder filename)) ((and ffap-dired-wildcards (string-match ffap-dired-wildcards filename) find-file-wildcards @@ -1508,7 +1519,9 @@ Applies `ffap-menu-text-plist' text properties at all matches." (let ((ffap-next-regexp (or ffap-menu-regexp ffap-next-regexp)) (range (- (point-max) (point-min))) (mod (buffer-modified-p)) ; was buffer modified? - buffer-read-only ; to set text-properties + ;; inhibit-read-only works on read-only text properties + ;; as well as read-only buffers. + (inhibit-read-only t) ; to set text-properties item ;; Avoid repeated searches of the *mode-alist: (major-mode (if (assq major-mode ffap-string-at-point-mode-alist) @@ -1699,6 +1712,9 @@ Only intended for interactive use." (local-set-key "\M-l" 'ffap-gnus-next) (local-set-key "\M-m" 'ffap-gnus-menu)) +(defvar gnus-summary-buffer) +(defvar gnus-article-buffer) + (defun ffap-gnus-wrapper (form) ; used by both commands below (and (eq (current-buffer) (get-buffer gnus-summary-buffer)) (gnus-summary-select-article)) ; get article of current line