annotate lisp/mail/mail-utils.el @ 18989:6253a99afd95

(rmail-pop-password-error): New variable. (rmail-insert-inbox-text): If there's an error getting mail from the POP server, and the error matches rmail-pop-password-error or we prompted for the POP password, assume that the password is incorrect and erase it so that the user will be prompted again the next time he gets mail.
author Richard M. Stallman <rms@gnu.org>
date Fri, 25 Jul 1997 22:08:24 +0000
parents 0634e43b52c8
children fd3807f45b7b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
659
505130d1ddf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 584
diff changeset
1 ;;; mail-utils.el --- utility functions used both by rmail and rnews
505130d1ddf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 584
diff changeset
2
845
213978acbc1e entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 811
diff changeset
3 ;; Copyright (C) 1985 Free Software Foundation, Inc.
213978acbc1e entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 811
diff changeset
4
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 659
diff changeset
5 ;; Maintainer: FSF
811
e694e0879463 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 807
diff changeset
6 ;; Keywords: mail, news
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 659
diff changeset
7
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
8 ;; This file is part of GNU Emacs.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
9
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
10 ;; GNU Emacs is free software; you can redistribute it and/or modify
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
11 ;; it under the terms of the GNU General Public License as published by
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 659
diff changeset
12 ;; the Free Software Foundation; either version 2, or (at your option)
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
13 ;; any later version.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
14
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
15 ;; GNU Emacs is distributed in the hope that it will be useful,
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
18 ;; GNU General Public License for more details.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
19
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
20 ;; You should have received a copy of the GNU General Public License
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13590
diff changeset
21 ;; along with GNU Emacs; see the file COPYING. If not, write to the
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13590
diff changeset
22 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13590
diff changeset
23 ;; Boston, MA 02111-1307, USA.
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
24
2307
10e417efb12a Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 845
diff changeset
25 ;;; Commentary:
10e417efb12a Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 845
diff changeset
26
5365
362f4c3bd99c Comment change.
Richard M. Stallman <rms@gnu.org>
parents: 5289
diff changeset
27 ;; Utility functions for mail and netnews handling. These handle fine
2307
10e417efb12a Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 845
diff changeset
28 ;; points of header parsing.
10e417efb12a Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 845
diff changeset
29
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 659
diff changeset
30 ;;; Code:
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
31
285
adb31fcccc2b *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
32 ;;; We require lisp-mode to make sure that lisp-mode-syntax-table has
adb31fcccc2b *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
33 ;;; been initialized.
adb31fcccc2b *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
34 (require 'lisp-mode)
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
35
268
2dd411fe2f72 *** empty log message ***
Brian Preble <rassilon@gnu.org>
parents: 262
diff changeset
36 ;;;###autoload
2dd411fe2f72 *** empty log message ***
Brian Preble <rassilon@gnu.org>
parents: 262
diff changeset
37 (defvar mail-use-rfc822 nil "\
2dd411fe2f72 *** empty log message ***
Brian Preble <rassilon@gnu.org>
parents: 262
diff changeset
38 *If non-nil, use a full, hairy RFC822 parser on mail addresses.
2dd411fe2f72 *** empty log message ***
Brian Preble <rassilon@gnu.org>
parents: 262
diff changeset
39 Otherwise, (the default) use a smaller, somewhat faster, and
2dd411fe2f72 *** empty log message ***
Brian Preble <rassilon@gnu.org>
parents: 262
diff changeset
40 often correct parser.")
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
41
13055
d94531fd96a4 (mail-file-babyl-p): Function moved from rmail.el and renamed.
Richard M. Stallman <rms@gnu.org>
parents: 12613
diff changeset
42 ;; Returns t if file FILE is an Rmail file.
d94531fd96a4 (mail-file-babyl-p): Function moved from rmail.el and renamed.
Richard M. Stallman <rms@gnu.org>
parents: 12613
diff changeset
43 ;;;###autoload
d94531fd96a4 (mail-file-babyl-p): Function moved from rmail.el and renamed.
Richard M. Stallman <rms@gnu.org>
parents: 12613
diff changeset
44 (defun mail-file-babyl-p (file)
d94531fd96a4 (mail-file-babyl-p): Function moved from rmail.el and renamed.
Richard M. Stallman <rms@gnu.org>
parents: 12613
diff changeset
45 (let ((buf (generate-new-buffer " *rmail-file-p*")))
d94531fd96a4 (mail-file-babyl-p): Function moved from rmail.el and renamed.
Richard M. Stallman <rms@gnu.org>
parents: 12613
diff changeset
46 (unwind-protect
d94531fd96a4 (mail-file-babyl-p): Function moved from rmail.el and renamed.
Richard M. Stallman <rms@gnu.org>
parents: 12613
diff changeset
47 (save-excursion
d94531fd96a4 (mail-file-babyl-p): Function moved from rmail.el and renamed.
Richard M. Stallman <rms@gnu.org>
parents: 12613
diff changeset
48 (set-buffer buf)
d94531fd96a4 (mail-file-babyl-p): Function moved from rmail.el and renamed.
Richard M. Stallman <rms@gnu.org>
parents: 12613
diff changeset
49 (insert-file-contents file nil 0 100)
d94531fd96a4 (mail-file-babyl-p): Function moved from rmail.el and renamed.
Richard M. Stallman <rms@gnu.org>
parents: 12613
diff changeset
50 (looking-at "BABYL OPTIONS:"))
d94531fd96a4 (mail-file-babyl-p): Function moved from rmail.el and renamed.
Richard M. Stallman <rms@gnu.org>
parents: 12613
diff changeset
51 (kill-buffer buf))))
d94531fd96a4 (mail-file-babyl-p): Function moved from rmail.el and renamed.
Richard M. Stallman <rms@gnu.org>
parents: 12613
diff changeset
52
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
53 (defun mail-string-delete (string start end)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
54 "Returns a string containing all of STRING except the part
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
55 from START (inclusive) to END (exclusive)."
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
56 (if (null end) (substring string 0 start)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
57 (concat (substring string 0 start)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
58 (substring string end nil))))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
59
17425
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
60 (defun mail-quote-printable (string &optional wrapper)
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
61 "Convert a string to the \"quoted printable\" Q encoding.
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
62 If the optional argument WRAPPER is non-nil,
17506
3c0b3d55c1bc Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents: 17425
diff changeset
63 we add the wrapper characters =?ISO-8859-1?Q?....?=."
17425
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
64 (let ((i 0) (result ""))
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
65 (save-match-data
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
66 (while (string-match "[?=\"\200-\377]" string i)
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
67 (setq result
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
68 (concat result (substring string i (match-beginning 0))
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
69 (upcase (format "=%02x"
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
70 (aref string (match-beginning 0))))))
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
71 (setq i (match-end 0)))
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
72 (if wrapper
17506
3c0b3d55c1bc Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents: 17425
diff changeset
73 (concat "=?ISO-8859-1?Q?"
17425
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
74 result (substring string i)
17506
3c0b3d55c1bc Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents: 17425
diff changeset
75 "?=")
17425
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
76 (concat result (substring string i))))))
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
77
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
78 (defun mail-unquote-printable-hexdigit (char)
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
79 (if (>= char ?A)
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
80 (+ (- char ?A) 10)
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
81 (- char ?0)))
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
82
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
83 (defun mail-unquote-printable (string &optional wrapper)
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
84 "Undo the \"quoted printable\" encoding.
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
85 If the optional argument WRAPPER is non-nil,
17506
3c0b3d55c1bc Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents: 17425
diff changeset
86 we expect to find and remove the wrapper characters =?ISO-8859-1?Q?....?=."
17425
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
87 (save-match-data
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
88 (and wrapper
17506
3c0b3d55c1bc Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents: 17425
diff changeset
89 (string-match "\\`=\\?ISO-8859-1\\?Q\\?\\([^?]*\\)\\?" string)
17425
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
90 (setq string (match-string 1 string)))
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
91 (let ((i 0) (result ""))
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
92 (while (string-match "=\\(..\\)" string i)
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
93 (setq result
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
94 (concat result (substring string i (match-beginning 0))
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
95 (make-string 1
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
96 (+ (* 16 (mail-unquote-printable-hexdigit
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
97 (aref string (match-beginning 1))))
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
98 (mail-unquote-printable-hexdigit
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
99 (aref string (1+ (match-beginning 1))))))))
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
100 (setq i (match-end 0)))
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
101 (concat result (substring string i)))))
10076111abf2 (mail-quote-printable, mail-unquote-printable)
Richard M. Stallman <rms@gnu.org>
parents: 17258
diff changeset
102
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
103 (defun mail-strip-quoted-names (address)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
104 "Delete comments and quoted strings in an address list ADDRESS.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
105 Also delete leading/trailing whitespace and replace FOO <BAR> with just BAR.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
106 Return a modified address list."
477
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
107 (if (null address)
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
108 nil
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
109 (if mail-use-rfc822
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
110 (progn (require 'rfc822)
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
111 (mapconcat 'identity (rfc822-addresses address) ", "))
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
112 (let (pos)
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
113 (string-match "\\`[ \t\n]*" address)
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
114 ;; strip surrounding whitespace
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
115 (setq address (substring address
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
116 (match-end 0)
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
117 (string-match "[ \t\n]*\\'" address
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
118 (match-end 0))))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
119
477
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
120 ;; Detect nested comments.
15439
b549210f6989 (mail-strip-quoted-names): `"' is not special inside an RFC 822 comment.
Richard M. Stallman <rms@gnu.org>
parents: 14989
diff changeset
121 (if (string-match "[ \t]*(\\([^)\\]\\|\\\\.\\|\\\\\n\\)*(" address)
477
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
122 ;; Strip nested comments.
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
123 (save-excursion
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
124 (set-buffer (get-buffer-create " *temp*"))
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
125 (erase-buffer)
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
126 (insert address)
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
127 (set-syntax-table lisp-mode-syntax-table)
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
128 (goto-char 1)
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
129 (while (search-forward "(" nil t)
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
130 (forward-char -1)
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
131 (skip-chars-backward " \t")
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
132 (delete-region (point)
3118
e7dd24a618fb (mail-strip-quoted-names): Catch errors from forward-sexp.
Richard M. Stallman <rms@gnu.org>
parents: 2307
diff changeset
133 (save-excursion
e7dd24a618fb (mail-strip-quoted-names): Catch errors from forward-sexp.
Richard M. Stallman <rms@gnu.org>
parents: 2307
diff changeset
134 (condition-case ()
e7dd24a618fb (mail-strip-quoted-names): Catch errors from forward-sexp.
Richard M. Stallman <rms@gnu.org>
parents: 2307
diff changeset
135 (forward-sexp 1)
e7dd24a618fb (mail-strip-quoted-names): Catch errors from forward-sexp.
Richard M. Stallman <rms@gnu.org>
parents: 2307
diff changeset
136 (error (goto-char (point-max))))
e7dd24a618fb (mail-strip-quoted-names): Catch errors from forward-sexp.
Richard M. Stallman <rms@gnu.org>
parents: 2307
diff changeset
137 (point))))
477
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
138 (setq address (buffer-string))
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
139 (erase-buffer))
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
140 ;; Strip non-nested comments an easier way.
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
141 (while (setq pos (string-match
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
142 ;; This doesn't hack rfc822 nested comments
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
143 ;; `(xyzzy (foo) whinge)' properly. Big deal.
15439
b549210f6989 (mail-strip-quoted-names): `"' is not special inside an RFC 822 comment.
Richard M. Stallman <rms@gnu.org>
parents: 14989
diff changeset
144 "[ \t]*(\\([^)\\]\\|\\\\.\\|\\\\\n\\)*)"
477
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
145 address))
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
146 (setq address
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
147 (mail-string-delete address
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
148 pos (match-end 0)))))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
149
477
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
150 ;; strip `quoted' names (This is supposed to hack `"Foo Bar" <bar@host>')
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
151 (setq pos 0)
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
152 (while (setq pos (string-match
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
153 "[ \t]*\"\\([^\"\\]\\|\\\\.\\|\\\\\n\\)*\"[ \t\n]*"
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
154 address pos))
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
155 ;; If the next thing is "@", we have "foo bar"@host. Leave it.
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
156 (if (and (> (length address) (match-end 0))
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
157 (= (aref address (match-end 0)) ?@))
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
158 (setq pos (match-end 0))
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
159 (setq address
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
160 (mail-string-delete address
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
161 pos (match-end 0)))))
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
162 ;; Retain only part of address in <> delims, if there is such a thing.
18082
4a796f28f98e (mail-strip-quoted-names): Don't delete angle brackets
Richard M. Stallman <rms@gnu.org>
parents: 17506
diff changeset
163 (while (setq pos (string-match "\\(,\\s-*\\|\\`\\)[^,]*<\\([^>,:]*>\\)"
477
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
164 address))
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
165 (let ((junk-beg (match-end 1))
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
166 (junk-end (match-beginning 2))
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
167 (close (match-end 0)))
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
168 (setq address (mail-string-delete address (1- close) close))
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
169 (setq address (mail-string-delete address junk-beg junk-end))))
ab9a55b26bd4 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 285
diff changeset
170 address))))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
171
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
172 (or (and (boundp 'rmail-default-dont-reply-to-names)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
173 (not (null rmail-default-dont-reply-to-names)))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
174 (setq rmail-default-dont-reply-to-names "info-"))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
175
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
176 ; rmail-dont-reply-to-names is defined in loaddefs
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
177 (defun rmail-dont-reply-to (userids)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
178 "Returns string of mail addresses USERIDS sans any recipients
220
2ea306376f97 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 36
diff changeset
179 that start with matches for `rmail-dont-reply-to-names'.
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
180 Usenet paths ending in an element that matches are removed also."
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
181 (if (null rmail-dont-reply-to-names)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
182 (setq rmail-dont-reply-to-names
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
183 (concat (if rmail-default-dont-reply-to-names
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
184 (concat rmail-default-dont-reply-to-names "\\|")
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
185 "")
5914
7643239d5bf2 (rmail-dont-reply-to): Change user-original-login-name to user-login-name.
Karl Heuer <kwzh@gnu.org>
parents: 5365
diff changeset
186 (concat (regexp-quote (user-login-name))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
187 "\\>"))))
17258
fb6013017dce (make-auto-save-file-name): Replace both / and \
Richard M. Stallman <rms@gnu.org>
parents: 17209
diff changeset
188 (let ((match (concat "\\(^\\|,\\)[ \t\n]*\\([^,\n]*[!<]\\|\\)\\("
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
189 rmail-dont-reply-to-names
16062
2a9b6a25cb9e (rmail-dont-reply-to): Recognize the names to delete
Richard M. Stallman <rms@gnu.org>
parents: 15606
diff changeset
190 "\\|[^\,.<]*<\\(" rmail-dont-reply-to-names "\\)"
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
191 "\\)"))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
192 (case-fold-search t)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
193 pos epos)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
194 (while (setq pos (string-match match userids))
13590
bd48b68249cf (rmail-dont-reply-to): Preserve whitespace after comma.
Richard M. Stallman <rms@gnu.org>
parents: 13192
diff changeset
195 (if (> pos 0) (setq pos (match-beginning 2)))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
196 (setq epos
14660
071940e2a563 (rmail-dont-reply-to): Allow parsing lists of addresses with comment fields.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
197 ;; Delete thru the next comma, plus whitespace after.
17209
c7dbcb7494d1 (rmail-dont-reply-to): Delete debugging code.
Richard M. Stallman <rms@gnu.org>
parents: 16952
diff changeset
198 (if (string-match ",[ \t\n]*" userids (match-end 0))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
199 (match-end 0)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
200 (length userids)))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
201 (setq userids
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
202 (mail-string-delete
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
203 userids pos epos)))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
204 ;; get rid of any trailing commas
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
205 (if (setq pos (string-match "[ ,\t\n]*\\'" userids))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
206 (setq userids (substring userids 0 pos)))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
207 ;; remove leading spaces. they bother me.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
208 (if (string-match "\\s *" userids)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
209 (substring userids (match-end 0))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
210 userids)))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
211
5289
4e000b7b285a (mail-fetch-field): Add autoload cookie.
Richard M. Stallman <rms@gnu.org>
parents: 5095
diff changeset
212 ;;;###autoload
16952
ba0d48943e13 (mail-fetch-field): New arg LIST.
Richard M. Stallman <rms@gnu.org>
parents: 16062
diff changeset
213 (defun mail-fetch-field (field-name &optional last all list)
220
2ea306376f97 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 36
diff changeset
214 "Return the value of the header field FIELD-NAME.
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
215 The buffer is expected to be narrowed to just the headers of the message.
220
2ea306376f97 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 36
diff changeset
216 If second arg LAST is non-nil, use the last such field if there are several.
16952
ba0d48943e13 (mail-fetch-field): New arg LIST.
Richard M. Stallman <rms@gnu.org>
parents: 16062
diff changeset
217 If third arg ALL is non-nil, concatenate all such fields with commas between.
ba0d48943e13 (mail-fetch-field): New arg LIST.
Richard M. Stallman <rms@gnu.org>
parents: 16062
diff changeset
218 If 4th arg LIST is non-nil, return a list of all such fields."
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
219 (save-excursion
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
220 (goto-char (point-min))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
221 (let ((case-fold-search t)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
222 (name (concat "^" (regexp-quote field-name) "[ \t]*:[ \t]*")))
16952
ba0d48943e13 (mail-fetch-field): New arg LIST.
Richard M. Stallman <rms@gnu.org>
parents: 16062
diff changeset
223 (if (or all list)
ba0d48943e13 (mail-fetch-field): New arg LIST.
Richard M. Stallman <rms@gnu.org>
parents: 16062
diff changeset
224 (let ((value (if all "")))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
225 (while (re-search-forward name nil t)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
226 (let ((opoint (point)))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
227 (while (progn (forward-line 1)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
228 (looking-at "[ \t]")))
5095
976d7492e00e (mail-fetch-field): Exclude trailing whitespace.
Richard M. Stallman <rms@gnu.org>
parents: 4022
diff changeset
229 ;; Back up over newline, then trailing spaces or tabs
976d7492e00e (mail-fetch-field): Exclude trailing whitespace.
Richard M. Stallman <rms@gnu.org>
parents: 4022
diff changeset
230 (forward-char -1)
14989
7bba84af4b94 (mail-fetch-field): Use skip-chars-backward
Richard M. Stallman <rms@gnu.org>
parents: 14660
diff changeset
231 (skip-chars-backward " \t" opoint)
16952
ba0d48943e13 (mail-fetch-field): New arg LIST.
Richard M. Stallman <rms@gnu.org>
parents: 16062
diff changeset
232 (if list
ba0d48943e13 (mail-fetch-field): New arg LIST.
Richard M. Stallman <rms@gnu.org>
parents: 16062
diff changeset
233 (setq value (cons (buffer-substring-no-properties
ba0d48943e13 (mail-fetch-field): New arg LIST.
Richard M. Stallman <rms@gnu.org>
parents: 16062
diff changeset
234 opoint (point))
ba0d48943e13 (mail-fetch-field): New arg LIST.
Richard M. Stallman <rms@gnu.org>
parents: 16062
diff changeset
235 value))
ba0d48943e13 (mail-fetch-field): New arg LIST.
Richard M. Stallman <rms@gnu.org>
parents: 16062
diff changeset
236 (setq value (concat value
ba0d48943e13 (mail-fetch-field): New arg LIST.
Richard M. Stallman <rms@gnu.org>
parents: 16062
diff changeset
237 (if (string= value "") "" ", ")
ba0d48943e13 (mail-fetch-field): New arg LIST.
Richard M. Stallman <rms@gnu.org>
parents: 16062
diff changeset
238 (buffer-substring-no-properties
ba0d48943e13 (mail-fetch-field): New arg LIST.
Richard M. Stallman <rms@gnu.org>
parents: 16062
diff changeset
239 opoint (point)))))))
ba0d48943e13 (mail-fetch-field): New arg LIST.
Richard M. Stallman <rms@gnu.org>
parents: 16062
diff changeset
240 (if list
ba0d48943e13 (mail-fetch-field): New arg LIST.
Richard M. Stallman <rms@gnu.org>
parents: 16062
diff changeset
241 value
ba0d48943e13 (mail-fetch-field): New arg LIST.
Richard M. Stallman <rms@gnu.org>
parents: 16062
diff changeset
242 (and (not (string= value "")) value)))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
243 (if (re-search-forward name nil t)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
244 (progn
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
245 (if last (while (re-search-forward name nil t)))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
246 (let ((opoint (point)))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
247 (while (progn (forward-line 1)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
248 (looking-at "[ \t]")))
5095
976d7492e00e (mail-fetch-field): Exclude trailing whitespace.
Richard M. Stallman <rms@gnu.org>
parents: 4022
diff changeset
249 ;; Back up over newline, then trailing spaces or tabs
976d7492e00e (mail-fetch-field): Exclude trailing whitespace.
Richard M. Stallman <rms@gnu.org>
parents: 4022
diff changeset
250 (forward-char -1)
14989
7bba84af4b94 (mail-fetch-field): Use skip-chars-backward
Richard M. Stallman <rms@gnu.org>
parents: 14660
diff changeset
251 (skip-chars-backward " \t" opoint)
12613
1243b1f01079 (mail-fetch-field): Use buffer-substring-no-properties.
Richard M. Stallman <rms@gnu.org>
parents: 5914
diff changeset
252 (buffer-substring-no-properties opoint (point)))))))))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
253
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
254 ;; Parse a list of tokens separated by commas.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
255 ;; It runs from point to the end of the visible part of the buffer.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
256 ;; Whitespace before or after tokens is ignored,
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
257 ;; but whitespace within tokens is kept.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
258 (defun mail-parse-comma-list ()
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
259 (let (accumulated
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
260 beg)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
261 (skip-chars-forward " ")
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
262 (while (not (eobp))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
263 (setq beg (point))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
264 (skip-chars-forward "^,")
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
265 (skip-chars-backward " ")
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
266 (setq accumulated
18204
0634e43b52c8 (mail-parse-comma-list): Use buffer-substring-no-properties.
Richard M. Stallman <rms@gnu.org>
parents: 18082
diff changeset
267 (cons (buffer-substring-no-properties beg (point))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
268 accumulated))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
269 (skip-chars-forward "^,")
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
270 (skip-chars-forward ", "))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
271 accumulated))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
272
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
273 (defun mail-comma-list-regexp (labels)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
274 (let (pos)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
275 (setq pos (or (string-match "[^ \t]" labels) 0))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
276 ;; Remove leading and trailing whitespace.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
277 (setq labels (substring labels pos (string-match "[ \t]*$" labels pos)))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
278 ;; Change each comma to \|, and flush surrounding whitespace.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
279 (while (setq pos (string-match "[ \t]*,[ \t]*" labels))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
280 (setq labels
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
281 (concat (substring labels 0 pos)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
282 "\\|"
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
283 (substring labels (match-end 0))))))
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
284 labels)
4022
a3d3d7eef5ce (mail-rfc822-time-zone, mail-rfc822-date): New fns.
Richard M. Stallman <rms@gnu.org>
parents: 3118
diff changeset
285
a3d3d7eef5ce (mail-rfc822-time-zone, mail-rfc822-date): New fns.
Richard M. Stallman <rms@gnu.org>
parents: 3118
diff changeset
286 (defun mail-rfc822-time-zone (time)
a3d3d7eef5ce (mail-rfc822-time-zone, mail-rfc822-date): New fns.
Richard M. Stallman <rms@gnu.org>
parents: 3118
diff changeset
287 (let* ((sec (or (car (current-time-zone time)) 0))
a3d3d7eef5ce (mail-rfc822-time-zone, mail-rfc822-date): New fns.
Richard M. Stallman <rms@gnu.org>
parents: 3118
diff changeset
288 (absmin (/ (abs sec) 60)))
a3d3d7eef5ce (mail-rfc822-time-zone, mail-rfc822-date): New fns.
Richard M. Stallman <rms@gnu.org>
parents: 3118
diff changeset
289 (format "%c%02d%02d" (if (< sec 0) ?- ?+) (/ absmin 60) (% absmin 60))))
a3d3d7eef5ce (mail-rfc822-time-zone, mail-rfc822-date): New fns.
Richard M. Stallman <rms@gnu.org>
parents: 3118
diff changeset
290
a3d3d7eef5ce (mail-rfc822-time-zone, mail-rfc822-date): New fns.
Richard M. Stallman <rms@gnu.org>
parents: 3118
diff changeset
291 (defun mail-rfc822-date ()
a3d3d7eef5ce (mail-rfc822-time-zone, mail-rfc822-date): New fns.
Richard M. Stallman <rms@gnu.org>
parents: 3118
diff changeset
292 (let* ((time (current-time))
a3d3d7eef5ce (mail-rfc822-time-zone, mail-rfc822-date): New fns.
Richard M. Stallman <rms@gnu.org>
parents: 3118
diff changeset
293 (s (current-time-string time)))
a3d3d7eef5ce (mail-rfc822-time-zone, mail-rfc822-date): New fns.
Richard M. Stallman <rms@gnu.org>
parents: 3118
diff changeset
294 (string-match "[^ ]+ +\\([^ ]+\\) +\\([^ ]+\\) \\([^ ]+\\) \\([^ ]+\\)" s)
a3d3d7eef5ce (mail-rfc822-time-zone, mail-rfc822-date): New fns.
Richard M. Stallman <rms@gnu.org>
parents: 3118
diff changeset
295 (concat (substring s (match-beginning 2) (match-end 2)) " "
a3d3d7eef5ce (mail-rfc822-time-zone, mail-rfc822-date): New fns.
Richard M. Stallman <rms@gnu.org>
parents: 3118
diff changeset
296 (substring s (match-beginning 1) (match-end 1)) " "
a3d3d7eef5ce (mail-rfc822-time-zone, mail-rfc822-date): New fns.
Richard M. Stallman <rms@gnu.org>
parents: 3118
diff changeset
297 (substring s (match-beginning 4) (match-end 4)) " "
a3d3d7eef5ce (mail-rfc822-time-zone, mail-rfc822-date): New fns.
Richard M. Stallman <rms@gnu.org>
parents: 3118
diff changeset
298 (substring s (match-beginning 3) (match-end 3)) " "
a3d3d7eef5ce (mail-rfc822-time-zone, mail-rfc822-date): New fns.
Richard M. Stallman <rms@gnu.org>
parents: 3118
diff changeset
299 (mail-rfc822-time-zone time))))
584
4cd7543be581 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 477
diff changeset
300
4cd7543be581 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 477
diff changeset
301 (provide 'mail-utils)
4cd7543be581 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 477
diff changeset
302
659
505130d1ddf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 584
diff changeset
303 ;;; mail-utils.el ends here