From xemacs-m  Fri Mar 14 03:48:20 1997
Received: from pentagana.sonic.jp (root@tokyo-05-184.gol.com [202.243.51.184])
	by xemacs.org (8.8.5/8.8.5) with ESMTP id DAA09251
	for <xemacs-beta@xemacs.org>; Fri, 14 Mar 1997 03:48:17 -0600 (CST)
Received: (from jhod@localhost) by pentagana.sonic.jp (8.7.1+2.6Wbeta4/3.4W3) id SAA00820; Fri, 14 Mar 1997 18:36:40 +0900
Date: Fri, 14 Mar 1997 18:36:40 +0900
Message-Id: <199703140936.SAA00820@pentagana.sonic.jp>
From: P E Jareth Hein <jhod@po.iijnet.or.jp>
To: XEmacs Beta Mailing List <xemacs-beta@xemacs.org>,
        Kyle Jones <kyle_jones@wonderworks.com>
Subject: A quick vm addition
Mime-Version: 1.0 (generated by tm-edit 7.105)
Content-Type: multipart/mixed;
 boundary="Multipart_Fri_Mar_14_18:36:35_1997-1"
Content-Transfer-Encoding: 7bit

--Multipart_Fri_Mar_14_18:36:35_1997-1
Content-Type: text/plain; charset=US-ASCII

As I sometimes want to bleep over things and keep them around for
later, I wrote a quick 'mark items read' function for VM, humbly
submitted for your approval. I await the decisions of wiser and more
experienced heads than mine before assigning a key to it...

--Jareth
holder of the .antisig


--Multipart_Fri_Mar_14_18:36:35_1997-1
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="vm.difs"
Content-Transfer-Encoding: 7bit

Index: lisp/vm/vm-folder.el
===================================================================
RCS file: /usr/local/CVS/XEmacs/lisp/vm/vm-folder.el,v
retrieving revision 1.2
diff -u -r1.2 vm-folder.el
--- vm-folder.el	1997/02/28 08:57:29	1.2
+++ vm-folder.el	1997/03/05 07:17:17
@@ -1981,6 +1981,28 @@
 	    (vm-set-unread-flag (car mp) t)))
       (setq mp (cdr mp)))))
 
+(defun vm-read-message (&optional count)
+  "Clear the `unread' and `new' attributes for the current message. 
+Numeric prefix argument N means to unread the current message plus the
+next N-1 messages.  A negative N means unread the current message and
+the previous N-1 messages.
+
+When invoked on marked messages (via vm-next-command-uses-marks),
+all marked messages are affected, other messages are ignored."
+  (interactive "p")
+  (or count (setq count 1))
+  (vm-follow-summary-cursor)
+  (vm-select-folder-buffer)
+  (vm-check-for-killed-summary)
+  (vm-error-if-folder-empty)
+  (let ((mlist (vm-select-marked-or-prefixed-messages count)))
+    (while mlist
+      (vm-set-new-flag (car mlist) nil) 
+      (vm-set-unread-flag (car mlist) nil)
+      (setq mlist (cdr mlist))))
+  (vm-display nil nil '(vm-unread-message) '(vm-unread-message))
+  (vm-update-summary-and-mode-line))
+
 (defun vm-unread-message (&optional count)
   "Set the `unread' attribute for the current message.  If the message is
 already new or unread, then it is left unchanged.
Index: lisp/vm/vm-menu.el
===================================================================
RCS file: /usr/local/CVS/XEmacs/lisp/vm/vm-menu.el,v
retrieving revision 1.2
diff -u -r1.2 vm-menu.el
--- vm-menu.el	1997/02/28 08:57:32	1.2
+++ vm-menu.el	1997/03/05 07:17:17
@@ -117,6 +117,7 @@
       ["Delete" vm-delete-message vm-message-list]
       ["Undelete"	vm-undelete-message vm-message-list]
       ["Kill Current Subject" vm-kill-subject vm-message-list]
+      ["Mark Read" vm-read-message vm-message-list]
       ["Mark Unread" vm-unread-message vm-message-list]
       ["Edit" vm-edit-message vm-message-list]
       ["Print" vm-print-message vm-message-list]

--Multipart_Fri_Mar_14_18:36:35_1997-1--

