(gnus-dribble-read-file): Quote file-precious-flag.
[gnus] / lisp / gnus-mh.el
index ce15a01..cc36aa6 100644 (file)
@@ -1,8 +1,10 @@
 ;;; gnus-mh.el --- mh-e interface for Gnus
-;; Copyright (C) 1994,95,96,97 Free Software Foundation, Inc.
+
+;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003,
+;;   2004, 2005 Free Software Foundation, Inc.
 
 ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
-;;     Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+;;     Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
@@ -19,8 +21,8 @@
 
 ;; You should have received a copy of the GNU General Public License
 ;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
 
 ;;; Commentary:
 
@@ -39,6 +41,9 @@
 (require 'gnus-msg)
 (require 'gnus-sum)
 
+(eval-when-compile
+  (defvar mh-lib-progs))
+
 (defun gnus-summary-save-article-folder (&optional arg)
   "Append the current article to an mh folder.
 If N is a positive number, save the N next articles.
@@ -46,6 +51,7 @@ If N is a negative number, save the N previous articles.
 If N is nil and any articles have been marked with the process mark,
 save those articles instead."
   (interactive "P")
+  (require 'gnus-art)
   (let ((gnus-default-article-saver 'gnus-summary-save-in-folder))
     (gnus-summary-save-article arg)))
 
@@ -55,14 +61,23 @@ Optional argument FOLDER specifies folder name."
   ;; Thanks to yuki@flab.Fujitsu.JUNET and ohm@kaba.junet.
   (mh-find-path)
   (let ((folder
-        (gnus-read-save-file-name
-                 "Save %s in file:" folder
-                 gnus-folder-save-name gnus-newsgroup-name
-                 gnus-current-headers 'gnus-newsgroup-last-folder))
-       (errbuf (get-buffer-create " *Gnus rcvstore*"))
+        (cond ((and (eq folder 'default)
+                    gnus-newsgroup-last-folder)
+               gnus-newsgroup-last-folder)
+              (folder folder)
+              (t (mh-prompt-for-folder
+                  "Save article in"
+                  (funcall gnus-folder-save-name gnus-newsgroup-name
+                           gnus-current-headers gnus-newsgroup-last-folder)
+                  t))))
+       (errbuf (gnus-get-buffer-create " *Gnus rcvstore*"))
        ;; Find the rcvstore program.
-       (exec-path (if mh-lib (cons mh-lib exec-path) exec-path)))
-    (gnus-eval-in-buffer-window gnus-original-article-buffer
+       (exec-path (cond
+                   ((and (boundp 'mh-lib-progs) mh-lib-progs)
+                    (cons mh-lib-progs exec-path))
+                   (mh-lib (cons mh-lib exec-path))
+                   (t exec-path))))
+    (with-current-buffer gnus-original-article-buffer
       (save-restriction
        (widen)
        (unwind-protect
@@ -97,4 +112,5 @@ Otherwise, it is like +news/group."
 
 (provide 'gnus-mh)
 
+;;; arch-tag: 2d5696d3-b363-48e5-8749-c256be56acca
 ;;; gnus-mh.el ends here