X-Git-Url: https://cgit.sxemacs.org/?p=gnus;a=blobdiff_plain;f=lisp%2Fgnus-vm.el;h=9ca7813702c387b801ced2a1d5947f763d99126f;hp=74a623c21bec4e774a412966dacf2d24c6c437c4;hb=e9c0c3e1a897728fef338d204074bdc6c46f5e5d;hpb=d0a7c2475a8172dd6358727d726cb301baf8613e diff --git a/lisp/gnus-vm.el b/lisp/gnus-vm.el index 74a623c21..9ca781370 100644 --- a/lisp/gnus-vm.el +++ b/lisp/gnus-vm.el @@ -1,15 +1,17 @@ ;;; gnus-vm.el --- vm interface for Gnus -;; Copyright (C) 1994,95,96 Free Software Foundation, Inc. + +;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +;; 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. ;; Author: Per Persson ;; Keywords: news, mail ;; This file is part of GNU Emacs. -;; GNU Emacs is free software; you can redistribute it and/or modify +;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) -;; any later version. +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -17,15 +19,13 @@ ;; GNU General Public License for more details. ;; 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. +;; along with GNU Emacs. If not, see . ;;; Commentary: -;; Major contributors: +;; Major contributors: ;; Christian Limpach -;; Some code stolen from: +;; Some code stolen from: ;; Rick Sladkey ;;; Code: @@ -34,9 +34,9 @@ (require 'message) (require 'gnus) (require 'gnus-msg) -(require 'gnus-load) (eval-when-compile + (require 'cl) (autoload 'vm-mode "vm") (autoload 'vm-save-message "vm") (autoload 'vm-forward-message "vm") @@ -47,14 +47,13 @@ "Inhibit loading `win-vm' if using a window-system. Has to be set before gnus-vm is loaded.") -(or gnus-vm-inhibit-window-system - (condition-case nil - (if window-system - (require 'win-vm)) - (error nil))) +(unless gnus-vm-inhibit-window-system + (ignore-errors + (when window-system + (require 'win-vm)))) -(if (not (featurep 'vm)) - (load "vm")) +(when (not (featurep 'vm)) + (load "vm")) (defun gnus-vm-make-folder (&optional buffer) (let ((article (or buffer (current-buffer))) @@ -75,7 +74,7 @@ Has to be set before gnus-vm is loaded.") (insert "\n") (vm-mode) tmp-folder)) - + (defun gnus-summary-save-article-vm (&optional arg) "Append the current article to a vm folder. If N is a positive number, save the N next articles. @@ -83,30 +82,25 @@ 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-vm)) (gnus-summary-save-article arg))) (defun gnus-summary-save-in-vm (&optional folder) (interactive) - (let ((default-name - (funcall gnus-mail-save-name gnus-newsgroup-name - gnus-current-headers gnus-newsgroup-last-mail))) - (setq folder - (cond ((eq folder 'default) default-name) - (folder folder) - (t (gnus-read-save-file-name - "Save %s in VM folder:" default-name)))) - (gnus-make-directory (file-name-directory folder)) - (set-buffer gnus-original-article-buffer) + (setq folder + (gnus-read-save-file-name + "Save %s in VM folder:" folder + gnus-mail-save-name gnus-newsgroup-name + gnus-current-headers 'gnus-newsgroup-last-mail)) + (gnus-eval-in-buffer-window gnus-original-article-buffer (save-excursion (save-restriction (widen) (let ((vm-folder (gnus-vm-make-folder))) (vm-save-message folder) - (kill-buffer vm-folder)))) - ;; Remember the directory name to save articles. - (setq gnus-newsgroup-last-mail folder))) + (kill-buffer vm-folder)))))) (provide 'gnus-vm) -;;; gnus-vm.el ends here. +;;; gnus-vm.el ends here