vm team mailing list archive
-
vm team
-
Mailing list archive
-
Message #01145
[Merge] lp:~ryanakca/vm/vm-move-after-reading into lp:vm
Ryan Kavanagh has proposed merging lp:~ryanakca/vm/vm-move-after-reading into lp:vm.
Requested reviews:
VM development team (vm)
For more details, see:
https://code.launchpad.net/~ryanakca/vm/vm-move-after-reading/+merge/151987
Add variable to enable vm to move to the next message after marking one as read, similar to vm-move-after-delete .
--
https://code.launchpad.net/~ryanakca/vm/vm-move-after-reading/+merge/151987
Your team VM development team is requested to review the proposed merge of lp:~ryanakca/vm/vm-move-after-reading into lp:vm.
=== modified file 'configure.ac'
--- configure.ac 2011-12-30 12:14:08 +0000
+++ configure.ac 2013-03-06 15:25:25 +0000
@@ -86,6 +86,18 @@
AC_MSG_WARN([*** DVI and PDF files will not be built.])
fi ])
+# Find a install-info program. A failure is not fatal, only that info
+# files won't be properly installed
+AC_DEFUN([VM_PROG_INSTALLINFO],
+ [ AC_CHECK_PROG(INSTALL_INFO, ginstall-info, ginstall-info)
+ if test "x${INSTALL_INFO}" = "x" ; then
+ AC_CHECK_PROG(INSTALL_INFO, install-info, install-info)
+ if test "x{INSTALL_INFO}" = "x" ; then
+ AC_MSG_WARN([*** No install-info program found.])
+ AC_MSG_WARN([*** Info Dir file will not be updated.])
+ fi
+ fi ])
+
# Choose an Emacs flavor according to the --with-emacs user option, or try
# emacs and xemacs.
# We use EMACS_PROG instead of EMACS to avoid colliding with Emacs' own
@@ -261,6 +273,7 @@
VM_PROG_XARGS
VM_PROG_GNU_TAR
VM_PROG_MAKEINFO
+VM_PROG_INSTALLINFO
VM_PROG_TEXI2DVI
VM_PROG_EMACS
=== modified file 'info/Makefile.in'
--- info/Makefile.in 2011-12-30 15:24:10 +0000
+++ info/Makefile.in 2013-03-06 15:25:25 +0000
@@ -16,6 +16,7 @@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_DATA = @INSTALL_DATA@
+INSTALL_INFO = @INSTALL_INFO@
prefix = @prefix@
srcdir = @srcdir@
@@ -54,7 +55,11 @@
for i in `${LS} *.info* ` ; do \
echo "Installing $$i in $(DESTDIR)$(infodir)" ; \
$(INSTALL_DATA) $$i "$(DESTDIR)$(infodir)" ; \
- done ; \
+ if test "$(INSTALL_INFO)" ; then \
+ $(INSTALL_INFO) "$(DESTDIR)$(infodir)"/$$i \
+ "$(DESTDIR)$(infodir)"/dir ; \
+ fi ; \
+ done ; \
else \
if test "x$(LINKPATH)" = "x" ; then \
for i in `${LS} *.info* ` ; do \
=== modified file 'info/vm.texinfo'
--- info/vm.texinfo 2013-02-15 08:44:48 +0000
+++ info/vm.texinfo 2013-03-06 15:25:25 +0000
@@ -1898,11 +1898,13 @@
@findex vm-mark-message-unread
@kindex U
@kindex .
+@vindex vm-move-after-reading
You can ``unread'' a message (so to speak) by typing @kbd{U}
(@code{vm-unread-message}, also called @code{vm-mark-message-unread}).
-The current message will be marked unread. Conversely, you can mark
-an unread message as read by typing @kbd{.}
-(@code{vm-mark-message-read}).
+The current message will be marked unread. Conversely, you can mark an
+unread message as read by typing @kbd{.} (@code{vm-mark-message-read}).
+Setting the variable @var{vm-move-after-reading} will cause vm to move
+to the next undeleted message after marking the current message as read.
@findex vm-toggle-flag-message
@kindex !
=== modified file 'lisp/vm-folder.el'
--- lisp/vm-folder.el 2013-01-02 21:38:39 +0000
+++ lisp/vm-folder.el 2013-03-06 15:25:25 +0000
@@ -3253,18 +3253,24 @@
thread are affected."
(interactive "p")
(or count (setq count 1))
- (vm-follow-summary-cursor)
- (vm-select-folder-buffer-and-validate 1 (vm-interactive-p))
- (let ((mlist (vm-select-operable-messages
- count (vm-interactive-p) "Mark as read")))
- (while mlist
- (when (or (vm-unread-flag (car mlist))
- (vm-new-flag (car mlist)))
+ (let ((used-marks (eq last-command 'vm-next-command-uses-marks))
+ (del-count 0))
+ (vm-follow-summary-cursor)
+ (vm-select-folder-buffer-and-validate 1 (vm-interactive-p))
+ (let ((mlist (vm-select-operable-messages
+ count (vm-interactive-p) "Mark as read")))
+ (while mlist
+ (when (or (vm-unread-flag (car mlist))
+ (vm-new-flag (car mlist)))
(vm-set-unread-flag (car mlist) nil)
(vm-set-new-flag (car mlist) nil))
- (setq mlist (cdr mlist))))
- (vm-display nil nil '(vm-mark-message-read) '(vm-mark-message-read))
- (vm-update-summary-and-mode-line))
+ (setq mlist (cdr mlist))))
+ (vm-display nil nil '(vm-mark-message-read) '(vm-mark-message-read))
+ (vm-update-summary-and-mode-line)
+ (when (and vm-move-after-reading (not used-marks))
+ (let ((vm-circular-folders (and vm-circular-folders
+ (eq vm-move-after-deleting t))))
+ (vm-next-message count t executing-kbd-macro)))))
(defalias 'vm-flag-message-read 'vm-mark-message-read)
(make-obsolete 'vm-flag-message-read
'vm-mark-message-read "8.2.0")
=== modified file 'lisp/vm-vars.el'
--- lisp/vm-vars.el 2013-02-12 00:09:02 +0000
+++ lisp/vm-vars.el 2013-03-06 15:25:25 +0000
@@ -4733,6 +4733,18 @@
(const :tag "Yes" t)
(const :tag "Skip if some undeleted" skip-if-some-undeleted)))
+(defcustom vm-move-after-reading nil
+ "*Non-nil value causes VM's `.' command to automatically invoke
+`vm-next-message' or `vm-previous-message' after killing messages, to try
+to move past the read messages. A value of t means motion
+should honor the value of `vm-circular-folders'. A value that is
+not t and not nil means that motion should be done as if
+`vm-circular-folders' is set to nil."
+ :group 'vm-summary
+ :type '(choice (const :tag "No" nil)
+ (const :tag "Yes" t)
+ (const :tag "Skip if some undeleted" skip-if-some-undeleted)))
+
(defcustom vm-delete-after-saving nil
"*Non-nil value causes VM automatically to mark messages for deletion
after successfully saving them to a folder."
Follow ups