Mercurial > emacs
changeset 30345:d24028985f3d
(goto-address-fontify): Don't bother with buffer-modified and read-only
stuff -- irrelevant with overlays. Put an extra property on the
overlays and use it to clean up in case goto-address is re-run.
author | Dave Love <fx@gnu.org> |
---|---|
date | Thu, 20 Jul 2000 17:29:46 +0000 |
parents | 9f2a382a22e3 |
children | e720a582ab3b |
files | lisp/net/goto-addr.el |
diffstat | 1 files changed, 11 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/net/goto-addr.el Thu Jul 20 12:50:09 2000 +0000 +++ b/lisp/net/goto-addr.el Thu Jul 20 17:29:46 2000 +0000 @@ -50,17 +50,13 @@ ;; m)) ;; -;; BUG REPORTS -;; -;; Please send bug reports to me at ericding@mit.edu. - ;; Known bugs/features: ;; * goto-address-mail-regexp only catches foo@bar.org style addressing, ;; not stuff like X.400 addresses, etc. ;; * regexp also catches Message-Id line, since it is in the format of ;; an Internet e-mail address (like Compuserve addresses) -;; * If show buffer is fontified after goto-address-fontify is run -;; (say, using font-lock-fontify-buffer), then font-lock face will +;; * If the buffer is fontified after goto-address-fontify is run +;; (say, using font-lock-fontify-buffer), then font-lock faces will ;; override goto-address faces. ;;; Code: @@ -132,10 +128,12 @@ "Fontify the URLs and e-mail addresses in the current buffer. This function implements `goto-address-highlight-p' and `goto-address-fontify-p'." + ;; Clean up from any previous go. + (dolist (overlay (overlays-in (point-min) (point-max))) + (if (overlay-get overlay 'goto-address) + (delete-overlay overlay))) (save-excursion - (let ((inhibit-read-only t) - (inhibit-point-motion-hooks t) - (modified (buffer-modified-p))) + (let ((inhibit-point-motion-hooks t)) (goto-char (point-min)) (if (< (- (point-max) (point)) goto-address-fontify-maximum-size) (progn @@ -150,7 +148,8 @@ (overlay-put this-overlay 'help-echo "mouse-2: follow URL") (overlay-put this-overlay - 'keymap goto-address-highlight-keymap))) + 'keymap goto-address-highlight-keymap) + (overlay-put this-overlay 'goto-address t))) (goto-char (point-min)) (while (re-search-forward goto-address-mail-regexp nil t) (let* ((s (match-beginning 0)) @@ -163,10 +162,8 @@ (overlay-put this-overlay 'help-echo "mouse-2: follow URL") (overlay-put this-overlay - 'keymap goto-address-highlight-keymap))))) - (and (buffer-modified-p) - (not modified) - (set-buffer-modified-p nil))))) + 'keymap goto-address-highlight-keymap) + (overlay-put this-overlay 'goto-address t)))))))) ;;; code to find and goto addresses; much of this has been blatantly ;;; snarfed from browse-url.el