Mercurial > hg > xemacs-beta
comparison lisp/vm/vm-mark.el @ 70:131b0175ea99 r20-0b30
Import from CVS: tag r20-0b30
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:02:59 +0200 |
parents | 05472e90ae02 |
children | 0d2f883870bc |
comparison
equal
deleted
inserted
replaced
69:804d1389bcd6 | 70:131b0175ea99 |
---|---|
21 "Removes all message marks in the current folder." | 21 "Removes all message marks in the current folder." |
22 (interactive) | 22 (interactive) |
23 (vm-select-folder-buffer) | 23 (vm-select-folder-buffer) |
24 (vm-check-for-killed-summary) | 24 (vm-check-for-killed-summary) |
25 (vm-error-if-folder-empty) | 25 (vm-error-if-folder-empty) |
26 (message "Clearing all marks...") | |
27 (let ((mp vm-message-list)) | 26 (let ((mp vm-message-list)) |
28 (while mp | 27 (while mp |
29 (if (vm-mark-of (car mp)) | 28 (if (vm-mark-of (car mp)) |
30 (progn | 29 (progn |
31 (vm-set-mark-of (car mp) nil) | 30 (vm-set-mark-of (car mp) nil) |
32 (vm-mark-for-summary-update (car mp) t))) | 31 (vm-mark-for-summary-update (car mp) t))) |
33 (setq mp (cdr mp)))) | 32 (setq mp (cdr mp)))) |
34 (vm-display nil nil '(vm-clear-all-marks) | 33 (vm-display nil nil '(vm-clear-all-marks) |
35 '(vm-clear-all-marks marking-message)) | 34 '(vm-clear-all-marks marking-message)) |
36 (vm-update-summary-and-mode-line) | 35 (vm-update-summary-and-mode-line)) |
37 (message "Clearing all marks... done")) | |
38 | 36 |
39 (defun vm-mark-all-messages () | 37 (defun vm-mark-all-messages () |
40 "Mark all messages in the current folder." | 38 "Mark all messages in the current folder." |
41 (interactive) | 39 (interactive) |
42 (vm-select-folder-buffer) | 40 (vm-select-folder-buffer) |
43 (vm-check-for-killed-summary) | 41 (vm-check-for-killed-summary) |
44 (vm-error-if-folder-empty) | 42 (vm-error-if-folder-empty) |
45 (message "Marking all messages...") | |
46 (let ((mp vm-message-list)) | 43 (let ((mp vm-message-list)) |
47 (while mp | 44 (while mp |
48 (vm-set-mark-of (car mp) t) | 45 (vm-set-mark-of (car mp) t) |
49 (vm-mark-for-summary-update (car mp) t) | 46 (vm-mark-for-summary-update (car mp) t) |
50 (setq mp (cdr mp)))) | 47 (setq mp (cdr mp)))) |
51 (vm-display nil nil '(vm-mark-all-messages) | 48 (vm-display nil nil '(vm-mark-all-messages) |
52 '(vm-mark-all-messages marking-message)) | 49 '(vm-mark-all-messages marking-message)) |
53 (vm-update-summary-and-mode-line) | 50 (vm-update-summary-and-mode-line)) |
54 (message "Marking all messages... done")) | |
55 | 51 |
56 (defun vm-mark-message (count) | 52 (defun vm-mark-message (count) |
57 "Mark the current message. | 53 "Mark the current message. |
58 Numeric prefix argument N means mark the current message and the next | 54 Numeric prefix argument N means mark the current message and the next |
59 N-1 messages. A negative N means mark the current message and the | 55 N-1 messages. A negative N means mark the current message and the |
99 (vm-mark-for-summary-update (car mlist) t))) | 95 (vm-mark-for-summary-update (car mlist) t))) |
100 (setq mlist (cdr mlist)))) | 96 (setq mlist (cdr mlist)))) |
101 (vm-display nil nil '(vm-unmark-message) | 97 (vm-display nil nil '(vm-unmark-message) |
102 '(vm-unmark-message marking-message)) | 98 '(vm-unmark-message marking-message)) |
103 (vm-update-summary-and-mode-line)) | 99 (vm-update-summary-and-mode-line)) |
104 | |
105 (defun vm-mark-summary-region () | |
106 "Mark all messages with summary lines contained in the region." | |
107 (interactive) | |
108 (vm-select-folder-buffer) | |
109 (vm-check-for-killed-summary) | |
110 (vm-error-if-folder-empty) | |
111 (if (null vm-summary-buffer) | |
112 (error "No summary.")) | |
113 (set-buffer vm-summary-buffer) | |
114 (if (not (mark)) | |
115 (error "The region is not active now")) | |
116 (vm-mark-or-unmark-summary-region t) | |
117 (vm-display nil nil '(vm-mark-summary-region) | |
118 '(vm-mark-summary-region marking-message)) | |
119 (vm-update-summary-and-mode-line)) | |
120 | |
121 (defun vm-unmark-summary-region () | |
122 "Remove marks from messages with summary lines contained in the region." | |
123 (interactive) | |
124 (vm-select-folder-buffer) | |
125 (vm-check-for-killed-summary) | |
126 (vm-error-if-folder-empty) | |
127 (if (null vm-summary-buffer) | |
128 (error "No summary.")) | |
129 (set-buffer vm-summary-buffer) | |
130 (if (not (mark)) | |
131 (error "The region is not active now")) | |
132 (vm-mark-or-unmark-summary-region nil) | |
133 (vm-display nil nil '(vm-unmark-summary-region) | |
134 '(vm-unmark-summary-region marking-message)) | |
135 (vm-update-summary-and-mode-line)) | |
136 | |
137 (defun vm-mark-or-unmark-summary-region (markit) | |
138 ;; The folder buffers copy of vm-message-list has already been | |
139 ;; propagated to the summary buffer. | |
140 (let ((mp vm-message-list) | |
141 (beg (point)) | |
142 (end (mark)) | |
143 tmp m) | |
144 (if (> beg end) | |
145 (setq tmp beg beg end end tmp)) | |
146 (while mp | |
147 (setq m (car mp)) | |
148 (if (not (eq (not markit) (not (vm-mark-of m)))) | |
149 (if (or (and (> (vm-su-end-of m) beg) | |
150 (< (vm-su-end-of m) end)) | |
151 (and (>= (vm-su-start-of m) beg) | |
152 (< (vm-su-start-of m) end)) | |
153 (and (>= beg (vm-su-start-of m)) | |
154 (< beg (vm-su-end-of m)))) | |
155 (progn | |
156 (vm-set-mark-of m markit) | |
157 (vm-mark-for-summary-update m t)))) | |
158 (setq mp (cdr mp))))) | |
159 | 100 |
160 (defun vm-mark-or-unmark-messages-with-selector (val selector arg) | 101 (defun vm-mark-or-unmark-messages-with-selector (val selector arg) |
161 (let ((mlist vm-message-list) | 102 (let ((mlist vm-message-list) |
162 (virtual (eq major-mode 'vm-virtual-mode)) | 103 (virtual (eq major-mode 'vm-virtual-mode)) |
163 (arglist (if arg (list arg) nil)) | 104 (arglist (if arg (list arg) nil)) |
345 (list this-command 'marking-message)) | 286 (list this-command 'marking-message)) |
346 (vm-update-summary-and-mode-line)) | 287 (vm-update-summary-and-mode-line)) |
347 | 288 |
348 (defun vm-next-command-uses-marks () | 289 (defun vm-next-command-uses-marks () |
349 "Does nothing except insure that the next VM command will operate only | 290 "Does nothing except insure that the next VM command will operate only |
350 on the marked messages in the current folder. This only works for | 291 on the marked messages in the current folder." |
351 commands bound to key, menu or button press events. M-x vm-command will | |
352 not work." | |
353 (interactive) | 292 (interactive) |
354 (setq this-command 'vm-next-command-uses-marks) | 293 (setq this-command 'vm-next-command-uses-marks) |
355 (message "Next command uses marks...") | 294 (vm-unsaved-message "Next command uses marks...") |
356 (vm-display nil nil '(vm-next-command-uses-marks) | 295 (vm-display nil nil '(vm-next-command-uses-marks) |
357 '(vm-next-command-uses-marks))) | 296 '(vm-next-command-uses-marks))) |
358 | 297 |
359 (defun vm-marked-messages () | 298 (defun vm-marked-messages () |
360 (let (list (mp vm-message-list)) | 299 (let (list (mp vm-message-list)) |