;;; ietf-drums.el --- Functions for parsing RFC822bis headers
;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-;; 2005, 2006 Free Software Foundation, Inc.
+;; 2005, 2006, 2007 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; This file is part of GNU Emacs.
(buffer-substring
(1+ (point))
(progn (forward-sexp 1) (1- (point))))))))
- (t (error "Unknown symbol: %c" c))))
+ (t
+ (message "Unknown symbol: %c" c)
+ (forward-char 1))))
;; If we found no display-name, then we look for comments.
(if display-name
(setq display-string
(ietf-drums-get-comment string)))
(cons mailbox display-string)))))
-(defun ietf-drums-parse-addresses (string)
- "Parse STRING and return a list of MAILBOX / DISPLAY-NAME pairs."
+(defun ietf-drums-parse-addresses (string &optional rawp)
+ "Parse STRING and return a list of MAILBOX / DISPLAY-NAME pairs.
+If RAWP, don't actually parse the addresses, but instead return
+a list of address strings."
(if (null string)
nil
(with-temp-buffer
(skip-chars-forward "^,"))))
((eq c ?,)
(setq address
- (condition-case nil
- (ietf-drums-parse-address
- (buffer-substring beg (point)))
- (error nil)))
+ (if rawp
+ (buffer-substring beg (point))
+ (condition-case nil
+ (ietf-drums-parse-address
+ (buffer-substring beg (point)))
+ (error nil))))
(if address (push address pairs))
(forward-char 1)
(setq beg (point)))
(t
(forward-char 1))))
(setq address
- (condition-case nil
- (ietf-drums-parse-address
- (buffer-substring beg (point)))
- (error nil)))
+ (if rawp
+ (buffer-substring beg (point))
+ (condition-case nil
+ (ietf-drums-parse-address
+ (buffer-substring beg (point)))
+ (error nil))))
(if address (push address pairs))
(nreverse pairs)))))