]> git.eshelyaron.com Git - emacs.git/commitdiff
gnus-html: Comment fix.; gnus-art.el: Provide an `u' command on urls and the like...
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Sat, 4 Sep 2010 00:12:44 +0000 (00:12 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Sat, 4 Sep 2010 00:12:44 +0000 (00:12 +0000)
lisp/gnus/ChangeLog
lisp/gnus/gnus-art.el
lisp/gnus/gnus-html.el

index c23a59867e2cc9dc086f2b833255eb942ca6dc11..0377808ed7e02c4c46c0a79a3a5f295faffe8934 100644 (file)
@@ -1,3 +1,9 @@
+2010-09-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus-art.el (gnus-article-copy-string): New command and key binding.
+
+       * gnus-html.el: Doc fix.
+
 2010-09-03  Katsumi Yamaoka  <yamaoka@jpl.org>
 
        * gnus-html.el (gnus-html-put-image): Use gnus-graphic-display-p,
index a4675a75a8162a4489f03f6fd21d19083b5e7712..56e78cc5544411c2f368c8e08c1d4a489fe5ce68 100644 (file)
@@ -4823,6 +4823,22 @@ General format specifiers can also be used.  See Info node
                (vector (caddr c) (car c) :active t))
              gnus-mime-button-commands)))
 
+(defvar gnus-url-button-commands
+  '((gnus-article-copy-string "u" "Copy URL to kill ring")))
+
+(defvar gnus-url-button-map
+  (let ((map (make-sparse-keymap)))
+    (dolist (c gnus-url-button-commands)
+      (define-key map (cadr c) (car c)))
+    map))
+
+(easy-menu-define
+  gnus-url-button-menu gnus-url-button-map "URL button menu."
+  `("Url Button"
+    ,@(mapcar (lambda (c)
+               (vector (caddr c) (car c) :active t))
+             gnus-url-button-commands)))
+
 (defmacro gnus-bind-safe-url-regexp (&rest body)
   "Bind `mm-w3m-safe-url-regexp' according to `gnus-safe-html-newsgroups'."
   `(let ((mm-w3m-safe-url-regexp
@@ -7813,7 +7829,11 @@ specified by `gnus-button-alist'."
              (unless (and (eq (car entry) 'gnus-button-url-regexp)
                           (gnus-article-extend-url-button from start end))
                (gnus-article-add-button start end
-                                        'gnus-button-push from)))))))))
+                                        'gnus-button-push from)
+               (gnus-put-text-property
+                start end
+                'gnus-data (buffer-substring-no-properties
+                            start end))))))))))
 
 (defun gnus-article-extend-url-button (beg start end)
   "Extend url button if url is folded into two or more lines.
@@ -7918,8 +7938,19 @@ url is put as the `gnus-button-url' overlay property on the button."
          (and data (list 'gnus-data data))))
   (widget-convert-button 'link from to :action 'gnus-widget-press-button
                         :help-echo (or text "Follow the link")
+                        :keymap gnus-url-button-map
                         :button-keymap gnus-widget-button-keymap))
 
+(defun gnus-article-copy-string ()
+  "Copy the string in the button to the kill ring."
+  (interactive)
+  (gnus-article-check-buffer)
+  (let ((data (get-text-property (point) 'gnus-data)))
+    (when data
+      (with-temp-buffer
+       (insert data)
+       (copy-region-as-kill (point-min) (point-max))))))
+
 ;;; Internal functions:
 
 (defun gnus-article-set-globals ()
index 8717a4630df6ff067cef475bc652c45217135ba5..6687415ec1679c360f098b48e847d731ab0bb35f 100644 (file)
@@ -1,4 +1,4 @@
-;;; gnus-html.el --- Quoted-Printable functions
+;;; gnus-html.el --- Render HTML in a buffer.
 
 ;; Copyright (C) 2010  Free Software Foundation, Inc.