emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r105325: Simplify url handling in rci


From: Leo Liu
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r105325: Simplify url handling in rcirc-mode
Date: Wed, 27 Jul 2011 11:44:45 +0800
User-agent: Bazaar (2.3.1)

------------------------------------------------------------
revno: 105325
committer: Leo Liu <address@hidden>
branch nick: trunk
timestamp: Wed 2011-07-27 11:44:45 +0800
message:
  Simplify url handling in rcirc-mode
modified:
  lisp/ChangeLog
  lisp/net/rcirc.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2011-07-26 19:18:40 +0000
+++ b/lisp/ChangeLog    2011-07-27 03:44:45 +0000
@@ -1,3 +1,11 @@
+2011-07-27  Leo Liu  <address@hidden>
+
+       Simplify url handling in rcirc-mode.
+
+       * net/rcirc.el (rcirc-browse-url-map, rcirc-browse-url-at-point)
+       (rcirc-browse-url-at-mouse): Remove.
+       * net/rcirc.el (rcirc-markup-urls): Use `make-button'.
+
 2011-07-26  Alan Mackenzie  <address@hidden>
 
        Fontify bitfield declarations properly.

=== modified file 'lisp/net/rcirc.el'
--- a/lisp/net/rcirc.el 2011-06-20 12:55:24 +0000
+++ b/lisp/net/rcirc.el 2011-07-27 03:44:45 +0000
@@ -935,14 +935,6 @@
     map)
   "Keymap for rcirc mode.")
 
-(defvar rcirc-browse-url-map
-  (let ((map (make-sparse-keymap)))
-    (define-key map (kbd "RET") 'rcirc-browse-url-at-point)
-    (define-key map (kbd "<mouse-2>") 'rcirc-browse-url-at-mouse)
-    (define-key map [follow-link] 'mouse-face)
-    map)
-  "Keymap used for browsing URLs in `rcirc-mode'.")
-
 (defvar rcirc-short-buffer-name nil
   "Generated abbreviation to use to indicate buffer activity.")
 
@@ -2351,21 +2343,6 @@
     (browse-url (completing-read "rcirc browse-url: "
                                  completions nil nil initial-input 'history)
                 arg)))
-
-(defun rcirc-browse-url-at-point (point)
-  "Send URL at point to `browse-url'."
-  (interactive "d")
-  (let ((beg (previous-single-property-change (1+ point) 'mouse-face))
-       (end (next-single-property-change point 'mouse-face)))
-    (browse-url (buffer-substring-no-properties beg end))))
-
-(defun rcirc-browse-url-at-mouse (event)
-  "Send URL at mouse click to `browse-url'."
-  (interactive "e")
-  (let ((position (event-end event)))
-    (with-current-buffer (window-buffer (posn-window position))
-      (rcirc-browse-url-at-point (posn-point position)))))
-
 
 (defun rcirc-markup-timestamp (sender response)
   (goto-char (point-min))
@@ -2406,12 +2383,16 @@
   (while (and rcirc-url-regexp ;; nil means disable URL catching
               (re-search-forward rcirc-url-regexp nil t))
     (let ((start (match-beginning 0))
-         (end (match-end 0)))
-      (rcirc-add-face start end 'rcirc-url)
-      (add-text-properties start end (list 'mouse-face 'highlight
-                                          'keymap rcirc-browse-url-map))
+         (end (match-end 0))
+         (url (match-string-no-properties 0)))
+      (make-button start end
+                  'face 'rcirc-url
+                  'follow-link t
+                  'rcirc-url url
+                  'action (lambda (button)
+                            (browse-url (button-get button 'rcirc-url))))
       ;; record the url
-      (push (buffer-substring-no-properties start end) rcirc-urls))))
+      (push url rcirc-urls))))
 
 (defun rcirc-markup-keywords (sender response)
   (when (and (string= response "PRIVMSG")


reply via email to

[Prev in Thread] Current Thread [Next in Thread]