changeset 66513:bfd70a868157

(help-url): New button type. Calls browse-url. (help-xref-url-regexp): New regexp to recognize URLs in docstring. Similar to Info nodes: URL `url'. (help-make-xrefs): Create help-url buttons for help-xref-url-regexp matches.
author Bill Wohler <wohler@newt.com>
date Fri, 28 Oct 2005 21:27:13 +0000
parents 759df5a9dc3e
children 1ab4a8980046
files lisp/ChangeLog lisp/help-mode.el
diffstat 2 files changed, 23 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Fri Oct 28 21:03:35 2005 +0000
+++ b/lisp/ChangeLog	Fri Oct 28 21:27:13 2005 +0000
@@ -1,3 +1,11 @@
+2005-10-28  Bill Wohler  <wohler@newt.com>
+
+	* help-mode.el (help-url): New button type. Calls browse-url.
+	(help-xref-url-regexp): New regexp to recognize URLs in docstring.
+	Similar to Info nodes: URL `url'.
+	(help-make-xrefs): Create help-url buttons for
+	help-xref-url-regexp matches.
+
 2005-10-29  Nick Roberts  <nickrob@snap.net.nz>
 
 	* tool-bar.el (tool-bar-add-item-from-menu)
--- a/lisp/help-mode.el	Fri Oct 28 21:03:35 2005 +0000
+++ b/lisp/help-mode.el	Fri Oct 28 21:27:13 2005 +0000
@@ -126,7 +126,12 @@
 (define-button-type 'help-info
   :supertype 'help-xref
   'help-function #'info
-  'help-echo (purecopy"mouse-2, RET: read this Info node"))
+  'help-echo (purecopy "mouse-2, RET: read this Info node"))
+
+(define-button-type 'help-url
+  :supertype 'help-xref
+  'help-function #'browse-url
+  'help-echo (purecopy "mouse-2, RET: view this URL in a browser"))
 
 (define-button-type 'help-customize-variable
   :supertype 'help-xref
@@ -257,6 +262,10 @@
   (purecopy "\\<[Ii]nfo[ \t\n]+\\(node\\|anchor\\)[ \t\n]+`\\([^']+\\)'")
   "Regexp matching doc string references to an Info node.")
 
+(defconst help-xref-url-regexp
+  (purecopy "\\<[Uu][Rr][Ll][ \t\n]+`\\([^']+\\)'")
+  "Regexp matching doc string references to a URL.")
+
 ;;;###autoload
 (defun help-setup-xref (item interactive-p)
   "Invoked from commands using the \"*Help*\" buffer to install some xref info.
@@ -338,6 +347,11 @@
 		      (unless (string-match "^([^)]+)" data)
 			(setq data (concat "(emacs)" data))))
 		    (help-xref-button 2 'help-info data))))
+              ;; URLs
+              (save-excursion
+                (while (re-search-forward help-xref-url-regexp nil t)
+                  (let ((data (match-string 1)))
+		    (help-xref-button 1 'help-url data))))
 	      ;; Mule related keywords.  Do this before trying
 	      ;; `help-xref-symbol-regexp' because some of Mule
 	      ;; keywords have variable or function definitions.