*** empty log message ***
[gnus] / lisp / gnus-msg.el
index 5260487..5d1778e 100644 (file)
@@ -61,7 +61,13 @@ of names).")
 This can either be a string, a list of strings; or an alist
 of regexps/functions/forms to be evaluated to return a string (or a list
 of strings).  The functions are called with the name of the current
-group (or nil) as a parameter.")
+group (or nil) as a parameter.
+
+Normally the group names returned by this variable should be
+unprefixed -- which implictly means \"store on the archive server\".
+However, you may wish to store the message on some other server.  In
+that case, just return a fully prefixed name of the group --
+\"nnml+private:mail.misc\", for instance.")
 
 (defvar gnus-mailing-list-groups nil
   "*Regexp matching groups that are really mailing lists.
@@ -154,6 +160,7 @@ the group.")
 
 (put 'gnus-setup-message 'lisp-indent-function 1)
 (put 'gnus-setup-message 'lisp-indent-hook 1)
+(put 'gnus-setup-message 'edebug-form-spec '(form body))
 
 ;;; Post news commands of Gnus group mode and summary mode
 
@@ -271,22 +278,26 @@ header line with the old Message-ID."
   (or (memq gnus-article-copy gnus-buffer-list)
       (setq gnus-buffer-list (cons gnus-article-copy gnus-buffer-list)))
   (let ((article-buffer (or article-buffer gnus-article-buffer))
-       end)
+       end beg contents)
     (when (and (get-buffer article-buffer)
               (buffer-name (get-buffer article-buffer)))
       (save-excursion
        (set-buffer article-buffer)
        (save-restriction
          (widen)
-         (copy-to-buffer gnus-article-copy (point-min) (point-max))
+         (setq contents (format "%s" (buffer-string)))
          (set-buffer gnus-original-article-buffer)
          (goto-char (point-min))
+         (while (looking-at message-unix-mail-delimiter)
+           (forward-line 1))
+         (setq beg (point))
          (setq end (or (search-forward "\n\n" nil t) (point)))
          (set-buffer gnus-article-copy)
-         (gnus-set-text-properties (point-min) (point-max) nil)
+         (erase-buffer)
+         (insert contents)
          (delete-region (goto-char (point-min))
                         (or (search-forward "\n\n" nil t) (point)))
-         (insert-buffer-substring gnus-original-article-buffer 1 end)))
+         (insert-buffer-substring gnus-original-article-buffer beg end)))
       gnus-article-copy)))
 
 (defun gnus-post-news (post &optional group header article-buffer yank subject
@@ -880,7 +891,8 @@ this is a reply."
                                (t
                                 (eval (car var)))))))
              (setq var (cdr var)))
-           result))))
+           result)))
+        name)
     (when groups
       (when (stringp groups)
        (setq groups (list groups)))
@@ -889,10 +901,12 @@ this is a reply."
          (gnus-inews-narrow-to-headers)
          (goto-char (point-max))
          (insert "Gcc: ")
-         (while groups
-           (insert (gnus-group-prefixed-name 
-                    (pop groups) gnus-message-archive-method))
-           (insert " "))
+         (while (setq name (pop groups))
+           (insert (if (string-match ":" name)
+                       name
+                     (gnus-group-prefixed-name 
+                      name gnus-message-archive-method)))
+           (if groups (insert " ")))
          (insert "\n"))))))
 
 (defun gnus-summary-send-draft ()