This commit was generated by cvs2svn to compensate for changes in r8000,
[elisp/gnus.git-] / lisp / nnsoup.el
index 22c22da..e764150 100644 (file)
@@ -1,5 +1,5 @@
 ;;; nnsoup.el --- SOUP access for Gnus
-;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;;     Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
 (defvoo nnsoup-directory "~/SOUP/"
   "*SOUP packet directory.")
 
-(defvoo nnsoup-tmp-directory
-    (cond ((fboundp 'temp-directory) (temp-directory))
-         ((boundp 'temporary-file-directory) temporary-file-directory)
-         ("/tmp/"))
+(defvoo nnsoup-tmp-directory "/tmp/"
   "*Where nnsoup will store temporary files.")
 
 (defvoo nnsoup-replies-directory (concat nnsoup-directory "replies/")
@@ -73,8 +70,8 @@ The SOUP packet file name will be inserted at the %s.")
   "*Regular expression matching SOUP packets in `nnsoup-packet-directory'.")
 
 (defvoo nnsoup-always-save t
-  "If non nil commit the reply buffer on each message send.
-This is necessary if using message mode outside Gnus with nnsoup as a
+  "If non nil commit the reply buffer on each message send. 
+This is necessary if using message mode outside Gnus with nnsoup as a 
 backend for the messages.")
 
 \f
@@ -379,7 +376,7 @@ backend for the messages.")
             (or force
                 nnsoup-group-alist-touched))
     (setq nnsoup-group-alist-touched nil)
-    (with-temp-file nnsoup-active-file
+    (nnheader-temp-write nnsoup-active-file
       (gnus-prin1 `(setq nnsoup-group-alist ',nnsoup-group-alist))
       (insert "\n")
       (gnus-prin1 `(setq nnsoup-current-prefix ,nnsoup-current-prefix))
@@ -533,9 +530,9 @@ backend for the messages.")
        (when (file-exists-p (concat nnsoup-directory file))
          (save-excursion               ; Load the file.
            (set-buffer (get-buffer-create buffer-name))
-           (buffer-disable-undo)
+           (buffer-disable-undo (current-buffer))
            (push (cons nnsoup-current-group (current-buffer)) nnsoup-buffers)
-           (mm-insert-file-contents (concat nnsoup-directory file))
+           (nnheader-insert-file-contents (concat nnsoup-directory file))
            (current-buffer))))))
 
 (defun nnsoup-file (prefix &optional message)
@@ -669,6 +666,8 @@ backend for the messages.")
   (require 'mail-utils)
   (let ((tembuf (generate-new-buffer " message temp"))
        (case-fold-search nil)
+       (real-header-separator mail-header-separator)
+       (mail-header-separator "")
        delimline
        (mailbuf (current-buffer)))
     (unwind-protect
@@ -694,11 +693,15 @@ backend for the messages.")
            ;; Change header-delimiter to be what sendmail expects.
            (goto-char (point-min))
            (re-search-forward
-            (concat "^" (regexp-quote mail-header-separator) "\n"))
+            (concat "^" (regexp-quote real-header-separator) "\n"))
            (replace-match "\n")
            (backward-char 1)
            (setq delimline (point-marker))
+           ;; Insert an extra newline if we need it to work around
+           ;; Sun's bug that swallows newlines.
            (goto-char (1+ delimline))
+           (when (eval message-mailer-swallows-blank-line)
+             (newline))
            (let ((msg-buf
                   (gnus-soup-store
                    nnsoup-replies-directory
@@ -749,10 +752,11 @@ backend for the messages.")
                                 (string-to-int (match-string 1 f2)))))))
        active group lines ident elem min)
     (set-buffer (get-buffer-create " *nnsoup work*"))
+    (buffer-disable-undo (current-buffer))
     (while files
       (nnheader-message 5 "Doing %s..." (car files))
       (erase-buffer)
-      (mm-insert-file-contents (car files))
+      (nnheader-insert-file-contents (car files))
       (goto-char (point-min))
       (if (not (re-search-forward "^[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t *\\(Xref: \\)? *[^ ]* \\([^ ]+\\):[0-9]" nil t))
          (setq group "unknown")