X-Git-Url: http://cgit.sxemacs.org/?a=blobdiff_plain;f=lisp%2Fietf-drums.el;h=07fbc460f7a61ad5c29cf62ce6c2d3908835165f;hb=dee3b415bd86cf0c59063b95edfa0c3f909138af;hp=5e50e06a30e1d96e4f1f670370bc5e62a6f022d5;hpb=886b7ddb174d4f9a7c355976e5dc1611a670d0e6;p=gnus diff --git a/lisp/ietf-drums.el b/lisp/ietf-drums.el index 5e50e06a3..07fbc460f 100644 --- a/lisp/ietf-drums.el +++ b/lisp/ietf-drums.el @@ -1,5 +1,5 @@ ;;; ietf-drums.el --- Functions for parsing RFC822bis headers -;; Copyright (C) 1998, 1999, 2000, 2001 +;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 ;; Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen @@ -36,7 +36,7 @@ (defvar ietf-drums-no-ws-ctl-token "\001-\010\013\014\016-\037\177" "US-ASCII control characters excluding CR, LF and white space.") (defvar ietf-drums-text-token "\001-\011\013\014\016-\177" - "US-ASCII characters exlcuding CR and LF.") + "US-ASCII characters excluding CR and LF.") (defvar ietf-drums-specials-token "()<>[]:;@\\,.\"" "Special characters.") (defvar ietf-drums-quote-token "\\" @@ -52,7 +52,8 @@ "Textual token including full stop.") (defvar ietf-drums-qtext-token (concat ietf-drums-no-ws-ctl-token "\041\043-\133\135-\177") - "Non-white-space control characaters, plus the rest of ASCII excluding backslash and doublequote.") + "Non-white-space control characters, plus the rest of ASCII excluding +backslash and doublequote.") (defvar ietf-drums-tspecials "][()<>@,;:\\\"/?=" "Tspecials.") @@ -63,10 +64,14 @@ (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) + (if (featurep 'xemacs) + (let ((i 128)) + (while (< i 256) + (modify-syntax-entry i "w" table) + (setq i (1+ i))))) table)) (defun ietf-drums-token-to-list (token) @@ -83,14 +88,14 @@ (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))) @@ -216,7 +221,7 @@ ((eq c ?,) (setq address (condition-case nil - (ietf-drums-parse-address + (ietf-drums-parse-address (buffer-substring beg (point))) (error nil))) (if address (push address pairs)) @@ -226,7 +231,7 @@ (forward-char 1)))) (setq address (condition-case nil - (ietf-drums-parse-address + (ietf-drums-parse-address (buffer-substring beg (point))) (error nil))) (if address (push address pairs)) @@ -258,6 +263,11 @@ (concat "\"" string "\"") string)) +(defun ietf-drums-make-address (name address) + (if name + (concat (ietf-drums-quote-string name) " <" address ">") + address)) + (provide 'ietf-drums) ;;; ietf-drums.el ends here