Mercurial > emacs
annotate lisp/goto-addr.el @ 18092:8428d56cd207
(smtpmail-via-smtp): Recognize XVRB as a synonym for
VERB and XONE as a synonym for ONEX.
(smtpmail-read-response): Add "%s" to `message' calls to avoid
problems with percent signs in strings.
(smtpmail-read-response): Return all lines of the
response text as a list of strings. Formerly only the first line
was returned. This is insufficient when one wants to parse
e.g. an EHLO response.
Ignore responses starting with "0". This is necessary to support
the VERB SMTP extension.
(smtpmail-via-smtp): Try EHLO and find out which SMTP service
extensions the receiving mailer supports.
Issue the ONEX and XUSR commands if the corresponding extensions
are supported.
Issue VERB if supported and `smtpmail-debug-info' is non-nil.
Add SIZE attribute to MAIL FROM: command if SIZE extension is
supported.
Add code that could set the BODY= attribute to MAIL FROM: if the
receiving mailer supports 8BITMIME. This is currently disabled,
since doing it right might involve adding MIME headers to, and in
some cases reencoding, the message.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sun, 01 Jun 1997 22:24:22 +0000 |
parents | 247c2a11843d |
children | 133e5c5c2e64 |
rev | line source |
---|---|
13208 | 1 ;;; goto-addr.el --- click to browse URL or to send to e-mail address |
14169 | 2 |
13208 | 3 ;; Copyright (C) 1995 Free Software Foundation, Inc. |
4 | |
13550
06e46fbae7f0
(goto-address-highlight-p): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13208
diff
changeset
|
5 ;; Author: Eric Ding <ericding@mit.edu> |
13208 | 6 ;; Maintainer: Eric Ding <ericding@mit.edu> |
7 ;; Created: 15 Aug 1995 | |
8 ;; Keywords: mh-e, www, mouse, mail | |
9 | |
10 ;; This file is part of GNU Emacs. | |
11 | |
12 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
13 ;; it under the terms of the GNU General Public License as published by | |
14 ;; the Free Software Foundation; either version 2, or (at your option) | |
15 ;; any later version. | |
16 | |
17 ;; GNU Emacs is distributed in the hope that it will be useful, | |
18 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
20 ;; GNU General Public License for more details. | |
21 | |
22 ;; You should have received a copy of the GNU General Public License | |
14169 | 23 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
24 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
25 ;; Boston, MA 02111-1307, USA. | |
13208 | 26 |
27 ;;; Commentary: | |
28 | |
29 ;; This package allows you to click or hit a key sequence while on a | |
30 ;; URL or e-mail address, and either load the URL into a browser of | |
31 ;; your choice using the browse-url package, or if it's an e-mail | |
32 ;; address, to send an e-mail to that address. By default, we bind to | |
13739
f6fa5b68f9c7
Mouse-click method now bound using text
Karl Heuer <kwzh@gnu.org>
parents:
13550
diff
changeset
|
33 ;; the [mouse-2] and the [C-c return] key sequences. |
13208 | 34 |
35 ;; INSTALLATION | |
36 ;; | |
13550
06e46fbae7f0
(goto-address-highlight-p): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13208
diff
changeset
|
37 ;; To use goto-address in a particular mode (for example, while |
06e46fbae7f0
(goto-address-highlight-p): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13208
diff
changeset
|
38 ;; reading mail in mh-e), add something like this in your .emacs file: |
13208 | 39 ;; |
40 ;; (add-hook 'mh-show-mode-hook 'goto-address) | |
41 ;; | |
42 ;; By default, goto-address now sends using `mail' instead of `mh-send'. | |
43 ;; To use mh-e to send mail, add the following to your .emacs file: | |
44 ;; | |
15028
4572159ddf04
(goto-address-send-using-mh-e):
Richard M. Stallman <rms@gnu.org>
parents:
14208
diff
changeset
|
45 ;; (setq goto-address-mail-method 'goto-address-send-using-mh-e) |
13208 | 46 ;; |
13739
f6fa5b68f9c7
Mouse-click method now bound using text
Karl Heuer <kwzh@gnu.org>
parents:
13550
diff
changeset
|
47 ;; The mouse click method is bound to [mouse-2] on highlighted URL's or |
f6fa5b68f9c7
Mouse-click method now bound using text
Karl Heuer <kwzh@gnu.org>
parents:
13550
diff
changeset
|
48 ;; e-mail addresses only; it functions normally everywhere else. To bind |
f6fa5b68f9c7
Mouse-click method now bound using text
Karl Heuer <kwzh@gnu.org>
parents:
13550
diff
changeset
|
49 ;; another mouse click to the function, add the following to your .emacs |
f6fa5b68f9c7
Mouse-click method now bound using text
Karl Heuer <kwzh@gnu.org>
parents:
13550
diff
changeset
|
50 ;; (for example): |
13208 | 51 ;; |
13739
f6fa5b68f9c7
Mouse-click method now bound using text
Karl Heuer <kwzh@gnu.org>
parents:
13550
diff
changeset
|
52 ;; (setq goto-address-highlight-keymap |
f6fa5b68f9c7
Mouse-click method now bound using text
Karl Heuer <kwzh@gnu.org>
parents:
13550
diff
changeset
|
53 ;; (let ((m (make-sparse-keymap))) |
f6fa5b68f9c7
Mouse-click method now bound using text
Karl Heuer <kwzh@gnu.org>
parents:
13550
diff
changeset
|
54 ;; (define-key m [S-mouse-2] 'goto-address-at-mouse) |
f6fa5b68f9c7
Mouse-click method now bound using text
Karl Heuer <kwzh@gnu.org>
parents:
13550
diff
changeset
|
55 ;; m)) |
13208 | 56 ;; |
57 | |
58 ;; BUG REPORTS | |
59 ;; | |
60 ;; Please send bug reports to me at ericding@mit.edu. | |
61 | |
62 ;; Known bugs/features: | |
63 ;; * goto-address-mail-regexp only catches foo@bar.org style addressing, | |
64 ;; not stuff like X.400 addresses, etc. | |
65 ;; * regexp also catches Message-Id line, since it is in the format of | |
66 ;; an Internet e-mail address (like Compuserve addresses) | |
67 ;; * If show buffer is fontified after goto-address-fontify is run | |
68 ;; (say, using font-lock-fontify-buffer), then font-lock face will | |
69 ;; override goto-address faces. | |
70 | |
71 ;;; Code: | |
72 | |
73 (require 'browse-url) | |
74 | |
17634
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
75 (defgroup goto-address nil |
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
76 "Click to browse URL or to send to e-mail address." |
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
77 :group 'mouse |
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
78 :group 'hypermedia) |
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
79 |
13550
06e46fbae7f0
(goto-address-highlight-p): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13208
diff
changeset
|
80 |
17634
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
81 ;;; I don't expect users to want fontify'ing without highlighting. |
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
82 (defcustom goto-address-fontify-p t |
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
83 "*If t, URL's and e-mail addresses in buffer are fontified. |
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
84 But only if `goto-address-highlight-p' is also non-nil." |
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
85 :type 'boolean |
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
86 :group 'goto-address) |
13208 | 87 |
17634
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
88 (defcustom goto-address-highlight-p t |
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
89 "*If t, URL's and e-mail addresses in buffer are highlighted." |
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
90 :type 'boolean |
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
91 :group 'goto-address) |
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
92 |
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
93 (defcustom goto-address-fontify-maximum-size 30000 |
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
94 "*Maximum size of file in which to fontify and/or highlight URL's." |
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
95 :type 'integer |
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
96 :group 'goto-address) |
13208 | 97 |
98 (defvar goto-address-mail-regexp | |
99 "[-a-zA-Z0-9._]+@\\([-a-zA-z0-9_]+\\.\\)+[a-zA-Z0-9]+" | |
100 "A regular expression probably matching an e-mail address.") | |
101 | |
102 (defvar goto-address-url-regexp | |
103 (concat "\\b\\(s?https?\\|ftp\\|file\\|gopher\\|news\\|" | |
104 "telnet\\|wais\\):\\(//[-a-zA-Z0-9_.]+:" | |
105 "[0-9]*\\)?[-a-zA-Z0-9_=?#$@~`%&*+|\\/.,]*" | |
106 "[-a-zA-Z0-9_=#$@~`%&*+|\\/]") | |
107 "A regular expression probably matching a URL.") | |
108 | |
17634
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
109 (defcustom goto-address-mail-method |
13208 | 110 'goto-address-send-using-mail |
111 "*Function to compose mail. | |
112 Two pre-made functions are `goto-address-send-using-mail' (sendmail); | |
17634
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
113 and `goto-address-send-using-mh-e' (MH-E)." |
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
114 :type 'function |
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
115 :group 'goto-address) |
13208 | 116 |
13739
f6fa5b68f9c7
Mouse-click method now bound using text
Karl Heuer <kwzh@gnu.org>
parents:
13550
diff
changeset
|
117 (defvar goto-address-highlight-keymap |
f6fa5b68f9c7
Mouse-click method now bound using text
Karl Heuer <kwzh@gnu.org>
parents:
13550
diff
changeset
|
118 (let ((m (make-sparse-keymap))) |
f6fa5b68f9c7
Mouse-click method now bound using text
Karl Heuer <kwzh@gnu.org>
parents:
13550
diff
changeset
|
119 (define-key m [mouse-2] 'goto-address-at-mouse) |
f6fa5b68f9c7
Mouse-click method now bound using text
Karl Heuer <kwzh@gnu.org>
parents:
13550
diff
changeset
|
120 m) |
f6fa5b68f9c7
Mouse-click method now bound using text
Karl Heuer <kwzh@gnu.org>
parents:
13550
diff
changeset
|
121 "keymap to hold goto-addr's mouse key defs under highlighted URLs.") |
f6fa5b68f9c7
Mouse-click method now bound using text
Karl Heuer <kwzh@gnu.org>
parents:
13550
diff
changeset
|
122 |
17634
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
123 (defcustom goto-address-url-face 'bold |
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
124 "*Face to use for URLs." |
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
125 :type 'face |
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
126 :group 'goto-address) |
15502
5053b03d18cb
(goto-address-url-face, goto-address-mail-face)
Richard M. Stallman <rms@gnu.org>
parents:
15028
diff
changeset
|
127 |
17634
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
128 (defcustom goto-address-url-mouse-face 'highlight |
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
129 "*Face to use for URLs when the mouse is on them." |
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
130 :type 'face |
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
131 :group 'goto-address) |
15502
5053b03d18cb
(goto-address-url-face, goto-address-mail-face)
Richard M. Stallman <rms@gnu.org>
parents:
15028
diff
changeset
|
132 |
17634
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
133 (defcustom goto-address-mail-face 'italic |
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
134 "*Face to use for e-mail addresses." |
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
135 :type 'face |
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
136 :group 'goto-address) |
15502
5053b03d18cb
(goto-address-url-face, goto-address-mail-face)
Richard M. Stallman <rms@gnu.org>
parents:
15028
diff
changeset
|
137 |
17634
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
138 (defcustom goto-address-mail-mouse-face 'secondary-selection |
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
139 "*Face to use for e-mail addresses when the mouse is on them." |
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
140 :type 'face |
247c2a11843d
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
16661
diff
changeset
|
141 :group 'goto-address) |
15502
5053b03d18cb
(goto-address-url-face, goto-address-mail-face)
Richard M. Stallman <rms@gnu.org>
parents:
15028
diff
changeset
|
142 |
13208 | 143 (defun goto-address-fontify () |
13550
06e46fbae7f0
(goto-address-highlight-p): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13208
diff
changeset
|
144 "Fontify the URL's and e-mail addresses in the current buffer. |
06e46fbae7f0
(goto-address-highlight-p): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13208
diff
changeset
|
145 This function implements `goto-address-highlight-p' |
06e46fbae7f0
(goto-address-highlight-p): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13208
diff
changeset
|
146 and `goto-address-fontify-p'." |
13208 | 147 (save-excursion |
148 (let ((inhibit-read-only t) | |
13550
06e46fbae7f0
(goto-address-highlight-p): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13208
diff
changeset
|
149 (inhibit-point-motion-hooks t) |
13208 | 150 (modified (buffer-modified-p))) |
151 (goto-char (point-min)) | |
152 (if (< (- (point-max) (point)) goto-address-fontify-maximum-size) | |
153 (progn | |
154 (while (re-search-forward goto-address-url-regexp nil t) | |
16661
22c70a622b67
(goto-address-fontify): Use overlay, not text props.
Richard M. Stallman <rms@gnu.org>
parents:
15502
diff
changeset
|
155 (let* ((s (match-beginning 0)) |
22c70a622b67
(goto-address-fontify): Use overlay, not text props.
Richard M. Stallman <rms@gnu.org>
parents:
15502
diff
changeset
|
156 (e (match-end 0)) |
22c70a622b67
(goto-address-fontify): Use overlay, not text props.
Richard M. Stallman <rms@gnu.org>
parents:
15502
diff
changeset
|
157 (this-overlay (make-overlay s e))) |
13550
06e46fbae7f0
(goto-address-highlight-p): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13208
diff
changeset
|
158 (and goto-address-fontify-p |
16661
22c70a622b67
(goto-address-fontify): Use overlay, not text props.
Richard M. Stallman <rms@gnu.org>
parents:
15502
diff
changeset
|
159 (overlay-put this-overlay 'face goto-address-url-face)) |
22c70a622b67
(goto-address-fontify): Use overlay, not text props.
Richard M. Stallman <rms@gnu.org>
parents:
15502
diff
changeset
|
160 (overlay-put this-overlay |
22c70a622b67
(goto-address-fontify): Use overlay, not text props.
Richard M. Stallman <rms@gnu.org>
parents:
15502
diff
changeset
|
161 'mouse-face goto-address-url-mouse-face) |
22c70a622b67
(goto-address-fontify): Use overlay, not text props.
Richard M. Stallman <rms@gnu.org>
parents:
15502
diff
changeset
|
162 (overlay-put this-overlay |
22c70a622b67
(goto-address-fontify): Use overlay, not text props.
Richard M. Stallman <rms@gnu.org>
parents:
15502
diff
changeset
|
163 'local-map goto-address-highlight-keymap))) |
13208 | 164 (goto-char (point-min)) |
165 (while (re-search-forward goto-address-mail-regexp nil t) | |
16661
22c70a622b67
(goto-address-fontify): Use overlay, not text props.
Richard M. Stallman <rms@gnu.org>
parents:
15502
diff
changeset
|
166 (let* ((s (match-beginning 0)) |
22c70a622b67
(goto-address-fontify): Use overlay, not text props.
Richard M. Stallman <rms@gnu.org>
parents:
15502
diff
changeset
|
167 (e (match-end 0)) |
22c70a622b67
(goto-address-fontify): Use overlay, not text props.
Richard M. Stallman <rms@gnu.org>
parents:
15502
diff
changeset
|
168 (this-overlay (make-overlay s e))) |
13550
06e46fbae7f0
(goto-address-highlight-p): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13208
diff
changeset
|
169 (and goto-address-fontify-p |
16661
22c70a622b67
(goto-address-fontify): Use overlay, not text props.
Richard M. Stallman <rms@gnu.org>
parents:
15502
diff
changeset
|
170 (overlay-put this-overlay 'face goto-address-mail-face)) |
22c70a622b67
(goto-address-fontify): Use overlay, not text props.
Richard M. Stallman <rms@gnu.org>
parents:
15502
diff
changeset
|
171 (overlay-put this-overlay 'mouse-face |
22c70a622b67
(goto-address-fontify): Use overlay, not text props.
Richard M. Stallman <rms@gnu.org>
parents:
15502
diff
changeset
|
172 goto-address-mail-mouse-face) |
22c70a622b67
(goto-address-fontify): Use overlay, not text props.
Richard M. Stallman <rms@gnu.org>
parents:
15502
diff
changeset
|
173 (overlay-put this-overlay |
22c70a622b67
(goto-address-fontify): Use overlay, not text props.
Richard M. Stallman <rms@gnu.org>
parents:
15502
diff
changeset
|
174 'local-map goto-address-highlight-keymap))))) |
13208 | 175 (and (buffer-modified-p) |
176 (not modified) | |
177 (set-buffer-modified-p nil))))) | |
178 | |
179 ;;; code to find and goto addresses; much of this has been blatantly | |
180 ;;; snarfed from browse-url.el | |
181 | |
14208
1f2f55478197
(goto-address-at-point, goto-address-at-mouse): Add autoload cookies.
Richard M. Stallman <rms@gnu.org>
parents:
14169
diff
changeset
|
182 ;;;###autoload |
13208 | 183 (defun goto-address-at-mouse (event) |
184 "Send to the e-mail address or load the URL clicked with the mouse. | |
185 Send mail to address at position of mouse click. See documentation for | |
186 `goto-address-find-address-at-point'. If no address is found | |
187 there, then load the URL at or before the position of the mouse click." | |
188 (interactive "e") | |
189 (save-excursion | |
190 (let ((posn (event-start event))) | |
191 (set-buffer (window-buffer (posn-window posn))) | |
192 (goto-char (posn-point posn)) | |
193 (let ((address | |
194 (save-excursion (goto-address-find-address-at-point)))) | |
195 (if (string-equal address "") | |
196 (let ((url (browse-url-url-at-point))) | |
197 (if (string-equal url "") | |
198 (error "No e-mail address or URL found") | |
199 (funcall browse-url-browser-function url))) | |
200 (funcall goto-address-mail-method address)))))) | |
201 | |
14208
1f2f55478197
(goto-address-at-point, goto-address-at-mouse): Add autoload cookies.
Richard M. Stallman <rms@gnu.org>
parents:
14169
diff
changeset
|
202 ;;;###autoload |
13208 | 203 (defun goto-address-at-point () |
204 "Send to the e-mail address or load the URL at point. | |
205 Send mail to address at point. See documentation for | |
206 `goto-address-find-address-at-point'. If no address is found | |
207 there, then load the URL at or before point." | |
208 (interactive) | |
209 (save-excursion | |
210 (let ((address (save-excursion (goto-address-find-address-at-point)))) | |
211 (if (string-equal address "") | |
212 (let ((url (browse-url-url-at-point))) | |
213 (if (string-equal url "") | |
214 (error "No e-mail address or URL found") | |
215 (funcall browse-url-browser-function url))) | |
216 (funcall goto-address-mail-method address))))) | |
217 | |
218 (defun goto-address-find-address-at-point () | |
219 "Find e-mail address around or before point. | |
220 Then search backwards to beginning of line for the start of an e-mail | |
221 address. If no e-mail address found, return the empty string." | |
222 (let ((bol (save-excursion (beginning-of-line) (point)))) | |
223 (re-search-backward "[^-_A-z0-9.@]" bol 'lim) | |
224 (if (or (looking-at goto-address-mail-regexp) ; already at start | |
225 (let ((eol (save-excursion (end-of-line) (point)))) | |
226 (and (re-search-forward goto-address-mail-regexp eol 'lim) | |
227 (goto-char (match-beginning 0))))) | |
228 (buffer-substring (match-beginning 0) (match-end 0)) | |
229 ""))) | |
230 | |
15028
4572159ddf04
(goto-address-send-using-mh-e):
Richard M. Stallman <rms@gnu.org>
parents:
14208
diff
changeset
|
231 (defun goto-address-send-using-mh-e (to) |
4572159ddf04
(goto-address-send-using-mh-e):
Richard M. Stallman <rms@gnu.org>
parents:
14208
diff
changeset
|
232 (require 'mh-comp) |
13208 | 233 (mh-find-path) |
234 (let ((cc (mh-read-address "Cc: ")) | |
235 (subject (read-string "Subject: ")) | |
236 (config (current-window-configuration))) | |
237 (delete-other-windows) | |
238 (mh-send-sub to cc subject config))) | |
239 | |
15028
4572159ddf04
(goto-address-send-using-mh-e):
Richard M. Stallman <rms@gnu.org>
parents:
14208
diff
changeset
|
240 (fset 'goto-address-send-using-mhe 'goto-address-send-using-mh-e) |
4572159ddf04
(goto-address-send-using-mh-e):
Richard M. Stallman <rms@gnu.org>
parents:
14208
diff
changeset
|
241 |
13208 | 242 (defun goto-address-send-using-mail (to) |
243 (mail-other-window nil to) | |
244 (and (goto-char (point-min)) | |
245 (end-of-line 2))) | |
246 | |
13550
06e46fbae7f0
(goto-address-highlight-p): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13208
diff
changeset
|
247 ;;;###autoload |
13208 | 248 (defun goto-address () |
13550
06e46fbae7f0
(goto-address-highlight-p): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13208
diff
changeset
|
249 "Sets up goto-address functionality in the current buffer. |
06e46fbae7f0
(goto-address-highlight-p): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13208
diff
changeset
|
250 Allows user to use mouse/keyboard command to click to go to a URL |
06e46fbae7f0
(goto-address-highlight-p): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13208
diff
changeset
|
251 or to send e-mail. |
13739
f6fa5b68f9c7
Mouse-click method now bound using text
Karl Heuer <kwzh@gnu.org>
parents:
13550
diff
changeset
|
252 By default, goto-address binds to mouse-2 and C-c RET. |
13550
06e46fbae7f0
(goto-address-highlight-p): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13208
diff
changeset
|
253 |
06e46fbae7f0
(goto-address-highlight-p): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13208
diff
changeset
|
254 Also fontifies the buffer appropriately (see `goto-address-fontify-p' and |
06e46fbae7f0
(goto-address-highlight-p): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13208
diff
changeset
|
255 `goto-address-highlight-p' for more information)." |
13208 | 256 (interactive) |
257 (local-set-key "\C-c\r" 'goto-address-at-point) | |
13550
06e46fbae7f0
(goto-address-highlight-p): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13208
diff
changeset
|
258 (if goto-address-highlight-p |
13208 | 259 (goto-address-fontify))) |
260 | |
261 (provide 'goto-addr) | |
262 | |
263 ;;; goto-addr.el ends here. |