Commit 2953de8c authored by Stephen Gildea's avatar Stephen Gildea
Browse files

* mh-customize.el (mh-after-commands-processed-hook): New variable.

(mh-before-commands-processed-hook): Rename from mh-folder-updated-hook.
* mh-e.el (mh-process-commands): Rename mh-folder-updated-hook to
mh-before-commands-processed-hook, call new mh-after-commands-processed-hook.
(mh-folders-changed): New variable (for mh-after-commands-processed-hook).
parent 3c9af438
2005-12-19 Stephen Gildea
* mh-customize.el (mh-after-commands-processed-hook): New variable.
(mh-before-commands-processed-hook): mh-folder-updated-hook, renamed.
* mh-e.el (mh-process-commands): Rename mh-folder-updated-hook
to mh-before-commands-processed-hook, call new
mh-after-commands-processed-hook.
(mh-folders-changed): New variable (for use in
mh-after-commands-processed-hook).
2005-12-19 Bill Wohler <wohler@newt.com>
* mh-acros.el:
......
......@@ -2294,15 +2294,24 @@ on his mail usage."
:group 'mh-hooks
:group 'mh-folder)
(defcustom mh-folder-updated-hook nil
"Invoked when the folder actions (such as moves and deletes) are performed.
(defcustom mh-before-commands-processed-hook nil
"Invoked before the folder actions (such as moves and deletes) are performed.
Variables that are useful in this hook include `mh-delete-list' and
`mh-refile-list' which can be used to see which changes are being made to
`mh-refile-list' which can be used to see which changes will be made to
current folder, `mh-current-folder'."
:type 'hook
:group 'mh-hooks
:group 'mh-folder)
(defcustom mh-after-commands-processed-hook nil
"Invoked after the folder actions (such as moves and deletes) are performed.
Variables that are useful in this hook include `mh-folders-changed',
which lists which folders were affected by deletes and refiles. This
list will always include the current folder, which is also available
in `mh-current-folder'."
:type 'hook
:group 'mh-hooks)
(defcustom mh-forward-hook nil
"Invoked on the forwarded letter by \\<mh-folder-mode-map>\\[mh-forward]."
:type 'hook
......
......@@ -460,6 +460,8 @@ is done highlighting.")
(defvar mh-refile-list nil) ;List of folder names in mh-seq-list.
(defvar mh-folders-changed nil) ;For mh-after-commands-processed-hook.
(defvar mh-next-direction 'forward) ;Direction to move to next message.
(defvar mh-view-ops ()) ;Stack of ops that change the folder
......@@ -2149,13 +2151,15 @@ Called by functions like `mh-sort-folder', so also invalidate show buffer."
(defun mh-process-commands (folder)
"Process outstanding commands for FOLDER.
The value of `mh-folder-updated-hook' is a list of functions to be called,
with no arguments, before the commands are processed."
The value of `mh-before-commands-processed-hook' is a list of functions
to be called, with no arguments, before the commands are processed.
After all cammands are processed, the functions in
`mh-after-commands-processed-hook' are called with no arguments."
(message "Processing deletes and refiles for %s..." folder)
(set-buffer folder)
(with-mh-folder-updating (nil)
;; Run the hook while the lists are still valid
(run-hooks 'mh-folder-updated-hook)
;; Run the before hook -- the refile and delete lists are still valid
(run-hooks 'mh-before-commands-processed-hook)
;; Update the unseen sequence if it exists
(mh-update-unseen)
......@@ -2222,17 +2226,23 @@ with no arguments, before the commands are processed."
(when (mh-speed-flists-active-p)
(apply #'mh-speed-flists t folders-changed))
(cond ((memq 'unthread mh-view-ops) (mh-thread-inc folder (point-max)))
(mh-index-data (mh-index-insert-folder-headers)))))
(mh-index-data (mh-index-insert-folder-headers))))
(and (buffer-file-name (get-buffer mh-show-buffer))
(not (file-exists-p (buffer-file-name (get-buffer mh-show-buffer))))
;; If "inc" were to put a new msg in this file,
;; we would not notice, so mark it invalid now.
(mh-invalidate-show-buffer))
(and (buffer-file-name (get-buffer mh-show-buffer))
(not (file-exists-p (buffer-file-name (get-buffer mh-show-buffer))))
;; If "inc" were to put a new msg in this file,
;; we would not notice, so mark it invalid now.
(mh-invalidate-show-buffer))
(setq mh-seq-list (mh-read-folder-sequences mh-current-folder nil))
(mh-remove-all-notation)
(mh-notate-user-sequences)
;; Run the after hook -- now folders-changed is valid,
;; but not the lists of specific messages.
(let ((mh-folders-changed folders-changed))
(run-hooks 'mh-after-commands-processed-hook)))
(setq mh-seq-list (mh-read-folder-sequences mh-current-folder nil))
(mh-remove-all-notation)
(mh-notate-user-sequences)
(message "Processing deletes and refiles for %s...done" folder)))
(defun mh-update-unseen ()
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment