;;; mh-folder.el --- MH-Folder mode
-;; Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
;; Author: Bill Wohler <wohler@newt.com>
;; Maintainer: Bill Wohler <wohler@newt.com>
;; GNU Emacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
(require 'mh-scan)
(mh-require-cl)
-;; Dynamically-created function not found in mh-loaddefs.el.
+;; Dynamically-created functions not found in mh-loaddefs.el.
(autoload 'mh-tool-bar-folder-buttons-init "mh-tool-bar")
+(autoload 'mh-tool-bar-init "mh-tool-bar")
(require 'gnus-util)
(autoload 'message-fetch-field "message")
'("Message"
["Show Message" mh-show (mh-get-msg-num nil)]
["Show Message with Header" mh-header-display (mh-get-msg-num nil)]
+ ["Show Message with Preferred Alternative"
+ mh-show-preferred-alternative (mh-get-msg-num nil)]
["Next Message" mh-next-undeleted-msg t]
["Previous Message" mh-previous-undeleted-msg t]
["Go to First Message" mh-first-msg t]
"'" mh-toggle-tick
"," mh-header-display
"." mh-alt-show
+ ":" mh-show-preferred-alternative
";" mh-toggle-mh-decode-mime-flag
">" mh-write-msg-to-file
"?" mh-help
"\M-\t" mh-prev-button)
(cond
- (mh-xemacs-flag
+ ((featurep 'xemacs)
(define-key mh-folder-mode-map [button2] 'mh-show-mouse))
(t
(define-key mh-folder-mode-map [mouse-2] 'mh-show-mouse)))
(defmacro mh-remove-xemacs-horizontal-scrollbar ()
"Get rid of the horizontal scrollbar that XEmacs insists on putting in."
- (when mh-xemacs-flag
+ (when (featurep 'xemacs)
`(if (and (featurep 'scrollbar)
(fboundp 'set-specifier))
(set-specifier horizontal-scrollbar-visible-p nil
(cons (current-buffer) nil)))))
;; Register mh-folder-mode as supporting which-function-mode...
-(require 'which-func nil t)
+(mh-require 'which-func nil t)
(when (boundp 'which-func-modes)
(add-to-list 'which-func-modes 'mh-folder-mode))
;; Shush compiler.
-(eval-when-compile
- (defvar desktop-save-buffer)
- (defvar font-lock-auto-fontify)
- (mh-do-in-xemacs (defvar font-lock-defaults)))
-
-(defvar mh-folder-buttons-init-flag nil)
+(defvar desktop-save-buffer)
+(defvar font-lock-auto-fontify)
+(defvar font-lock-defaults) ; XEmacs
;; Ensure new buffers won't get this mode if default-major-mode is nil.
(put 'mh-folder-mode 'mode-class 'special)
\\{mh-folder-mode-map}"
(mh-do-in-gnu-emacs
- (unless mh-folder-buttons-init-flag
- (mh-tool-bar-folder-buttons-init)
- (setq mh-folder-buttons-init-flag t)))
+ (unless mh-folder-tool-bar-map
+ (mh-tool-bar-folder-buttons-init))
+ (set (make-local-variable 'tool-bar-map) mh-folder-tool-bar-map))
+ (mh-do-in-xemacs
+ (mh-tool-bar-init :folder))
(make-local-variable 'font-lock-defaults)
(setq font-lock-defaults '(mh-folder-font-lock-keywords t))
(make-local-variable 'desktop-save-buffer)
(easy-menu-add mh-folder-message-menu)
(easy-menu-add mh-folder-folder-menu)
(mh-inc-spool-make)
- (set (make-local-variable 'tool-bar-map) mh-folder-tool-bar-map)
- (mh-funcall-if-exists mh-tool-bar-init :folder)
(mh-set-help mh-folder-mode-help-messages)
- (if (and mh-xemacs-flag
+ (if (and (featurep 'xemacs)
font-lock-auto-fontify)
(turn-on-font-lock))) ; Force font-lock in XEmacs.
messages (such as \\[mh-rescan-folder] or \\[mh-pack-folder])
will ask if you want to process refiles or deletes first and then
either run this command for you or undo the pending refiles and
-deletes, which are lost.
+deletes.
This function runs `mh-before-commands-processed-hook' before the
commands are processed and `mh-after-commands-processed-hook'
This command will ask if you want to process refiles or deletes first
and then either run \\[mh-execute-commands] for you or undo the
-pending refiles and deletes, which are lost.
+pending refiles and deletes.
In a program, the processing of outstanding commands is not performed
if DONT-EXEC-PENDING is non-nil."
(defun mh-update-unseen ()
"Synchronize the unseen sequence with MH.
-Return non-nil iff the MH folder was set.
+Return non-nil if the MH folder was set.
The hook `mh-unseen-updated-hook' is called after the unseen sequence
is updated."
(if mh-seen-list