;;; ietf-drums.el --- Functions for parsing RFC822bis headers
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005, 2006 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; This file is part of GNU Emacs.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
;;; Commentary:
;; Messages". This library is based on
;; draft-ietf-drums-msg-fmt-05.txt, released on 1998-08-05.
+;; Pending a real regression self test suite, Simon Josefsson added
+;; various self test expressions snipped from bug reports, and their
+;; expected value, below. I you believe it could be useful, please
+;; add your own test cases, or write a real self test suite, or just
+;; remove this.
+
+;; <m3oekvfd50.fsf@whitebox.m5r.de>
+;; (ietf-drums-parse-address "'foo' <foo@example.com>")
+;; => ("foo@example.com" . "'foo'")
+
;;; Code:
(eval-when-compile (require 'cl))
(modify-syntax-entry ?> ")" table)
(modify-syntax-entry ?@ "w" table)
(modify-syntax-entry ?/ "w" table)
- (modify-syntax-entry ?* " " table)
- (modify-syntax-entry ?\; " " table)
- (modify-syntax-entry ?\' " " table)
+ (modify-syntax-entry ?* "_" table)
+ (modify-syntax-entry ?\; "_" table)
+ (modify-syntax-entry ?\' "_" table)
(if (featurep 'xemacs)
(let ((i 128))
(while (< i 256)
(push c out)))
(range
(while (<= b c)
- (push (mm-make-char 'ascii b) out)
+ (push (make-char 'ascii b) out)
(incf b))
(setq range nil))
((= i (length token))
- (push (mm-make-char 'ascii c) out))
+ (push (make-char 'ascii c) out))
(t
(when b
- (push (mm-make-char 'ascii b) out))
+ (push (make-char 'ascii b) out))
(setq b c))))
(nreverse out)))
(forward-sexp 1))
((eq c ?\()
(forward-sexp 1))
- ((memq c '(? ?\t ?\n))
+ ((memq c '(?\ ?\t ?\n))
(delete-char 1))
(t
(forward-char 1))))
(concat "\"" string "\"")
string))
+(defun ietf-drums-make-address (name address)
+ (if name
+ (concat (ietf-drums-quote-string name) " <" address ">")
+ address))
+
(provide 'ietf-drums)
+;;; arch-tag: 379a0191-dbae-4ca6-a0f5-d4202c209ef9
;;; ietf-drums.el ends here