message.el (message-unquote-tokens): New function.
authorSimon Josefsson <jas@extundo.com>
Sun, 25 Jun 2000 09:53:37 +0000 (09:53 +0000)
committerSimon Josefsson <jas@extundo.com>
Sun, 25 Jun 2000 09:53:37 +0000 (09:53 +0000)
gnus-msg.el (gnus-inews-do-gcc): Unquote gcc tokens.
nnimap.el (nnimap-request-post): Ditto.

lisp/gnus-msg.el
lisp/message.el
lisp/nnimap.el

index e094a4d..85d765c 100644 (file)
@@ -1037,7 +1037,8 @@ this is a reply."
          (when gcc
            (message-remove-header "gcc")
            (widen)
-           (setq groups (message-tokenize-header gcc " ,"))
+           (setq groups (message-unquote-tokens
+                          (message-tokenize-header gcc " ,")))
            ;; Copy the article over to some group(s).
            (while (setq group (pop groups))
              (gnus-check-server
index a2a6156..41777b6 100644 (file)
@@ -1032,9 +1032,19 @@ should be sent in several parts. If it is nil, the size is unlimited."
   `(delete-region (progn (beginning-of-line) (point))
                  (progn (forward-line ,(or n 1)) (point))))
 
+(defun message-unquote-tokens (elems)
+  "Remove leading and trailing double quotes (\") from quoted strings
+in list."
+  (mapcar (lambda (item)
+            (if (string-match "^\"\\(.*\\)\"$" item)
+                (match-string 1 item)
+              item))
+          elems))
+
 (defun message-tokenize-header (header &optional separator)
   "Split HEADER into a list of header elements.
-\",\" is used as the separator."
+SEPARATOR is a string of characters to be used as separators.  \",\"
+is used by default."
   (if (not header)
       nil
     (let ((regexp (format "[%s]+" (or separator ",")))
@@ -1064,7 +1074,7 @@ should be sent in several parts. If it is nil, the size is unlimited."
                ((and (eq (char-after) ?\))
                      (not quoted))
                 (setq paren nil))))
-       (nreverse elems)))))
+        (nreverse elems)))))
 
 (defun message-mail-file-mbox-p (file)
   "Say whether FILE looks like a Unix mbox file."
index 26bf473..b83361a 100644 (file)
@@ -37,7 +37,6 @@
 ;; Todo, minor things:
 ;;
 ;;   o Don't require half of Gnus -- backends should be standalone
-;;   o Support escape characters in `message-tokenize-header'
 ;;   o Verify that we don't use IMAP4rev1 specific things (RFC2060 App B)
 ;;   o Dont uid fetch 1,* in nnimap-retrive-groups (slow)
 ;;   o Split up big fetches (1,* header especially) in smaller chunks
@@ -741,8 +740,9 @@ function is generally only called when Gnus is shutting down."
 
 (deffoo nnimap-request-post (&optional server)
   (let ((success t))
-    (dolist  (mbx (message-tokenize-header
-                  (message-fetch-field "Newsgroups")) success)
+    (dolist (mbx (message-unquote-tokens
+                  (message-tokenize-header
+                   (message-fetch-field "Newsgroups") ", ") success))
       (let ((to-newsgroup (gnus-group-prefixed-name mbx gnus-command-method)))
        (or (gnus-active to-newsgroup)
            (gnus-activate-group to-newsgroup)