Article View: gnu.emacs.vm.bug
Article #9197save message target folder picking enhancement
From: Joe Wells
Date: Fri, 28 Feb 1992 08:11
Date: Fri, 28 Feb 1992 08:11
96 lines
4490 bytes
4490 bytes
Vastly improved semantics for interactively picking which file/folder to
save a message in. Much closer to GNUS, so less confusion. Much easier
to save several successive messages in different files in a strange
directory. Never autoselects the current folder, so you don't
accidentally save messages into the folder they are already in. Only sets
vm-last-save-folder if it would be different from the default. Other
minor bug fixes. Functionality of selecting folder separated out into
another function, and thus easier to debug and customize.
If you don't want to use this stuff, please tell me so I can argue with
you about it. It is a real pain to transport changes like this from
version to version.
--
Joe Wells <jbw@cs.bu.edu>
Member of the League for Programming Freedom --- send e-mail for details
----------------------------------------------------------------------
--- vm-save.el-dist Sat Apr 20 19:33:03 1991
+++ ./vm-save.el Fri May 17 21:48:45 1991
@@ -131,19 +131,5 @@
(interactive
(list
- ;; protect value of last-command
- (let ((last-command last-command))
- (vm-follow-summary-cursor)
- (let ((default (save-excursion
- (vm-select-folder-buffer)
- (vm-check-for-killed-summary)
- (or (vm-auto-select-folder vm-message-pointer
- vm-auto-folder-alist)
- vm-last-save-folder)))
- (dir (or vm-folder-directory default-directory)))
- (if default
- (read-file-name (format "Save in folder: (default %s) "
- default)
- dir default nil )
- (read-file-name "Save in folder: " dir nil nil))))
+ (vm-get-save-folder) ;jbw: replaced lots with this call
(prefix-numeric-value current-prefix-arg)))
(let (unexpanded-folder)
@@ -220,8 +206,52 @@
(buffer-name folder-buffer)))
(message "Message%s saved to %s" (if (/= 1 count) "s" "") folder)))
- (setq vm-last-save-folder unexpanded-folder)
+ ;;(setq vm-last-save-folder unexpanded-folder) ;jbw: commented out
(if vm-delete-after-saving
(vm-delete-message count))
(vm-update-summary-and-mode-line)))
+
+(defun vm-get-save-folder ()
+ (let ((last-command last-command) ; protect value of last-command
+ (this-command this-command)
+ (current-prefix-arg current-prefix-arg)
+ (folder-dir (file-name-as-directory
+ (expand-file-name
+ (expand-file-name vm-folder-directory "~"))))
+ current-folder auto-select-folder last-save-folder default-folder
+ default-dir folder)
+ (vm-follow-summary-cursor)
+ (save-excursion
+ (vm-select-folder-buffer)
+ (vm-check-for-killed-summary)
+ (vm-error-if-folder-empty)
+ (setq current-folder buffer-file-name)
+ (setq auto-select-folder
+ (vm-auto-select-folder vm-message-pointer vm-auto-folder-alist))
+ (if auto-select-folder
+ (setq auto-select-folder
+ (expand-file-name auto-select-folder folder-dir)))
+ (setq last-save-folder vm-last-save-folder)
+ (if (string-equal current-folder auto-select-folder)
+ (setq auto-select-folder nil))
+ (setq default-folder (or auto-select-folder last-save-folder))
+ (setq default-dir (if default-folder
+ (file-name-directory default-folder)
+ (or folder-dir default-directory))))
+ (setq folder
+ (read-file-name
+ (format "Save in folder: %s"
+ (if default-folder
+ (concat "\(default "
+ (file-name-nondirectory default-folder)
+ "\) ")
+ ""))
+ default-dir default-folder nil))
+ (or folder (error "impossible: read-file-name returned nil!"))
+ (cond ((or (not default-folder)
+ (not (string-equal default-folder folder)))
+ (save-excursion
+ (vm-select-folder-buffer)
+ (setq vm-last-save-folder (expand-file-name folder)))))
+ folder))
(defun vm-save-message-sans-headers (file &optional count)
----------------------------------------------------------------------
Technical Details
Message-ID:
<9202280811.AA18805@bigbird.bu.edu>Path:
arc1-ca.pugleaf.net!sparky!uunet!wendy-fate.uu.net!bug-vmShow Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: f6829,cde213e9eea7c949,start X-Google-Attributes: gidf6829,public X-Google-ArrivalTime: 1992-02-28 03:18:41 PST Newsgroups: gnu.emacs.vm.bug Sender: bug-vm-request@uunet.uu.net Date: Fri, 28 Feb 92 03:11:02 -0500 From: jbw@bigbird.bu.edu (Joe Wells) Message-ID: <9202280811.AA18805@bigbird.bu.edu> Subject: save message target folder picking enhancement Path: arc1-ca.pugleaf.net!sparky!uunet!wendy-fate.uu.net!bug-vm