projects
/
gnus
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
shr: Render td content with shr-descend
[gnus]
/
lisp
/
ietf-drums.el
diff --git
a/lisp/ietf-drums.el
b/lisp/ietf-drums.el
index
d21c6e6
..
f72b09c
100644
(file)
--- a/
lisp/ietf-drums.el
+++ b/
lisp/ietf-drums.el
@@
-1,24
+1,23
@@
;;; ietf-drums.el --- Functions for parsing RFC822bis headers
;;; ietf-drums.el --- Functions for parsing RFC822bis headers
-;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
-;; Free Software Foundation, Inc.
+
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;; 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; This file is part of GNU Emacs.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; This file is part of GNU Emacs.
-;; GNU Emacs is free software
;
you can redistribute it and/or modify
+;; GNU Emacs is free software
:
you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation
; either version 2, or (at your option)
-;; any later version.
+;; the Free Software Foundation
, either version 3 of the License, or
+;;
(at your option)
any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; GNU General Public License for more details.
;; 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.
+;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;;; Commentary:
@@
-40,7
+39,6
@@
;;; Code:
(eval-when-compile (require 'cl))
;;; Code:
(eval-when-compile (require 'cl))
-(require 'time-date)
(require 'mm-util)
(defvar ietf-drums-no-ws-ctl-token "\001-\010\013\014\016-\037\177"
(require 'mm-util)
(defvar ietf-drums-no-ws-ctl-token "\001-\010\013\014\016-\037\177"
@@
-124,9
+122,18
@@
backslash and doublequote.")
(setq c (char-after))
(cond
((eq c ?\")
(setq c (char-after))
(cond
((eq c ?\")
- (forward-sexp 1))
+ (condition-case err
+ (forward-sexp 1)
+ (error (goto-char (point-max)))))
((eq c ?\()
((eq c ?\()
- (delete-region (point) (progn (forward-sexp 1) (point))))
+ (delete-region
+ (point)
+ (condition-case nil
+ (with-syntax-table (copy-syntax-table ietf-drums-syntax-table)
+ (modify-syntax-entry ?\" "w")
+ (forward-sexp 1)
+ (point))
+ (error (point-max)))))
(t
(forward-char 1))))
(buffer-string))))
(t
(forward-char 1))))
(buffer-string))))
@@
-143,7
+150,7
@@
backslash and doublequote.")
(forward-sexp 1))
((eq c ?\()
(forward-sexp 1))
(forward-sexp 1))
((eq c ?\()
(forward-sexp 1))
- ((memq c '(? ?\t ?\n))
+ ((memq c '(?
\
?\t ?\n))
(delete-char 1))
(t
(forward-char 1))))
(delete-char 1))
(t
(forward-char 1))))
@@
-199,7
+206,9
@@
backslash and doublequote.")
(buffer-substring
(1+ (point))
(progn (forward-sexp 1) (1- (point))))))))
(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
;; If we found no display-name, then we look for comments.
(if display-name
(setq display-string
@@
-212,8
+221,10
@@
backslash and doublequote.")
(ietf-drums-get-comment string)))
(cons mailbox 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
(if (null string)
nil
(with-temp-buffer
@@
-230,20
+241,24
@@
backslash and doublequote.")
(skip-chars-forward "^,"))))
((eq c ?,)
(setq address
(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
(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)))))
(if address (push address pairs))
(nreverse pairs)))))
@@
-280,5
+295,4
@@
backslash and doublequote.")
(provide 'ietf-drums)
(provide 'ietf-drums)
-;;; arch-tag: 379a0191-dbae-4ca6-a0f5-d4202c209ef9
;;; ietf-drums.el ends here
;;; ietf-drums.el ends here