emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs/lisp/gnus ChangeLog gnus-util.el


From: Glenn Morris
Subject: [Emacs-diffs] emacs/lisp/gnus ChangeLog gnus-util.el
Date: Sun, 15 Feb 2009 00:31:08 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Glenn Morris <gm>       09/02/15 00:31:08

Modified files:
        lisp/gnus      : ChangeLog gnus-util.el 

Log message:
        (rmail-insert-rmail-file-header, rmail-count-new-messages)
        (rmail-show-message): Remove unnecessary autoloads.
        (rmail-default-rmail-file): Remove unnecessary declaration.
        (gnus-output-to-rmail): Handle mbox Rmail as well as Babyl Rmail.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/gnus/ChangeLog?cvsroot=emacs&r1=1.797&r2=1.798
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/gnus/gnus-util.el?cvsroot=emacs&r1=1.70&r2=1.71

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/emacs/emacs/lisp/gnus/ChangeLog,v
retrieving revision 1.797
retrieving revision 1.798
diff -u -b -r1.797 -r1.798
--- ChangeLog   14 Feb 2009 05:09:13 -0000      1.797
+++ ChangeLog   15 Feb 2009 00:31:07 -0000      1.798
@@ -1,3 +1,11 @@
+2009-02-15  Glenn Morris  <address@hidden>
+
+       * gnus-util.el (rmail-insert-rmail-file-header)
+       (rmail-count-new-messages, rmail-show-message): Remove unnecessary
+       autoloads.
+       (rmail-default-rmail-file): Remove unnecessary declaration.
+       (gnus-output-to-rmail): Handle mbox Rmail as well as Babyl Rmail.
+
 2009-02-14  Glenn Morris  <address@hidden>
 
        * gnus.el (rmail-default-rmail-file): Remove declaration of deleted

Index: gnus-util.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/gnus/gnus-util.el,v
retrieving revision 1.70
retrieving revision 1.71
diff -u -b -r1.70 -r1.71
--- gnus-util.el        5 Jan 2009 03:22:05 -0000       1.70
+++ gnus-util.el        15 Feb 2009 00:31:07 -0000      1.71
@@ -52,9 +52,6 @@
 
 (autoload 'message-fetch-field "message")
 (autoload 'gnus-get-buffer-window "gnus-win")
-(autoload 'rmail-insert-rmail-file-header "rmail")
-(autoload 'rmail-count-new-messages "rmail")
-(autoload 'rmail-show-message "rmail")
 (autoload 'nnheader-narrow-to-headers "nnheader")
 (autoload 'nnheader-replace-chars-in-string "nnheader")
 (autoload 'mail-header-remove-comments "mail-parse")
@@ -1053,31 +1050,45 @@
      (autoload 'rmail-summary-displayed "rmail")
      (autoload 'rmail-maybe-display-summary "rmail"))))
 
-(defvar rmail-default-rmail-file)
 (defvar mm-text-coding-system)
 
 (declare-function mm-append-to-file "mm-util"
                   (start end filename &optional codesys inhibit))
 
 (defun gnus-output-to-rmail (filename &optional ask)
-  "Append the current article to an Rmail file named FILENAME."
+  "Append the current article to an Rmail file named FILENAME.
+In Emacs 22 this writes Babyl format; in Emacs 23 it writes mbox unless
+FILENAME exists and is Babyl format."
   (require 'rmail)
   (require 'mm-util)
-  ;; Most of these codes are borrowed from rmailout.el.
+  ;; Some of this codes is borrowed from rmailout.el.
   (setq filename (expand-file-name filename))
-  (setq rmail-default-rmail-file filename)
+  ;; FIXME should we really be messing with this defcustom?
+  ;; It is not needed for the operation of this function.
+  (if (boundp 'rmail-default-rmail-file)
+      (setq rmail-default-rmail-file filename) ; 22
+    (setq rmail-default-file filename))        ; 23
   (let ((artbuf (current-buffer))
-       (tmpbuf (get-buffer-create " *Gnus-output*")))
+       (tmpbuf (get-buffer-create " *Gnus-output*"))
+        ;; Babyl rmail.el defines this, mbox does not.
+        (babyl (fboundp 'rmail-insert-rmail-file-header)))
     (save-excursion
+      ;; Note that we ignore the possibility of visiting a Babyl
+      ;; format buffer in Emacs 23, since Rmail no longer supports that.
       (or (get-file-buffer filename)
-         (file-exists-p filename)
+         (progn
+           ;; In case someone wants to write to a Babyl file from Emacs 23.
+           (when (file-exists-p filename)
+             (setq babyl (mail-file-babyl-p filename))
+             t))
          (if (or (not ask)
                  (gnus-yes-or-no-p
                   (concat "\"" filename "\" does not exist, create it? ")))
              (let ((file-buffer (create-file-buffer filename)))
                (save-excursion
                  (set-buffer file-buffer)
-                 (rmail-insert-rmail-file-header)
+                  (if (fboundp 'rmail-insert-rmail-file-header)
+                      (rmail-insert-rmail-file-header))
                  (let ((require-final-newline nil)
                        (coding-system-for-write mm-text-coding-system))
                    (gnus-write-buffer filename)))
@@ -1086,32 +1097,56 @@
       (set-buffer tmpbuf)
       (erase-buffer)
       (insert-buffer-substring artbuf)
+      (if babyl
       (gnus-convert-article-to-rmail)
+        ;; Non-Babyl case copied from gnus-output-to-mail.
+        (goto-char (point-min))
+        (if (looking-at "From ")
+            (forward-line 1)
+          (insert "From nobody " (current-time-string) "\n"))
+        (let (case-fold-search)
+          (while (re-search-forward "^From " nil t)
+            (beginning-of-line)
+            (insert ">"))))
       ;; Decide whether to append to a file or to an Emacs buffer.
       (let ((outbuf (get-file-buffer filename)))
        (if (not outbuf)
+            (progn
+              (unless babyl             ; from gnus-output-to-mail
+                (let ((buffer-read-only nil))
+                  (goto-char (point-max))
+                  (forward-char -2)
+                  (unless (looking-at "\n\n")
+                    (goto-char (point-max))
+                    (unless (bolp)
+                      (insert "\n"))
+                    (insert "\n"))))
            (let ((file-name-coding-system nnmail-pathname-coding-system))
-             (mm-append-to-file (point-min) (point-max) filename))
+                (mm-append-to-file (point-min) (point-max) filename)))
          ;; File has been visited, in buffer OUTBUF.
          (set-buffer outbuf)
          (let ((buffer-read-only nil)
                (msg (and (boundp 'rmail-current-message)
                          (symbol-value 'rmail-current-message))))
            ;; If MSG is non-nil, buffer is in RMAIL mode.
+            ;; Compare this with rmail-output-to-rmail-buffer in Emacs 23.
            (when msg
+              (unless babyl
+                (rmail-swap-buffers-maybe)
+                (rmail-maybe-set-message-counters))
              (widen)
              (narrow-to-region (point-max) (point-max)))
            (insert-buffer-substring tmpbuf)
            (when msg
+              (when babyl
              (goto-char (point-min))
              (widen)
              (search-backward "\n\^_")
-             (narrow-to-region (point) (point-max))
+                (narrow-to-region (point) (point-max)))
              (rmail-count-new-messages t)
              (when (rmail-summary-exists)
                (rmail-select-summary
                 (rmail-update-summary)))
-             (rmail-count-new-messages t)
              (rmail-show-message msg))
            (save-buffer)))))
     (kill-buffer tmpbuf)))




reply via email to

[Prev in Thread] Current Thread [Next in Thread]