* gnus-vers.el (gnus-revision-number): Increment to 01.
[elisp/gnus.git-] / lisp / gnus-soup.el
index 1f43068..baa6c2b 100644 (file)
@@ -1,6 +1,6 @@
 ;;; gnus-soup.el --- SOUP packet writing support for Gnus
 
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2002
 ;;     Free Software Foundation, Inc.
 
 ;; Author: Per Abrahamsen <abraham@iesd.auc.dk>
@@ -338,8 +338,9 @@ If NOT-ALL, don't pack ticked articles."
       (while (setq prefix (pop prefixes))
        (erase-buffer)
        (insert (format "(setq gnus-soup-prev-prefix %d)\n" (cdr prefix)))
-       (let ((coding-system-for-write mm-text-coding-system))
-         (gnus-write-buffer (concat (car prefix) gnus-soup-prefix-file)))))))
+       (gnus-write-buffer-as-coding-system
+        nnheader-text-coding-system
+        (concat (car prefix) gnus-soup-prefix-file))))))
 
 (defun gnus-soup-pack (dir packer)
   (let* ((files (mapconcat 'identity
@@ -540,26 +541,35 @@ Return whether the unpacking was successful."
                                     (match-beginning 1) (match-end 1)))))
              (switch-to-buffer tmp-buf)
              (erase-buffer)
+             (set-buffer-multibyte nil)
              (insert-buffer-substring msg-buf beg end)
-             (goto-char (point-min))
-             (search-forward "\n\n")
-             (forward-char -1)
-             (insert mail-header-separator)
-             (setq message-newsreader (setq message-mailer
-                                            (gnus-extended-version)))
              (cond
               ((string= (gnus-soup-reply-kind (car replies)) "news")
                (gnus-message 5 "Sending news message to %s..."
                              (mail-fetch-field "newsgroups"))
                (sit-for 1)
                (let ((message-syntax-checks
-                      'dont-check-for-anything-just-trust-me))
-                 (funcall message-send-news-function)))
+                      'dont-check-for-anything-just-trust-me)
+                     (method (if (message-functionp message-post-method)
+                                 (funcall message-post-method)
+                               message-post-method))
+                     result)
+                 (run-hooks 'message-send-news-hook)
+                 (gnus-open-server method)
+                 (message "Sending news via %s..."
+                          (gnus-server-string method))
+                 (unless (let ((mail-header-separator ""))
+                           (gnus-request-post method))
+                   (message "Couldn't send message via news: %s"
+                            (nnheader-get-report (car method))))))
               ((string= (gnus-soup-reply-kind (car replies)) "mail")
                (gnus-message 5 "Sending mail to %s..."
                              (mail-fetch-field "to"))
                (sit-for 1)
-               (message-send-mail))
+               (let ((mail-header-separator ""))
+                 (mm-with-unibyte-current-buffer
+                  (funcall (or message-send-mail-real-function
+                               message-send-mail-function)))))
               (t
                (error "Unknown reply kind")))
              (set-buffer msg-buf)