(mm-find-mime-charset-region): Don't do Latin-9 hack
[gnus] / lisp / ietf-drums.el
index 982c520..ae97c7e 100644 (file)
@@ -1,5 +1,5 @@
 ;;; ietf-drums.el --- Functions for parsing RFC822bis headers
-;; Copyright (C) 1998, 1999, 2000
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -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.")
 
     (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)
     (with-temp-buffer
       (ietf-drums-init string)
       (let ((beg (point))
-           pairs c)
+           pairs c address)
        (while (not (eobp))
          (setq c (char-after))
          (cond
           ((memq c '(?\" ?< ?\())
-           (forward-sexp 1))
+           (condition-case nil
+               (forward-sexp 1)
+             (error
+              (skip-chars-forward "^,"))))
           ((eq c ?,)
-           (push (ietf-drums-parse-address (buffer-substring beg (point)))
-                 pairs)
+           (setq address
+                 (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))))
-       (push (ietf-drums-parse-address (buffer-substring beg (point)))
-             pairs)
+       (setq address
+             (condition-case nil
+                 (ietf-drums-parse-address
+                  (buffer-substring beg (point)))
+               (error nil)))
+       (if address (push address pairs))
        (nreverse pairs)))))
 
 (defun ietf-drums-unfold-fws ()