552 |
(if (looking-at mh-scan-deleted-msg-regexp) (mh-next-msg))) |
(if (looking-at mh-scan-deleted-msg-regexp) (mh-next-msg))) |
553 |
|
|
554 |
(defun mh-delete-msg-no-motion (range) |
(defun mh-delete-msg-no-motion (range) |
555 |
"Delete message, don't move to next message. |
"Delete RANGE, don't move to next message. |
556 |
|
|
557 |
This command marks the message (or messages in RANGE) for deletion but leaves |
This command marks the RANGE for deletion but leaves the cursor at the current |
558 |
the cursor at the current message in case you wish to perform other operations |
message in case you wish to perform other operations on the message. |
|
on the message. |
|
559 |
|
|
560 |
Check the documentation of `mh-interactive-range' to see how RANGE is read in |
Check the documentation of `mh-interactive-range' to see how RANGE is read in |
561 |
interactive use." |
interactive use." |
743 |
t)) |
t)) |
744 |
|
|
745 |
(defun mh-refile-msg (range folder &optional dont-update-last-destination-flag) |
(defun mh-refile-msg (range folder &optional dont-update-last-destination-flag) |
746 |
"Refile RANGE into FOLDER. |
"Refile (output) RANGE into FOLDER. |
747 |
|
|
748 |
|
You are prompted for the folder name. Note that this command can also be used |
749 |
|
to create folders. If you specify a folder that does not exist, you will be |
750 |
|
prompted to create it. |
751 |
|
|
752 |
|
The hook `mh-refile-msg-hook' is called after a message is marked to be |
753 |
|
refiled. |
754 |
|
|
755 |
Check the documentation of `mh-interactive-range' to see how RANGE is read in |
Check the documentation of `mh-interactive-range' to see how RANGE is read in |
756 |
interactive use. |
interactive use. |
757 |
|
|
758 |
If optional argument DONT-UPDATE-LAST-DESTINATION-FLAG is non-nil then the |
If DONT-UPDATE-LAST-DESTINATION-FLAG is non-nil, then the variables |
759 |
variables `mh-last-destination' and `mh-last-destination-folder' are not |
`mh-last-destination' and `mh-last-destination-folder' are not updated." |
|
updated." |
|
760 |
(interactive (list (mh-interactive-range "Refile") |
(interactive (list (mh-interactive-range "Refile") |
761 |
(intern (mh-prompt-for-refile-folder)))) |
(intern (mh-prompt-for-refile-folder)))) |
762 |
(unless dont-update-last-destination-flag |
(unless dont-update-last-destination-flag |
770 |
"Repeat last output command. |
"Repeat last output command. |
771 |
|
|
772 |
If you are refiling several messages into the same folder, you can use this |
If you are refiling several messages into the same folder, you can use this |
773 |
command to repeat the last refile or write. Or, you can use a range. |
command to repeat the last refile or write. You can use a range. |
774 |
|
|
775 |
Check the documentation of `mh-interactive-range' to see how RANGE is read in |
Check the documentation of `mh-interactive-range' to see how RANGE is read in |
776 |
interactive use. |
interactive use. |
1059 |
(let ((buffer-read-only nil)) (erase-buffer))) |
(let ((buffer-read-only nil)) (erase-buffer))) |
1060 |
|
|
1061 |
(defun mh-rescan-folder (&optional range dont-exec-pending) |
(defun mh-rescan-folder (&optional range dont-exec-pending) |
1062 |
"Rescan a folder after optionally processing the outstanding commands. |
"Rescan folder\\<mh-folder-mode-map>. |
1063 |
If optional prefix argument RANGE is provided, prompt for the range of |
|
1064 |
messages to display. Otherwise show the entire folder. |
This command is useful to grab all messages in your \"+inbox\" after |
1065 |
If optional argument DONT-EXEC-PENDING is non-nil then pending deletes and |
processing your new mail for the first time. If you don't want to rescan the |
1066 |
refiles aren't carried out." |
entire folder, this command will accept a RANGE. Check the documentation of |
1067 |
|
`mh-interactive-range' to see how RANGE is read in interactive use. |
1068 |
|
|
1069 |
|
This command will ask if you want to process refiles or deletes first and then |
1070 |
|
either run \\[mh-execute-commands] for you or undo the pending refiles and |
1071 |
|
deletes, which are lost. |
1072 |
|
|
1073 |
|
In a program, the processing of outstanding commands is not performed if |
1074 |
|
DONT-EXEC-PENDING is non-nil." |
1075 |
(interactive (list (if current-prefix-arg |
(interactive (list (if current-prefix-arg |
1076 |
(mh-read-range "Rescan" mh-current-folder t nil t |
(mh-read-range "Rescan" mh-current-folder t nil t |
1077 |
mh-interpret-number-as-range-flag) |
mh-interpret-number-as-range-flag) |
1122 |
(mh-show))) |
(mh-show))) |
1123 |
|
|
1124 |
(defun mh-undo (range) |
(defun mh-undo (range) |
1125 |
"Undo the pending deletion or refile of the specified RANGE. |
"Undo pending deletes or refiles in RANGE. |
1126 |
|
|
1127 |
|
If you've deleted a message or refiled it, but changed your mind, you can |
1128 |
|
cancel the action before you've executed it. Use this command to undo a refile |
1129 |
|
on or deletion of a single message. You can also undo refiles and deletes for |
1130 |
|
messages that are found in a given RANGE. |
1131 |
|
|
1132 |
Check the documentation of `mh-interactive-range' to see how RANGE is read in |
Check the documentation of `mh-interactive-range' to see how RANGE is read in |
1133 |
interactive use." |
interactive use." |
1272 |
(mh-folder-size-folder folder))) |
(mh-folder-size-folder folder))) |
1273 |
|
|
1274 |
(defun mh-visit-folder (folder &optional range index-data) |
(defun mh-visit-folder (folder &optional range index-data) |
1275 |
"Visit FOLDER and display RANGE of messages. |
"Visit FOLDER. |
1276 |
Do not call this function from outside MH-E; see \\[mh-rmail] instead. |
|
1277 |
|
When you want to read the messages that you have refiled into folders, use |
1278 |
|
this command to visit the folder. You are prompted for the folder name. |
1279 |
|
|
1280 |
|
The folder buffer will show just unseen messages if there are any; otherwise, |
1281 |
|
it will show all the messages in the buffer as long there are fewer than |
1282 |
|
`mh-large-folder' messages. If there are more, then you are prompted for a |
1283 |
|
range of messages to scan. |
1284 |
|
|
1285 |
|
You can provide a prefix argument in order to specify a RANGE of messages to |
1286 |
|
show when you visit the folder. In this case, regions are not used to specify |
1287 |
|
the range and `mh-large-folder' is ignored. Check the documentation of |
1288 |
|
`mh-interactive-range' to see how RANGE is read in interactive use. |
1289 |
|
|
1290 |
If RANGE is nil (the default if it is omitted when called non-interactively), |
Note that this command can also be used to create folders. If you specify a |
1291 |
then all messages in FOLDER are displayed. |
folder that does not exist, you will be prompted to create it. |
1292 |
|
|
1293 |
If an index buffer is being created then INDEX-DATA is used to initialize the |
Do not call this function from outside MH-E; use \\[mh-rmail] instead. |
|
index buffer specific data structures. |
|
1294 |
|
|
1295 |
A prefix argument will cause a prompt for the RANGE of messages |
If, in a program, RANGE is nil (the default), then all messages in FOLDER are |
1296 |
regardless of the size of the `mh-large-folder' variable." |
displayed. If an index buffer is being created then INDEX-DATA is used to |
1297 |
|
initialize the index buffer specific data structures." |
1298 |
(interactive (let ((folder-name (mh-prompt-for-folder "Visit" mh-inbox t))) |
(interactive (let ((folder-name (mh-prompt-for-folder "Visit" mh-inbox t))) |
1299 |
(list folder-name |
(list folder-name |
1300 |
(mh-read-range "Scan" folder-name t nil |
(mh-read-range "Scan" folder-name t nil |
1792 |
'(mh-folder-mode . mh-restore-desktop-buffer))) |
'(mh-folder-mode . mh-restore-desktop-buffer))) |
1793 |
|
|
1794 |
(defun mh-scan-folder (folder range &optional dont-exec-pending) |
(defun mh-scan-folder (folder range &optional dont-exec-pending) |
1795 |
"Scan the FOLDER over the RANGE. |
"Scan FOLDER over RANGE. |
1796 |
If the optional argument DONT-EXEC-PENDING is non-nil then pending deletes and |
|
1797 |
refiles aren't carried out. |
After the scan is performed, switch to the buffer associated with FOLDER. |
1798 |
Return in the folder's buffer." |
|
1799 |
|
Check the documentation of `mh-interactive-range' to see how RANGE is read in |
1800 |
|
interactive use. |
1801 |
|
|
1802 |
|
The processing of outstanding commands is not performed if DONT-EXEC-PENDING |
1803 |
|
is non-nil." |
1804 |
(when (stringp range) |
(when (stringp range) |
1805 |
(setq range (delete "" (split-string range "[ \t\n]")))) |
(setq range (delete "" (split-string range "[ \t\n]")))) |
1806 |
(cond ((null (get-buffer folder)) |
(cond ((null (get-buffer folder)) |
1839 |
(setq mh-cmd-note column)) |
(setq mh-cmd-note column)) |
1840 |
|
|
1841 |
(defun mh-regenerate-headers (range &optional update) |
(defun mh-regenerate-headers (range &optional update) |
1842 |
"Scan folder over range RANGE. |
"Scan folder over RANGE. |
1843 |
If UPDATE, append the scan lines, otherwise replace." |
If UPDATE, append the scan lines, otherwise replace." |
1844 |
(let ((folder mh-current-folder) |
(let ((folder mh-current-folder) |
1845 |
(range (if (and range (atom range)) (list range) range)) |
(range (if (and range (atom range)) (list range) range)) |
2366 |
msgs)) |
msgs)) |
2367 |
|
|
2368 |
(defun mh-notate-user-sequences (&optional range) |
(defun mh-notate-user-sequences (&optional range) |
2369 |
"Mark user-defined sequences in the messages specified by RANGE. |
"Mark user-defined sequences in RANGE. |
2370 |
The optional argument RANGE can be a message number, a list of message |
|
2371 |
numbers, a sequence, a region in a cons cell. If nil all messages are notated." |
Check the documentation of `mh-interactive-range' to see how RANGE is read in |
2372 |
|
interactive use; if nil all messages are notated." |
2373 |
(unless range |
(unless range |
2374 |
(setq range (cons (point-min) (point-max)))) |
(setq range (cons (point-min) (point-max)))) |
2375 |
(let ((seqs mh-seq-list) |
(let ((seqs mh-seq-list) |
2402 |
Check the documentation of `mh-interactive-range' to see how RANGE is read in |
Check the documentation of `mh-interactive-range' to see how RANGE is read in |
2403 |
interactive use. |
interactive use. |
2404 |
|
|
2405 |
Optional third arg INTERNAL-FLAG non-nil means do not inform MH of the |
In a program, non-nil INTERNAL-FLAG means do not inform MH of the change." |
|
change." |
|
2406 |
(interactive (list (mh-interactive-range "Delete") |
(interactive (list (mh-interactive-range "Delete") |
2407 |
(mh-read-seq-default "Delete from" t) |
(mh-read-seq-default "Delete from" t) |
2408 |
nil)) |
nil)) |
2428 |
(apply #'mh-speed-flists t folders-changed))))) |
(apply #'mh-speed-flists t folders-changed))))) |
2429 |
|
|
2430 |
(defun mh-catchup (range) |
(defun mh-catchup (range) |
2431 |
"Delete RANGE from the `mh-unseen-seq' sequence. |
"Delete RANGE from the \"unseen\" sequence. |
2432 |
|
|
2433 |
Check the document of `mh-interactive-range' to see how RANGE is read in |
Check the documentation of `mh-interactive-range' to see how RANGE is read in |
2434 |
interactive use." |
interactive use." |
2435 |
(interactive (list (mh-interactive-range "Catchup" |
(interactive (list (mh-interactive-range "Catchup" |
2436 |
(cons (point-min) (point-max))))) |
(cons (point-min) (point-max))))) |