2005-09-30 Bill Wohler * mh-customize.el (mh-refile-msg, mh-tool-bar-reply-from) (mh-tool-bar-reply-to, mh-tool-bar-reply-all) (mh-alias-grab-from-field, mh-pack-folder): Image files moved to etc/images/mail so added "mail/" prefix. (mh-reply): Ditto. Also renamed reply2.* to reply.*. (mh-rescan-folder): Ditto. Renamed image file to refresh.* since it can be used in the general sense. Does not have "mail/" prefix. 2005-09-29 Bill Wohler Merged in changes from CVS Emacs including: * mh-mime.el (mh-compose-forward, mh-mhn-compose-forw): * mh-comp.el (mh-insert-letter): * mh-utils.el (mh-prompt-for-folder): Follow convention for reading with the minibuffer. Emilio C. Lopes 2005-09-24. 2005-09-26 Bill Wohler * mh-e.el (desktop-buffer-mode-handlers): Only add to this list if the variable exists. Not present pre-version 22. Merged in changes from CVS Emacs including: * mh-print.el (mh-ps-print-msg-show): Fix misplaced parenthesis in previous change. Juanma Barranquero 2005-09-19 * mh-alias.el (mh-alias-ali): Fix `message' call: first arg should be a format spec. * mh-print.el (mh-ps-spool-buffer, mh-ps-spool-a-msg) (mh-ps-print-msg, mh-ps-print-msg-show): Ditto. * mh-mime.el (mh-toggle-mh-decode-mime-flag): Ditto. * mh-index.el (mh-index-sequenced-messages): Ditto. * mh-e.el (mh-refile-or-write-again, mh-page-msg): Ditto. * mh-junk.el (mh-junk-blacklist, mh-junk-whitelist) (mh-spamassassin-blacklist, mh-spamassassin-whitelist): Ditto. D Goel 2005-09-18. * mh-customize.el: Do not use face-alias compatibility for faces that did not appear in the previous Emacs release. Dan Nicolaescu 2005-08-15. * mh-e.el: Add handler to desktop-buffer-mode-handlers. (mh-restore-desktop-buffer): Remove autoload cookie. (mh-folder-mode): Add autoload cookie. Lars Hansen 2005-08-10. Update FSF's address in GPL notices Lute Kamstra 2005-07-04 . * mh-customize.el (mh-folder-body-face, mh-folder-cur-msg-face) (mh-folder-cur-msg-number-face): New backward-compatibility aliases for renamed faces. Lute Kamstra 2005-06-17. * mh-customize.el (mh-folder-body, mh-folder-cur-msg) (mh-folder-cur-msg-number, mh-folder-date, mh-folder-followup) (mh-folder-msg-number, mh-folder-refiled, mh-folder-subject) (mh-folder-tick, mh-folder-to, mh-index-folder) (mh-letter-header-field, mh-show-cc, mh-show-date) (mh-show-header, mh-show-pgg-good, mh-show-pgg-unknown) (mh-show-pgg-bad, mh-show-signature, mh-show-to, mh-show-from) (mh-show-xface, mh-speedbar-folder, mh-speedbar-selected-folder) (mh-speedbar-folder-with-unseen-messages) (mh-speedbar-selected-folder-with-unseen-messages) (mh-folder-msg-number, mh-folder-subject, mh-folder-followup) (mh-folder-subject): Remove "-face" suffix from face names. (mh-folder-body, mh-folder-cur-msg, mh-folder-cur-msg-number) (mh-folder-date-face, mh-folder-followup-face) (mh-folder-msg-number-face, mh-folder-refiled-face) (mh-folder-subject-face, mh-folder-tick-face, mh-folder-to-face) (mh-index-folder-face, mh-letter-header-field-face) (mh-show-cc-face, mh-show-date-face, mh-show-header-face) (mh-show-pgg-good-face, mh-show-pgg-unknown-face) (mh-show-pgg-bad-face, mh-show-signature-face, mh-show-to-face) (mh-show-from-face, mh-show-xface-face, mh-speedbar-folder-face) (mh-speedbar-selected-folder-face) (mh-speedbar-folder-with-unseen-messages-face) (mh-speedbar-selected-folder-with-unseen-messages-face): New backward-compatibility aliases for renamed faces. (mh-folder-body-face, mh-folder-cur-msg-face) (mh-folder-cur-msg-number-face, mh-folder-date-face) (mh-folder-followup-face, mh-folder-msg-number-face) (mh-folder-deleted-face, mh-folder-refiled-face) (mh-folder-subject-face, mh-folder-address-face) (mh-folder-scan-format-face, mh-folder-to-face) (mh-index-folder-face, mh-show-cc-face, mh-show-date-face) (mh-show-header-face, mh-show-pgg-good-face) (mh-show-pgg-unknown-face, mh-show-pgg-bad-face) (mh-show-to-face, mh-show-from-face, mh-show-subject-face) (mh-speedbar-folder-with-unseen-messages) (mh-speedbar-selected-folder-with-unseen-messages): Use renamed MH-E faces. * mh-utils.el (mh-letter-font-lock-keywords) (mh-face-display-function): Use renamed MH-E faces. * mh-speed.el (mh-folder-speedbar-buttons) (mh-speed-update-current-folder, mh-speed-normal-face) (mh-speed-bold-face, mh-speed-add-buttons) (mh-speed-invalidate-map): Likewise. * mh-mime.el (mh-signature-highlight): Likewise. Miles Bader 2005-06-17. * mh-comp.el (mh-send-sub): * mh-identity.el (mh-identity-field-handler): * mh-mime.el (mh-secure-message): Don't use `format' on `error' arguments. Juanma Barranquero 2005-06-16. * mh-mime.el (mh-secure-message): Follow error conventions. Juanma Barranquero 2005-06-14. 2005-09-24 Bill Wohler * mh-unit.el (mh-unit): Changed lm-verify test to Emacs 22. 2005-09-22 Bill Wohler * Makefile: Incorporated ideas from Clemens Fruhwirth to generalize mh-loaddefs.el to make it work for both GNU Emacs and XEmacs. (EMACS_OPTIONS, XEMACS_OPTIONS): Use double-dash for all long options. (EMACS_LOADDEFS_COOKIE): New variable for generate-autoload-cookie setting. Obsoletes XEMACS_LOADDEFS_COOKIE. (EMACS_EXPORT_MH_LOADDEFS): New variable for GNU Emacs commands to rebuild mh-loaddefs.el. (XEMACS_EXPORT_MH_LOADDEFS): New variable for XEmacs commands to rebuild mh-loaddefs.el. Obsoletes XEMACS_LOADDEFS_FILE and XEMACS_LOADDEFS_PKG_NAME. (MH-E-LOADDEFS-SRC): New variable which is set to $(MH-E-SRC) on GNU Emacs, and adds $(MH-E-XEMACS-SRC) on XEmacs. (all): Modify EMACS_EXPORT_MH_LOADDEFS and MH-E-LOADDEFS-SRC on XEMacs. (mh-loaddefs.el): Now depends on $(MH-E-LOADDEFS-SRC) and has generic compile command that works on both GNU Emacs XEmacs. (xemacs): Depend on autoloads instead of deleted loaddefs-xemacs. (loaddefs-xemacs): Deleted. 2005-07-19 Bill Wohler * README (INSTALL): Added info for Mac users. 2005-07-16 Satyaki Das * mh-comp.el (mh-font-lock-field-data): Fix a bug where the function would return t but match-data was being set to nil (closes SF #1241017). 2005-07-12 Jeffrey C Honig * mh-customize.el (mh-invisible-header-fields-internal) (mh-invisible-header-fields-internal): Add Received-SPF header and X-Gmail- prefixes seen from Gmail. 2005-06-08 Peter S Galbraith * mh-comp.el (mh-insert-auto-fields): Inset identity regardless of whether one was already set, since if one used a default identity it would never be overridden (closes SF #1204506). 2005-06-02 Bill Wohler * mh-customize.el (mh-customize): Use customization group mh-e. * mh-init.el (mh-path): Use customization group mh-e. Thanks to Peter Whaite for these patches (closes SF #1213716). 2005-06-01 Bill Wohler * mh-mime.el (mh-compose-forward): Only use mh-sent-from-msg as a default message if it's a number (as is done elsewhere). Otherwise, an error is thrown if this function is called from a draft created by mh-forward since this variable is a list. Also added a space after the "Messages [%s]:" prompt. 2005-05-30 Jeffrey C Honig * mh-mime.el (mh-compose-forward): Allow insertion of multiple forwarded messages by range (including sequences). For the sent folder the default message presented is the sent message. For other folders, the default message is "cur", if it exists. 2005-05-28 Bill Wohler * mh-e.el (Version, mh-version): Added +cvs to version. 2005-05-28 Bill Wohler Released MH-E version 7.84. * MH-E-NEWS, README: Updated for release 7.84. * mh-e.el (Version, mh-version): Updated for release 7.84. 2005-05-28 Bill Wohler * mh-e.el, mh-comp.el: Don't autoload Info-goto-node. It's not used, and if it were, the code should use the info function instead. Use full year in copyright notices (for example, 2005, not 05). * Makefile (mh-loaddefs.el, mh-e-autoloads.el): Added 2005 to copyright notice. * mh-inc.el: Use three ;;; to precede Local Variables to be consistent with other files. Will have to ask Stefan Monnier why he changed it. * README: This version of MH-E to appear in GNU Emacs 22.1, not 21.5. * ChangeLog: The * in a ChangeLog entry must only be used before a filename. Fixed compilation warnings in CVS Emacs. This included using "public" functions instead of "private" ones (info instead of Info-goto-node, view-mode-enter instead of view-mode), and removing a customization group that didn't have a parent group. In addition, string-to-int was recently deprecated; use string-to-number instead. * mh-customize.el (Info-goto-node): Deleted autoload. (mh-e): Deleted mh group. Use single mh-e group instead. (mh-tool-bar-folder-help, mh-tool-bar-letter-help): Use info instead of Info-goto-node. * mh-e.el (mh-read-msg-list): string-to-int deprecated; use string-to-number. * mh-funcs.el (mh-list-folders): Use view-mode-enter instead of view-mode. * mh-seq.el (mh-list-sequences): Use view-mode-enter instead of view-mode. * mh-utils.el (mh-get-msg-num): string-to-int deprecated; use string-to-number. Merged in changes from CVS Emacs including: * mh-utils.el (mh-show-mode): * mh-pick.el (mh-pick-mode): Remove spurious run-hooks. Lute Kamstra 2005-05-26. 2005-05-25 Bill Wohler Merged in changes from CVS Emacs including: * mh-customize.el (mh-speedbar-selected-folder-face): Special case high number of colors displays. Dan Nicolaescu 2005-04-08. * mh-e.el, mh-identity.el, mh-mime.el: Replace `legal' with `valid'. Replace `illegal' with `invalid'. Werner Lemberg 2005-03-25. * mh-inc.el (mh-inc-spool-list): Correctly declare the external var. Stefan 2004-09-07. 2005-05-18 Bill Wohler * mh-comp.el (mh-reply): Mention use of mh-repl-group-formfile in docstring. 2005-05-05 Bill Wohler * mh-e.el (Version, mh-version): Added +cvs to release number. 2005-05-05 Bill Wohler Released MH-E version 7.83. * MH-E-NEWS, README: Updated for release 7.83. * mh-e.el (Version, mh-version): Updated for release 7.83. 2005-05-05 Bill Wohler * README: To appear in Emacs 21.5, since 21.4 was released (but without the latest MH-E). * release-utils (usage): Added --variable-changes. 2005-05-04 Bill Wohler * mh-customize.el (*-face): Made docstrings consistent. * mh-seq.el (mh-pick-args-list): Extracted function for turning string of pick arguments to list. Fixed list so that multi-word arguments were put in a single string (closes SF #1122655). (mh-edit-pick-expr): Use it. * mh-unit.el (mh-unit): Since 21.4 snuck out but didn't contain updated lm-verify, don't run lm-verify on versions before 21.5. (mh-unit-test-pick-args-list): Added. * mh-customize.el (mh-yank-from-start-of-msg): Use headline capitalization. Changed wording of some choices to be more consistent. (mh-invisible-header-fields-internal): Added fields from usa.net. 2005-04-24 Satyaki Das * mh-mime.el (mh-mime-security-button-face): New function which determines the face to use to colorize encrypted or signed emails. (mh-insert-mime-security-button): Modified to colorize the button differently based on whether the signature was valid or not, whether the decryption was successful or not, etc. * mh-customize.el (mh-show-pgg-good-face) (mh-show-pgg-unknown-face, mh-show-pgg-bad-face): Faces added to highlight buttons introduced for encrpted or signed MIME parts. 2005-03-19 Bill Wohler * mh-customize.el (mh-mml-method-default): Sorted alphabetically. (mh-insert-x-mailer-flag, mh-reply-show-message-flag): Moved from mh-letter group to mh-sending-mail group. The writing of the documentation revealed that these options were misplaced. 2005-03-17 Bill Wohler * mh-customize.el (mh-junk-background): Put in alphabetical order. Synced with manual. (mh-junk-program): Use double-quotes on non-symbols. * mh-pick.el: (mh-search-folder): Synced docstrings with manual. * mh-index.el: (mh-index-search, mh-pick-execute-search) (mh-grep-execute-search, mh-mairix-execute-search) (mh-swish-execute-search, mh-swish++-execute-search) (mh-namazu-execute-search): Synced docstrings with manual. Note that I'm now grabbing the output of an Info buffer which is why the indents on the examples has changed a bit. If we all use that methodology in the future, we shouldn't produce as many gratuitous diffs. I also noticed that `grep' and `search' became links to unrelated things, so let's use double-quotes for quoting non-symbols in the docstrings. * mh-customize.el (mh-index-new-messages-folders) (mh-index-ticked-messages-folders): Synced docstrings with manual. 2005-02-16 Satyaki Das * mh-index.el (mh-swish-execute-search): Simplify the indexing recipe for swish. Thanks to Eric Jensen for the suggestion. 2005-02-11 Satyaki Das * mh-index.el (mh-swish-execute-search) (mh-swish++-execute-search): Make the indexing recipes better. (mh-swish-next-result): The indexer might find matches in files that aren't messages. Make the function handle that case gracefully. 2005-02-07 Bill Wohler * mh-customize.el (mh-inc-prog, mh-inc-spool-list): Synced docstrings with manual. 2005-02-06 Bill Wohler * mh-junk.el (mh-spamassassin-blacklist): Removed trailing whitespace. * mh-e.el (mh-refile-or-write-again): Checkdoc fix. * mh-identity.el (mh-identity-list-set) (mh-identity-field-handler, mh-identity-handler-gpg-identity) (mh-identity-handler-signature) (mh-identity-handler-attribution-verb) (mh-identity-handler-default, mh-identity-handler-top): Docstring editing. * mh-customize.el (mh-identity-list, mh-auto-fields-list) (mh-identity-default, mh-identity-handlers): Synced docstrings with manual. 2005-02-03 Bill Wohler * mh-xemacs.el (define-behavior 'mh): Moved Ben's code here from mh-e.el and added standard documentation. * mh-e.el: Received patch from Ben Wing to add define-behavior on XEmacs. 2005-01-28 Jeffrey C Honig * mh-customize.el (mh-invisible-header-fields-internal): Added X-Evolution header added by Evolution mai client. 2005-01-18 Bill Wohler * mh-customize.el (mh-invisible-header-fields-internal): Added DomainKey-Signature (http://antispam.yahoo.com/domainkeys/). There's a Comment field that goes with it, but I thought it was too general to add. 2005-01-06 Bill Wohler * mh-junk.el (mh-spamassassin-blacklist): Fixed typo to fix an error when junking spamassassin mail when mh-junk-background is turned on. 2004-12-25 Satyaki Das * mh-utils.el (mh-show-unquote-From): Make the buffer writable before trying to change it (closes SF #1089870). * mh-comp.el (mh-complete-word): Fix a typo in a variable name (closes SF #1089870) 2004-11-28 Jeffrey C Honig * mh-comp.el (mh-complete-word): Kill the *Completions* buffer in any cases where we belive we are done with it. Not perfect, but better than just leaving it around. 2004-11-08 Satyaki Das * mh-acros.el (mh-funcall-if-exists): In XEmacs, presence of a function at compile time doesn't guarantee it's existence at run time. So make the macro handle that situation better. 2004-11-05 Satyaki Das * mh-acros.el (advice): Load advice, since it isn't loaded in XEmacs causing compilation problems. 2004-10-24 Satyaki Das * mh-index.el (mh-mairix-execute-search) (mh-mairix-regexp-builder): Update the interface to mairix so that it will work with versions of mairix 0.12 and later. * mh-funcs.el (mh-rmf-daemon): Avoid using beginning-of-buffer since it clobbers the mark and it was pointed out on the Emacs developers list to be the wrong thing to do. * mh-e.el (mh-inc-folder): Only remove the window on the show buffer. This means if the user has BBDB enabled then the window displaying BBDB information isn't clobbered. (mh-refile-or-write-again): Don't use the function interactive-p. There was a long thread on the Emacs developers list where it was pointed out that it is incorrect to use this function most of the time. * mh-comp.el (autoload): Don't set auto-mode-alist. This could screw things up for users that don't use MH-E (closes SF #1032353). 2004-10-13 Satyaki Das * mh-e.el (mh-refile-or-write-again): Generalize the function to work on a range of messages (closes SF #1046330). 2004-09-02 Satyaki Das * mh-e.el (mh-process-commands): The concurrent execution of mark and refile can cause problems since both the commands change the current folder. This change avoids that by getting rid of the concurrency. Another change covers the corner case where we refile messages to a previously empty folder. Before the modification sequences weren't preserved even if the appropriate flag was set. That is no longer the case. 2004-08-26 Satyaki Das * mh-e.el (mh-get-new-mail): Also, update the unseen sequence from disk. Otherwise, the new messages aren't highlighted. * mh-seq.el (mh-thread-inc): Fix a bug which appears when inc is run in a narrowed folder. The user sequence notation was getting lost. The change fixes that. * mh-e.el (mh-get-new-mail): Make inc more efficient by reusing the existing user sequence notation and deleted/refiled notation. 2004-08-24 Bill Wohler * mh-e.el (Version, mh-version): Added +cvs to release number. 2004-08-24 Bill Wohler Released MH-E version 7.82. * MH-E-NEWS, README: Updated for release 7.82. * mh-e.el (Version, mh-version): Updated for release 7.82. 2004-08-24 Bill Wohler * mh-init.el (mh-variant-set): Change MH to mh as that's what is emitted by `mh-variant-mh-info' (closes SF #1014781). (mh-variant-p): Add mu-mh to docstring. 2004-08-23 Satyaki Das * mh-acros.el (mh-require-cl): Remove unneeded autoloads. (require): Add an advice to the function so that at compile time the uncompiled file is loaded. This avoids compilation problems when built in the Emacs tree. * mh-mime.el (mh-identity-pgg-default-user-id): Defvar the variable, to avoid compiler warnings. * mh-e.el (mh-seq): Load mh-seq since functions defined there are used here. Without this, the state mh-seq.elc would be loaded. * mh-customize.el (mh-init, mh-identity): Load mh-init and mh-identity at compile time manually, before the corresponding stale elc files get autoloaded. 2004-08-21 Bill Wohler * mh-e.el (Version, mh-version): Add +cvs to release number. 2004-08-21 Bill Wohler Released MH-E version 7.81. * MH-E-NEWS, README: Updated for release 7.81. * mh-e.el (Version, mh-version): Updated for release 7.81. 2004-08-21 Bill Wohler * release-utils (variable_changes): Check for checked-out directory before proceeding. Remove temporary files. Rename --variable-update flag to --variable-changes. 2004-08-16 Mark D. Baushke * mh-mime.el (mh-toggle-mh-decode-mime-flag: New function. * mh-e.el (mh-help-messages): Add [;] help string for it. (mh-folder-mode-map): Add ";" key binding for it. 2004-08-15 Satyaki Das * mh-acros.el (mh-defstruct): Distinguishing structures created by mh-defstruct just based on the number of fields is not sufficient, since both the mh-thread-message and mh-thread-container structures have the same length. 2004-08-15 Mark D. Baushke * mh-customize.el (mh-identity-handlers): Use ":default" instead of "default" to avoid problems with "Default:" as a user defined field. * mh-identity.el (mh-identity-field-handler): Ditto. 2004-08-15 Bill Wohler * mh-e.el (Version, mh-version): Added +cvs to release number. 2004-08-15 Bill Wohler Released MH-E version 7.4.80. * MH-E-NEWS, README: Updated for release 7.4.80. * mh-e.el (Version, mh-version): Updated for release 7.4.80. 2004-08-15 Bill Wohler * mh-funcs.el, mh-gnus.el, mh-inc.el, mh-init.el, mh-junk.el, mh-pick.el, mh-print.el, mh-xemacs.el: Added 2004 to Copyright. * mh-acros.el, mh-alias.el: Checkdoc fixes. 2004-08-12 Satyaki Das * mh-acros.el (cl): Load cl in this file. That is all right, since this file is only used at compile time, and so cl doesn't get loaded at run time. This avoids problems with stale *.elc files present in the Emacs source tree during compilation. (mh-defstruct): Modify it to make it more CL like and in the process simplify it a bit. This makes the argument list of the constructor compatible with the previous version, thereby avoiding a compilation error when an old version of mh-seq.elc is present. * mh-seq.el (mh-thread-id-container, mh-thread-get-message) (mh-thread-get-message-container): Revert back to the CL style of using keyword arguments, since the mh-defstruct now produces code compatible to such usage. 2004-08-11 Satyaki Das * mh-acros.el (mh-defstruct, mh-require-cl): Checkdoc fixes. * mh-utils.el (message-tokenize-header, message-fetch-field): Add autoloads. (mh-folder-completing-read): Make the folder completion look better with CVS Emacs. * mh-init.el (mh-variant-set): Remove dead code. 2004-08-11 Bill Wohler * *.el: Use the following at the top of each file which seems to do a good job of suppressing compilation warnings in 21.3 and CVS Emacs (21.4). This replaces (require 'cl) or (require 'utils) (mh-require-cl) calls: (eval-when-compile (require 'mh-acros)) (mh-require-cl) 2004-08-10 Bill Wohler * release-utils (DESCRIPTION): Added one. (FILES, SEE ALSO, VERSION): Deleted empty and incorrect sections. * mh-e.el (mh-colors-available-p): Call x-display-color-cells with mh-funcall-if-exists since it no longer seems to be defined in GNU Emacs 21.4. 2004-08-10 Satyaki Das * mh-speed.el (mh-process-kill-without-query, mh-speed-flists): Avoid a compiler warning in versions of Emacs where process-kill-without-query is a deprecated function. * mh-seq.el (mh-thread-message, mh-thread-container): Use mh-defstruct instead of defstruct. (mh-thread-id-container, mh-thread-get-message-container) (mh-thread-get-message): Use the slightly different structure constructor function. * mh-acros.el (mh-defstruct): New macro which is a partial replacement of the defstruct in CL. (no-byte-compile): Don't compile the file since it isn't loaded at run time, so efficiency isn't an issue. * mh-utils.el (mh-buffer-data): Use mh-defstruct instead of defstruct. 2004-08-09 Satyaki Das * mh-funcs.el, mh-junk.el, mh-print.el: Use mh-require-cl to avoid compilation warnings in Emacs-21.3. * mh-acros.el (mh-require-cl): Add autoloads of CL functions used. 2004-08-09 Bill Wohler * mh-customize.el (mh-show-use-xface-flag): Mention that `fetch' and `curl' are supported as well. 2004-08-08 Bill Wohler * mh-xemacs.el (mh-xemacs-has-toolbar-flag): Checkdoc fixes. * mh-mime.el (mh-display-with-external-viewer): Checkdoc fixes. * mh-identity.el: (mh-identity-attribution-verb-end): Stripped trailing space; checkdoc fixes. * mh-e.el (mh-restore-desktop-buffer): Checkdoc fixes. * mh-customize.el: (mh-inc-spool-list, mh-compose-forward-as-mime-flag, defcustom): Stripped trailing space; checkdoc fixes. * mh-comp.el (mh-reply): Stripped trailing space. * mh-unit.el (mh-unit-files): Added mh-acros.el and mh-gnus.el. (mh-unit): Don't lm-verify pre-21.4. Save buffers before killing since we might have done some editing. * import-emacs: Deleted. Functionality subsumed by release-utils. * release-utils: New script. Performs import-emacs functionality and displays new and deleted options. * Makefile (import-emacs): Call release-utils instead of import-emacs. * mh-funcs.el (mh-undo-folder): Removed deprecated `ignore' argument. * mh-e.el (mh-scan-date-regexp): Deleted as Peter claims it is obsolete. (mh-folder-font-lock-keywords): Removed reference to deleted variable `mh-scan-date-regexp'. * mh-customize.el (mh-auto-fields-prompt-flag): Made reference to `mh-auto-fileds-lists'. (mh-forward-hook): Fixed docstring typo. 2004-08-07 Bill Wohler * mh-acros.el: New file. Currently holds macros needed by mh-customize.el but is planned to hold all macros to avoid dependency problems when compiling. * mh-utils.el (mh-xemacs-flag): Defined in mh-customize.el now. (mh-require-cl, mh-do-in-gnu-emacs, mh-do-in-xemacs) (mh-funcall-if-exists, mh-make-local-hook, mh-mark-active-p): Moved to new file mh-acros.el. * mh-customize.el: Require mh-acros and cl only when compiling and mh-loaddefs at runtime instead of mh-utils. (mh-xemacs-flag): Define it here instead of mh-utils.el. * Makefile (MH-E-SRC): Added mh-acros.el. * mh-gnus.el (default-enable-multibyte-characters): Don't define any more. It doesn't seem to be needed. * mh-customize.el (mh-junk-background): New variable. If on, spam programs are run in background. Running in foreground can be slow. Defaults to nil to spare machines with little memory. * mh-junk.el (mh-spamassassin-blacklist, mh-bogofilter-blacklist) (mh-bogofilter-whitelist, mh-spamprobe-blacklist) (mh-spamprobe-whitelist): Use new option mh-junk-background. 2004-07-25 Satyaki Das * mh-utils.el (mh-folder-completing-read): In recent CVS Emacs, the first letter of the possible choices in the completion buffer is highlighted. The change is needed for this feature to work during folder name completion. This is not entirely sufficient, since the leading "+" in folder names is still mishandled. A patch is required in Emacs itself to address that. 2004-07-22 Mark D. Baushke * mh-e.el (recursive-load-depth-limit): Move recursive-load-depth-limit code to ... * mh-utils.el (recursive-load-depth-limit): ... here to avoid problems compiling mh-utils.el and mh-alias.el with gnus-5.10.6 under emacs-21.1. Use eval-and-compile instead of eval-when. 2004-07-20 Bill Wohler * mh-customize.el (mh-invisible-header-fields-internal): Added header fields emitted by T-Mobile picture phones (X-Mms-*, and commented out X-Operator field saying it's like X-Mailer). 2004-07-12 Bill Wohler * mh-gnus.el: Set local variables indent-tabs-mode and sentence-end-double-space to nil. * mh-customize.el: Checkpoint from option docstring updates and manual synchronization from last summer. For the options listed below, docstring was usually completely rewritten. Use "on" instead of "t" in docstring to match what is seen in customization buffer. Use headline capitalization. Standardize on "Auto-detect" text when option has that capibility. (mh): Since we work on more than one type of Emacs, use Emacs instead of GNU Emacs. Prefer GNU mailutils over GNU Mailutils. (mh-variant): s/Autodetect at startup/Auto-detect/. (mh-alias-insertion-location): s/Sorted alphabetically/Alphabetical/. s/At the top of file/Top/. s/At the bottom of file/Bottom/. (mh-alias-local-users-prefix): s/Use login instead of real name/Use Login/. (mh-identity-list): Sorted values by fields, attribution, signature, GPG key. (mh-auto-fields-list): Missing quote. (mh-compose-insertion): s/Use Gnus/Gnus/. s/Use mhn/mhn/. (mh-compose-space-does-completion-flag): s/SPACE//. (mh-extract-from-attribution-verb): Since we have French, added German too ;-). (mh-letter-complete-function): Mention default in docstring. (mh-invisible-header-fields-internal): Added X-ELNK-Trace from Earthlink. (mh-alias-flash-on-comma, mh-alias-insert-file) (mh-alias-passwd-gecos-comma-separator-flag) (mh-recenter-summary-flag, mh-default-folder-for-message-function) (mh-default-folder-must-exist-flag, mh-index-program) (mh-index-ticked-messages-folders, mh-ins-buf-prefix) (mh-delete-yanked-msg-window-flag, mh-identity-default): See summary above. * mh-init.el (mh-variant-set, mh-sys-path, mh-variant-mu-mh-info): Prefer GNU mailutils over GNU Mailutils MH. * mh-comp.el (sc-cite-original, mh-smail, mh-smail-batch) (mh-edit-again, mh-extract-rejected-mail, mh-forward) (mh-smail-other-window, mh-reply, mh-send, mh-send-other-window): Use `mh-send' instead of \\[mh-send]] since links in the docstring are more useful than a key sequence in these cases. Use "See also" instead of "See also documentation for". Merged in 7.4.4 changes, described below. * mh-e.el (Version, mh-version): Set to 7.4.4+cvs. 2004-07-10 Bill Wohler Released MH-E version 7.4.4. * MH-E-NEWS, README: Updated for release 7.4.4. * mh-e.el (Version, mh-version): Updated for release 7.4.4. This patch release contains the following patches: * mh-xemacs.el: New file from concatenation of mh-xemacs-compat.el and mh-xemacs-icons.el which were removed since their names exceeded DOS 8+3 limits. * Makefile: (mh-e-autoloads.el): Add target to make `mh-e-autoloads.el', a file containg usual entry commands into MH-E to be used for users installing MH-E separately from Emacs. (XEMACS_LOADDEFS_FILE): New. Used to generate mh-loaddefs.el in XEmacs. (XEMACS_LOADDEFS_COOKIE): Ditto. (XEMACS_LOADDEFS_PKG_NAME): Ditto. (XEMACS_OPTIONS): Add '-no-autoloads' to give a cleaner build environment. (MH-E-SRC): Moved mh-xemacs.el to new variable MH-E-XEMACS-SRC. (MH-E-XEMACS-SRC): New variable to hold XEmacs source files. (MH-E-XEMACS-OBJ): New variable to hold XEmacs object files. (clean): Moved XEmacs-specific code to clean-xemacs. (xemacs): Added clean-xemacs prerequisite. Moved down to XEmacs section of file. Add target to build mh-loaddefs.el in XEmacs (loaddefs-xemacs): New rule to build mh-loaddefs.el in XEmacs. (clean-xemacs): New target to remove XEmacs-specific files. (compile-xemacs): New. It allows for the '-no-autoloads' option and byte-compiles all the source files with a single instance of XEmacs. (dist): Added $(MH-E-XEMACS-SRC) to tarball. (AUTO_PRELOADS): Removed, in favour of 'AUTOLOAD_PACKAGE_NAME' and 'AUTOLOAD_FILE'. (AUTOLOAD_PACKAGE_NAME): New. (AUTOLOAD_FILE): New. (all): Don't set $EMACS_HOME if building with XEmacs. (xemacs): Use 'compile-xemacs' instead of 'compile'. (auto-autoloads.elc): Use new $AUTOLOAD_* vars and allow for '-no-autoloads'. (custom-load.elc): Allow for '-no-autoloads'. * mh-e.el: Don't require mh-xemacs-compat which no longer exists. The XEmacs stuff gets required by mh-customize.el which is required by mh-utils.el which is required by mh-e.el. This all happens before mh-xemacs-compat was required, so all should be well. (mh-restore-desktop-buffer): Move from desktop.el. Add Parameters. (mh-restore-desktop-buffer): Delete with-no-warnings. (mh-folder-mode): Bind desktop-save-buffer to t. (Courtesy Lars Hansen). * mh-alias.el (mh-assoc-ignore-case): New macro to use assoc-string when available (Emacs 21.4+); assoc-ignore-case otherwise. (mh-alias-reload, mh-alias-expand, mh-alias-minibuffer-confirm-address): Use it. * mh-seq.el: Added mh-autoload to mh-read-seq-default. * mh-utils.el (mh-require-cl): The Emacs coding conventions require that the cl package not be required at runtime. However, the cl package in versions of Emacs prior to 21.4 left cl routines in their macro expansions. Use mh-require-cl to provide the cl routines in the best way possible (closes SF #930012). (require 'mouse): To shush compiler. Use new function mh-require-cl throughout. Add arch taglines (courtesy Miles Bader). * mh-unit.el (mh-unit-files): Replaced mh-xemacs-compat.el and mh-xemacs-icons.el with mh-xemacs.el. * import-emacs: Also grab the ChangeLog. * *.pbm: Regenerated using GIMP to be consistent with other Emacs icons. 1. Edit .xpm image in GIMP. 2. Image > Mode > Indexed. Check Use Black/White Palette and No Color Dithering. 3. File > Save As file.xbm. 4. Run xbmtopbm < file.xbm > file.pbm. Thanks to jan.h.d@swipnet.se for the help. 2004-07-07 Stephen Gildea * mh-customize.el (mh-invisible-header-fields-internal): Add X-Greylist, X-Source*, and X-WebTV-Signature. Replace specific X-Spam-* headers with general pattern. 2004-06-15 Bill Wohler * README: Vladimir Ivanovic reports that mh-rmail works with XEmacs 21.5.17, so updated requirements text accordingly (closes SF #644321). 2004-05-12 Satyaki Das * mh-utils.el (mh-mail-header-end): Replace call to rfc822-goto-eoh with something that allows From_ lines in the mail header. 2004-04-14 Bill Wohler * mh-utils.el (mh-show-mouse): s/EVENT/event/. Thanks to John Paul Wallington for pointing this out. 2004-04-12 Satyaki Das * mh-e.el (mh-folder-size-flist): Add -showzero option so that the parsing code doesn't get confused by the presence of -noshowzero in the user's .mh_profile (closes SF #933954). 2004-04-07 Satyaki Das * mh-mime.el (mh-insert-mime-button) (mh-insert-mime-security-button): Add evaporate property to overlays used in MIME part buttons. This avoids problems with CVS Emacs. 2004-03-16 Satyaki Das * mh-e.el (mh-folder-from-address): Go to the end of buffer if the re-search-forward fails (closes SF #917096). 2004-02-02 Satyaki Das * mh-customize.el (mh-compose-forward-as-mime-flag): New user customizable variable that controls whether messages are forwarded as MIME attachments (closes SF #827203). * mh-comp.el (mh-forward): Call forw with -mime option only if mh-compose-forward-as-mime-flag is non-nil. 2003-12-26 Jeffrey C Honig * mh-junk.el (mh-junk-blacklist, mh-junk-whitelist) (mh-spamassassin-blacklist, mh-spamassassin-blacklist) (mh-spamassassin-blacklist, mh-spamassassin-whitelist) (mh-spamassassin-whitelist, mh-bogofilter-blacklist) (mh-spamprobe-blacklist): Add progress messages. Change "Couldn't" to "Unable" in error messages. Run bogofilter and spamprobe in the foreground to prevent a large number of processes from swamping the system. 2003-12-25 Satyaki Das * mh-e.el (mh-prompt-for-refile-folder): Marking the whole folder and then refiling all messages throws an error, since this function expects point to be on a valid scan line. The change relaxes this requirement, thereby avoiding the above problem. 2003-12-14 Satyaki Das * mh-comp.el (mh-ascii-buffer-p): New function that checks if a buffer is entirely composed of ASCII. (mh-send-letter): Encode the draft if it contains non-ASCII characters. 2003-12-12 Satyaki Das * mh-customize.el (mh-invisible-headers): Keep only unique fields in list of header fields to hide. This avoids problems in XEmacs. 2003-12-10 Satyaki Das * mh-seq.el (mh-thread-print-scan-lines): The imenu index was not getting created for threaded index buffers. The change fixes this. * mh-index.el (mh-index-insert-folder-headers): Always create the imenu index. (mh-index-create-imenu-index): Set which-func-mode to t. If which-function-mode is turned on after the folder buffer has been prepared, display of the folder info was being inhibited. The change fixes that. 2003-12-09 Satyaki Das * mh-comp.el (mh-letter-mode): Setup mh-mail-header-separator based on draft contents. (mh-letter-mode, mh-letter-mail-header-end-marker) (mh-letter-header-end): Remove use of the variable mh-letter-mail-header-end-marker. Instead use mh-mail-header-separator. This avoids problems in font locking draft buffers (closes SF #855479). 2003-12-09 Satyaki Das * mh-index.el (mh-index-insert-folder-headers): Modified so that imenu--index-alist is updated. (mh-index-create-imenu-index): New function that generates an index usable by imenu. This adds which-func-mode support to index folders (closes SF #855520). * mh-e.el (which-func, which-func-modes): Tell which-func that mh-folder-mode supports it. (mh-folder-mode): Add support for imenu. 2003-11-22 Peter S Galbraith * Makefile: renamed mh-startup.el to mh-e-autoloads.el * README: renamed mh-startup.el to mh-e-autoloads.el * .cvsignore: Added mh-e-autoloads.el 2003-11-18 Bill Wohler Released MH-E version 7.4.3. * MH-E-NEWS, README: Updated for release 7.4.3. * mh-e.el (Version, mh-version): Updated for release 7.4.3. This patch release contains the following two patches: * mh-identity.el (mh-identity-make-menu): Removed condition on mh-auto-fields-list. Use it to enable or disable menu item instead. * mh-customize.el (mh-identity-list): Removed defvar and moved defcustom before mh-auto-fields-list so that defvar wouldn't clobber user's customization settings. 2003-11-17 Jeffrey C Honig * mh-print.el (mh-print-msg): Do not print a message on deprecated usage, the bindings have been removed. * mh-e.el (mh-folder-mode-map): Remove "l" binding for mh-print-msg. * mh-utils.el (mh-show-mode-map): Remove "l" binding for mh-print-msg. 2003-11-16 Satyaki Das * mh-comp.el (mh-beginning-of-word): Use the function mh-mail-abbrev-make-syntax-table instead of the function mail-abbrev-make-syntax-table. * mh-gnus.el (mh-mail-abbrev-make-syntax-table): Add a wrapper function that calls mail-abbrev-make-syntax-table if available. This is needed so that MH-E built with CVS Emacs will work with released versions of Emacs21 and vice versa. 2003-11-14 Peter S Galbraith * mh-customize.el (mh-invisible-header-fields-internal): Add "X-NAI-Spam-" and "X-Spam-Report:". 2003-11-14 Mark D. Baushke * mh-customize.el (mh-invisible-header-fields-internal): Add X-AntiAbuse and X-MailScanner. (Patch from Stephen Gildea.) 2003-11-13 Peter S Galbraith * mh-identity.el (mh-identity-handler-attribution-verb): New function. A new Identity handler for the attribution verb (e.g. "wrote:") to allow for different identities to use different languages. (mh-identity-insert-attribution-verb): New function. Insert the attribution verb, placing special markers so it can be deleted and replaced later. (mh-identity-attribution-verb-start): New variable. Holds the marker for the start of the attribution verb. (mh-identity-attribution-verb-end): New variable. Holds the marker for the end of the attribution verb. * mh-customize.el (mh-identity-handlers): Add new ":attribution-verb" tag for the attribution-verb handler. (mh-identity-list): Idem. * mh-comp.el (mh-yank-cur-msg): Insert attribution verb using mh-identity-insert-attribution-verb. (mh-extract-from-attribution): Extract only the name from the From line, without appending `mh-extract-from-attribution-verb' since markers need to be inserted around that now. 2003-11-12 Bill Wohler * mh-e.el (mh-rmail, mh-nmail): Well, actually, we run in both GNU Emacs and XEmacs, so removed the "GNU" in the docstrings unless one is strictly talking about GNU Emacs. * mh-comp.el (mh-smail, mh-smail-batch, mh-smail-other-window): Ditto. 2003-11-11 Bill Wohler * mh-customize.el (mh-customize): Minor docstring change. (mh, mh-e): The short description for MH-E is: The GNU Emacs Interface to the MH Mail System. Therefore, updated docstrings accordingly. * mh-comp.el (mh-smail, mh-smail-batch, mh-smail-other-window): Ditto. * mh-e.el (mh-rmail, mh-nmail): Ditto. 2003-11-10 Satyaki Das * mh-mime.el (mh-mml-to-mime): In case errors happen in mml-to-mime, restore contents of the draft buffer (closes SF #839303). 2003-11-07 Bill Wohler * mh-customize.el (mh-letter-mode-hook): Moved to mh-sending-mail group (where it is now documented in the manual). (mh-pick-mode-hook): Moved to mh-index group (where it is now documented in the manual). * mh-loaddefs.el: Deleted per our discussion on mh-e-devel. No more conflicts! No more check-ins! Anyone pulling CVS MH-E is expected to compile. This file shall be added to the tarball so that users of the distribution are not. 2003-11-07 Mark D. Baushke * mh-loaddefs.el: Regenerated. * mh-customize.el (mh-forward-hook): Define new hook. * mh-comp.el (mh-forward): Use it. 2003-11-07 Satyaki Das * mh-loaddefs.el: Regenerated. * mh-utils.el (mh-show-toggle-mime-buttons) (mh-show-display-with-external-viewer): New interactive functions callable from the show buffer. (mh-show-mime-map): Add bindings for "K t" and "K e". (mh-show-msg): Propagate change to mh-display-buttons-for-inline-parts-flag to the show buffer. * mh-mime.el (mh-display-with-external-viewer): New interactive function to display MIME parts with external viewer (closes SF #839318). * mh-e.el (mh-folder-mode): Make the variable mh-display-buttons-for-inline-parts-flag buffer-local so that display of MIME buttons can be toggled. (mh-toggle-mime-buttons): New interactive function to toggle display of MIME buttons. (mh-mime-map): Modified to add bindings for "K t" and "K e". 2003-11-04 Steve Youngs * Makefile (XEMACS_LOADDEFS_FILE): New. Used to generate mh-loaddefs.el in XEmacs. (XEMACS_LOADDEFS_COOKIE): Ditto. (XEMACS_LOADDEFS_PKG_NAME): Ditto. (xemacs): Add target to build mh-loaddefs.el in XEmacs (clean-xemacs): Remove `mh-loaddefs.el*' (loaddefs-xemacs): New rule to build mh-loaddefs.el in XEmacs. 2003-11-02 Peter S Galbraith * mh-init.el (mh-variant-set-variant): Reset `mh-x-mailer-string' when we select an MH variant. 2003-11-02 Jeffrey C Honig * mh-loaddefs.el: Regenerated. * mh-funcs.el (mh-print-msg): Move to mh-print.el. * mh-e.el (mh-folder-mode-map): Add mh-print-msg ("l") back, it will print a message that this usage is deprecated. * mh-print.el (require, mh-ps-print-msg, mh-ps-print-msg-file): Require mh-funcs for mh-note-printed. PS print functions were not setting the printed notation. Move mh-print-msg here for consistency. Print message if mh-print-msg invoked via deprecated key binding. 2003-11-01 Peter S Galbraith * Makefile: Add target to make `mh-startup.el', a file containg usual entry commands into MH-E to be used for users installing MH-E separately from Emacs. * README: Document the above for users. 2003-10-29 Jeffrey C Honig * mh-utils.el (mh-show-ps-print-map): Add "?" and "l" to mh-show-ps-print-map. * mh-e.el (mh-ps-print-map, mh-help-messages): Add "?" and "l" to mh-ps-print-map. Add "l" to help message. 2003-10-27 Bill Wohler * Makefile (MH-E-SRC): Moved mh-xemacs.el to new variable MH-E-XEMACS-SRC. (MH-E-XEMACS-SRC): New variable to hold XEmacs source files. (MH-E-XEMACS-OBJ): New variable to hold XEmacs object files. (clean): Moved XEmacs-specific code to clean-xemacs. (xemacs): Added clean-xemacs prerequisite. Moved down to XEmacs section of file. (clean-xemacs): New target to remove XEmacs-specific files. (compile-xemacs): Added $(MH-E-XEMACS-SRC) prerequisite. (dist): Added $(MH-E-XEMACS-SRC) to tarball. 2003-10-27 Satyaki Das * mh-loaddefs.el: Regenerated. * mh-index.el (mh-indexer-choices): Remove option for the non-free glimpse indexer (closes SF #831276). (mh-glimpse-binary, mh-glimpse-directory) (mh-glimpse-execute-search, mh-glimpse-next-result): Functions and variables to implement glimpse support are removed. * mh-customize.el (mh-index-program): Remove option for glimpse. 2003-10-24 Satyaki Das * mh-customize.el: Remove top-level test for toolbar enabled XEmacs since it is not needed. (mh-tool-bar-define): Add test for XEmacs toolbar in the functions mh-toolbar-init, mh-tool-bar-letter-buttons-set and mh-tool-bar-folder-buttons-set. This enables proper compilation irrespective of whether the XEmacs was built with toolbar support or not. * mh-comp.el (mh-letter-mode): Remove conditional since it is not needed. * mh-e.el (mh-folder-mode): Same as above. * mh-utils.el (mh-show-mode): Same as above. * mh-xemacs.el (mh-xemacs-icon-map): Remove condition on toolbar presence since we want the build to work if XEmacs without toolbars is used during compilation. 2003-10-23 Bill Wohler * mh-customize.el: The Great Reorganization. Sorted groups alphabetically. Aligned variables in customization groups with manual sections. Group docstrings changed to match manual chapter titles. 2003-10-22 Satyaki Das * mh-speed.el (timer): Avoid compiler warning in XEmacs. 2003-10-22 Steve Youngs * Makefile (XEMACS_OPTIONS): Add '-no-autoloads' to give a cleaner build environment. (AUTO_PRELOADS): Removed, in favour of 'AUTOLOAD_PACKAGE_NAME' and 'AUTOLOAD_FILE'. (AUTOLOAD_PACKAGE_NAME): New. (AUTOLOAD_FILE): New. (all): Don't set $EMACS_HOME if building with XEmacs. (xemacs): Use 'compile-xemacs' instead of 'compile'. (auto-autoloads.elc): Use new $AUTOLOAD_* vars and allow for '-no-autoloads'. (custom-load.elc): Allow for '-no-autoloads'. (compile-xemacs): New. It allows for the '-no-autoloads' option and byte-compiles all the source files with a single instance of XEmacs. * mh-e.el (mh-folder-mode): Only load the toolbar in XEmacs if toolbar support is available. * mh-comp.el (mh-letter-mode): Only load the toolbar in XEmacs if toolbar support is available. * mh-customize.el: Require 'mh-xemacs' at toplevel when 'mh-xemacs-flag' is non-nil. Wrap all the toolbar code in a test that is true if using GNU/Emacs or a toolbar-enabled XEmacs. * mh-print.el (mh-ps-spool-a-msg): Comment out `clean-message-header-flag' because it isn't used anywhere. * mh-utils.el (mh-show-mode): Only load the toolbar in XEmacs if toolbar support is available. * mh-xemacs.el: Autoload `regexp-opt', `customize-group', `view-mode', `with-electric-help', `pp', `sort-numeric-fields', `reverse-region', and `goto-address' at compile time. (mh-xemacs-has-toolbar-flag): New. This is non-nil when XEmacs has toolbar support. (mh-xemacs-toolbar-*-icon): Use it. 2003-10-21 Mark D. Baushke * mh-identity.el (mh-identity-field-handler): Fields that begin with ":" must have an mh-identity-handler defined or the user gets an error. 2003-10-17 Peter S Galbraith * mh-customize.el (mh-identity-list): This change affects users! The keyword "signature" becomes ":signature". The recently added keyword "pgg-default-user-id" becomes ":pgg-default-user-id". (mh-auto-fields-list): The keyword "Identity" becomes ":identity". (mh-identity-handlers): Idem for signature and pgg-default-user-id. * mh-comp.el (mh-insert-auto-fields): Idem for Identity. 2003-10-17 Peter S Galbraith * mh-xemacs.el: Add eval-and-compile call to (load "toolbar" t t) to make sure `toolbar-make-button-list' is defined. We can't use require because Emacs doesn't have this library. 2003-10-16 Bill Wohler * mh-customize.el (mh-signature-file-name) (mh-letter-insert-signature-hook): Merge docstring with manual. * mh-comp.el (mh-file-is-vcard-p): Checkdoc fix. (mh-insert-signature): Merge docstring with manual. * mh-customize.el (mh-junk): Changed manual link in defgroup from Customizing mh-e to Junk. (mh-junk-function-alist): Moved SpamAssassin to first in list on the hunch that it is the most popular and should be chosen if other anti-spam programs exist. (mh-junk-mail-folder): Since the variable can accept values other than folder names, renamed to mh-junk-disposition to more accurately reflect the content. Merge docstring with manual. (mh-junk-program): Moved SpamAssassin to the top of the menu for the same reason presented in mh-junk-function-alist. Also, fixed case of spam programs to match official usage. Merge docstring with manual. * mh-junk.el (mh-junk-blacklist): s/mh-junk-mail-folder/mh-junk-disposition/. Merge docstring with manual. (mh-junk-whitelist): Merge docstring with manual. (mh-bogofilter-blacklist): No longer suggest using automatic classification so use -s instead of -Ns. (mh-bogofilter-whitelist): No longer suggest using automatic classification so use -n instead of -Sn. (mh-spamassassin-blacklist, mh-spamassassin-whitelist): Merge docstring with manual. Moved spamassassin functions to top of file so functions appear in same order that they are presented in menu. 2003-10-09 Peter S Galbraith * mh-customize.el (mail-citation-hook): Moved from mh-comp.el and made into a defcustom. 2003-10-09 Satyaki Das * mh-loaddefs.el: Regenerated. * mh-comp.el (mh-get-header-field): Add autoload cookie. * mh-utils.el (mh-show-ps-print-toggle-mime) (mh-show-ps-print-toggle-color, mh-show-ps-print-toggle-faces) (mh-show-ps-print-msg-file, mh-show-ps-print-msg) (mh-show-ps-print-msg-show): New interactive functions callable from the show buffer. (mh-show-ps-print-map): New key map for printing. * mh-e.el (mh-folder-mode-map): Remove key binding for mh-print-msg. (mh-ps-print-map): Add new key map for printing. * Makefile (MH-E-SRC): Add mh-print.el. 2003-10-07 Satyaki Das * mh-utils.el (mh-x-image-url-fetch-image): In XEmacs, make-temp-file is not present. So to avoid security problems, use a temporary file in the user's home directory. This avoids issues in creating files in a world-writable directory. * mh-mime.el (mh-signature-highlight): In Emacs, arrange for the overlay to be freed when it is no longer needed. Also, implement signature highlighting in XEmacs. 2003-10-05 Satyaki Das * mh-mime.el (mh-mime-display, mh-mm-inline-message): Respect the value of `mm-verify-option' and `mm-decrypt-option'. (mh-mime-display-security): Rearrange code a bit to avoid too many new lines being inserted when message verification/decryption is carried out while the message is being read. Also use the point-m{in|ax}-marker functions to make the function easier to read. (mh-mime-security-press-button): Extend the function so that the user can verify/decrypt messages while reading them. * mh-gnus.el (mm-possibly-verify-or-decrypt): Added to avoid compiler warning with old Gnus. * mh-utils.el (mh-x-image-url-sane-p): New function which checks if the URL in X-Image-URL is something we can handle. (mh-x-image-url-display): Don't display image if the URL looks malformed. 2003-10-04 Mark D Baushke * mh-comp.el (mh-letter-menu): Simplify menu heading. 2003-10-03 Mark D Baushke * mh-mime.el (mh-mml-query-cryptographic-method): Avoid revisionist history and still provide a good default. * mh-comp.el (mh-letter-menu): Remove the Disable Security parenthetical comment. * mh-loaddefs.el: Regenerated. * mh-customize.el (mh-mml-method-default): What method should be used in secure directives. * mh-mime.el (mh-secure-message): New function used to generate the mml security tags. (mh-mml-unsecure-message): New wrapper function around mml-unsecure-messages. (mh-mml-secure-message-sign-pgpmime): Remove function. (mh-mml-secure-message-encrypt-pgpmime): Ditto. (mh-mml-cryptographic-method-history): New variable. (mh-mml-query-cryptographic-method): New function. (mh-mml-secure-message-encrypt): Ditto. (mh-mml-secure-message-signencrypt): Ditto. (mh-mml-secure-message-sign): Ditto. * mh-comp.el (mh-letter-menu, mh-letter-mode-help-messages, (mh-letter-mode-map): Update to use new functions. 2003-09-26 Satyaki Das * mh-seq.el (mh-interactive-range): The function has been extended so that it now takes a default result to return if no interactive prefix arg is given and no region is active. * mh-e.el (mh-add-sequence-notation): If transient-mark-mode is on, then the active region is deactivated based on whether a user sequence or a internal sequence is being notated. The change removes this inconsistency. (mh-catchup, mh-folder-map): A new interactive function to mark messages as read has been added and bound to "F c" in the folder mode. * mh-utils.el (mh-show-catchup, mh-show-folder-map): New interactive function callable from show mode buffers has been bound to "F c". 2003-09-24 Bill Wohler * mh-customize.el (mh-clean-message-header-flag) (mh-invisible-header-fields-default, mh-invisible-header-fields): Merge docstring with manual. 2003-09-24 Mark D. Baushke * mh-junk.el (mh-junk-blacklist): Junked messages should be put into the mh-seen-list to avoid propagating the unseen sequence into the spam folder. * mh-loaddefs.el: Regenerated. * mh-mime.el (mh-mml-secure-message-sign-pgpmime): Add an optional dontsign argument to remove an existing secure message directive. Update the docstring -- this fuction does not allow for encrypt/sign, just sign directives. * mh-mime.el (mh-mml-secure-message-sign-pgpmime): Use mml-insert-tag directly to provide a sender if mh-identity-pgg-default-user-id is set. (mh-mml-secure-message-encrypt-pgpmime): Use mml-insert-tag directly to provide a sender if this message is to be both signed and encrypted and mh-identity-pgg-default-user-id is set. 2003-09-23 Bill Wohler * mh-alias.el (Commentary): Removed as it is now in the manual. (mh-alias-system-aliases): Moved here from mh-customize.el. By definition, "system" definitions are not user-visible, and user filenames are in the the Aliasfile: profile component, so this variable really shouldn't be a defcustom (mh-alias-tstamp, mh-alias-filenames, mh-alias-reload) (mh-alias-add-alias, mh-alias-grab-from-field) (mh-alias-add-address-under-point, mh-alias-apropos): Merge docstring with manual. (mh-alias-reload-maybe): Minor comment update. (mh-alias-insert-file): Merge docstring with manual. Removed "[press TAB]" from prompt since users should know about completion and space can be used as well. (mh-alias-for-from-p): No longer returns a surprising result (t if there was **not** an alias for the From field) if the From header field is missing. This function now returns what you would expect a function of this name to return. Renamed from mh-alias-from-has-no-alias-p since negatives in the function name make logic harder to follow. (mh-alias-add-alias-to-file): Merge docstring with manual. Improved verbiage of prompt. Aliases are now inserted "[b]efore" or "[a]fter" the existing alias instead of "[i]nsert" or "[a]ppend." Note how the new usage flows better. * mh-customize.el (mh-alias): Changed manual link in defgroup from Customizing mh-e to Aliases. (mh-alias-grab-from-field button): mh-alias-from-has-no-alias-p renamed to mh-alias-for-from-p and no longer returns surprising value if there isn't a From field. Therefore, enable button if there is a From header field and mh-alias-for-from-p returns nil. (mh-letter-complete-function) (mh-alias-completion-ignore-case-flag, mh-alias-flash-on-comma) (mh-alias-insert-file, mh-alias-insertion-location) (mh-alias-local-users, mh-alias-local-users-prefix) (mh-alias-passwd-gecos-comma-separator-flag): Merge docstring with manual. (mh-alias-system-aliases): Moved to mh-alias.el. * mh-comp.el (mh-letter-complete-function-alist): Removed comment about making this customizable since I didn't think it seemed appropriate in the manual. (mh-letter-complete): Merge docstring with manual. 2003-09-23 Satyaki Das * mh-speed.el (mh-speed-flists): When exiting emacs, don't ask if the flists process should be killed. * mh-e.el (mh-folder-message-menu): Enable undo menu entry only if something can be undone. * mh-customize.el (undo): Enable undo button only if something can be undone. 2003-09-22 Peter S Galbraith * mh-customize.el (mh-identity-handlers): New defcustom. Alist of Handler functions for mh-identity (downcased) fields. (mh-identity-list): Add support for pgg-default-user-id. * mh-identity.el (mh-insert-identity): Modified to use `mh-identity-handlers', adding hacking flexibility for those who might need it. (mh-identity-field-handler): New function. Return the handler for a FIELD or nil if none set. The field name is downcased. (mh-identity-handler-gpg-identity): New function; handler for pgg pgp identities. It sets a buffer-local value for `mh-pgg-default-user-id' which must be handled by mh-send-letter. (mh-identity-pgg-default-user-id): New buffer-local variable to hold the requested key ID. (mh-identity-handler-signature): New function; handler t insert and remove signature files. (mh-identity-handler-default): New function; the default handler to insert or remove generic field. (mh-identity-handler-top): Insert a field at the top of the header. (mh-identity-handler-bottom): Insert a field at the bottom of the header. (mh-header-field-delete): Make more robust wrt the field having a trailing colon or not. (mh-identity-make-menu): Add a "Customize Identities" menu entry. * mh-loaddefs.el: Regenerated. 2003-09-21 Peter S Galbraith * mh-init.el (mh-variant-set): Bug fix for mh-variant long names with version numbers. * mh-e.el (mh-scan-format): patch from Sergey Poznyakoff. GNU mailutils now supports the %(decode) format 2003-09-20 Satyaki Das * mh-gnus.el (mh-mm-text-html-renderer): New function to query which HTML renderer is being used by Gnus. * mh-mime.el (mh-signature-highlight): Renderers used to display HTML parts garble the signature separator in various ways. The function has been modified to take that into account. (mh-mime-display-single, mh-mm-display-part): Pass the new optional argument to `mh-signature-highlight'. 2003-09-19 Mark D. Baushke * mh-mime.el (mh-have-file-command, mh-file-mime-type): Made an mh-autoload as they are used in mh-comp.el. * mh-loaddefs.el: Regenerated. 2003-09-18 Peter S Galbraith * mh-comp.el (mh-insert-fields): Make sure field has a colon. 2003-09-18 Satyaki Das * mh-seq.el (mh-toggle-tick): Don't hardcode the name of the tick sequencence in the function. This would have caused improper highlighting of the tick sequence if the user had changed its name. 2003-09-15 Satyaki Das * mh-e.el (mh-folder-message-menu): Fix a little bug which shows up as a problem during compilation (closes SF #806577). 2003-09-15 Mark D. Baushke * mh-customize.el (mh-invisible-header-fields-internal): Added a new field for GNU mailutils per Sergey Poznyakoff. 2003-09-09 Satyaki Das * mh-utils.el (vcard): Unconditionally load vcard.el, if available, so that vcards are always inlined. 2003-09-09 Peter S Galbraith * mh-mime.el (mh-file-mime-type-substitutions): Add entry to convert text/plain .vcf files to text/x-vcard. (mh-mime-content-types): Add text/x-vcard. 2003-09-09 Bill Wohler * mh-comp.el (mh-rejected-letter-start): Added strings for qmail and exim (addresses SF #404965). 2003-09-09 Satyaki Das * mh-gnus.el (mm-inline-text-vcard): Make vcard display work with Gnus-5.9. The extra file vcard.el is still needed. * mh-mime.el (mh-signature-highlight): New function that highlights message signatures. (mh-mm-display-part, mh-mime-display-single): Highlight signatures using `mh-signature-highlight' (closes SF #802722). More work is needed for XEmacs. (mh-mime-display): Highlight signature in non-MIME email too. * mh-customize.el (mh-show-signature-face): New face used to display message signature. 2003-09-08 Peter S Galbraith * mh-e.el (mh-version): Do something sensible when mh-variant-in-use is undefined. * mh-junk.el (mh-spamassassin-blacklist) (mh-spamassassin-whitelist): Change options to be compatoble with old version of spamassassin (V2.20). 2003-09-07 Mark D. Baushke * mh-mime.el (mh-access-types): Per RFC 2049, the "afs" access-type for message/external-body has been removed. Update the comments to reference the current MIME RFCs 2045, 2046 and 2049 rather than the obsolete RFC 1521. 2003-09-05 Peter S Galbraith * mh-e.el (mh-version): Bumped version number to 7.4.2+cvs. 2003-09-04 Satyaki Das * mh-utils.el (mh-picon-directory-list, mh-picon-directory): The mh-picon-directory-list variable supersedes mh-picon-directory. (mh-picon-existing-directory-list): New variable that contains the list of picon directories that actually exist. (mh-picon-set-directory-list): New function to update mh-picon-existing-directory-list from mh-picon-directory-list. (mh-picon-get-image): The function has been modified to search a list of possible picon source directories. The regexp to extract the username from the email address has been made smarter so that it can recognize email addresses of the form user+random@foo.net and extract "user" from there. (mh-picon-file-contents): The file type recognition code has been moved from mh-picon-get-image into this function. (mh-picon-generate-path): The function has been generalized so that searching multiple paths is now feasible. * mh-pick.el, mh-e.el: Checkdoc fixes. 2003-09-02 Satyaki Das * mh-identity.el (eval-when): It seems that the mh-comp-loaded code isn't required any more. 2003-08-30 Satyaki Das * mh-init.el (mh-variant-set): Replace `error' with `message' so that Emacs CVS will compile without errors if no MH variant is present. 2003-08-29 Satyaki Das * mh-init.el (mh-variant-set): Add interactive spec to the function. * mh-mime.el (mh-mhn-compose-external-type): Optional arguments are prompted for only if prefix arg is given. 2003-08-29 Mark D. Baushke * mh-mime.el (mh-mhn-compose-external-type): Modified to be interactive and prompts for many of the fields. Made an mh-autoload. (mh-access-types): New table derived from RFC2017, RFC1521 and RFC1738, used in a completing-read in mh-mhn-compose-external-type. * mh-loaddefs.el: Regenerated. 2003-08-26 Satyaki Das * mh-utils.el (mh-picon-image-types, mh-picon-get-image): Avoid compiler warnings. (mh-sub-folders-actual): Parsing of the output from folders has been modified, so that it also works for MH (closes SF #792300). * mh-junk.el (mh-spamassassin-whitelist): Avoid calling ietf-drums-parse-address if it isn't present. (mh-spamassassin-identify-spammers): Avoid use of puthash so that Emacs20 doesn't complain. * mh-e.el (mh-colors-available-p): Wrap call to display-color-cells in a mh-funcall-if-exists to avoid compiler warning in Emacs20. 2003-08-25 Satyaki Das * mh-e.el (mh-colors-available-flag, mh-folder-mode): New variable to track if colors are available and it is set appropriately in mh-folder-mode. (mh-colors-available-p, mh-colors-in-use-p): Two functions to check whether colors are available and if they are actually being used. (mh-add-sequence-notation): Just changing a scan line doesn't make font-lock refontify the line in Emacs20. So explicitly refontify the scan line in such a situation. (mh-internal-seq): If colors aren't being used then treat the tick sequence like a normal user sequence. * mh-seq.el (mh-put-msg-in-seq): Do font-lock highlighting after the messages have been added to the sequence. (mh-toggle-tick): Modified so that highlighting of the ticked messages will be properly done. If font-lock isn't being used or if colors aren't supported by the Emacs where MH-E is running, then the `%' character is used to annotate ticked messages. * mh-utils.el (mh-picon-image-types): Since Emacs20 doesn't have image-type-available-p, wrap calls to that function in ignore-errors. (mh-add-msgs-to-seq): Do the font-lock highlighting after the messages have been added. 2003-08-24 Bill Wohler * Makefile (MH-E-SRC): Replaced mh-xemacs-compat.el and mh-xemacs-icons.el with mh-xemacs.el. * mh-e.el: Don't require mh-xemacs-compat which no longer exists. The XEmacs stuff gets required by mh-customize.el which is required by mh-utils.el which is required by mh-e.el. This all happens before mh-xemacs-compat was required, so all should be well. * mh-unit.el (mh-unit-files): Replaced mh-xemacs-compat.el and mh-xemacs-icons.el with mh-xemacs.el. * mh-xemacs.el: New file from concatenation of mh-xemacs-compat.el and mh-xemacs-icons.el which were removed since their names exceeded DOS 8+3 limits. * mh-customize.el (mh-compose-skipped-header-fields): Use uppercase for field names. 2003-08-21 Bill Wohler * mh-customize.el (mh-sequences): Introduced new customization group for sequences. (mh-refile-preserves-sequences-flag, mh-tick-seq) (mh-update-sequences-after-mh-show-flag): Moved option from mh-folder to mh-sequences group. Synced docstring with manual. (mh-index-ticked-messages-folders): Since mh-tick-seq is customizable, use it instead of tick in the docstring. * mh-index.el (mh-index-ticked-messages): Since mh-tick-seq is customizable, use it instead of tick in the docstring. * mh-seq.el (mh-msg-is-in-seq): Can now specify an alternate message number with a prefix argument. (mh-narrow-to-tick): Since mh-tick-seq is customizable, use it instead of tick in the docstring. Also, use mh-tick-seq instead of tick in warning message. 2003-08-20 Peter S Galbraith * mh-customize.el: setq mh-variant to 'none when byte-compiling, since we don't care what MH variant (if any) is on the system at that point. * mh-init.el (mh-variant-set): Don't probe for MH variant when mh-variant is set to'none (during byte-compilation). 2003-08-19 Peter S Galbraith * mh-pick.el (mh-pick-single-dash): New defconst. Search components that are supported by single-dash option in pick. (mh-pick-regexp-builder): Use `mh-pick-single-dash' and adapt patch from Sergey Poznyakoff. * mh-comp.el (mh-reply): mu-mh supports `repl -group', thanks to Sergey Poznyakof. * mh-init.el: checkdoc fixes. 2003-08-19 Bill Wohler * mh-seq.el: (mh-edit-pick-expr): Renamed from mh-read-pick-regexp since the new name is more indicative of what the function does. Prompt now says "Pick expression" instead of "Pick regexp". (mh-narrow-to-subject): Rewrote function to behave like other similar functions. (mh-narrow-to-header-field, mh-narrow-to-range) (mh-narrow-to-tick): s/regexp/pick-expr/. (mh-widen, mh-narrow-to-from, mh-narrow-to-cc, mh-narrow-to-to): Synced docstrings with manual 2003-08-19 Bill Wohler Released MH-E version 7.4.2. * MH-E-NEWS, README: Updated for release 7.4.2. * mh-e.el (Version, mh-version): Updated for release 7.4.2. * mh-e.el (mh-folder-size, mh-folder-size-folder) (mh-folder-size-flist): If flist is not present use folder to find the number of messages in the folder. Also the .mh_sequences file is read to find the number of unseen messages (patch from 1.349 and branched for 7.4.2, closes SF #791021). * mh-utils.el (mh-flists-present-flag, mh-find-progs): Introduce a new variable to test for the presence of the flists program and set it in mh-find-progs. (mh-collect-folder-names): Use folders instead of flists. One advantage is that folders is available on MH while flists is not. Another is that if an explicit -sequence argument isn't given and Unseen-Sequence profile is not present then flists croaks while folders doesn't. (mh-collect-folder-names-filter): Don't consider folder names that start with a `.' character. This is needed since the folders command doesn't filter them out like flists does. (patches from 1.307 and 1.309 and branched for 7.4.2, closes SF #791021). 2003-08-18 Bill Wohler * mh-index.el (mh-index-sequenced-messages) (mh-index-new-messages, mh-index-ticked-messages): Updated docstrings from manual (closes SF #718833). * mh-customize.el (mh-variant): Checkdoc fix. (mh-index-new-messages-folders): Don't mention defvar in docstring, use `+inbox' instead. (mh-index-ticked-messages-folders): Don't mention defvar in docstring, use `tick' instead. * mh-comp.el (mh-repl-group-formfile): Checkdoc fix. 2003-08-18 Peter S Galbraith * mh-init.el (mh-variant-set, mh-sys-path, mh-variant-info): Add support for GNU mailutils. (mh-variant-mu-mh-info): New function to detect mu-mh and return info about it for `mh-variants'. * mh-e.el (mh-regenerate-headers): mu-mh has different error message for a invalid mesage list. 2003-08-18 Peter S Galbraith * mh-customize.el (mh-e): New defgroup. Sort of an alias for the 'mh group that a user might be more likely to find. 2003-08-18 Bill Wohler * mh-comp.el (mh-insert-auto-fields-done-local): Docstring tweak. (mh-compose-and-send-mail): Do not call mh-insert-auto-fields. This should be done only once in mh-send-letter. 2003-08-18 Peter S Galbraith * mh-comp.el (mh-letter-mode): Call `mh-find-path unconditionally, like elsewehere in MH-E. * mh-utils.el (mh-find-path): Run setup code only if `mh-find-path-run' is nil such that this is only done once. Also remove the `setq' for `read-mail-command' and `mail-user-agent'. 2003-08-18 Peter S Galbraith * mh-e.el: require 'mh-utils first * mh-customize.el (mh-variant): defcustom moved here. * mh-init.el (mh-variants): Made an mh-autoload. 2003-08-18 Peter S Galbraith * Makefile (MH-E-SRC): Added mh-init.el to MH-E-SRC. * mh-utils.el (mh-find-progs): Deleted. Make obsolete by mh-init.el. (mh-find-path): Call `mh-variants' instead of now obsolete `mh-find-progs'. (mh-path-search): Deleted. Was only used by `mh-find-progs'. * mh-e.el: require mh-init.el. (mh-version): Use simpler `mh-variant-in-use'. (mh-scan-format): Use (mh-variant-p 'nmh) instead of mh-nmh-flag. * mh-comp.el (mh-insert-x-mailer): Use simpler `mh-variant-in-use'. * mh-utils.el (mh-progs, mh-lib, mh-lib-progs) (mh-flists-present-flag): Moved to mh-init.el. (mh-nmh-flag): Deleted. Use (mh-variant-p 'nmh) instead. * mh-comp.el (mh-repl-group-formfile, mh-forward, mh-reply) (mh-send-letter): Use (mh-variant-p 'nmh) instead of mh-nmh-flag. * mh-mime.el (mh-edit-mhn, mh-mime-save-parts): Use (mh-variant-p 'nmh) instead of mh-nmh-flag. 2003-08-16 Bill Wohler * mh-customize.el (mh-folder-selection): New group to hold variables described in Folder Selection section in manual. (mh-default-folder-list, mh-default-folder-must-exist-flag, mh-default-folder-prefix): Moved to mh-folder-selection group. Updated docstrings per manual update. (mh-default-folder-for-message-function): New defcustom. Was a defvar in mh-utils.el. Updated docstring per manual update. * mh-utils.el (mh-default-folder-for-message-function): Moved to mh-customize.el. * mh-e.el (mh-folder-from-address, mh-prompt-for-refile-folder): Updated docstrings per manual update. * mh-unit.el (mh-unit-files): Added mh-init.el. 2003-08-16 Peter S Galbraith * mh-init.el: New file. Code to initialize the MH-E back-end. Highlights: (mh-variant): New defcustom. Users may customize `mh-variant' to switch between available variants. (mh-variants): Available MH variants are described in this variable. (mh-variant-in-use, mh-variant-p): Developers may check which variant is currently in use with the variable `mh-variant-in-use' or the function `mh-variant-p'. 2003-08-15 Bill Wohler * mh-customize.el (mh-auto-fields-list): The manual uses Fcc instead of fcc, so I've changed the user-visible text accordingly. I've left the const alone for backwards compatibility. 2003-08-14 Bill Wohler * mh-identity.el (mh-insert-identity): Changed signature deletion test to test for both markers, rather than testing to see if the start marker is bound. Since the start marker is defined in this file, it should always be bound. Suggestion by Satyaki. * mh-comp.el (mh-send-letter): Go to the top of the draft so that the user can see which header fields have been inserted. I think this is more important than leaving point alone or going to the end to see the signature since Mail-Followup-To or Bcc or cc could have some deleterious effects. * mh-customize.el (mh-auto-fields-prompt-flag): New variable. Non-nil means to prompt before sending if fields inserted. * mh-comp.el (mh-insert-auto-fields): Now return t if fields inserted; otherwise nil. (mh-send-letter): Deleted obsolete documentation about adding X-Mailer and X-Face. Prompt before sending if auto fields added and mh-auto-fields-prompt-flag is t. * mh-customize.el (mh-identity-list): Allow signature to come from mh-signature-file-name. In this case, the "signature" value is set to nil. This might not be the best implementation. Suggestions welcome. * mh-identity.el (mh-insert-identity): Now that the signature can be a nil value, moved test higher up in cond so that the test for a nil value would not be executed first prevening signature handling. Handle nil signature value by calling mh-insert-signature with no arguments which means to use mh-signature-file-name. * mh-comp.el (mh-insert-signature): Changed text of message if no signature inserted. * mh-customize.el (mh-identity-list): Changed "Signature" constant back to "signature" so it *won't* be backwards-incompatible any more. I discovered one could use the :tag keyword to get headline captalization in the menu. * mh-identity.el (mh-insert-identity): Ditto. * mh-identity.el (mh-identity-make-menu): Always build menu. Always create Insert Auto Fields menu item. Just don't enable it if mh-auto-fields-list is nil. Enable radio buttons always. Make None a radio button choice with the other identities. * mh-comp.el (mh-letter-menu): Removed cond on fboundp 'easy-menu-define. We don't do this elsewhere. 2003-08-13 Bill Wohler * mh-identity.el (mh-identity-make-menu, mh-insert-identity): Use headline capitalization in menu items. Even the internal names are exposed in the customize interface, so they need to be uppercase too. (mh-insert-identity): Rather than goto-char to mh-identity-signature-start before deleting, simply pass it to delete-region. When setting markers, use point-min-marker and point-max-marker instead of moving point. Set marker type of mh-identity-signature-start to t to fix a bug where changing identity deleted user's text. * mh-customize.el (mh-identity-list, mh-auto-fields-list): Reworked docstring. Use headline capitalization. Commented out implementation details for later deletion or resurrection upon popular demand. N.B. If your mh-identity-list contains "signature" then you will need to either edit your .emacs file manually, or delete your existing "signature" which will become a regular field with this change and create a new signature. I figured I could get away with this since 8.0 is a major release, and coinciding with the manual update will be a MAJOR release. I apologize profusely that I didn't catch this before it was released. (mh-identity-default): Use headline capitalization in example. 2003-08-12 Jeffrey C Honig * mh-customize.el (mh-alias-reloaded-hook): Define `mh-alias-reloaded-hook'. * mh-alias.el (mh-alias-reload): Run `mh-alias-reloaded-hook' after reloading the aliases. 2003-08-12 Mark D. Baushke * mh-comp.el (mh-insert-signature): Use functionp to avoid the possibility of doing a funcall on a void function. 2003-08-12 Bill Wohler * mh-customize.el (mh-identity): Point group manual link to new Identities section. (mh-signature-separator-flag): New variable which can be used to suppress the output of the signature separator. * mh-comp.el (mh-insert-signature): Use mh-signature-separator-flag. * mh-identity.el (mh-insert-identity): If the identity's signature file didn't exist, an fboundp error was thrown. This was fixed by removing signature tests that were redundant and out of date with the tests in mh-insert-signature. Removed second signature condition as it is now handled in the first signature condition. 2003-08-12 Peter S Galbraith * mh-identity.el (mh-insert-identity): Don't insert new lines on signatures anymore. * mh-comp.el (mh-insert-signature): Make sure signature file is readable before trying to insert it. 2003-08-11 Bill Wohler * mh-comp.el (mh-insert-signature): Unconditionally insert a newline so that signatures are inserted consistently, and so that there isn't any text after the cursor so that the user can start typing his message immediately. Use new variable and function mh-signature-separator and mh-signature-separator-p. * mh-customize.el (mh-delete-yanked-msg-window-flag): Checkdoc fix. (mh-signature-file-name): Updated docstring now that this variable can be a function. Added cross-references to mh-signature-separator, mh-signature-separator-regexp, and mh-signature-separator-p which might be used in such functions. * mh-identity.el (mh-insert-identity): Don't include signature if signature separator already present. Useful when running mh-edit-again. * mh-mime.el (mh-inline-vcard-p): Use mh-signature-separator-p. * mh-utils.el (mh-signature-separator-regexp): New variable containing "^-- $" which should be used when looking for the signature separator. (mh-signature-separator): New variable containing "-- \n" which should be used when inserting the signature separator. (mh-signature-separator-p): New function that returns non-nil if mh-signature-separator-regexp is found in the buffer. 2003-08-09 Satyaki Das * mh-utils.el (mh-x-image-scaling-function): Variable that contains function used to scale images. Possible choices are mh-x-image-scale-with-convert and mh-x-image-scale-with-pnm. (mh-convert-executable): Removed. (mh-x-image-scale-with-pnm, mh-x-image-scale-with-convert): New functions that scale images using pnm tools or ImageMagick. (mh-x-image-scale-and-display, mh-x-image-url-display): Use mh-x-image-scaling-function instead of mh-convert-executable. 2003-08-08 Peter S Galbraith * mh-comp.el (mh-insert-signature): Bug fix. Handle case of nil `mh-signature-file-name' and hooks correctly. * mh-identity.el (mh-insert-identity): Refactor to use mh-insert-signature * mh-comp.el (mh-signature-separator-p): Removed. * mh-comp.el (mh-insert-signature): Merge MIME awareness from mh-insert-identity into this command. Allow `mh-signature-file-name' to be a function to call. See if "-- " needs to be inserted only after hooks have run. 2003-08-07 Bill Wohler * mh-customize.el (mh-compose-skipped-header-fields): Added X-Image-URL. (mh-autoload): Removed cookies. They aren't necessary in mh-e.el, mh-utils.el, or mh-customize.el. * mh-e.el (mh-autoload): Removed cookies. They aren't necessary in mh-e.el, mh-utils.el, or mh-customize.el. * mh-identity.el (mh-insert-identity): Made regexp for signature separator more explicit. Hmmm, maybe we should create mh-signature-separator-regexp... * mh-index.el (mh-replace-string): Moved to mh-utils.el. * mh-utils.el (mh-replace-string): Moved here from mh-index.el. (mh-autoload): Removed cookies. They aren't necessary in mh-e.el, mh-utils.el, or mh-customize.el. * mh-comp.el (mh-insert-signature): Added file argument to insert a file other than mh-signature-file-name. Insert signature separator, unless file already contains one. 2003-08-06 Satyaki Das * mh-e.el (mh-folder-size, mh-folder-size-folder) (mh-folder-size-flist): If flist is not present use folder to find the number of messages in the folder. Also the .mh_sequences file is read to find the number of unseen messages. * mh-utils.el (mh-flists-present-flag, mh-find-progs): Introduce a new variable to test for the presence of the flists program and set it in mh-find-progs. 2003-08-06 Peter S Galbraith * mh-customize.el: Change the order of `mh-identity-list' and `mh-auto-fields-list' and remove byte-compilation defvar for `mh-identity-list'. This fixes a customization bug for `mh-identity-list', where it wasn't set correctly. * mh-identity.el (mh-identity-make-menu): mh-auto-fields-list may not be bound yet when initially loaded. 2003-08-06 Bill Wohler * mh-alias.el (mh-alias-add-address-under-point): Removed trailing period from messages. The conventions say that errors should not end with a period and that "Foo...done" messages should not end in a period, but they aren't explicit about messages in general. Given what the conventions *do* say, and because most of our messages don't end with a period, let's just say that messages in general don't end in a period, just like error messages. * mh-comp.el (mh-extract-rejected-mail, mh-letter-mode-message): Ditto. * mh-e.el (mh-refile-a-msg): Ditto. * mh-funcs.el (mh-undo-folder): Ditto. * mh-mime.el (mh-mime-save-parts): Ditto. * mh-seq.el (mh-subject-to-sequence-unthreaded) (mh-narrow-to-subject, mh-delete-subject): Ditto. * mh-index.el (mh-index-sequenced-messages) (mh-index-new-messages, mh-index-ticked-messages): Discovered that in general we should only use question marks in yes-or-no-p or y-or-n-p prompts, but not in other prompts that use completing-read and offer defaults. In these cases, use colons instead (closes SF #730470). * mh-mime.el (mh-mime-save-parts): Ditto. * mh-utils.el (mh-prompt-for-folder): Ditto. * mh-alias.el (mh-alias-apropos): Multiple messages are usually shown one at a time rather than appended. Send output to mh-aliases-buffer instead of *Help*. (mh-alias-local-users): Checkdoc fix. * mh-funcs.el (mh-undo-folder): Removed commented-out code since its deadline had expired. * mh-utils.el (mh-aliases-buffer): New buffer name, used in mh-aliases.el. 2003-08-06 Satyaki Das * mh-utils.el (mh-x-image-url-cache-canonicalize): Make this function work for XEmacs too. (mh-collect-folder-names): Use folders instead of flists. One advantage is that folders is available on MH while flists is not. Another is that if an explicit -sequence argument isn't given and Unseen-Sequence profile is not present then flists croaks while folders doesn't. (mh-collect-folder-names-filter): Don't consider folder names that start with a `.' character. This is needed since the folders command doesn't filter them out like flists does. * mh-index.el (mh-replace-string): Add autoload for it. 2003-08-05 Satyaki Das * mh-mime.el (mh-compose-forward, mh-mhn-compose-forw) (mh-mml-forward-message): The variable mh-sent-from-msg can be a list. So check that the value is really a number before using it like one. * mh-comp.el (mh-insert-letter): Same as above. * mh-utils.el (mh-picon-get-image): Make the code that finds the address of the sender more robust. (mh-face-display-function): Make it work with XEmacs. (mh-picon-image-types): A new variable that stores what image types can be used. 2003-08-05 Satyaki Das * mh-customize.el (mh-tool-bar-define): Make the save button such that is activated only if the buffer needs to saved. * mh-utils.el (mh-face-display-function, mh-picon-get-image): Some domains, for instance cs.cmu.edu, don't have xpm files. So we need to search for all three files. The change does that. (mh-picon-file-contents): A utility function to return the contents of a file as a string. (mh-picon-get-image): Write it as a loop to make it simpler. (mh-x-image-set-download-state): Make the link simpler. 2003-08-04 Satyaki Das * mh-utils.el (mh-x-image-url-display): Don't bother to try to download image if we don't have the necessary tools to display it. (mh-face-display-function): Add preliminary support for "domain" picons. (mh-picon-get-image, mh-picon-generate-path): Functions to find best match for domain in the From header field. * mh-e.el (mh-previous-unread-msg): If some of the messages in the unseen sequence are not present in the folder buffer then calling this function gets stuck and can't skip over them. The change fixes this. (mh-next-unread-msg): Same as above. 2003-08-04 Bill Wohler * mh-utils.el (mh-show-mode): Added cross reference to mh-folder-mode in docstring (closes SF #728638). Added \\{mh-show-mode-map} to show keymap. * mh-e.el (mh-folder-mode): Added information about ranges to docstring (closes SF #728638). * mh-speed.el (mh-speed-refresh): New function that calls mh-speed-flists and mh-invalidate-map. (mh-folder-speedbar-key-map): Replaced keybindings for mh-speed-invalidate-map and mh-speed-flists with a single binding for mh-speed-refresh. (mh-folder-speedbar-menu-items): Replaced menu items for Run Flists and Invalidate Cached Folders with the single menu item Refresh Speedbar in order to simplify the UI. * mh-customize.el (mh-fetch-x-image-url): Added DOS as another reason not to set this to t. 2003-08-04 Satyaki Das * mh-e.el (mh-scan-folder): Handle ranges from user input properly. 2003-08-03 Satyaki Das * mh-utils.el (mh-find-msg-get-num): Removed. If threading isn't present, the messages are sorted by index. So `mh-goto-msg' was implemented as a binary search and this function was used in that implementation. So this isn't needed any more. (mh-msg-search-pat): Removed. Before the advent of message threading, this function was used to generate a regexp used to search for a particular message. It isn't used anymore. The variable `mh-scan-msg-number-regexp' should be updated and used in `mh-goto-msg' instead of hardcoding the regexp in the code. Then we might be able to better support other scan line formats in the future. * mh-seq.el (mh-map-to-seq-msgs, mh-notate-seq): Removed. These functions were used to notate user sequences. But calling `mh-goto-msg' inside of a loop is inefficient. So the sequence notation code was rewritten thereby making these functions redundant. (mh-copy-line-to-point): Removed. This function was used in the implementation the now removed function `mh-copy-seq-to-point'. That function was problematic and was replaced by the less general `mh-copy-seq-to-eob'. This makes `mh-copy-line-to-point' redundant. (mh-region-to-msg-list): Removed since this is a special case of the more general `mh-range-to-msg-list'. * mh-loaddefs.el: Regenerated. 2003-08-03 Jeffrey C Honig * mh-customize.el (mh-invisible-header-fields-default): Added several new fields to hide. Sorted the list with sort-lines. 2003-08-03 Peter S Galbraith * mh-customize.el (mh-invisible-headers): Variable renamed to `mh-invisible-header-fields-compiled'. (mh-invisible-headers): Implement above change. * mh-utils.el (mh-display-msg): Idem. * mh-mime.el (mh-mm-inline-message): Idem. * mh-comp.el (mh-insert-letter): Idem. 2003-08-03 Bill Wohler * mh-speed.el (mh-folder-speedbar-menu-items): Added separator between standard and MH-E menu items. Use headline capitalization in menu items. * mh-utils.el (mh-temp-fetch-buffer): New constant to hold buffer name for wget output. (mh-x-image-url-fetch-image): Use mh-temp-fetch-buffer instead of hard-coded buffer name. Use make-temp-file to avoid race conditions and subsequent security issues raised in make-temp-name docstring. 2003-08-03 Satyaki Das * mh-utils.el (mh-wget-executable, mh-wget-choice, mh-wget-option) (mh-x-image-url-fetch-image): Support the use of `curl' and `fetch' as alternatives to `wget'. (mh-wget-choice): Change order of search. (mh-x-image-url-fetch-image): Rename buffer. 2003-08-03 Satyaki Das * mh-utils.el (mh-x-image-set-download-state) (mh-x-image-get-download-state): Specially named symbolic links are used to keep track of whether a X-Image-URL header field needs to downloaded the next time it is seen. These functions get and set the symlinks appropriately. (mh-x-image-url-fetch-image): Simplified since the query has been moved to `mh-x-image-url-display'. Also if wget isn't present then try again next time since the user might install wget before trying once more. (mh-x-image-scale-and-display): Handle absence of the `convert' program better. If it isn't present then we will try to display the image the next time it is encountered. Also use the -geometry option to convert since the -resize option isn't present in older versions. (mh-x-image-url-display): Move all the code that decides whether an X-Image-URL header field will be fetched in this function. Also remember the user's decision so that if the image couldn't be fetched the first time, we will try to fetch it later on without asking again. 2003-08-02 Peter S Galbraith * mh-alias.el (mh-alias-local-users): Exclude all aliases already in mh-alias-alist from `ali' (closes SF #772595). 2003-08-01 Satyaki Das * mh-utils.el (mh-x-image-display, mh-x-image-url-display): Avoid a race. The X-Image-URL is displayed asynchronously. Suppose a message with a image is shown with `mh-show'. If a different message is displayed before the image can be fetched, then the new message will have the image displayed. With this change the race is less likely to happen. 2003-08-01 Peter S Galbraith * mh-inc.el (mh-inc-spool-map): Fix what `mh-inc-spool-map-help' must look like as a fake `mh-help-messages' in order to work correctly in mh-help. 2003-07-31 Bill Wohler * mh-inc.el (mh-inc-spool-map): Use mh-help instead of mh-ephem-message in order to display help in its own buffer instead of minibuffer. * mh-utils.el (mh-help-buffer): New variable to hold the name of the MH-E help buffer name. * mh-funcs.el (mh-help, mh-prefix-help): Use with-electric-help to display help messages. I observed a friend with a vision disability and the 5 seconds the help appeared on the screen was not long enough for him to lock on it. I've therefore changed the help function to display the help in its own buffer called *MH-E Help* (closes SF #493740 and SF #656631). * mh-customize.el (mh-fetch-x-image-url): Changed default from nil to 'ask. Updated docstring from manual. (mh-invisible-header-fields-internal): Added X-Image-URL. (mh-show-use-xface-flag): Updated docstring from manual. (mh-x-face-file): Ditto. * mh-mime.el (mh-mhn-compose-external-type): Don't insert the directory parameter if it's nil. The mhbuild man page indicates that this parameter is optional, so this should be fine. * mh-comp.el (mh-letter-mode-map): Added keybindings for mh-mhn-compose-anon-ftp and mh-mhn-compose-external-compressed-tar. (mh-letter-menu): Uncommented menu items for same. 2003-07-30 Satyaki Das * mh-loaddefs.el: Regenerated. * mh-pick.el (mh-do-pick-search): Removed since the function `mh-pick-do-search' performs the same action as this function. * mh-index.el (mh-index-update-unseen): Removed since the generalized sequence synchronization code that keeps sequences in index folders in sync with the sequences in the source folders makes this function redundant. * mh-e.el (mh-folder-unseen-seq-name, mh-folder-unseen-seq-list): Removed. These two functions were used in the unseen sequence highlighting before the sequence highlighting code was generalized. In any event calls to the function `mh-folder-unseen-seq-name' can be replaced by the variable `mh-unseen-seq' and calls to `mh-folder-unseen-seq-list' can be replaced with (cdr (assoc mh-unseen-seq mh-seq-list)). (mh-unmark-all-headers): Removed since this function has been superseded by mh-remove-all-notation. (mh-map-over-seqs): Removed since we now have the generalized iteration over message ranges (the `mh-iterate-on-range' macro) that can be used instead. (mh-notate-if-in-one-seq): Removed. This function was used for changing the `%' notation for user sequences. It can't be used for that purpose any more, since we have a different scheme now. * mh-unit.el (mh-unit-tests): Removed since it isn't needed any more. (mh-unit): Run all function that start with the string "mh-unit-test-". 2003-07-30 Bill Wohler * mh-customize.el (mh-invisible-header-fields): Checkdoc fix. * mh-utils.el (mh-x-image-url-cache-canonicalize): Shortened using example in files.el:make-backup-file-name-1. (mh-face-display-function): Added X-Image-URL to docstring. * mh-unit.el (mh-unit-x-image-url-cache-canonicalize): New function to test mh-x-image-url-cache-canonicalize since it lent itself well to unit testing. Had to start somewhere! (mh-unit-equal): New function that throws an error if RESULT doesn't equal EXPECTED. (mh-unit): Call mh-unit-x-image-url-cache-canonicalize. 2003-07-29 Satyaki Das * mh-unit.el (mh-unit-update-call-graph): Make the function work better with dotted lists, that is lists of the form (a b c . d) where `d' isn't nil. With this we are able to avoid marking some functions as unused even though they are actually used in alists. 2003-07-28 Peter S Galbraith * mh-comp.el (mh-insert-letter): Remove `mh-visible-headers' operation. * mh-mime.el (mh-mm-inline-message): Same. * mh-utils.el (mh-display-msg): Same. (mh-clean-msg-header): Make a note of above change. * mh-customize.el (mh-invisible-header-fields-internal): Renamed from prior `mh-invisible-header-fields-default'. (mh-invisible-header-fields-default): Renamed from prior `mh-invisible-header-fields-default-override'. (mh-invisible-header-fields): Renamed from prior `mh-invisible-header-fields-user'. (mh-visible-headers): Removed! We use invisible fields only now. (mh-visible-header-fields): Removed! 2003-07-28 Peter S Galbraith * mh-customize.el (mh-invisible-header-fields-default): Added 3 new fields to hide. 2003-07-28 Satyaki Das * mh-utils.el (mh-show): Add an extra argument to the function so that interactive use will always force redisplay of the message. * mh-mime.el (mh-mime-display, mh-mm-inline-message): Bind the variables `mm-verify-option' and `mm-decrypt-option' so that verification and decryption of mail can happen without any additional tinkering. 2003-07-25 Peter S Galbraith * mh-customize.el (mh-invisible-header-fields-default): New defvar holding default fields to hide. This replaces the old `mh-invisible-header-fields' defcustom. (mh-invisible-header-fields-user): New defcustom. Users add fields to suppress that we didn't include in `mh-invisible-header-fields-default'. This could be named simply `mh-invisible-header-fields' and it wouldn't really break anything for users who have customized it to a long list now redundant with `mh-invisible-header-fields-default'. (mh-invisible-header-fields-default-override): New defcustom. Users check off the fields they want displyed from what we included in `mh-invisible-header-fields-default'. (mh-invisible-headers): Function adapted to new variables. 2003-07-25 Satyaki Das * mh-e.el (mh-inc-folder): If the user is in a different folder displaying a message and runs mh-inc-folder, then the folder changes to +inbox but the show window continues to display the message in the old folder. The change fixes this. (mh-visit-folder): Make the handling of the show window similar to that of mh-inc-folder. 2003-07-24 Satyaki Das * mh-e.el (mh-folder-message-menu, mh-folder-folder-menu): Use the predicate mh-outstanding-commands-p instead of its exapansion. Also use the same label in both menus. (mh-outstanding-commands-p): Generalized so that it will work in mh-show-mode buffers as well. * mh-customize.el (mh-tool-bar-define): Enable tool-bar button for mh-execute-commands only if there are pending deletes or refiles. 2003-07-19 Satyaki Das * mh-utils.el (mh-show-msg): If a unseen message is first marked for deletion/refiling and then displayed, the bold highlighting does not go away. This change fixes that. * mh-seq.el (mh-msg-is-in-seq): Fix a bug in the function. If any message was marked for refiling, then the function would have you believe that every message in the folder is being refiled. 2003-07-17 Bill Wohler * mh-e.el: Removed email address for Stephen Gildea's in Change Log at his request (damn spammers). Removed other email addresses while I was at it since the SourceForge URL should be sufficient contact information. (mh-scan-format-*mh): Fixed typo in comment above these variables. These variables are used if mh-scan-format-file is t, not nil. Also mh-scan-format-file is no longer "above" (courtesy Stephen Gildea). 2003-07-17 Satyaki Das * mh-mime.el (mh-mhn-quote-unescaped-sharp): New function that quotes `#' characters in the first column that aren't part of a MHN directive. (mh-mhn-directive-present-p): Generalized to allow the function to search for MHN directives in a part of the buffer. (mh-edit-mhn): Quote unescaped `#' characters in the draft (closes SF #762464). 2003-07-16 Satyaki Das * mh-alias.el (mh-alias-read-address-map): If mh-alias-flash-on-comma is nil when mh-alias is loaded, then setting mh-alias-flash-on-comma to t later on doesn't turn on address completion display till Emacs is restarted. The change fixes this. 2003-07-15 Bill Wohler * mh-utils.el (mh-cmd-note): Cleaned up docstring (changed phrase to sentences). Moved to Scan Line Formats section. (mh-scan-msg-number-regexp) (mh-scan-msg-overflow-regexp, mh-scan-msg-format-regexp) (mh-scan-msg-format-string, mh-scan-msg-search-regexp): Cleaned up docstrings (changed phrases to sentences). (mh-note-seq): Cleaned up docstring (changed phrase to sentences). Also, this variable is now a character and not a string. Moved to Scan Line Formats section. * mh-funcs.el (mh-note-copied, mh-note-printed): Cleaned up docstrings (changed phrases to sentences). Also, these variables are now characters and not strings. * mh-e.el (mh-scan-format-mh, mh-scan-format-nmh): Filled. I was hoping to quote the hint `t' but checkdoc wouldn't let me. (mh-note-deleted, mh-note-refiled, mh-note-cur): Moved to Scan Line Formats section. (mh-scan-good-msg-regexp, mh-scan-deleted-msg-regexp) (mh-scan-refiled-msg-regexp, mh-scan-valid-regexp) (mh-scan-cur-msg-number-regexp, mh-scan-date-regexp) (mh-scan-rcpt-regexp, mh-scan-body-regexp) (mh-scan-subject-regexp, mh-scan-format-regexp): Cleaned up docstrings (changed phrases to sentences). (mh-scan-cur-msg-regexp): Marked this variable as obsolete; it should be removed for 8.0. * mh-comp.el (mh-note-repl, mh-note-forw, mh-note-dist): Cleaned up docstrings (changed phrases to sentences). Also, these variables are now characters and not strings. 2003-07-15 Satyaki Das * mh-index.el (mh-index-update-single-msg) (mh-index-create-sequences): Handle the situation where there are copies of the exact same message correctly. 2003-07-15 Satyaki Das * mh-seq.el (mh-thread-update-scan-line-map): Modified since notation is already a character. * mh-utils.el (mh-note-seq): Convert from string to character. (mh-notate): Modified since characters are used to notate instead of strings of length one. * mh-comp.el (mh-note-repl, mh-note-forw, mh-note-dist): Convert from string to characters. * mh-e.el (mh-note-deleted, mh-note-refiled, mh-note-cur): Same as above (closes SF #770772). (mh-unmark-all-headers): Modified since mh-note-* variables are now characters. (mh-remove-sequence-notation): The mh-notate function remembers the previous notation. Before the change to the mh-note-* variables, mh-notate would only remember the change if a string was used to notate the message. Now mh-notate is always called with a character notation. So the deletion has to take place explicitly. 2003-06-28 Bill Wohler * mh-mime.el (mh-mhn-directive-present-p): If shell comments are present that have a space after the # but no content, then this function would throw an error. This has been fixed (closes SF #762458). 2003-06-27 Satyaki Das * mh-index.el (mh-index-search): Use the new and improved mh-index-new-folder. (mh-index-new-folder): Improved so that redoing the same search will reuse the old index folder. (mh-index-folder-search-regexp): New function which that extracts out the search expression that produced the index folder. 2003-06-24 Bill Wohler * mh-e.el (Version, mh-version): Set to 7.4.1+cvs. 2003-06-25 Bill Wohler Released MH-E version 7.4.1. * MH-E-NEWS, README: Updated for release 7.4.1. * mh-e.el (Version, mh-version): Updated for release 7.4.1. 2003-06-25 Bill Wohler * mh-unit.el (require 'cl): Added. Needed when compiling separately. * Makefile (clean): Now a double-colon rule. Added a second clean target to remove mh-unit.elc. (compile): Removed mh-unit.elc. (mh-unit.elc): New target used to compile mh-unit. 2003-06-24 Bill Wohler * mh-e.el (Version, mh-version): Set to 7.4+cvs. 2003-06-24 Bill Wohler Released MH-E version 7.4. * MH-E-NEWS, README: Updated for release 7.4. * mh-e.el (Version, mh-version): Updated for release 7.4. 2003-06-24 Bill Wohler * mh-alias.el (mh-alias-gecos-name, mh-alias-local-users) (mh-alias-suggest-alias): s/gcos/gecos. The original acronym was GECOS but was later renamed to GCOS (see http://info.astrian.net/jargon/terms/g/GCOS.html). But the term really needs to match the field named pw_gecos in struct passwd in /usr/include/pwd.h * mh-customize.el (mh-letter-faces): New group to house mh-letter-header-field-face. (mh-interpret-number-as-range-flag) (mh-kill-folder-suppress-prompt-hook): Use "you" instead of "the user" to make text more friendly. (mh-index-ticked-messages-folders, mh-visible-headers) (mh-visible-header-fields): Alphabetized. (mh-alias-passwd-gcos-comma-separator-flag): Alphabetized and s/gcos/gecos. (mh-alias-local-users-prefix): Fixed docstring. Prefixes are prepended, not appended. Additional checkdoc fix. (mh-letter-header-field-face): Set group to new group mh-letter-faces and moved option into this group. * mh-index.el (mh-index-sequenced-messages): Improved wording of docstring and mentioned use of prefix argument. * mh-seq.el (mh-widen): Made docstring more accurate (hopefully!). 2003-06-18 Satyaki Das * mh-index.el (mh-replace-string): Modified to preserve case of replacement text. (mh-index-parse-search-regexp): Preserve case of search terms. This is needed to take advantage of the acronym indexing in swish++ (closes SF #755718). 2003-06-13 Satyaki Das * mh-utils.el (mh-show-index-sequenced-messages): Interactive function callable from the show buffer. (mh-show-folder-map): Add key binding for "F q". * mh-e.el (mh-folder-map): Same as above. * mh-index.el (mh-index-sequenced-messages): Add interactive spec to the function (closes SF #718833). 2003-06-13 Bill Wohler * mh-index.el (mh-flists-execute): Needed to expand mhpath too. 2003-06-12 Satyaki Das * mh-index.el (mh-flists-execute): Modified so that flists present in mh-progs is called. 2003-06-07 Jeffrey C Honig * mh-comp.el (mh-forward, mh-forward): Use (mh-mail-header-end) to find the end of headers instead of doing an re-search-forward based on mh-mail-header-separator. 2003-06-06 Satyaki Das * mh-comp.el (mh-letter-toggle-header-field-display): Make the function callable from the show buffer. This means that the buffer is temporarily made writable and the modification status of the buffer restored to the original value. 2003-06-06 Peter S Galbraith * mh-utils.el (mh-address-mail-regexp): Bug fix! It wasn't a true copy of the goto-addr variable. My modification only recognized addresses with one dot after the @. Sorry about that. 2003-06-05 Satyaki Das * mh-utils.el (mh-replace-in-string): Move comment into doc string to satisfy checkdoc. * mh-alias.el (mh-alias-apropos): Checkdoc fix. 2003-06-05 Bill Wohler * mh-customize.el (mh-identity-list): Fixed typo in docstring. 2003-06-05 Peter S Galbraith * mh-comp.el (mh-letter-complete-function-alist): Add bcc an reply-to. 2003-06-04 Peter S Galbraith * mh-comp.el (mh-letter-complete-function-alist): Add dcc. 2003-06-03 Peter S Galbraith * mh-utils.el (mh-replace-in-string): New function name instead of `dired-replace-in-string'. * mh-alias.el (mh-alias-gcos-name): Use it. * mh-alias.el (mh-alias-apropos): New command. Show all aliases that match REGEXP either in name or content. * mh-alias.el (mh-alias-suggest-alias): Add no-comma-swap optional arg. (mh-alias-canonicalize-suggestion): Change a comma to a period in created aliases. (mh-alias-local-users): Call `mh-alias-suggest-alias' with `no-comma-swap' arg set to t. * mh-alias.el (mh-alias-local-users): Fix case of nil `mh-alias-passwd-gcos-comma-separator-flag'. * mh-alias.el (mh-alias-gcos-name): Fix for case of empty gcos name field. (mh-alias-local-users): Fix same. * mh-alias.el (mh-alias-canonicalize-suggestion): Replace use by verbose `replace-regexp' by a looped `replace-match' 2003-06-02 Peter S Galbraith * mh-utils.el (dired-replace-in-string): Bind if not already defined. Borrowed from dired.el * mh-alias.el (mh-alias-gcos-name): switch to using dired-replace-in-string. 2003-06-02 Satyaki Das * mh-utils.el (mh-letter-font-lock-keywords): Fontify header fields in the draft buffer that aren't skipped when navigating with TAB (or S-TAB). * mh-customize.el (mh-clean-message-header-flag) (mh-invisible-headers, mh-invisible-header-fields) (mh-alias-passwd-gcos-comma-separator-flag): Checkdoc fix. (mh-letter-header-field-face): New face to fontify the header fields. * mh-comp.el (mh-insert-auto-fields-done-local): Checkdoc fix. (mh-letter-mode, mh-letter-mail-header-end-marker): Remember the end of the message header in a marker. This is used to fontify the header fields. (mh-font-lock-field-data, mh-letter-header-end): Functions used to fontify message header fields. * mh-alias.el (mh-alias-gcos-name): Checkdoc fix. 2003-06-02 Peter S Galbraith * mh-alias.el (mh-alias-gcos-name): New function. Return a usable address string from a GCOS-NAME and USERNAME. (mh-alias-local-users): Use it. * mh-customize.el (mh-alias-passwd-gcos-comma-separator-flag): New defcustom. Whether the gcos field in the passwd file uses comma as a separator. * mh-customize.el (mh-alias-local-users-prefix): New defcustom. String to append to the real names of users from the passwd file. If nil, use the username string unmodified instead of the real name from the gcos field of the passwd file. * mh-alias.el (mh-alias-local-users): Use it to generate aliases which by default are now the real name prefixed by "local." 2003-06-01 Peter S Galbraith * mh-comp.el (mh-modify-header-field): Bug fix. Calling with with a value that was already inserted causes it to get inserted a second time. I have wrapped the value around \b word delimiters. Hope there are no side effects for other code. * mh-comp.el (mh-insert-auto-fields): Attempt regardless of `mh-insert-auto-fields-done-local' flag in interactive use. * mh-comp.el (mh-insert-auto-fields-done-local): Keep track of whether `mh-insert-auto-fields' was called in a buffer. (mh-insert-auto-fields): Set it and use it. Also, don't enter an identity if one was already entered manually. (mh-send-letter): Call `mh-insert-auto-fields' again when sending message. (mh-compose-and-send-mail): Call `mh-insert-auto-fields' _after_ `mh-letter-mode' so `mh-identity-local' doesn't get cleared by the mode invocation. 2003-06-01 Satyaki Das * mh-loaddefs.el: Regenerated. * mh-seq.el (mh-thread-parse-scan-line): The value of mh-scan-field-from-start-offset was hardcoded in one place. The change fixes that. * mh-utils.el (mh-show-mode): Setup mh-show-mode to display elipsis for truncated header fields and to skip over them quickly. (mh-clean-msg-header): Make another pass over the message header fields truncating long headers. * mh-comp.el (mh-letter-complete): Remove unnecessary autoload. (mh-letter-toggle-header-field-display): Take into account that an empty line can also end the message header. The function was originally written with the draft buffer in mind. 2003-06-01 Mark D. Baushke * mh-comp.el (mh-letter-mode-map): Do not steal C-t. Use C-c C-t for the mh-letter-toggle-header-field-display command. 2003-05-31 Peter S Galbraith * mh-customize.el (mh-visible-headers): Changed to a defvar that will be set using new `mh-visible-headers' function using `mh-visible-header-fields' as input. (mh-visible-headers): New function, described above. (mh-visible-header-fields): New defcustom. The UI to set `mh-visible-headers'. (mh-invisible-header-fields-set): Deleted. Code merged into defcustom since it's so short. 2003-05-31 Satyaki Das * mh-comp.el (mh-letter-toggle-header-field-display): Extended to truncate headers if they are too long. (mh-letter-truncate-header-field): Make code that would be duplicated into a function. (mh-letter-hide-all-skipped-fields): Modified so that fields that are important are hidden if they are too long. 2003-05-31 Satyaki Das * mh-utils.el ("tool-bar"): Since tool-bar isn't available on XEmacs, requiring it causes problems. So load it instead. (mh-do-at-event-location): New macro to do stuff at location of events. This has been refactored out of mh-push-button. * mh-mime.el (mh-push-button): Simplified since it now uses the mh-do-at-event-location macro. * mh-comp.el (mh-hidden-header-keymap): Keymap to make mouse clicks on header toggle its display. (mh-letter-toggle-header-field-display-button): Interactive function to toggle header display when mouse button is clicked. 2003-05-31 Peter S Galbraith * mh-e.el (mh-folder-mode): Remove conditional on tool-bar-mode. * mh-comp.el (mh-letter-mode): Same. * mh-utils.el (mh-show-mode): Same. 2003-05-30 Satyaki Das * mh-utils.el (tool-bar): Load tool-bar explicitly. This avoids problems with incorrect initialization of tool-bar-map otherwise. 2003-05-30 Peter S Galbraith * mh-comp.el (mh-modify-header-field): Minor fix of spaces for when an entry already existed. (mh-insert-auto-fields): Make interactive. Add optional `quiet' arg for use when called systematically on every buffer. Won't be used interactively for more verbose output. (mh-letter-mode-map): Add \C-c\M-d keybinding for mh-insert-auto-fields. * mh-identity.el (mh-identity-make-menu): Add a menu entry in Identity menu for mh-insert-auto-fields. * mh-customize.el (mh-invisible-header-fields): Add entries for `Envelope-to' and `X-Original-To'. 2003-05-30 Satyaki Das * mh-comp.el (mh-letter-mode): Skip over invisible text quickly. 2003-05-30 Satyaki Das * mh-comp.el (mh-letter-mode): Use text properties to achieve invisibility. This is more portable and the same code can be used for all Emacs versions. (mh-letter-toggle-header-field-display): Rewritten to use text properties. (mh-dead-overlay-p, mh-letter-hidden-header-fields)): Removed. 2003-05-29 Satyaki Das * mh-comp.el (mh-letter-hidden-header-fields, mh-letter-mode): Add a hash table, initialized it in mh-letter-mode, to remember the overlays introduced to hide long headers fields. (mh-insert-x-mailer): checkdoc fix. (mh-compose-and-send-mail): Hide unimportant message header fields. (mh-letter-header-field-regexp, mh-letter-header-field-at-point) (mh-letter-next-header-field, mh-letter-previous-header-field): Add a variable that contains the header-field name regexp and use it instead of the regexp directly. (mh-letter-toggle-header-field-display, mh-letter-mode-map): Add new key binding in mh-letter-mode that toggles display of long header fields, in mh-letter-mode. (mh-dead-overlay-p): A predicate which checks if a given header field has an active overlay hiding it. (mh-letter-hide-all-skipped-fields): New function that shortens uninteresting headers. 2003-05-29 Eric Ding * mh-comp.el (mh-letter-next-header-field-or-indent): Call indent-relative rather than indent-for-tab-command. 2003-05-29 Satyaki Das * mh-comp.el (mh-letter-complete-or-space): The meaning of the customizable variable was reversed. Also make the doc string more accurate. 2003-05-28 Satyaki Das * mh-customize.el (mh-compose-skipped-header-fields): New customizable variable that lists headers that are skipped. (mh-compose-space-does-completion-flag): Option to do completion with space (closes SF #745634). * mh-comp.el (mh-insert-x-mailer): Check the value of mh-insert-x-mailer-flag in this function instead of in its caller. (mh-compose-and-send-mail, mh-send-letter): Insert X-Mailer and X-Face headers when the draft is first presented to the user instead of when the mail is sent (closes SF #745624). (mh-letter-complete-or-space): Allow for this key binding to be overridden. (mh-letter-next-header-field): Fix a problem with multiline header fields. (mh-letter-next-header-field, mh-letter-previous-header-field): Make these functions skip unwanted header fields. (mh-letter-skipped-header-field-p): New predicate that checks if a header field is to be skipped. * mh-seq.el (mh-thread-inc): Inc'ing email in threaded mode was causing duplication of the current notation. The change fixes that. 2003-05-28 Satyaki Das * mh-comp.el (mh-beginning-of-word): Generalize it to skip arbitrary number of words. (mh-letter-complete-or-space): New interactive function that allows space character to be used for completion. (mh-letter-mode-map): Add key binding to allow space to be used for completion. 2003-05-27 Satyaki Das * mh-customize.el (mh-compose-prompt-flag): Customizable variable that controls whether the user is prompted when composing a draft. It replaces mh-dont-prompt-for-address-flag (closes SF #745622). * mh-comp.el (mh-letter-next-header-field): If the point is in the header field name, then go the start of the header field instead of the next field. (mh-interactive-read-address, mh-interactive-read-string) (mh-letter-adjust-point): Use mh-compose-prompt-flag instead of mh-dont-prompt-for-address-flag. 2003-05-27 Satyaki Das * mh-customize.el (mh-tool-bar-define): Fix incorrect usage of set-specifier (closes SF #745655). Also the button enabling code interacts poorly with font-lock in XEmacs. So disable that. 2003-05-26 Satyaki Das * mh-e.el (mh-folder-from-address): The function message-fetch-field expects that the buffer is narrowed to the mail header. The change makes sure that this is indeed the case. * mh-mime.el (mh-add-missing-mime-version-header) (mh-decode-message-body): Same as above. 2003-05-25 Satyaki Das * mh-alias.el (mh-alias-minibuffer-confirm-address): Modified to use mh-beginning-of-word. * mh-comp.el (mh-letter-confirm-address): Calling mh-alias-reload-maybe can be expensive. So do it only if we really need to. 2003-05-25 Satyaki Das * mh-loaddefs.el: Regenerated. * mh-comp.el (mh-letter-confirm-address): Load aliases if not yet loaded. * mh-alias.el (mh-alias-reload-maybe): Autoload it since it is used in mh-comp.el. 2003-05-24 Satyaki Das * mh-comp.el (mh-letter-skip-leading-whitespace-in-header-field): New function to skip leading space and tab characters when placing point in a header field. (mh-letter-next-header-field, mh-letter-previous-header-field): Skip leading whitespace when using TAB to navigate to header fields. (mh-letter-confirm-address): New interactive function that displays the last expansion of the last alias when "," is typed. (mh-letter-mode-map): Add key binding for "," (closes SF #745634). 2003-05-23 Satyaki Das * mh-comp.el (mh-edit-again, mh-forward, mh-send) (mh-send-other-window, mh-send-sub): Modified so that if mh-dont-prompt-for-address-flag is non-nil, then MH-E won't prompt for addresses to send mail to and instead directly jump to the draft (closes SF #745622). (mh-letter-complete-function-alist): An alist that is used to decide which completion function to use in which header. This variable should probably be customizable. (mh-letter-complete): Now uses mh-letter-complete-function-alist. (mh-letter-header-field-at-point, mh-letter-next-header-field) (mh-letter-next-header-field-or-indent) (mh-letter-previous-header-field): Commands for easier navigation to header fields. (mh-dont-prompt-for-address-flag): Variable which controls whether MH-E prompts for addresses. (mh-interactive-read-address, mh-interactive-read-string): Two functions to ask user for input depending on the value of the above flag. (mh-letter-adjust-point): New function that sets point to the first header field. (mh-letter-mode-map): Add key bindings for TAB and S-TAB (closes SF #745627). 2003-05-23 Satyaki Das * mh-loaddefs.el: Regenerated. * mh-comp.el (mh-complete-word): New function which is approximately equivalent to mail-abbrev-complete-alias. (mh-beginning-of-word): Refactor repeated code into its own function. (mh-folder-expand-at-point): Make Fcc completion work in XEmacs by not using mail-abbrev-complete-alias. * mh-alias.el (mh-alias-letter-expand-alias): Make alias expansion work in XEmacs. Replace the use of the function mail-abbrev-complete-alias, which isn't present in XEmacs. * mh-mime.el (mh-mml-to-mime): If a MIME message is created immediately after starting MH-E then invoking mh-mml-to-mime causes an error because "message" isn't being loaded. The change works around this problem. (mh-mime-maybe-display-alternatives): Give better indication of which MIME parts are alternatives. 2003-05-22 Satyaki Das * mh-e.el (mh-add-sequence-notation, mh-remove-sequence-notation): Just delete and add the same character in the scan line to make font-lock refontify it. The previous trick of removing all text properties didn't work in XEmacs. * mh-seq.el (mh-put-msg-in-seq): Complain if the user tries to create an invalid MH sequence. * mh-mime.el (mh-mime-display-alternative): Modified to optionally display alternatives as buttons. (mh-mime-maybe-display-alternatives): New function which displays alternative MIME parts as buttons. (mh-mime-save-part): Initially mh-mime-save-parts-directory is nil and calling file-name-as-directory with nil arg leads to an error. So fall back on the default-directory in that case. * mh-customize.el (mh-display-buttons-for-alternatives-flag): New customizable variable that controls display of the alternative MIME parts (closes SF #741288). 2003-05-22 Peter S Galbraith * mh-customize.el (mh-invisible-header-fields): Commented out "User-Agent:". It's similar to X-Mailer, so display it. 2003-05-21 Satyaki Das * mh-customize.el (mh-tool-bar-define): Add an optional argument to the button description that can dynamically enable/disable buttons. (mh-tool-bar-define): The alias grabbing button is disabled if the current message doesn't have a From header or if the sender is already in the user's alias. This functionality was inadvertently lost when the Emacs/XEmacs toolbar unification took place. 2003-05-20 Satyaki Das * mh-unit.el (mh-unit-construct-call-graph): Be more aggressive and flag interactive functions that aren't autoloaded or have no key bindings. (mh-unit-interactive-function-p): Remove now unused function. (mh-unit, mh-unit-construct-call-graph): Replace mh-files with mh-unit-files. 2003-05-20 Bill Wohler * mh-unit.el (mh-prune-trailing-spaces): Renamed to mh-unit-prune-trailing-spaces to clean up the namespace. (mh-files): Renamed to mh-unit-files. Ditto. (mh-unit): Checkdoc fix. * mh-index.el (mh-index-p): Added autoload cookie since mh-index-p is used by mh-customize.el. This calls for another mh-unit test that looks for mh-autoloads for functions that are no longer used in other files. * mh-loaddefs.el: Regenerated. 2003-05-20 Satyaki Das * mh-unit.el (mh-unit-construct-call-graph): Factor out the code to read the lisp files to a separate function. Also change it to construct a function call-graph. Autoloaded functions are taken into account. (mh-unit-find-all-used-functions, mh-unit-called-functions) (mh-unit-find-all-unused-functions): Find all unused functions by computing a fixed point starting from the set of top level functions. (mh-unit-analyze-block): Removed. (mh-unit-update-call-graph): mh-unit-functions-called was renamed with modifications to update the function call graph. 2003-05-19 Satyaki Das * mh-loaddefs.el: Regenerated. * mh-utils.el (mh-notate): Modified to keep track of notation that was replaced when sequence notation is added. Thus when the sequence is deleted, the original notation is recovered. (mh-add-msgs-to-seq): Modified to work with the new sequence notation code. * mh-seq.el (mh-delete-seq, mh-put-msg-in-seq): Simplified since we don't need to handle tick and unseen sequences specially any more. (mh-narrow-to-seq): Don't need to call mh-notate-user-sequences since mh-copy-seq-to-eob already does that. (mh-widen): Remove sequence notation, so that notation when messages are replied to aren't lost. (mh-copy-seq-to-eob): Simplified with the use of mh-iterate-on-range. (mh-thread-inc): This function doesn't need to notate user sequences since its callers already do that. (mh-thread-parse-scan-line): Simplified since mh-note-seq doesn't appear in scan lines it is given as arguments. (mh-thread-update-scan-line-map): Remove the test, since its caller already does the required check. (mh-thread-folder): Simplified by the use of mh-iterate-on-range. (mh-tick-add-overlay, mh-tick-remove-overlay, mh-notate-tick): These functions aren't needed any more, since overlays aren't used any more. Also overlays aren't portable to XEmacs, so nasty conditional code that used overlays in Emacs and extents in Xemacs have been eliminated. (mh-toggle-tick): Generalize it to work on a range of messages like the other interactive messages. * mh-funcs.el (mh-undo-folder): Use mh-remove-all-notation instead of mh-unmark-all-headers. * mh-e.el (mh-folder-font-lock-keywords): The entry for unseen sequence highlighting is now done by the macro. (mh-generate-sequence-font-lock): New macro to highlight any arbitrary sequence. This macro is invoked twice to get the highlighting for unseen and tick sequences. (mh-sequence-notation-history, mh-folder-mode): New variable that keeps track of the old notation when a message is notated with mh-note-seq. (mh-regenerate-headers, mh-get-new-mail): Add appropriate calls to mh-notate-user-sequences and mh-remove-all-notation. (mh-unmark-all-headers): Add comment that this function shouldn't be used any more. (mh-add-sequence-notation, mh-remove-sequence-notation): New functions to notate message with mh-note-seq and to remove it. (mh-remove-all-notation): Simplified to use mh-iterate-on-range. (mh-process-commands): Use mh-remove-all-notation instead of mh-unmark-all-headers. (mh-notate-user-sequences, mh-delete-msg-from-seq): Simplified since the tick and unseen sequences don't need special handling any more. (mh-internal-seq): Make it possible to dynamically change what sequences are treated as internal (internal means font lock is used to highlight the sequence). (mh-clear-text-properties): Removed since it isn't needed anymore. 2003-05-19 Satyaki Das * mh-unit.el (mh-unit-analyze-block, mh-unit-interactive-function-p) (mh-unit-find-all-unused-functions): Change argument name bl to block. 2003-05-19 Satyaki Das * mh-unit.el (mh-unit-find-all-unused-functions): New interactive function to find all unused functions in MH-E. (mh-unit-analyze-block, mh-unit-interactive-function-p) (mh-unit-functions-called): Functions used by mh-unit-find-all-unused-functions do its job. * Makefile (compile): Byte-compile mh-unit.el, since the analysis to find unused code runs faster when compiled. 2003-05-18 Satyaki Das * mh-loaddefs.el: Regenerated. * mh-seq.el (mh-notate-deleted-and-refiled): Add autoload declaration since this function is used in mh-index.el. * mh-e.el, mh-customize.el, mh-utils.el: Adjust require/provide statements so that mh-e.el isn't loaded twice. 2003-05-15 Satyaki Das * mh-utils.el (mh-defun-show-buffer): Arrange for the current line in the folder buffer to be highlighted even when we are in the show buffer. 2003-05-14 Satyaki Das * mh-seq.el (mh-read-range): Allow this to work on invalid sequences that only MH-E knows about. * mh-index.el (mh-create-sequence-map, mh-index-add-to-sequence) (mh-index-delete-from-sequence): Don't consider sequences that aren't valid MH sequences. * mh-e.el (mh-valid-seq-p): New predicate to check if a symbol could be a MH sequence. (mh-undefine-sequence, mh-define-sequence): Don't execute "mark" unless the sequence name is a valid MH sequence. * mh-utils.el (mh-exec-cmd): In case an error happens in the call-process and non-strings are present in ARGS, then the error message isn't properly displayed. The change fixes this. 2003-05-14 Peter S Galbraith * mh-mime.el (mh-mime-save-part): Bug Fix: Make sure `mm-default-directory' gets a trailing "/" if `mh-mime-save-parts-directory' doesn't have one. Otherwise the default in the prompt of `mh-mm-save-part' will be wrong. Perhaps `mh-mm-save-part' needs to do this check itself. 2003-05-14 Satyaki Das * mh-index.el (mh-unpropagated-sequences): New function and variable to keep track of sequences that shouldn't be propagated. (mh-create-sequence-map, mh-index-add-to-sequence) (mh-index-delete-from-sequence): Use mh-unpropagated-sequences to stop changes to some sequences being reflected back to the source folders. 2003-05-13 Satyaki Das * mh-loaddefs.el: Regenerated. * mh-e.el (mh-process-commands): Preserve sequences when messages are refiled (closes SF #737128). * mh-index.el (mh-create-sequence-map) (mh-index-create-sequences): Refactor code that is reused into a new function. * mh-customize.el (mh-refile-preserves-sequences-flag): New customizable flag that controls whether sequences are preserved when messages are refiled. 2003-05-13 Eric Ding * mh-e.el (mh-scan-format): The argument for scan format files should be -form, not -format. 2003-05-13 Satyaki Das * mh-seq.el (mh-widen): The scan line map stack was not being properly updated when ALL-FLAG is non-nil. The change fixes that. * mh-e.el (mh-reset-threads-and-narrowing): The change resets the scan line map stack. 2003-05-12 Satyaki Das * mh-loaddefs.el: Regenerated. * mh-seq.el (mh-thread-scan-line-map-stack) (mh-thread-old-scan-line-map): Instead of the old scan line map, now we need to maintain a stack of scan line maps. (mh-narrow-to-seq): Modified so that multiple level of narrowings can be done. We now maintain a stack of old views instead of hiding the old scan lines. This makes it possible to have multiple levels of narrowings. (mh-widen): A optional prefix arg was added to allow undoing all narrowing. (mh-read-seq-default, mh-read-range): Don't use mh-narrowed-to-seq, since it doesn't exist any more. (mh-thread-initialize-hash, mh-thread-initialize): The mh-thread-initialize function has been refactored. (mh-thread-update-scan-line-map): Maintain notations in the stack of scan line maps. (mh-notate-tick, mh-toggle-tick): Simplified, since we don't have mh-narrowed-to-seq any more. This means there is a slight loss of functionality. Earlier if we narrowed to the tick sequence the ticked messages weren't highlighted. This feature isn't present any more. * mh-e.el (mh-execute-commands, mh-reset-threads-and-narrowing) (mh-folder-sequence-menu, mh-get-new-mail): Use mh-folder-view-stack instead of the now removed mh-narrowed-to-seq. (mh-narrowed-to-seq, mh-tick-seq-changed-when-narrowed-flag): These variables have been removed. (mh-folder-view-stack): New variable to keep track of a stack of narrowings. (mh-execute-commands, mh-get-new-mail): Add extra argument to mh-widen so that all narrowings are undone. * Makefile (MH-E-SRC, MH-E-OTHERS): Move mh-gnus.el from MH-E-SRC to MH-E-OTHERS so that it isn't byte compiled. 2003-05-10 Satyaki Das * mh-seq.el (mh-read-seq): Improve the function a bit by adding history to the sequence prompt. 2003-05-09 Satyaki Das * mh-gnus.el: New file that won't be byte-compiled. From now on having different Gnus versions at run-time and compile-time won't cause errors in MH-E. * mh-mime.el (mh-small-show-buffer-p, mh-display-smileys) (mh-display-emphasis): Handle all legal values of font-lock-maximum-size. The existing code assumed didn't consider the case where it could be an alist. (mh-small-image-p): Simplified, so that aliasing XEmacs functions in Emacs isn't necessary any more. (mh-mm-display-part): Remove unnecessary call to fboundp. The mh-funcall-if-exists does that for us any way. (mh-defun-compat, gnus-local-map-property, mm-merge-handles) (mm-set-handle-multipart-parameter, mm-readable-p) (mm-long-lines-p, mm-keep-viewer-alive-p, mm-destroy-parts) (mh-mm-save-part, mm-handle-multipart-ctl-parameter): These compatibility functions have been moved to mh-gnus.el. * Makefile (MH-E-SRC): Add mh-gnus.el. * mh-seq.el (mh-narrow-to-header-field) (mh-current-message-header-field): Checkdoc fixes. * mh-e.el (mh-undefine-sequence): Since mh-coalesce-msg-list returns a list, apply is needed. 2003-05-09 Noel Cragg (tiny change) * mh-junk.el (mh-spamassassin-blacklist): Separate "--local" and "--no-rebuild" arguments to call-process. [Patch committed by satyaki] 2003-05-08 Satyaki Das * mh-seq.el (mh-translate-range): Take into account differnt semantics of split-string in Emacs and XEmacs. (mh-read-pick-regexp, mh-narrow-to-from, mh-narrow-to-cc) (mh-narrow-to-to, mh-narrow-to-header-field) (mh-current-message-header-field, mh-narrow-to-range): New narrowing functions that can select messages based on different message headers. * mh-utils.el (mh-show-limit-map): Add new narrowing functions callable from the show buffer. * mh-e.el (mh-help-messages): Add help text for new functions. (mh-limit-map): Add new narrowing functions (closes SF #732823). 2003-05-07 Satyaki Das * mh-utils.el (mh-collect-folder-names): Use mh-exec-daemon to run flists. This means we don't have to remember to expand the MH executable in the mh-progs path. (mh-exec-cmd-daemon): Return the new process object produced. 2003-05-06 Satyaki Das * mh-e.el (mh-folder-font-lock-unseen): Use mh-seq-list to do unseen sequence highlighting instead of reading the .mh_sequences file from disk every time. 2003-05-05 Satyaki Das * mh-utils.el (mh-show-sequence-map): Add key binding for S' (closes SF #732825). * mh-e.el (mh-sequence-map): Ditto. (mh-help-messages): Updated for S'. 2003-05-04 Satyaki Das * mh-index.el (mh-index-write-data): The with-temp-buffer macro is a bit better than write-file, so use that instead. 2003-05-03 Satyaki Das * mh-index.el (mh-index-update-maps, mh-index-search) (mh-index-sequenced-messages): Write index data to disk. This allows us to recover index folder information if Emacs is restarted, or the index folder is visited after the buffer has been killed (closes SF #701762). (mh-index-write-data, mh-index-read-data) (mh-index-write-hashtable, mh-index-read-hashtable): Functions to store and read index data information to disk. (mh-index-insert-folder-headers, mh-index-group-by-folder): We can no longer use object identity to compare strings, since they might have been read back from disk. * mh-e.el (mh-index-data-file): New variable that stores the name of the file that keeps track of index folder data. (mh-make-folder): Read index folder data if available. * mh-utils.el (mh-show, mh-summary-height, mh-modify): Make checkdoc happy. * mh-seq.el (mh-tick-add-overlay): Rearrange code to make code more uniform. * mh-loaddefs.el: Regenerated. 2003-05-02 Satyaki Das * mh-seq.el (mh-tick-add-overlay): If a message with a short scan line is ticked, then the highlighting didn't extend to the right margin. This change fixes that. 2003-05-01 Bill Wohler * mh-e.el (mh-help-messages): Added brackets around / and downcased limit to be consistent with other commands with punctuation keybindings. Don't document aliases. 2003-05-01 Satyaki Das * mh-loaddefs.el: Regenerated. * mh-seq.el (mh-read-range): Fix comment. 2003-04-30 Mark D. Baushke * mh-e.el (mh-help-messages): Better documentation for the F map. 2003-04-30 Satyaki Das * mh-utils.el (mh-find-path): Cache folder names so that folder name completion is always fast. (mh-flists-partial-line, mh-flists-process): Variables used for pre-caching folder names. (mh-collect-folder-names, mh-collect-folder-names-filter) (mh-populate-sub-folders-cache): Functions to pre-cache folder names. (mh-exec-cmd): Produce more info in *MH-E Log*. * mh-index.el (mh-index-search): Call the correct function. (mh-index-sequenced-messages): If folders is nil, then all mail is searched. The change restores that. 2003-04-30 Peter S Galbraith * mh-customize.el (mh-summary-height): Move variable integer out of defcustom, and instead specify that `nil' means to calculate that size dynamically. Fixes SF #723267. * mh-utils.el (mh-summary-height): New function. Return ideal mh-summary-height value for current frame height. (mh-show-msg): Use it. 2003-04-30 Mark D. Baushke * mh-index.el (mh-index-ticked-messages): Fix prompt and description string. (mh-index-new-messages): Ditto. * mh-loaddefs.el: Regenerated. * mh-index.el (mh-index-sequenced-messages): Renamed from mh-index-new-messages with minor argument change. (mh-index-new-messages): Implement by calling mh-index-sequenced-messages with the appropriate arguments. (mh-index-ticked-messages): New function. Does the same thing as mh-index-new-messages, but on its own set of folders and using the mh-tick-seq instead of mh-unseen-seq. * mh-e.el (mh-folder-map): Add "F'" to the map for mh-index-ticked-messages. (mh-help-messages): Replace broken [t]hread with [n]ew messages. * mh-customize.el (mh-index-ticked-messages-folders): New user customizable flag that controls the folders to be searched by mh-index-ticked-messages. * mh-utils.el (mh-show-index-ticked-messages): Wrapper for mh-index-ticked-messages. (mh-show-folder-map): Add "F'" to the map for mh-index-ticked-messages. 2003-04-30 Satyaki Das * mh-index.el (mh-index-search): The old cur in the source folder might not exist. This could cause mh-exec-cmd to fail. So don't add an error message in that case. 2003-04-29 Satyaki Das * mh-e.el (mh-folder-from-address): Modified to allow multiple Cc: headers to work properly. (mh-inc-folder, mh-visit-folder): Fix an off by one error. * mh-utils.el (mh-notate): Update the scan line map. This fixes a tiny bug. In threaded view, if a message is replied to then the message is notated with a "-". Now if inc is done then the "-" added is lost. The change fixes this. * mh-seq.el (mh-translate-range): Use the correct function. (mh-thread-update-scan-line-map): New function that updates the scan line map when a message is notated. 2003-04-28 Satyaki Das * mh-index.el (mh-index-parse-search-regexp): Avoid compiler warning in GNU Emacs 21.3. * mh-seq.el (mh-widen): Ditto. 2003-04-28 Satyaki Das * mh-customize.el (mh-interpret-number-as-range-flag): New user customizable flag that controls whether a single number, N is interpreted as the range last:N. * mh-seq.el (mh-read-range): Generalize it for use when reading range to scan. (mh-interactive-range): Modified to use the new mh-read-range. * mh-speed.el (mh-speed-view): Use mh-read-range instead of the now removed mh-read-msg-range function. * mh-funcs.el (mh-pack-folder): Ditto. * mh-e.el (mh-rescan-folder, mh-visit-folder): Ditto. (mh-read-msg-range): Removed. * mh-loaddefs.el: Regenerated 2003-04-27 Satyaki Das * mh-loaddefs.el: Regenerated. * mh-seq.el (mh-range-completion-function): Fix checkdoc warning. (mh-iterate-on-range): Mention that the macro can iterate over a MH message range too. 2003-04-27 Bill Wohler * mh-unit.el (mh-unit): As it turns out, lm-crack-copyright has been updated to handle multiple-line copyrights in 21.3, so updated code to run lm-verify only if user has 21.3 or greater. Delete buffers after use, unless user already had buffer open. 2003-04-27 Satyaki Das * mh-loaddefs.el: Regenerated. * mh-index.el (mh-index-search): The MH command "refile" changes cur. The change restores cur in source folders. (mh-index-new-messages): Use the appropriate arguments for mh-read-seq. * mh-seq.el (mh-read-seq-default, mh-read-seq): Restore these functions to just read sequence names. (mh-range-seq-names, mh-range-history, mh-range-completion-map) (mh-range-completion-function, mh-read-range): New function which reads MH range with completion and history. (mh-interactive-range): Use mh-read-range instead of mh-read-seq-default. (mh-put-msg-in-seq): Change documentation about MH message range. * mh-junk.el (mh-junk-blacklist, mh-junk-whitelist): Change documentation about MH message range. * mh-funcs.el (mh-copy-msg, mh-print-msg): Ditto. * mh-e.el (mh-delete-msg, mh-delete-msg-no-motion) (mh-refile-msg, mh-undo, mh-delete-msg-from-seq): Ditto. * mh-comp.el (mh-forward): Ditto. 2003-04-26 Satyaki Das * mh-comp.el, mh-e.el, mh-funcs.el, mh-junk.el, mh-seq.el: Replace msg-or-seq with range everywhere. * mh-loaddefs.el: Regenerated. 2003-04-25 Satyaki Das * mh-e.el (mh-index-sequence-search-flag, mh-folder-mode): New local variable to remember that a folder buffer contains results from a sequence search. This is needed so that "C-u F i" will work as expected. (mh-visit-folder): Create sequences in the index folder. (mh-process-commands, mh-delete-msg-from-seq): If speedbar is on then update the speedbar message counts immediately. (mh-delete-msg-from-seq): Make the code faster by calling "mark" just once. Also update source folder sequence if messages are being deleted from a sequence in an index folder. (mh-undefine-sequence): Simplified to remove the speedbar updating code. Also DTRT and don't change any sequence when called with an empty list of messages. (mh-refile-msg, mh-delete-msg): Move to next message only if the current message has been deleted or refiled, as the case may be. * mh-utils.el (mh-show-msg): Update the message counts in the speedbar, if it is on, immediately. (mh-speed-flists-active-p, mh-speed-flists-inhibit-flag): A new flag has been added which inhibits updating of the speedbar. This is used to avoid needless speedbar updates when mh-execute-commands is called in index folders. * mh-speed.el (mh-speed-flists): Extended so that multiple folders can be given as arguments. Also the code that kept track of the current folder, needed since flists adds an extra ?+ char at the end of the current folder name, wasn't entirely correct. That has also been fixed. * mh-seq.el (mh-delete-seq, mh-put-msg-in-seq): Modified so that sequence in source folder is updated if we delete a sequence in an index folder. (mh-read-seq, mh-read-seq-default, mh-translate-range) (mh-interactive-msg-or-seq): The mh-interactive-msg-or-seq function can read in an arbitrary MH message range. (mh-iterate-on-msg-or-seq): The macro has been extended to work on a MH range. (mh-subject-to-sequence, mh-subject-to-sequence-unthreaded) (mh-subject-to-sequence-threaded, mh-thread-find-msg-subject): Fix the mh-subject-to-sequence function so that it will work in threaded folders too. (mh-tick-add-overlay): Fix a leak of overlays. (mh-toggle-tick): Ticking, or unticking, messages in the index folder is propagated to the source folders (closes SF #709664). * mh-index.el (mh-flists-results-folder, mh-flists-sequence) (mh-flists-called-flag): New variables to implement searching for arbitrary sequences. (mh-index-generate-pretty-name): Updated so that folder names are generated for flists search that can take any sequence name. (mh-index-search): Since sequences are now properly maintained the unseen-flag argument isn't needed and hence removed. Also redoing a sequence search with "C-u F i" is handled correctly. Finally the speedbar is updated to reflect the new index folder created. (mh-index-create-sequences): New function that creates sequences in the index folder. (mh-index-matching-source-msgs, mh-index-execute-commands): Improved so that scan lines for refiled/deleted messages are removed from the source folders as well. (mh-index-add-to-sequence, mh-index-delete-from-sequence): New functions to update sequences in source folder to reflect changes in index folder. (mh-index-quote-for-shell): A utility function to that quotes characters with special meaning to /bin/sh. (mh-flists-execute, mh-index-new-messages): Updated to search for arbitrary sequences (closes SF #718833). * mh-loaddefs.el: Regenerated. 2003-04-25 Bill Wohler * mh-customize.el (mh-kill-folder-suppress-prompt-hook): New hook used by mh-kill-folder to suppress the prompt. * mh-funcs.el (mh-kill-folder): Suppress prompt not if mh-index-data is non-nil, but if any functions in mh-kill-folder-suppress-prompt-hook return non-nil. * mh-index.el (mh-index-p): New function with returns non-nil if the current folder was generated by an index search for use by mh-kill-folder-suppress-prompt-hook * mh-unit.el (mh-unit): Commented out lm-verify step until code updated to handle split Copyright lines. * mh-e.el (mh-version): Set to 7.3+cvs. 2003-04-24 Bill Wohler Released MH-E version 7.3. * MH-E-NEWS, README: Updated for release 7.3. * mh-e.el (Version, mh-version): Updated for release 7.3. 2003-04-24 Satyaki Das * mh-xemacs-compat.el (mh-utils): Require mh-utils at compile time, since the mh-do-in-xemacs macro is used. * mh-inc.el (cl): Require cl at compile time since we are using the loop and setf macros. 2003-04-24 Satyaki Das * mh-unit.el (mh-files): Fix the list of files to check. 2003-04-24 Bill Wohler * ChangeLog: Appended copyright to end of file. * Makefile: Added copyright and license. * README: Added copyright. * import-emacs: Changed copyright from Newt Software to Bill Wohler and use license from mh-e.el, except that this file is a part of MH-E, not GNU Emacs. * mh-alias.el: Updated copyright so that it doesn't wrap upon advice from Richard Stallman who said to use two-digit years when they are surrounded by 4-digit years that are in the same century and to break up copyrights on multiple lines. * mh-comp.el: Ditto. * mh-e.el: Ditto. * mh-funcs.el: Ditto. * mh-identity.el: Ditto. * mh-mime.el: Ditto. * mh-seq.el: Ditto. * mh-utils.el: Ditto. * mh-xemacs-compat.el: Ditto. * mh-unit.el: New file. Unit tests for MH-E. This version merely runs checkdoc and lm-verify which is useful before releasing the software. It can and should be expanded to do real unit tests. 2003-04-22 Mark D Baushke * mh-alias.el: Update Copyright. * mh-comp.el: Ditto. * mh-customize.el: Ditto. * mh-e.el: Ditto. * mh-funcs.el: Ditto. * mh-identity.el: Ditto. * mh-index.el: Ditto. * mh-mime.el: Ditto. * mh-pick.el: Ditto. * mh-seq.el: Ditto. * mh-speed.el: Ditto. * mh-utils.el: Ditto. * mh-xemacs-compat.el: Ditto. 2003-04-22 Satyaki Das * mh-utils.el (mh-normalize-folder-name): Make the completion code work properly with XEmacs. This change is neeeded since split-string behaves differently in XEmacs than it does in GNU Emacs. (mh-exec-cmd-error): Add a comment, so that we change it later on. 2003-04-18 Steve Youngs * mh-xemacs-icons.el (mh-xemacs-icons): Provide 'mh-xemacs-icons' not 'mh-xemacs-toolbar'. * mh-xemacs-compat.el (mh-xemacs-toolbar): Remove require, it's now called 'mh-xemacs-icons' and it is required from 'mh-customize'. * mh-customize.el: Require 'mh-xemacs-icons' instead of 'mh-xemacs-toolbar'. 2003-04-17 Peter S Galbraith * mh-xemacs-icons.el: New file (renamed from mh-xemacs-toolbar.el). Holds XEmacs icons. * mh-xemacs-toolbar.el: Deleted. * Makefile: Incorporate the file renaming. 2003-04-15 Bill Wohler * mh-comp.el (mh-forward): Pass a list of messages into mh-compose-and-send-mail instead of msg-or-seq. (mh-annotate-msg): The previous version called mh-iterate-on-msg-or-seq in the letter buffer. The new version simply adds the ability to operate on message lists. Thanks to Satyaki for the fix and suggestion for passing a list from mh-forward. 2003-04-14 Bill Wohler * mh-comp.el (mh-annotate-msg): Updated to handle msg-or-seq for mh-forward was passing a msg-or-seq to mh-compose-and-send-mail which in turn passed the msg-or-seq to mh-annotate-msg. In particular, forwarding a region failed. Note that the msgs argument in much of mh-comp.el should really be converted to msg-or-seq accordingly. But not now, unless something is broken as was the case here. We can revamp after the release. 2003-04-13 Bill Wohler * mh-funcs.el (mh-kill-folder): Added space after prompt to give the (yes or no) bit a little elbow room. * mh-xemacs-toolbar.el: Removing a copyright is a no-no. Reinstated Steve's copyright. 2003-04-12 Satyaki Das * mh-utils.el (mh-do-in-gnu-emacs, mh-do-in-xemacs): Add indentation hooks for the macros. 2003-04-11 Bill Wohler * mh-alias.el, mh-comp.el, mh-customize.el, mh-funcs.el, mh-identity.el, mh-inc.el, mh-index.el, mh-junk.el, mh-utils.el: Merged in changes from CVS GNU Emacs. These included the removal of trailing whitespace. * mh-customize.el: The "anti-entropy" check-in. Moved groups around slightly to reflect commentary. Moved defcustoms around to preserve alphabetization. Big diff, little content. (mh-xemacs-use-toolbar-flag): Doc fix. (mh-xemacs-toolbar-position): Fixed typo in docstring. (mh-default-folder-list): Updated docstring to reflect new Check Recipient tag. Also, set type of Address to regexp. (mh-x-mailer-string): Moved to mh-comp.el where it is used. * mh-comp.el (mh-x-mailer-string): Moved here from customize.el. Not quite sure how it got to mh-customize.el in the first place. * mh-e.el (mh-folder-folder-menu): Added Folder -> View New Messages menu item. * mh-utils.el (mh-show-folder-menu): Ditto. * mh-inc.el: Added Change Log comment (lm-verify fix). * mh-index.el (mh-index-search): Added documentation about prefix argument for users, in addition to documentation for programmers. * mh-mime.el (mh-edit-mhn, mh-edit-mhn, mh-mml-to-mime): Docstring fixes germaine to the change whereby we now check for MIME directives before sending. * mh-xemacs-toolbar.el: Fixed copyright. Added Change Log comment (lm-verify fix). Added standard MH-E local variables. Removed time-stamp stuff. 2003-04-11 Satyaki Das * mh-seq.el (mh-iterate-on-msg-or-seq): Add a missed comma. 2003-04-10 Satyaki Das * mh-index.el (mh-index-visit-folder): Prompt before reusing existing folder buffer. * mh-xemacs-toolbar.el (require): Require mh-utils at compile time to avoid compilation error when doing "make bootstrap" in CVS Emacs. * mh-inc.el (mh-inc-spool-list): Declare it so that a compile time warning is avoided when doing "make bootstrap" in CVS Emacs. 2003-04-10 Peter S Galbraith * mh-inc.el (mh-inc-spool-generator): Changed to a defun instead of a defmacro, applying Satyaki's patch. (mh-inc-spool-def-key): same. (mh-inc-spool-make): same. * mh-utils.el: define-key "I" in mh-show-mode-map for mh-inc-spool-map. * mh-comp.el (mh-modify-header-field): Remove debug message. 2003-04-10 Peter S Galbraith * mh-inc.el (mh-inc-spool-map-help): Default to nil. (mh-inc-spool-map): Make "?" key display message when `mh-inc-spool-map-help' is nil (instead of mh-inc-spool-map-help containing the message). * mh-e.el: require mh-inc.el * mh-e.el: define-key "I" in mh-folder-mode-map for mh-inc-spool-map. (mh-help-messages): Add help string for "I" key. 2003-04-09 Peter S Galbraith * mh-inc.el: New file. New feature to `inc' mail from various spool files into different folders. * mh-loaddefs.el: Regenerate for mh-inc's mh-inc-spool-list-set. * Makefile (MH-E-IMG): Add highlight icon. (MH-E-SRC): Add mh-inc.el file. * mh-customize.el (mh-inc-spool-list): New variable for new feature to `inc' mail from various spool files into different folders. 2003-04-09 Satyaki Das * mh-utils.el (mh-mail-delivery-buffer): Add a defconst for mh-mail-delivery-buffer. * mh-comp.el (mh-send-letter): Use mh-mail-delivery-buffer. * mh-mime.el (mh-small-image-p): Add mh-funcall-if-exists to avoid compiler warning in GNU Emacs. 2003-04-08 Satyaki Das * mh-mime.el (mh-small-image-p): Make the function slightly more error-resistant in XEmacs. * mh-seq.el (mh-narrow-to-seq, mh-widen): Update tool-bar-map in the show buffer if needed. This allows us to display the widen button in the show buffer only when the folder is narrowed. * mh-customize.el (mh-tool-bar-define): Changed so that a separate tool-bar-map is used in show-mode when folder is narrowed to a sequence. 2003-04-08 Satyaki Das * mh-seq.el (mh-iterate-on-msg-or-seq): Reinstate the use of make-symbol since using gensym causes compiler warnings in CVS Emacs. 2003-04-08 Bill Wohler * mh-comp.el (mh-forward): Function didn't handle a region of messages. Use new function mh-msg-or-seq-to-msg-list to get a list of messages in all circumstances. Also, use mh-coalesce-msg-list on message list before submitting to forw since this should always be done when calling a program to reduce the chance of exceeding command-line limits. * mh-seq.el (mh-iterate-on-msg-or-seq): Backed out previous change. A nil msg-or-seq should mean no messages, and Satyaki is going to use gensym instead of make-symbol. (mh-msg-or-seq-to-msg-list): New function to convert a msg-or-seq to a list of message numbers. * mh-e.el (mh-coalesce-msg-list): Touched up the docstring a little. * mh-funcs.el (mh-print-msg): Can now print regions, message lists, sequences and, of course, single messages. This version works a little differently from the old version. Instead of calling mhl | lpr once on all messages, mhl | lpr is called once per message in order to put each message's number in the header. Thanks to Satyaki for some code and ideas. * mh-seq.el (mh-iterate-on-msg-or-seq): The argument msg-or-seq can now be nil which means the current message. Make local symbols so that local variables don't step on user's symbols (the msgs symbol got me). 2003-04-06 Bill Wohler * mh-comp.el (mh-forward): Updated docstrings to indicate that a list of messages is acceptable as well. * mh-e.el (mh-delete-msg, mh-delete-msg-no-motion, mh-refile-msg) (mh-undo, mh-notate-user-sequences, mh-delete-msg-from-seq): Ditto. * mh-funcs.el (mh-copy-msg, mh-print-msg): Ditto. * mh-junk.el (mh-junk-blacklist, mh-junk-whitelist): Ditto. * mh-seq.el (mh-put-msg-in-seq, mh-iterate-on-msg-or-seq) (mh-interactive-msg-or-seq): Ditto. 2003-04-06 Satyaki Das * mh-junk.el (mh-junk-blacklist, mh-junk-whitelist): Call mh-refile-a-msg and mh-delete-a-msg with nil as the message number since that is more efficient. * mh-seq.el (mh-iterate-on-msg-or-seq): Extended so that it will handle lists of messages numbers as well. (mh-put-msg-in-seq): Use mh-iterate-on-msg-or-seq to simplify the function. * mh-funcs.el (mh-copy-msg): Same as above. * mh-e.el (mh-refile-msg): Make it more efficient. Using nil in mh-refile-a-msg avoids needing to re-search-forward to that message. (mh-undo): Fix typo in interactive spec. (mh-notate-user-sequences): Generalize the function to take a msg-or-seq as argument. (mh-delete-msg-from-seq): Extend the function so that it is now able to subtract messages belonging in one sequence from another. (mh-undo): Unify the region and sequence handling. The message number branch of the function does extra stuff, so we can't merge that in. 2003-04-06 Bill Wohler * mh-comp.el (mh-forward): Use mh-interactive-msg-or-seq. Inserted consistent verbiage in docstring for msg-or-seq. (mh-reply): Don't mention default in opening line in all docstrings. * mh-e.el (mh-delete-msg, mh-refile-msg) (mh-undo, mh-delete-msg-from-seq): Use mh-interactive-msg-or-seq. Inserted consistent verbiage in docstring for msg-or-seq. In mh-delete-msg-from-seq, renamed msg-or-region to msg-or-seq. * mh-funcs.el (mh-copy-msg, mh-print-msg): Use mh-interactive-msg-or-seq. Inserted consistent verbiage in docstring for msg-or-seq. * mh-junk.el (mh-junk-blacklist, mh-junk-whitelist): Inserted consistent verbiage in docstring for msg-or-seq. * mh-seq.el (mh-msg-is-in-seq): Don't mention default in opening line in all docstrings. (mh-put-msg-in-seq): Use mh-interactive-msg-or-seq. Inserted consistent verbiage in docstring for msg-or-seq. * mh-e.el (mh-delete-msg, mh-delete-msg-no-motion, mh-refile-msg): Rewritten to use new mh-interactive-msg-or-seq function and mh-iterate-on-msg-or-seq macro. mh-delete-msg-no-motion gained the ability to operate on regions. * mh-junk.el (mh-junk-blacklist, mh-junk-whitelist): Rewritten to use new mh-interactive-msg-or-seq function and mh-iterate-on-msg-or-seq macro thereby gaining the ability to operate on sequences or regions. * mh-seq.el (mh-iterate-on-msg-or-seq): New macro to execute code on a message, a region of messages, or a sequence. This macro should be in all functions that operate on messages to provide a uniform interface. (mh-interactive-msg-or-seq): New function used in interactive calls to obtain a message number, region, or sequence. This function should be in all functions that operate on messages to provide a uniform interface. * mh-utils.el (with-mh-folder-updating, mh-in-show-buffer): Use 'defun lisp-indent-hook property instead of 1 to fix indentation of these macros. 2003-04-05 Peter S Galbraith * mh-loaddefs.el: Regenerated. * mh-funcs.el (mh-ephem-message): autoload. 2003-04-04 Peter S Galbraith * mh-e.el (mh-folder-from-address): Minor Fix. Wrong ending of `when' block. 2003-04-04 Satyaki Das * mh-mime.el (mh-mml-directive-present-p): The regexp has been modified to recognize directives to encrypt/sign messages. 2003-04-03 Mark D. Baushke * mh-e.el (mh-folder-from-address): E-mail messages missing the To: field, but which have a Cc: field should also be handled. 2003-04-03 Bill Wohler * mh-e.el (mh-inc-folder): Modified the prompt text to read better. * mh-comp.el (mh-forward): Deleted local variable `compose'. Deleted obsolete setting of mh-{mmh|mml}-compose-insert-flag. (mh-letter-menu): Use mh-{mmh|mml}-directive-present-p instead of obsolete. mh-{mmh|mml}-compose-insert-flag. (mh-letter-mode): Deleted obsolete setting of mh-{mmh|mml}-compose-insert-flag. (mh-send-letter): This function now automatically runs the directive-to-MIME conversion if any directives are detected, rather than relying on the unreliable mh-{mmh|mml}-compose-insert-flag variables. Updated docstring accordingly. * mh-identity.el (mh-insert-identity): Use mh-{mmh|mml}-directive-present-p instead of obsolete. mh-{mmh|mml}-compose-insert-flag. * mh-loaddefs.el: Regenerated. * mh-mime.el (mh-mhn-compose-type, mh-mhn-compose-external-type) (mh-mhn-compose-forw, mh-edit-mhn, mh-mml-to-mime) (mh-mml-forward-message, mh-mml-attach-file) (mh-mml-secure-message-sign-pgpmime) (mh-mml-secure-message-encrypt-pgpmime): Deleted obsolete setting of mh-{mmh|mml}-compose-insert-flag. (mh-mml-directive-present-p): Checkdoc fix. * mh-utils.el (mh-mhn-compose-insert-flag, mh-mml-compose-insert-flag): Deleted. Replaced by mh-{mhn|mml}-directive-present-p. 2003-04-03 Mark D. Baushke * mh-e.el (mh-folder-from-address): Fix minor problem with To: address processing. * mh-e.el (mh-folder-from-address): Bugfix match ?+ character not a "?+" string. 2003-04-03 Peter S Galbraith * mh-e.el (mh-inc-folder): Add second optional argument for the folder to inc new mail into instead of mh-inbox. 2003-04-03 Peter S Galbraith * mh-e.el (mh-folder-from-address): The first match found in `mh-default-folder-list' is used. * mh-customize.el (mh-default-folder-list): Tweak docs 2003-04-03 Satyaki Das * mh-loaddefs.el: Regenerated. * mh-mime.el (mh-mhn-directive-present-p): New function to test if a MHN directive is present in the current buffer. (mh-mml-directive-present-p): New function to test if a MML directive is present in the current buffer. * mh-comp.el (mh-letter-mode): Originally this function checked if a #forw directive was present and set mh-mhn-compose-insert-flag to t. The modification generalizes this test so that one of the variables mh-{mml|mhn}-compose-insert-flag will get set if we have any sort of MHN or MML directive is already present. * mh-seq.el (tool-bar-map): Add a defvar to avoid compiler warnings in CVS version of GNU Emacs. * mh-utils.el (tool-bar-map): Same as above. * mh-e.el (tool-bar-map): same as above. 2003-04-02 Satyaki Das * mh-xemacs-toolbar.el (mh-xemacs-toolbar-toggle-tick-icon): Change color to match mh-folder-tick-face. * highlight.xpm: Same as above. 2003-04-02 Peter S Galbraith * mh-e.el (mh-folder-from-address): Check `mh-default-folder-list' for cases against the recipient instead of the originator. * mh-customize.el (mh-default-folder-list): Add extra boolean flag to conditionally check the recipient address instead of the originator. 2003-04-02 Peter S Galbraith * mh-customize.el (mh-folder-tick-face): Change tick highlight face to a background yellow-green, as suggested by Bill. 2003-04-01 Peter S Galbraith * highlight.xpm: New icon for mh-toggle-tick. * mh-xemacs-toolbar.el (mh-xemacs-icon-map): Add tool-bar entry for mh-toggle-tick. (mh-xemacs-toolbar-toggle-tick-icon): New constant. * mh-customize.el: Add tool-bar entry for mh-toggle-tick. 2003-03-31 Satyaki Das * mh-loaddefs.el: Regenerated. * mh-utils.el (mh-show-narrow-to-tick, mh-show-limit-map) (mh-show-sequence-menu): Add new interactive function mh-show-narrow-to-tick callable from the show buffer and arrange for a key binding and a menu entry. * mh-seq.el (mh-narrow-to-tick): New interactive function that narrows to the tick sequence. * mh-e.el (mh-folder-sequence-menu, mh-limit-map): Arrange for a key binding and a menu entry for mh-narrow-to-tick. * mh-comp.el (mh-letter-mode): Enable undo since we could be reusing a show buffer where undo is disabled (closes SF #712777). 2003-03-31 Peter S Galbraith * mh-e.el (mh-folder-sequence-menu): Add entry for mh-toggle-tick. * mh-utils.el (mh-show-sequence-menu): Add entry for mh-show-toggle-tick. 2003-03-28 Satyaki Das * mh-seq.el (mh-delete-seq): If the tick sequence is killed with "S k" then the highlighting wasn't getting removed. The change fixes this. 2003-03-27 Satyaki Das * mh-e.el (mh-notate-user-sequences): Extend it so that only the messages in a part of the folder are notated. (mh-delete-msg-from-seq): Extend it so that it will delete all messages in the marked region. (mh-delete-a-msg-from-seq): New function that deletes a single message from a sequence. (mh-clear-text-properties): If there is a ticked unseen message and the message is removed from the unseen list with "S d" then unticking the message doesn't change the highlight. This change fixes this. 2003-03-27 Peter S Galbraith * mh-xemacs-toolbar.el (mh-xemacs-toolbar-*-icon): Use original 24x24 icons, changing background only. 2003-03-27 Satyaki Das * mh-junk.el (mh-spamassassin-identify-spammers): Remove unused variable buffer-exists. (mh-spamassassin-identify-spammers): Remove unused variable user. * mh-customize.el (mh-junk-choose): Tweak it to remove XEmacs compiler warning. 2003-03-26 Satyaki Das * mh-seq.el (mh-thread-print-scan-lines): Handling of a boundary condition when messages from the last source folder had been removed was incorrect. This caused a folder header to appear without any messages listed under it. This change fixes this. (mh-thread-forget-message): Remove the entry from the scan line table as well. This is needed for proper display of threaded view of index folders. 2003-03-26 Bill Wohler * Makefile, README, import-emacs, mh-alias.el, mh-comp.el, mh-customize.el, mh-e.el, mh-funcs.el, mh-identity.el, mh-index.el, mh-loaddefs.el, mh-mime.el, mh-pick.el, mh-seq.el, mh-speed.el, mh-utils.el, mh-xemacs-compat.el, mh-xemacs-toolbar.el: Removed RCS keywords per Emacs conventions (closes SF #680731). 2003-03-26 Satyaki Das * mh-index.el: Fix commentary to mention that mairix is supported as well. * mh-loaddefs.el: Regenerated. * mh-utils.el (mh-show-junk-blacklist, mh-show-junk-whitelist): Interactive functions callable from the show buffer. (mh-show-junk-map): Key bindings in show mode. * mh-e.el (mh-junk-map): Key bindings to call spam program. (mh-help-messages): Update help text. * mh-customize.el (mh-junk): New customization group for spam program interface. (mh-junk-choice, mh-junk-function-alist, mh-junk-choose): Functions and variables that decide which junk program is used. (mh-junk-program, mh-junk-mail-folder): User customizable variables that control the choice of spam program and the action performed on received spam. * Makefile (MH-E-SRC): Add mh-junk.el. 2003-03-26 Satyaki Das * mh-loaddefs.el: Regenerated. * mh-utils.el (mh-show-toggle-tick, mh-show-mode-map): New interactive function callable from the show buffer and a key binding for it. * mh-seq.el (mh-delete-seq): Remove highlight from tick sequence. (mh-put-msg-in-seq): Disable adding messages to tick sequence. (mh-widen): Reset mh-tick-seq-changed-when-narrowed-flag. (mh-tick-add-overlay, mh-tick-remove-overlay, mh-notate-tick) (mh-toggle-tick): New functions to highlight/unhighlight tick sequence and the interactive function that is used to toggle tick. * mh-e.el (mh-tick-seq-changed-when-narrowed-flag): New variable that remembers if we are narrowed to the tick sequence. In that case the highlighting isn't shown, since it adds no extra info. (mh-folder-mode): Initialize mh-tick-seq-changed-when-narrowed-flag. (mh-notate-user-sequences): Notate the tick sequence. (mh-internal-seq): Treat mh-tick-seq like an internal sequence. (mh-delete-msg-from-seq): Don't allow deletion from tick sequence. (mh-folder-mode-map): Add key binding for "'" * mh-customize.el (mh-tick-seq, mh-folder-tick-face): New customizable variables that contain the name of the tick sequence and the face to use to highlight it. 2003-03-25 Satyaki Das * mh-loaddefs.el: Regenerated. * mh-seq.el (mh-thread-print-scan-lines): New function which prints out thread tree. It maintains the original folder info if the folder was created by index search (closes SF #709672). (mh-copy-seq-to-eob, mh-thread-inc, mh-thread-folder): Use factored out function mh-thread-print-scan-lines. (mh-toggle-threads): Since threading is allowed in index folders there can be lines in the folder which aren't valid message scan lines. So it is OK for mh-get-msg-num to fail once in a while. * mh-index.el (mh-index-update-maps): Make the parsing of messages that need to annotated with the X-MHE-Checksum header more robust. If the search yielded no results then an error was being produced. (mh-index-search): Enable automatic threading of index folders if mh-show-threads-flag is non-nil (closes SF #709667). (mh-index-next-folder): Relax error checking since index folder can be threaded while the source folder info is visible. (mh-index-group-by-folder): New function that is used in mh-thread-folder to keep source folder info visible during threading. 2003-03-25 Bill Wohler * mh-loaddefs.el: Regenerated. * mh-customize.el (mh-index-new-messages-folders): New variable that controls which folders "F n (mh-index-new-messages)" accesses. Was mh-flists-search-folders. * mh-index.el (mh-flists-search-folders): Still used internally, but users now use new option mh-index-new-messages-folders. Removed documentation since to avoid duplication with mh-index-new-messages-folders. (mh-flists-recursive-search-flag): Deleted. Use mh-recursive-folders-flag instead. (mh-flists-execute): Updated docs to specify which global variables are used. Use mh-recursive-folders-flag instead of mh-flists-recursive-search-flag. (mh-index-new-messages): Edited doc, and refer to new option mh-index-new-messages-folders. Ditto within code. Don't need to prepend + to folder name as flists does that for us. Use 2003-03-24 Satyaki Das * mh-e.el (mh-refile-msg): Add optional argument that controls whether mh-last-destination-folder is updated or not. 2003-03-22 Satyaki Das * mh-customize.el (mh-tool-bar-define): Fix a problem in the XEmacs version which caused the show mode toolbar to have the buttons in the reverse order. Also the add-hooks are no longer needed since mh-toolbar-init is called in the appropriate modes. * mh-comp.el (mh-letter-mode): Call mh-toolbar-init in XEmacs to initialize toolbar. * mh-utils.el (mh-show-mode): Same as above. * mh-e.el (mh-folder-mode): Same as above. 2003-03-21 Satyaki Das * mh-utils.el (mh-exec-cmd-env-daemon): New function which executes a command asynchronously with its own environment. * mh-comp.el (mh-redistribute): The function has been modified so that /bin/sh isn't used to run send. It has also been refactored so that the same code isn't repeated. 2003-03-21 Bill Wohler * mh-customize.el (mh-invisible-header-fields): Added X-Bogosity for bogofilter. 2003-03-21 Satyaki Das * mh-loaddefs.el: Regenerated. * mh-xemacs-toolbar.el: Remove the code since that gets generated when mh-tool-bar-define is expanded. (mh-xemacs-icon-map): A alist to map GNU Emacs icon names to the actual icons to be used in XEmacs. This is used in mh-tool-bar-define. * mh-customize.el (mh-toolbar): Use this group in XEmacs as well. (mh-tool-bar-item-*): All these constants have been removed since they aren't needed in the new scheme. (mh-tool-bar-reply-3-buttons-flag): This variable has been removed. (mh-tool-bar-search-function): This is now used in XEmacs as well. (mh-tool-bar-folder-set, mh-tool-bar-folder-buttons-set) (mh-tool-bar-letter-buttons-set, mh-tool-bar-show-set) (mh-tool-bar-letter-set): These functions aren't defined at the top level any more. (mh-tool-bar-reply-generator): A macro to generate the required functions for the three reply buttons. (mh-tool-bar-search, mh-tool-bar-customize) (mh-tool-bar-folder-help, mh-tool-bar-letter-help) (mh-tool-bar-reply-from, mh-show-tool-bar-reply-from) (mh-tool-bar-reply-to, mh-show-tool-bar-reply-to) (mh-tool-bar-reply-all, mh-show-tool-bar-reply-all): New interactive functions that are called when tool bar buttons are clicked. (mh-xemacs-use-toolbar-flag, mh-xemacs-toolbar-position): Additional customizable variables that are present only for XEmacs. (mh-tool-bar-define): A macro that generates the required code for GNU Emacs and XEmacs tool bar. (mh-tool-bar-define): Define the MH-E tool bar. 2003-03-17 Satyaki Das * mh-seq.el (mh-notate-cur): Notate current message only if it hasn't been marked for deletion or refiling. 2003-03-15 Bill Wohler * mh-customize.el (mh-invisible-header-fields): Added X-Spam-Checker-Version. (mh-auto-fields-list): checkdoc fix. 2003-03-12 Satyaki Das * mh-index.el (mh-index-new-messages): If the destination folder where the unseen messages are supposed to be copied to was already present, but MH-E doesn't have it open, then a new folder was being created. The change fixes this. (mh-index-update-unseen, mh-flists-recursive-search-flag): Fix checkdoc warnings. * mh-loaddefs.el: Regenerated. 2003-03-11 Satyaki Das * mh-index.el (mh-flists-results-folder): Subfolder under +mhe-index where the results of the flists call is put. (mh-index-generate-pretty-name): Make sure that normal index searching will never use the folder reserved for the flists results. (mh-index-search): Add an extra parameter that marks all the messages in the index folder to the unseen sequence. (mh-index-update-unseen): Function to keep unseen sequence of index folder synced with the actual folders from where the messages were copied. This works only if the unseen messages are displayed with mh-show. Killing the unseen sequence in the index folder or adding/removing messages to it doesn't change the unseen sequence in the source folders yet. (mh-flists-search-folders): Variable that decides the folders on which flists is run. (mh-flists-recursive-search-flag): If non-nil, flists is passed the -recurse option. (mh-flists-execute): Function which uses /bin/sh to execute flists and then print out the list of message files that match. (mh-index-new-messages): New interactive function which searches for messages in the unseen sequence (closes SF #701756). * mh-utils.el (mh-show-folder-map): Add binding for mh-index-new-messages. (mh-show-msg): Update the unseen sequence in the source folder. * mh-e.el (mh-folder-font-lock-unseen): The function assumes that the end of buffer is reached when there isn't a valid scan line on the current line. This doesn't work in the index folder since we have lines containing the folder name and empty lines in between the actual scan lines. The modification removes this assumption. (mh-folder-map): Add key binding for "Fn" * mh-seq.el (mh-iterate-on-messages-in-region): If the point is not at the beginning of the line, then the first message in the region would be missed. The fix avoids this. * mh-mime.el (mh-inline-vcard-p): Don't try to inline vcards if we don't have the right libraries. 2003-03-10 Satyaki Das * mh-e.el (mh-next-undeleted-msg, mh-previous-undeleted-msg) (mh-next-msg): Add optional argument wait-after-complaining-flag. If non-nil and there are no undeleted messages after (or before) the current one, then pause for a second after printing out the message. (mh-refile-or-write-again): Modify call to mh-next-msg to use the wait-after-complaining-flag. 2003-03-10 Satyaki Das * mh-e.el (mh-refile-or-write-again): If mh-next-msg fails to find a message to go to it prints out a diagnostic, which overwrites the diagnostic about the folder the message was refiled to. The change fixes this. 2003-03-09 Satyaki Das * mh-seq.el (mh-widen, mh-narrow-to-seq): Update mh-narrowed-to-seq before notating sequences. This is a bit helpful for mh-tick.el. (mh-put-msg-in-seq): Fix a minor bug. No internal sequence should be notated -- the original code was doing the right thing only for the "unseen" sequence. * mh-index.el (mh-index-choose): Add autoload cookie for mh-index-choose. This is needed for GNU Emacs 20.5. * mh-loaddefs.el: Regenerated. 2003-03-09 Bill Wohler * mh-mime.el (mh-display-smileys): This function originally had a test to see if font-lock-maximum-size was bound, but this was recently removed. The test was put in for a reason; if font-lock-maximum-size isn't bound, void-variable errors would ensue. I put the bound test back in. 2003-03-08 Steve Youngs * mh-mime.el (mh-mime-security-button-map): Use 'mh-push-button' in XEmacs as well. 2003-03-07 Satyaki Das * mh-xemacs-toolbar.el: Declare a whole bunch of stuff for GNU Emacs, so that we don't get so many compiler warnings. Also surround calls to set-specifier and toolbar-make-button-list with mh-funcall-if-exists. Maybe GNU Emacs shouldn't try to compile this file in the first place. * mh-xemacs-compat.el (mh-modeline-glyph): Declare it within mh-do-in-xemacs to avoid compiler warning in GNU Emacs. (mh-xemacs-push-button): Removed. * mh-mime.el (mh-mime-button-map): Use the generalized mh-push-button function. (mh-push-button): Enhance it so that it works on XEmacs too. 2003-03-08 Steve Youngs * mh-xemacs-compat.el (mh-modeline-logo): New constant holding the modeline image. (mh-modeline-glyph): Use it. 2003-03-08 Steve Youngs * mh-xemacs-toolbar.el: New file that defines and displays a toolbar in XEmacs. * mh-xemacs-compat.el (mh-xemacs-toolbar): Require it here. * Makefile (MH-E-SRC): Add mh-xemacs-toolbar.el. * mh-customize.el (mh-toolbar): (mh-tool-bar-letter-buttons): (mh-tool-bar-letter-buttons-set): (mh-tool-bar-folder-buttons): (mh-tool-bar-folder-buttons-set): (mh-tool-bar-search-function): (mh-tool-bar-reply-3-buttons-flag): (mh-tool-bar-item-inc): (mh-tool-bar-item-save-mime): (mh-tool-bar-item-prev-msg): (mh-tool-bar-item-page-msg): (mh-tool-bar-item-next-msg): (mh-tool-bar-item-delete): (mh-tool-bar-item-refile): (mh-tool-bar-item-undo): (mh-tool-bar-item-perform): (mh-tool-bar-item-toggle-show): (mh-tool-bar-item-reply-from): (mh-tool-bar-item-reply-to): (mh-tool-bar-item-reply-all): (mh-tool-bar-item-reply): (mh-tool-bar-item-alias): (mh-tool-bar-item-compose): (mh-tool-bar-item-rescan): (mh-tool-bar-item-repack): (mh-tool-bar-item-search): (mh-tool-bar-item-visit): (mh-tool-bar-item-prefs): (mh-tool-bar-item-help): (mh-tool-bar-item-widen): (mh-tool-bar-item-send): (mh-tool-bar-item-attach): (mh-tool-bar-item-spell): (mh-tool-bar-item-save): (mh-tool-bar-item-undo-op): (mh-tool-bar-item-kill): (mh-tool-bar-item-copy): (mh-tool-bar-item-paste): (mh-tool-bar-item-kill-draft): (mh-tool-bar-item-comp-prefs): The MH-E toolbar for XEmacs is defined differently from the GNU/Emacs version, so only define these if we're in GNU/Emacs. XEmacs doesn't need to see them and it's always good to cut down on pollution. 2003-03-08 Steve Youngs * mh-mime.el (mh-mime-button-map): Bind the 2nd mouse button to `mh-xemacs-push-button' in XEmacs. (mh-mime-security-button-map): Ditto. * mh-xemacs-compat.el: Shush the byte-compiler. (mh-xemacs-push-button): New function to make MIME buttons work in XEmacs. 2003-03-08 Steve Youngs * mh-mime.el (mh-display-emphasis): Don't test `font-lock-maximum-size' to see if it is bound, just test for a non-nil value. This variable can have a nil value which makes it bound and dividing nil by 8 throws an error. This fixes a bug in MH-E under XEmacs when `font-lock-maximum-size' is nil that prevented article emphasis and smiley display which in turn was causing the "Flush changes in article x y/n" errors. (mh-display-smileys): Ditto. 2003-03-08 Steve Youngs * mh-utils.el (mh-logo-display): Display logo in XEmacs as well. * mh-xemacs-compat.el (mh-modeline-glyph): New. The MH-E modeline logo for XEmacs. 2003-03-06 Satyaki Das * mh-utils.el (mh-allow-root-folder-flag): New global variable that decides if "+" is an acceptable folder name. (mh-folder-completion-function): Refine the test for existing folders to take mh-allow-root-folder-flag into account. (mh-folder-completing-read, mh-prompt-for-folder): Use the allow-root-folder-flag argument of mh-prompt-for-folder and add a similar argument to mh-folder-completing-read. (mh-exec-cmd-error): Make the function nicer by using process-environment to pass the environment variable assignments. 2003-03-05 Satyaki Das * mh-mime.el (mh-push-button): Preserve point in the show buffer if the mouse is used to expand/contract a button. * mh-customize.el (mh-x-face-file): Mention X-Image-URL in documentation. * mh-comp.el (mh-insert-x-face): Modified to allow insertion of X-Image-URL header field. 2003-03-04 Satyaki Das * mh-utils.el (mh-face-display-function): Modified to facilitate display of X-Image-URL images. (mh-find-path): Initialize X-Image-URL cache directory. (mh-x-image-url-cache-canonicalize, mh-x-image-url-fetch-image) (mh-x-image-scale-and-display, mh-x-image-url-display) (mh-x-image-display): New functions for X-Image-URL image display and cache management. * mh-customize.el (mh-show-use-xface-flag): Add info about requirements for X-Image-URL display. (mh-fetch-x-image-url): New customizable variable that controls fetching of X-Image-URL. 2003-03-04 Satyaki Das * mh-utils.el (mh-make-local-hook): New macro which works around API changes in add-hook. Version of GNU Emacs before 21.1 and XEmacs require a call to make-local-hook and just the LOCAL argument of add-hook is not sufficient. (mh-show-mode): Make kill-buffer-hook buffer local. * mh-e.el (mh-folder-mode): Same as above. * mh-comp.el (mh-compose-and-send-mail): Same as above. 2003-03-02 Satyaki Das * mh-mime.el (mh-push-button): Clicking on a MIME button used to cause the window with the show buffer to be selected. With this change the selected window doesn't change. 2003-03-01 Satyaki Das * mh-speed.el (mh-speed-flists): Avoid a potential race condition. When flists is called manually, or when an unseen message is read, mh-speed-partial-line was not reinitialized. * mh-e.el (mh-visit-folder): If mh-visit-folder is used to visit the folder currently being visited (effectively doing a rescan) then mh-previous-window-config is erroneously set. The change fixes this. * mh-customize.el (mh-index-show-hook): Remove unused variable. 2003-02-28 Satyaki Das * mh-e.el (mh-scan-folder): Call mh-reset-threads-and-narrowing only after the user has replied to question. This avoids premature clearing of the folder. (mh-rescan-folder, mh-visit-folder): Remove calls to mh-reset-threads-and-narrowing since it is now called in mh-scan-folder anyway. * mh-funcs.el (mh-sort-folder): Same as above. 2003-02-26 Satyaki Das * mh-alias.el (mh-alias-alist): Change initial value to a symbol, so that it is different from the empty list, which could also mean that there are no aliases. (mh-alias-reload-maybe): Change test so that empty alist of aliases is properly handled (closes SF #693859). 2003-02-25 Satyaki Das * mh-mime.el (mh-decode-message-header): The message header could be encoded, for instance the author's name could contain characters not in ASCII. This function will decode such header fields. (mh-mm-inline-message): Use mh-decode-message-header. * mh-utils.el (mh-display-msg): Use mh-decode-message-header. (mh-message-number-width): Use mh-scan-prog instead of "scan". * mh-loaddefs.el: Regenerated. 2003-02-24 Satyaki Das * mh-utils.el (mh-truncate-log-buffer): Refine it so that the function will do the right thing even if called from a buffer other than mh-log-buffer. 2003-02-22 Peter S Galbraith * mh-alias.el (mh-alias-add-alias): Really fix SF #690216. This functions needs to strip brackets on standalone addresses as well. 2003-02-21 Satyaki Das * mh-xemacs-compat.el (replace-regexp-in-string): Remove the definition since it isn't used any more. 2003-02-20 Peter S Galbraith * mh-alias.el (mh-alias-which-file-has-alias): Bug fix. Needed to specify `noerror' on search. * mh-alias.el (mh-alias-suggest-alias): Add condition for input string being an email address in brackets. We need to strip out the brackets. (closes SF #690216) 2003-02-20 Satyaki Das * mh-pick.el (mh-search-folder): The function was setting the global value of the variables mh-current-folder and mh-previous-window-config. This can lead to problems in code which assumes that these variables are nil when we aren't in a folder buffer. So make the variables local before setting them. 2003-02-19 Satyaki Das * mh-mime.el (mh-mime-display): All the MIME display code has been wrapped in a condition-case so that if something goes wrong, the raw message will be displayed. * mh-funcs.el (mh-undo-folder): Comment out call to sit-for that seems unnecessary. * mh-e.el (mh-scan-folder): Messages marked for deletion or refiling weren't getting annotated properly. The change fixes this. (mh-process-or-undo-commands): Change prompt to reflect what really happens in the code. 2003-02-18 Satyaki Das * mh-comp.el (mh-folder-expand-at-point): The function mail-abbrev-complete-alias often returns nil. This had the unfortunate consequence of always causing an error. The change fixes this. * mh-alias.el (mh-alias-canonicalize-suggestion): New function which obviates the our need replace-regexp-in-string. (mh-alias-suggest-alias): Use mh-alias-canonicalize-suggestion to eliminate calls to replace-regexp-in-string. This avoids problems in Emacs20. * mh-utils.el (mh-notate): Handle the case when nil is passed as notation gracefully. (mh-speed-flists-active-p): New function that returns non-nil if flists is being used in the speedbar to update message counts. * mh-seq.el (mh-put-msg-in-seq): Fix a bug which made it impossible to add messages to the unseen sequence. Also adding messages to the unseen sequence will now update the speedbar message counts immediately. * mh-e.el (mh-get-new-mail, mh-process-commands) (mh-undefine-sequence): Update speedbar message counts, if the speedbar is active and is displaying message counts. (mh-delete-msg-from-seq): In addition to updating message counts, unhighlight the message so that interactively removing messages from the unseen sequence makes the bold highlight of unseen messages in the scan buffer go away. (mh-clear-text-properties): New function that removes all text properties from the current scan line. 2003-02-15 Satyaki Das * mh-utils.el (mh-face-display-function): Wrap call of insert-image in mh-funcall-if-exists. This avoids a compiler warning in Emacs20. * mh-speed.el (mh-speed-flists): Weaken test a bit to avoid compiler warning in Emacs20. (mh-speedbar-change-expand-button-char): Wrap call of speedbar-insert-image-button-maybe in mh-funcall-if-exists. This function isn't present in the speedbar that ships with Emacs20, so calling it there causes an error. * mh-seq.el (mh-msg-is-in-seq): Adjust loop call a bit to avoid compiler warning in XEmacs. The XEmacs compiler should be improved so that such spurious warnings from builtin macros are suppressed. * mh-index.el (mh-index-search): Same as above. * mh-e.el (tool-bar-mode): The declaration is needed for Emacs20 too. * mh-comp.el (mailabbrev): Try loading it any way. Some day XEmacs will get it and then MH-E will just use it. (tool-bar-mode, tool-bar-map): These declarations are needed for Emacs20 too. (mh-mail-abbrev-make-syntax-table, mh-folder-expand-at-point): Remove mh-mail-abbrev-make-syntax-table since mh-funcall-if-exists can be used instead. * mh-alias.el (require): Avoid autoloading functions that may not be defined. (mh-read-address, mh-alias-letter-expand-alias): Rewrite using mh-funcall-if-exists. 2003-02-15 Satyaki Das * mh-loaddefs.el: Regenerated. * mh-speed.el (mh-folder-speedbar-buttons, mh-speed-add-buttons) (mh-speed-toggle): Reuse markers instead of creating more of them. (mh-speed-flists-folder, mh-speed-flists): Add optional folder argument to mh-speed-flists so that message counts are updated only for that one folder. (mh-speed-parse-flists-output): If no change in counts then avoid consing. * mh-index.el (mh-index-execute): Rewritten to use a temporary buffer that is not left behind. * mh-funcs.el (mh-store-buffer): Use mh-log-buffer instead of the special purpose *Store Output* buffer. 2003-02-14 Satyaki Das * mh-customize.el (mh-show-xface-face): Make it always be black foreground on a white background (the reverse of that can make some X-Face images look creepy). * mh-utils.el (mh-truncate-log-buffer): Modify the function to return the current size of mh-log-buffer. Also we are now a bit more careful in adding separators between consecutive messages. (mh-exec-cmd): Fix a bug where the the log buffer would be displayed even if no error happened in the current command but the log buffer had messages from a previous error. * mh-mime.el (mh-mime-save-parts): Use mh-log-buffer to show error messages. * mh-alias.el (mh-alias-local-users): Add a space between parens. 2003-02-14 Steve Youngs * mh-utils.el (mh-face-display-function): Call `x-face-xmas-wl-display-x-face' using `mh-funcall-if-exists'. * mh-xemacs-compat.el (replace-regexp-in-string): New. 2003-02-13 Satyaki Das * mh-utils.el (mh-log-buffer-lines): New variable that keeps track of the number of lines to keep in mh-log-buffer. (mh-truncate-log-buffer): New function that is used to make sure that the log buffer doesn't grow to unbounded size. (mh-exec-cmd, mh-exec-cmd-daemon, mh-handle-process-error): Use mh-truncate-log-buffer instead of erase-buffer to keep some number of previous log messages around (closes SF #685476). 2003-02-13 Satyaki Das * mh-e.el (tool-bar-mode): Declare it in XEmacs. (mh-folder-mode): Use mh-funcall-if-exists to call hl-line-mode. * mh-utils.el (mh-funcall-if-exists): New macro that calls a function only if it exists. (mh-logo-display, mh-defun-show-buffer): Use mh-funcall-if-exists to call the functions find-image and deactivate-mark. * mh-mime.el (mh-mime-cleanup, mh-small-image-p) (mh-mm-display-part): Use mh-funcall-if-exists to call the functions image-size and remove-images. * mh-comp.el (tool-bar-map, tool-bar-mode): Declare the variables in XEmacs. (mh-folder-expand-at-point): Use mh-funcall-if-exists to call mail-abbrev-complete-alias if it exists. * mh-alias.el (mh-read-address): Use mh-funcall-if-exists for future extensibility. 2003-02-13 Satyaki Das * mh-utils.el (mh-logo-display): The function find-image is present only in GNU Emacs. (mh-defun-show-buffer): The function deactivate-mark is present only in GNU Emacs. (default-enable-multibyte-characters): Declare it in XEmacs to avoid compiler warning. (mh-face-display-function): Avoid inserting space if there isn't any Face or X-Face header field to display. * mh-seq.el (mh-thread-last-ancestor): Move declaration of variable before its first use to silence XEmacs warning. * mh-mime.el (default-enable-multibyte-characters, dots, type): Declare these in XEmacs to remove compiler warnings in XEmacs. (mh-mime-cleanup, mh-mm-display-part): Call remove-images only in GNU Emacs. (mh-small-image-p): Call image-size only in GNU Emacs. * mh-index.el (mh-mairix-next-result): Fix a bug where a quote was missing. (mh-swish++-regexp-builder): Remove the unused binding meta. * mh-e.el (mh-folder-size): Pass on an extra value to remove XEmacs warning. (mh-folder-mode): Surround calls to hl-line-mode and tool-bar-mode with mh-do-in-gnu-emacs since these functions aren't present in XEmacs. * mh-customize.el (mh-tool-bar-show-set, mh-tool-bar-letter-set) (mh-tool-bar-folder-set): These functions call tool-bar-* functions which are present only in GNU Emacs. So surround them with mh-do-in-gnu-emacs. * mh-comp.el (mh-letter-mode, mh-folder-expand-at-point): Only call these functions in GNU Emacs. (mail-abbrevs): Declare it in XEmacs. * mh-alias.el (mh-read-address): Call completing-read-multiple only in GNU Emacs. (mail-abbrevs): Declare it in XEmacs. (mh-alias-add-alias-to-file): Remove unused code. 2003-02-14 Ville Skyttä * mh-comp.el: Add autoloaded auto-mode-alist association. 2003-02-13 Satyaki Das * mh-utils.el (mh-face-display-function): Make the XEmacs part a little simpler. 2003-02-14 Steve Youngs * mh-customize.el (mh-show-xface-face): XEmacs doesn't have the ':inherit' keyword for defface, rewrite with sane defaults. * mh-utils.el (mh-face-display-function): Fix bug that was corrupting xface images when displayed with XEmacs' internal xface image support. Also make XEmacs honour 'mh-show-xface-face' when using internal xface image support. 2003-02-12 Peter S Galbraith * mh-comp.el (mh-modify-header-field): New function. To header FIELD add VALUE. If OVERWRITE-FLAG is non-nil then the old value, if present, is discarded. This is more flexible than before. (mh-insert-auto-fields): Use it. This and the new function are a courtesy of Satyaki. Thanks! * mh-customize.el (mh-auto-fields-list): Doc tweaks suggested by Bill. 2003-02-12 Satyaki Das * mh-comp.el (mh-folder-expand-at-point): Tweak the error message. Completion in the Fcc header field is only supported in GNU Emacs 21. 2003-02-12 Peter S Galbraith * mh-customize.el (mh-auto-fields-list): Reorder after `mh-identity-list' since it needs it to be defined. Move to mh-identity customization group. 2003-02-11 Peter S Galbraith * mh-customize.el (mh-insert-mail-followup-to-flag): Removed. Obsolete. (mh-insert-mail-followup-to-list): Removed. Obsolete. Use `mh-auto-fields-list' instead, which is a more general solution. (mh-auto-fields-list): New defcustom. Alist of addresses for which header lines are automatically inserted. Replaces `mh-insert-mail-followup-to-list'. * mh-comp.el (mh-insert-mail-followup-to): Removed. Obsolete. (mh-insert-auto-fields): New function. Insert custom fields if To or Cc match `mh-auto-fields-list', replacing mh-insert-mail-followup-to with a more general solution. (mh-compose-and-send-mail): Call mh-insert-auto-fields instead of mh-insert-mail-followup-to. Also don't call mh-insert-identity to insert default setting if mh-insert-auto-fields inserted an identity. 2003-02-11 Satyaki Das * mh-utils.el (mh-show-xface-function): Try to load the external x-face library only if XEmacs doesn't have xface support. (mh-face-display-function): Renamed. Also handle various permutations of x-face and xface support in XEmacs better. * mh-customize.el (mh-show-use-xface-flag): Any emacs whose major version is greater than or equal to 21 supports display of X-Face and Face header fields. 2003-02-11 Satyaki Das * mh-utils.el (mh-do-in-gnu-emacs, mh-do-in-xemacs): Macros that execute code only in GNU Emacs and XEmacs respectively. (mh-emacs21-face-display-function): Refactor to make it slightly nicer. Get rid of compiler warnings in GNU Emacs by using the above macros. Also check for presence of xface feature (in XEmacs specific code) before trying to display X-Face header field image. 2003-02-11 Steve Youngs * mh-customize.el (mh-show-use-xface-flag): If using XEmacs and can't find the external x-face pkg still enable X-Face images if feature 'xface is present. Update the doc string. * mh-utils.el (mh-emacs21-face-display-function): Make it work in XEmacs. (mh-show-xface-function): If using XEmacs without xface support, use x-face.el pkg. If using XEmacs with xface support, or Emacs 21, use mh-emacs21-face-display-function. 2003-02-11 Mark D. Baushke * mh-customize.el (mh-invisible-header-fields): Add "X-Notes-Item:" which is generated by Lotus Notes Domino. See URL for details on how Domino users may disable (restore the default) generation of these headers. 2003-02-10 Satyaki Das * mh-comp.el (mh-folder-expand-at-point): Add function doc string and produce a nicer error message for Emacs versions that lack mail-abbrev-complete-alias. * mh-utils.el (mh-handle-process-error): Check doc fix. * mh-e.el (mh-folder-from-address): Same as above. 2003-02-10 Peter S Galbraith * mh-comp.el: require mailabbrev, except in XEmacs. (mh-mail-abbrev-make-syntax-table): New defmacro to call mail-abbrev-make-syntax-table introduced in Emacs21. (mh-folder-expand-at-point): Handle nested folders. All of the above was written by Satyaki. I just applied the patch and tested. 2003-02-09 Satyaki Das * mh-comp.el: Fixes to keep the byte compiler happy. * mh-customize.el (mh-invisible-header-fields): Modified to remove space after ":" in header field names. 2003-02-09 Peter S Galbraith * mh-comp.el (mh-letter-complete): Add completion for fcc lines. (mh-folder-expand-at-point): Do completion at point for folder name. Like `mh-alias-letter-expand-alias' for aliases, it doesn't work on XEmacs because it relies on `mail-abbrev-complete-alias' to do completion. Maybe Steve could update XEmacs' mailabbrev.el? 2003-02-09 Peter S Galbraith * mh-customize.el (mh-invisible-header-fields): Remove trailing space in "X-Face: " and "Face: " entries since those line often break there. 2003-02-08 Satyaki Das * mh-utils.el (mh-emacs21-face-display-function): Use mh-show-xface-face to colorize X-Face image. * mh-customize.el (mh-invisible-header-fields): Add extra headers to ignore. (mh-show-xface-face): Allow customization of the X-Face colors. 2003-02-07 Satyaki Das * mh-utils.el (mh-uncompface-executable, mh-uncompface): Remember the path of the uncompface executable so that we don't need to search for it every time. (mh-emacs21-face-display-function): If more than one X-Face (or Face) header field was present then the fields would get concatenated, leading to garbled output. The change only displays the first image. * mh-customize.el (mh-x-face-file): Change documentation since it can now be used to insert a Face header field. * mh-comp.el (mh-insert-x-face): Generalized to allow insertion of Face header field. 2003-02-06 Bill Wohler * mh-utils.el (mh-emacs21-face-display-function): Updated docstring. It is a common mistake to refer to a header field as a header. The term header refers to the entire header while the term header field refers to a single field. * mh-customize.el (mh-show-use-xface-flag): Ditto. 2003-02-06 Satyaki Das * mh-utils.el (mh-show-xface-function): Modified to use mh-emacs21-face-display-function if we are running GNU Emacs 21. (mh-face-to-png): New function to convert a Face header to a png image. (mh-uncompface): New function which converts an X-Face header to a pbm image. (mh-icontopbm): New function that does the job of icontopbm. (mh-emacs21-face-display-function): New function that displays Face/X-Face image in GNU Emacs 21. (mh-show-xface): Modified to test if we are running in X. Otherwise face display is suppressed. * mh-customize.el (mh-show-use-xface-flag): Tweak it, now that MH-E supports face display natively on Emacs 21. Also remove the check for window-system since it doesn't belong in a customizable variable. 2003-02-06 Satyaki Das * mh-utils.el (sendmail): Require it so that XEmacs can find rfc822-goto-eoh. (mh-mail-header-end): A substitute for mail-header-end that doesn't widen the buffer. This is essential to avoid problems when dealing with nested messages. (mh-in-header-p, mh-letter-header-font-lock) (mh-header-field-font-lock, mh-show-font-lock-fontify-region) (mh-show-unquote-From): Use mh-mail-header-end instead of mail-header-end. * mh-mime.el (mh-decode-message-body): same as above (closes SF #681518). * mh-comp.el (mh-yank-cur-msg): same as above. 2003-02-05 Satyaki Das * mh-utils.el (mh-display-msg): Call mh-show-mode before invisible headers are cleaned. This means that any surviving X-Face header can be removed unconditionally in mh-clean-msg-header. (mh-clean-msg-header): Since the function is now called with a read-only buffer, make the buffer temporarily writable. * mh-mime.el (mh-mm-inline-message): Do X-Face display before invisible headers are removed. * mh-customize.el (mh-invisible-headers): Simplified since the X-Face header isn't treated specially any more. (mh-invisible-header-fields): Add Face: and X-Face: to list of invisible headers. * mh-mime.el (mh-mime-display): If body is empty the headers would be treated like the body. The change fixes this (closes SF #681162). (mh-mime-display): This change really fixes the above problem. 2003-02-04 Satyaki Das * mh-utils.el (mh-current-folder-name): Global variable that keeps track of current folder. (mh-normalize-folder-name): Substitute @ with mh-current-folder-name (closes SF #666774). (mh-prompt-for-folder): Bind mh-current-folder-name. Also invalidate cache if we are visiting a folder that wasn't found in the sub-folder cache. This is an indication that folders may have been created outside of MH-E and so the cache may be stale. 2003-02-03 Satyaki Das * mh-utils.el (mh-decode-content-transfer-encoded-message): Removed. (mh-display-msg): Remove the use of the above function. (mh-normalize-folder-name): Leading "/" characters were being lost. The change fixes this (closes SF #676890). * mh-mime.el (mh-decode-message-body): New function, factored out from mh-mime-display and enhanced, to decode message based on charset and content-transfer-encoding. This eliminates the need for the external mimencode (closes SF #674857). (mh-mime-display): Use mh-decode-message-body. * mh-e.el (mh-header-display): Don't need the binding since the variable isn't present any more. (mh-inc-folder): Avoid calling mh-show if point is not on a valid scan line (closes SF #678115). * mh-customize.el (mh-decode-content-transfer-encoded-message-flag): Removed. 2003-02-03 Bill Wohler * import-emacs: MH-E now has its own directory in Emacs. * mh-e.el: (mh-version): Set to 7.2+cvs. 2003-02-03 Bill Wohler Released MH-E version 7.2. * MH-E-NEWS, README: Updated for release 7.2. * mh-e.el (Version, mh-version): Updated for release 7.2. 2003-02-03 Bill Wohler * Makefile (dist): mkdir needs to happen *before* files are copied. * MH-E-NEWS: Fixed some awkward verbiage. 2003-02-02 Bill Wohler * mh-customize.el (mh-invisible-headers): Surround regexp-opt expression in parens to avoid problems viewing certain messages. 2003-01-30 Satyaki Das * mh-speed.el (mh-speed-flists): Search for flists in mh-progs. The original was inadvertently searching for flists in the user's path. 2003-01-27 Bill Wohler * mh-customize.el (mh-default-folder-must-exist-flag): Changed default to t according to the principle of least surprise. 2003-01-26 Bill Wohler * mh-utils.el: Checkdoc fixes. * mh-pick.el (mh-do-search, mh-search-folder): Checkdoc fixes. * mh-loaddefs.el: Regenerated (lm-verify fixes). * mh-index.el (mh-mairix-next-result): Checkdoc fixes. * mh-alias.el: lm-verify fix. * Makefile (MH-E-SRC): Added ChangeLog, now that Emacs has a lisp/mh-e directory. (MH-E-ETC-ETC): Removed ChangeLog. (dist): Moved creation of mail directory next to copy of files into mail directory. (install-emacs): Copy $(MH-E-SRC) into new directory $(EMACS_HOME/lisp/mh-e. (MH-E-SRC): Moved ChangeLog into new variable MH-E-OTHERS and include MH-E-LOADDEFS there too. (mh-loaddefs.el): Added lines so that lm-verify passes. (dist, install-emacs): Use MH-E-OTHERS instead of MH-E-LOADDEFS. 2003-01-26 Jeffrey C Honig * mh-comp.el (mh-tidy-draft-buffer, mh-compose-and-send-mail): Rename mh-kill-draft-hook to mh-tidy-draft-buffer. 2003-01-25 Jeffrey C Honig * mh-utils.el (mh-exec-cmd, mh-exec-cmd-daemon) (mh-process-daemon): Use mh-log-buffer for the output of commands from mh-exec-cmd. * mh-utils.el (mh-temp-folders-buffer): Sequences and folders loose the -temp from their buffer names as they are interesting to the user. * mh-seq.el (mh-list-sequences): New name, mh-sequences-buffer as it is intended to be interesting to the user. * mh-funcs.el (mh-list-folders): New name, mh-folders-buffer as it is intended to be interesting to the user. * mh-comp.el (mh-check-whom, mh-compose-and-send-mail): Use mh-recipients-buffer constant. Add a kill buffer hook to delete the recipients buffer when a draft buffer is killed. 2003-01-25 Satyaki Das * mh-customize.el (mh-customize): New interactive argument deletes other windows. (mh-tool-bar-show-set, mh-tool-bar-letter-set) (mh-tool-bar-folder-set): Modified so that clicking the customize and help buttons deletes the other windows in the frame. * mh-mime.el (mh-mm-inline-message): Remove unused code. * mh-seq.el (mh-notate-deleted-and-refiled): Fix a small bug where the wrong notation was being used. (mh-toggle-threads): The function had a bug if you did the following starting from an unthreaded wide folder: (1) Create a sequence with S p (2) Narrow to new sequence with S n (3) Thread narrowed folder with T t (4) Kill sequence with S k (5) Unthread narrowed folder with T t At this point we would have an empty folder. The change fixes this. (mh-toggle-threads): Fix documentation. * mh-customize.el (mh-invisible-header-fields): Add X-MHE-Checksum to invisible headers. * mh-comp.el (mh-insert-x-mailer): Slightly more informative X-Mailer header. 2003-01-24 Satyaki Das * mh-e.el (mh-header-display): Modified so that quoted-printable or base64 encoded messages are left untouched. * mh-utils.el (mh-decode-content-transfer-encoded-message): Munge the Content-Transfer-Encoding header so that the MIME decoding routines of Gnus doesn't get confused. (mh-display-msg): Use insert-file-contents-literally so that display will work for non-ascii. * mh-mime.el (mh-mime-display): Use charset info to decode message file (closes SF #655123). 2003-01-24 Bill Wohler * mh-alias.el (mh-alias-add-alias-to-file): Removed period from error message and added parens around error function. 2003-01-24 Satyaki Das * mh-customize.el (mh-decode-quoted-printable-flag): Removed. (mh-decode-content-transfer-encoded-message-flag): This replaces mh-decode-quoted-printable-flag. * mh-utils.el (mh-decode-content-transfer-encoded-message): New function which handles messages that are encoded as base64 or quoted-printable (closes SF #674190). (mh-decode-quoted-printable): Removed. (mh-display-msg): Use mh-decode-content-transfer-encoded-message instead of mh-decode-quoted-printable. 2003-01-23 Satyaki Das * mh-seq.el (mh-thread-generate-scan-lines): Fix a little bug that would occasionally cause angles ('<' and '>') to appear at root level. 2003-01-21 Satyaki Das * mh-seq.el (mh-notate-cur): Enable overlay arrow display in text mode too. * mh-e.el (mh-folder-mode): Initialize overlay-arrow-string so that a '>' is displayed in text mode. 2003-01-20 Satyaki Das * mh-utils.el (mh-scan-msg-overflow-regexp): Change the variable so that a space is always maintained in the beginning of the scan line. * mh-seq.el (mh-notate-seq, mh-notate-cur): Make the functions faster by cutting down on the use of mh-goto-msg. (mh-toggle-threads): Add call to mh-notate-cur, since inserting the folder names in a search results folder screws up the location of the overlay arrow. * mh-index.el (mh-index-delete-folder-headers): Position the point on a message line if possible. * mh-funcs.el (mh-copy-msg): Use the mh-iterate macro to make the function faster. * mh-e.el (mh-scan-folder): Reuse mh-notate-deleted-and-refiled. * mh-loaddefs.el: Regenerated. * mh-utils.el (mh-add-msgs-to-seq): Add a new parameter that suppresses the annotation of the sequence since it is inefficient. * mh-seq.el (mh-delete-seq): Speed up the part of the function that removes the sequence notation. (mh-put-msg-in-seq, mh-notate-deleted-and-refiled): Use mh-iterate-on-messages-in-region to make the function fasters when operating on regions. The key idea is to loop over the folder buffer exactly once and do all annotations. The existing algo would walk over the buffer multiple times thereby slowing things down. (mh-iterate-on-messages-in-region): Added an extra parameter which is bound to the message index as the loop is executed. (mh-region-to-msg-list, mh-thread-delete, mh-thread-refile): Use the new mh-iterate-on-messages-in-region macro. * mh-e.el (mh-delete-msg-no-motion, mh-refile-msg, mh-undo): Same as above. (mh-notate-user-sequences): Change algorithm to make notating of user sequences fast. 2003-01-19 Satyaki Das * mh-logo.xpm: New image file that contains the MH-E logo. Change foreground color to the blue in the MH-E logo. * Makefile (MH-E-IMG): Add mh-logo.xpm to list of image files. * mh-utils.el (mh-show-buffer-mode-line-buffer-id): Adjust it to keep space in the beginning for the logo. (mh-logo-cache): New variable that caches the logo image file location. (mh-logo-display): Display the MH-E logo on the mode line. (mh-display-msg): Display logo in mh-show-mode. * mh-e.el (mh-make-folder-mode-line): Display logo in mh-folder-mode. * mh-comp.el (mh-compose-and-send-mail): Display logo in mh-letter-mode. * mh-loaddefs.el: Regenerated. * mh-seq.el (mh-iterate-on-messages-in-region): New macro to iterate on all messages in a region. (mh-region-to-msg-list): Simplified since it uses mh-iterate-on-messages-in-region now. * mh-e.el (mh-delete-msg, mh-refile-msg): Change interactive spec to pass the region that is to be deleted when appropriate. (mh-delete-msg-no-motion, mh-refile-msg, mh-undo): Operate on regions directly without creating the list of messages to be deleted/refiled. (mh-delete-a-msg, mh-refile-a-msg, mh-undo-msg): The msg parameter in these functions can now be nil. If so, the current message is deleted, refiled or undone respectively. Avoids the use of mh-goto-msg in this case and speeds up operations on regions quite a bit. 2003-01-19 Peter S Galbraith * mh-alias.el (mh-read-address): Bug Fix. In XEmacs and Emacs20, it would always prompt using "To: " instead of using the command argument (closes SF #670913). 2003-01-19 Satyaki Das * mh-utils.el (mh-folder-completion-function): If there is a +foo/bar folder and the user types foo//bar then the completion function would say a match happened without showing the normalized folder name. This change fixes that. 2003-01-18 Satyaki Das * mh-e.el (mh-rmail): Modified so that new and unseen messages are shown (closes SF #667542). 2003-01-17 Satyaki Das * mh-index.el (mh-index-generate-pretty-name): Generate nicer names. In particular all '-' characters are removed. 2003-01-16 Satyaki Das * mh-customize.el (mh-index-program): Documentation fix. * mh-loaddefs.el: Regenerated. * mh-customize.el (mh-index-program): Add choices for mairix and pick. * mh-index.el (mh-indexer-choices): Add search interfaces for mairix and pick. (mh-index-search): Add links for mairix and pick. (mh-index-pick-folder, mh-pick-binary): Variables needed to implement pick support. (mh-pick-execute-search, mh-pick-next-result): New functions to implement pick support. (mh-mairix-binary, mh-mairix-directory, mh-mairix-folder): New variables for mairix support. (mh-mairix-execute-search, mh-mairix-next-result) (mh-mairix-regexp-builder, mh-mairix-convert-to-sop*): New functions for mairix. * mh-funcs.el (mh-kill-folder): Move message to the end. * mh-e.el (mh-folder-mode): Make overlay-arrow-position and overlay-arrow-string local variables so that the arrow will remain even if some other folder is visited. (mh-remove-cur-notation, mh-remove-all-notation): The test isn't required any more since overlay-arrow-position is local. (mh-goto-cur-msg): Remove overlay arrow if current message doesn't exist. * mh-seq.el (mh-notate-cur): Don't need to set overlay-arrow-string any more since it is local and has been set at initialization. 2003-01-15 Satyaki Das * mh-speed.el (mh-speed-current-folder): Keep track of current folder when flists is called. (mh-speed-flists, mh-speed-parse-flists-output): Try to avoid ambiguity when folders are present with + at the end of the name. Unfortunately it can't always be avoided. * mh-e.el (mh-folder-size): Remove the unnecessary error check. (mh-parse-flist-output-line): Add extra argument which occasionally avoid problems with folder names that end with '+'. * mh-utils.el (mh-sub-folders-actual): Fix the folder name parsing so that it doesn't get confused by trailing '+' chars in the folder name. 2003-01-14 Satyaki Das * mh-utils.el (mh-normalize-folder-name): Enhanced so that it can now handle ".." and "." correctly during folder name completion. (mh-normalize-folder-name): Avoid error in boundary condition where the folder string is empty. 2003-01-14 Mark D. Baushke * mh-e.el (mh-visit-folder): Pass `current-prefix-arg' to the `mh-read-msg-range' function as the optional always-prompt-flag. 2003-01-14 Satyaki Das * mh-utils.el (mh-normalize-folder-name): New function that normalizes folder names. (mh-sub-folders): Use mh-normalize-folder-name. Also the function has been modified so that a trailing slash is only added if the folder potentially has subfolders. (mh-sub-folders-actual): Simplified since the folder has already been normalized in mh-sub-folders. (mh-remove-from-sub-folders-cache): Modified so that the cached results of two of the folders ancestors are invalidated. (mh-folder-completion-map): Ugly hack to make the error go away when minibuffer-complete-word is called. (mh-folder-completion-function): The completion function will now be more selective in adding '/' at the end of completed folder names. (mh-folder-completing-read): The folder name is normalized before return. The minibuffer-local-completion-map is shadowed to avoid error with SPC (bound to minibuffer-complete-word). We really need a better solution. 2003-01-13 Bill Wohler * mh-seq.el: Edited comment and docstring text to conform with RFC 2822 terminology. Message-ID is the header field. It contains a message identifier. 2003-01-13 Satyaki Das * mh-utils.el (mh-sub-folders): Add an argument that returns sub-folders with a / character appended at the end. (mh-folder-completion-function): Modify the function so that one tab is now sufficient to complete the folder name and add a trailing /. (mh-folder-completing-read): Remove the trailing / that the completion function now adds to the folder name. Also multiple / characters in the folder input are removed. So if the user inputs +foo///bar//baz///// then that will be converted to +foo/bar/baz. This will improve the performance of caching. * mh-seq.el (mh-notate-cur): Check that a valid current message exists before trying to notate (closes SF #667331). (mh-message-id-regexp): New variable to store regexp to recognize message-ids. (mh-thread-generate): Use mh-message-id-regexp to filter out non message-id's from the References: header. 2003-01-12 Satyaki Das * mh-seq.el (mh-notate-cur): Disable overlay-arrow display if we aren't on a graphic display. 2003-01-11 Satyaki Das * mh-seq.el (mh-notate-cur): New function to notate the current message. The marker in the fringe is updated too. (mh-narrow-to-seq, mh-widen, mh-thread-inc, mh-thread-folder): Use the specialized function mh-notate-cur instead of mh-notate-seq. * mh-e.el (mh-arrow-marker): New buffer local variable to store the position where the marker in the fringe is going to be displayed (closes SF #664824). (mh-folder-mode): Create a marker for the fringe. (mh-update-sequences, mh-get-new-mail, mh-goto-cur-msg): Call the specialized function mh-notate-cur instead of mh-notate-seq or mh-notate. (mh-remove-cur-notation, mh-remove-all-notation): Reset the overlay-arrow-position if needed. * mh-loaddefs.el: Regenerated. 2003-01-10 Satyaki Das * mh-utils.el (mh-remove-from-sub-folders-cache): Modified so that creating nested folders doesn't produce inconsistent results. (mh-prompt-for-folder): Remove call of mh-folder-list-change-hook. * mh-funcs.el (mh-kill-folder): Don't ask for confirmation if called on a folder holding index search results. Also the now removed mh-folder-list-change-hook is called no more. * mh-customize.el (mh-auto-folder-collect-flag) (mh-folder-list-change-hook): Removed. * mh-loaddefs.el: Regenerated. 2003-01-10 Bill Wohler * mh-customize.el (mh-default-folder-must-exist-flag): New variable to suppress suggested folder if the folder doesn't already exist (closes SF #657096). (mh-default-folder-list): New variable that holds mapping between an address and the desired folder for filing (closes SF #657096). (mh-default-folder-prefix, mh-default-folder-must-exist-flag): In docstring, refer to documentation for mh-prompt-for-refile-folder and mh-folder-from-address. (mh-highlight-citation-p, mh-compose-insertion, (mh-insert-mail-followup-to-list, mh-index-program, (mh-identity-default): Fixed case of tags. * mh-e.el (mh-folder-from-address): Use new variable mh-default-folder-must-exist-flag to return nil if this variable is t and the folder doesn't already exist. In addition, can now look up a default folder in the new variable mh-default-folder-list (closes SF #657096). (mh-prompt-for-refile-folder): In docstring, refer to documentation in mh-folder-from-address. * mh-index.el (mh-swish-execute-search): Changed \..* to \\..* in the FileRules filename in the sample config file. Otherwise, the users don't see the backslash at all, and no files are indexed! (closes SF #665888). 2003-01-10 Satyaki Das * mh-seq.el (mh-thread-folder): Get headers for exactly the messages that are present. If only messages 1-10 and 3800-3900 are being shown then we will now scan exactly those messages and not the full range from 1-3900 as was being done earlier. (mh-toggle-threads): When converting from threaded to normal view only the messages present in the buffer are scanned. Earlier all messages from the minimum to the maximum would be scanned (closes SF #626117). * mh-pick.el (mh-search-folder): Fix typo. (mh-pick-do-search): Fix bug from cut and paste. Also set window config properly. * mh-utils.el (mh-prompt-for-folder): Add new argument to allow it to accept + as a folder name. This allows the user to search all folders when "Fs" is used. * mh-pick.el (mh-search-folder): Fix interactive spec of function. (mh-pick-do-search): Rewritten to call pick in one go. This will make adding pick as a default index search program easier. Also pick now accepts the same query syntax as the index search programs (closes SF #664816). (mh-next-pick-field): Removed. (mh-pick-parse-search-buffer): New function to parse the search buffer. (mh-pick-construct-regexp, mh-pick-regexp-builder): New function to produce a pick query from the parsed representation. * mh-index.el (mh-index-do-search): Refactor the search pattern parser into a new function and use that instead. * mh-loaddefs.el: Regenerated. 2003-01-10 Satyaki Das * mh-loaddefs.el: Regenerated. * mh-utils.el (mh-remove-from-sub-folders-cache) (mh-prompt-for-folder): Replace mh-update-sub-folders-cache with mh-remove-from-sub-folders-cache. (mh-exec-cmd-daemon): Mention set-process-filter in documentation. * mh-pick.el (mh-searching-function): New buffer local variable that keeps track of the default searching function to be used. (mh-pick-mode): Make mh-searching-function buffer local. (mh-search-folder): Set mh-searching-function to use pick. (mh-search-folder, mh-pick-menu, mh-pick-mode-help-messages) (mh-pick-mode, mh-do-pick-search, mh-pick-do-search): Rename mh-do-pick-search to mh-pick-do-search. But keep mh-do-pick-search as a deprecated function. (mh-do-search): New interactive function that performs the default search. (mh-pick-mode-map): Update keymap. * mh-index.el (mh-index-search): Set mh-searching-function to do index search. (mh-index-new-folder): Replace mh-update-sub-folders-cache with mh-remover-from-sub-folders-cache. * mh-funcs.el (mh-kill-folder): Same as above. * mh-index.el (mh-index-evaluate, mh-swish++-regexp-builder): Checkdoc fixes. * mh-customize.el: Fixes to make byte compiler in CVS Emacs perfectly happy. 2003-01-09 Bill Wohler * mh-e.el (mh-folder-from-address): New function that proposes the name of a folder with an alias for the address in the current message. (mh-prompt-for-refile-folder): Use it (closes SF #657096). * mh-customize.el (mh-default-folder-prefix): New variable used by mh-folder-from-address. (mh-invisible-header-fields): Edited docstring. * mh-alias.el (mh-alias-address-to-alias): Added ;;;###mh-autoload cookie (used by mh-folder-from-address in mh-e.el). Edited text in comment. * mh-utils.el: Provided naming conventions for buffer and buffer variable names. (mh-temp-folders-buffer): Renamed buffer to " *mh-folders*". (mh-temp-sequences-buffer): Renamed buffer to " *mh-sequences*". (mh-info-buffer): Renamed from mh-temp-info-buffer. (mh-log-buffer): New buffer variable to hold name of "*MH-E Log*" buffer which is expected to be used for the output of MH commands. Perhaps we always create this buffer at initialization and append to it rather than erase it each time? * mh-e.el (mh-quit): Loop over all buffers and delete MH-E temporary and working buffers. As long as the buffer naming conventions are followed, new buffers will be automatically killed. (mh-version): Renamed mh-temp-info-buffer to mh-info-buffer. * mh-comp.el (mh-insert-x-mailer): Renamed mh-temp-info-buffer to mh-info-buffer. 2003-01-09 Satyaki Das * mh-e.el (mh-folder-size): If the user doesn't have a Unseen-Sequence definition in .mh_profile then an error was produced. This change fixes that. * mh-seq.el (mh-thread-generate): Replace the *mh-thread* buffer with a temporary buffer which is cleaned up when the function exits. * mh-e.el (mh-prompt-for-refile-folder): New function which refactors out the intelligent folder guessing code from mh-refile-msg. (mh-refile-msg): Use mh-prompt-for-refile-folder. * mh-seq.el (mh-thread-refile): Use mh-prompt-for-refile-folder to do the same intelligent destination folder guessing as mh-refile-msg (closes SF #664829). * mh-utils.el (mh-folder-list, mh-make-folder-list-process) (mh-folder-list-temp, mh-folder-list-partial-line) (mh-set-folder-list): Removed. (mh-sub-folders-cache, mh-sub-folders, mh-sub-folders-actual): Moved over from mh-speed.el to implement hierarchical completion. (mh-update-sub-folders-cache): Utility function called when new folders are created or folders are removed. (mh-folder-completion-function): New function is the folder name completion function used in completing-read. (mh-folder-completing-read): A thin wrapper function that is used instead of completing-read directly. In the future we might want to allow the user a customizable variable which will turn off folders based completion. (mh-prompt-for-folder): Use mh-folder-completing-read to read in the folder name with hierachical completion (closes SF #664821). * mh-speed.el (mh-speed-folders, mh-speed-folders-cache) (mh-speed-folders-actual): Moved to mh-utils.el as mh-sub-folders, mh-sub-folders-cache and mh-sub-folders-actual respectively. (mh-speed-invalidate-map, mh-speed-invalidate-map) (mh-speed-add-folder): Use the new names. * mh-funcs.el (mh-kill-folder): Remove code that used to update mh-folder-list which is no longer present. Instead mh-update-sub-folders-cache is called. * mh-index.el (mh-index-new-folder): Same as above. 2003-01-08 Satyaki Das * mh-utils.el (mh-exec-cmd-daemon): An argument was added which controls what is done with the process output. * mh-funcs.el (mh-kill-folder): Use mh-previous-window-config to restore window configuration. Also the call to mh-exec-cmd-daemon only displays output if an error happened (closes SF #664828). (mh-rmf-daemon): Check rmf output and display it only if something went wrong. (mh-print-msg): Pass in nil argument to mh-exec-cmd-daemon. * mh-comp.el (mh-redistribute, mh-send-letter): Pass in nil argument to mh-exec-cmd-daemon so that the functions will behave as before. * mh-pick.el (mh-search-folder): The current window config is stored. (mh-make-pick-template): Make the message headers read-only. (mh-pick-mode-help-messages): Update help message. (mh-do-pick-search): Fix problem when buffer isn't showing any messages. (mh-next-pick-field): Use buffer-substring-no-properties is better. (mh-pick-mode-map): Add key bindings (partially addresses SF #664816) * mh-index.el (mh-indexer-choices): Add a new field for each index program choice. If it is non-nil then it is the name of a function that given a lisp expression to search for generates a pattern that is acceptable to the search program. (mh-index-regexp-builder): New variable that stores the function to be used to convert from the lisp expression syntax to something that the search program understands. (mh-index-generate-pretty-name): Generalized so that it can take a list of strings as input. (mh-index-search): Modified so that if the configured program has a corresponding regexp-builder then a search buffer like pick search is produced. Otherwise the previous behavior is maintained. (mh-index-do-search): New interactive function that takes the contents of the search buffer, generates an appropriate query and produces the search results buffer by calling mh-index-search. (mh-replace-string, mh-index-parse-search-regexp) (mh-index-add-implicit-ops, mh-index-evaluate): New functions which parses the infix search expression that the user enters. A parse tree from which queries for different search programs can be produced is produced. (mh-swish++-regexp-builder, mh-swish++-print-regexp): Takes the internal form of the query and produces input suitable for swish++. * mh-loaddefs.el: Regenerated. 2003-01-08 Bill Wohler * Makefile (emacs-logs): New target for viewing CVS Emacs logs. Useful to see if an Emacs developer has changed MH-E. * MH-E-NEWS: Fixed case of MH-E in the "Changes" title. * mh-utils.el (mh-temp-info-buffer): New variable to hold name of buffer that contains version info. * mh-e.el (mh-version): Use mh-temp-info-buffer instead of mh-temp-buffer since version information was getting clobbered by the aliasing code before it could be seen (closes SF #664467). (mh-quit): Delete mh-temp-info-buffer. * mh-comp.el (mh-insert-x-mailer): Use mh-temp-info-buffer to find version info instead of mh-temp-buffer. You kind of need this patch to send mail. 2003-01-07 Bill Wohler * mh-e.el (Version, mh-version): Set to 7.1+cvs. 2003-01-07 Bill Wohler Released MH-E version 7.1. * MH-E-NEWS, README: Updated for release 7.1. * mh-e.el (Version, mh-version): Updated for release 7.1. 2003-01-07 Bill Wohler * mh-customize.el (mh-auto-folder-collect-flag, mh-alias-system-aliases, mh-alias-insert-file): Edited docstrings. * Makefile (MH-E-IMG): Added alias.pbm and alias.xpm. * mh-alias.el (mh-alias-insert-file, mh-alias-add-alias): Fixed checkdoc warnings. 2003-01-07 Satyaki Das * mh-utils.el (mh-search-from-end): New function that is used to replace our usage of the CL function search. (font-lock): The library is loaded to avoid compilation warning in CVS Emacs. * mh-speed.el (mh-speed-goto-folder, mh-speed-add-folder) (mh-speed-extract-folder-name, mh-speed-invalidate-map): Use mh-search-from-end instead of search. * mh-seq.el (mh-thread-remove-parent-link): Use loop instead of remove*. (mh-thread-process-in-reply-to): Use mh-search-from-end instead of search. * mh-index.el (mh-md5-parser): Fix name of function. (mh-index-update-single-msg, mh-index-update-maps): Avoid using destructuring-bind since Emacs-20.7 can't handle this particular usage. (mh-namazu-next-result): Use mh-search-from-end instead of search. * mh-e.el (recursive-load-depth-limit): Add a defvar since CVS emacs which doesn't have the variable defined causes a compiler warning. (mh-refile-a-msg): Rewritten to avoid using pushnew. (mh-undo-msg): Use loop instead of remove-if. * mh-comp.el (mh-show-buffer-message-number): Use mh-search-from-end instead of search. 2003-01-01 Satyaki Das * mh-e.el (mh-visit-folder): Modified so that if RANGE is nil then all messages are displayed. Documentation modified so that this is explicitly stated. (mh-visit-folder): Really fix it this time. 2003-01-01 Mark D Baushke * mh-alias.el (mh-alias-from-has-no-alias-p): Needs the mh-autoload comment or mh-customize may have problems finding the function. * mh-loaddefs.el: Regenerated. 2002-12-28 Satyaki Das * mh-index.el (mh-namazu-execute-search): Fix bug in documentation. 2002-12-28 Bill Wohler * mh-comp.el (mh-letter-mode): Mention mh-compose-insertion variable in docstring, explain how to expand directives, and don't mention mh-mhn-compose-insertion which isn't used directly any more. (mh-send-letter): Mention that X-Mailer and X-Face are inserted automatically so that a user isn't tempted to do so himself in mh-before-send-letter-hook. (mh-insert-letter): Use "variable" prefix for mh-invisible-headers now that we have both a function and a variable. Clarified language a bit. 2002-12-26 Satyaki Das * mh-utils.el (mh-show-xface-function): Only load x-face-e21 if the emacs is not XEmacs. * mh-index.el (mh-index-new-folder): The folder created should always be added to mh-folder-list. Otherwise folder name completion doesn't find the new folder created. 2002-12-24 Satyaki Das * mh-customize.el (mh-clean-message-header-flag) (mh-visible-headers, mh-invisible-headers) (mh-invisible-header-fields-set): Reworded to satisfy checkdoc. * mh-loaddefs.el: Regenerated. * mh-e.el (mh-inc-folder, mh-visit-folder, mh-read-msg-range): Handle nil value of mh-large-folder properly. * mh-customize.el (mh-tool-bar-show-set, mh-tool-bar-letter-set) (mh-tool-bar-folder-set, mh-tool-bar-folder-buttons) (mh-invisible-headers, mh-invisible-header-fields-set): Checkdoc fixes. (mh-large-folder): Updated to allow for infinity. If mh-large-folder is nil then all folders are deemed small. 2002-12-23 Satyaki Das * mh-e.el (mh-inc-folder, mh-visit-folder): Emit a message if threading was suppressed because the number of messages exceed mh-large-folder. 2002-12-23 Peter S Galbraith * mh-utils.el (mh-invisible-headers): Deleted. Moved to mh-customize.el * mh-customize.el (mh-invisible-header-fields): New defcustom. Simple user interface to change mh-invisible-headers. (mh-invisible-header-fields-set): New function called when mh-invisible-header-fields is set. (mh-invisible-headers): New function. Does the actual work of building the variable mh-invisible-headers from mh-invisible-header-fields. (mh-invisible-headers): defvar moved from mh-utils.el 2002-12-22 Satyaki Das * mh-speed.el (mh-speed-folder-size): Removed. Something very similar appears as mh-folder-size. (mh-speed-view): Simplified since the range selection logic has been moved to mh-read-msg-range. (mh-speed-parse-flists-output-line): Moved to mh-e.el as mh-parse-flist-output-line. * mh-funcs.el (mh-pack-folder): Use the new mh-read-msg-range. * mh-e.el (mh-rescan-folder): Use the new mh-read-msg-range. (mh-parse-flist-output-line): Moved from mh-speed.el where this function was called mh-speed-parse-flists-output-line. (mh-folder-size): Renamed from mh-speed-folder-size. The function has been made more general and can be called from any buffer and not just the speedbar buffer. (mh-visit-folder): Use the new mh-read-msg-range (addresses SF #655891). (mh-read-msg-range): Rewritten. 2002-12-21 Satyaki Das * mh-seq.el (mh-delete-subject-or-thread): New interactive function that intelligently deletes messages based on threading, if the folder is threaded, or on subject if folder isn't threaded. * mh-utils.el (mh-show-delete-subject-or-thread): New interactive function, callable from the show buffer, to intelligently delete messages based on threading info or subject. (mh-show-mode-map): Change binding of "k" to call mh-show-delete-subject-or-thread. * mh-e.el (mh-folder-mode-map): Change binding of "k" to call mh-delete-subject-or-thread. * mh-comp.el (mh-letter-mode-map): Add key binding for mh-insert-identity. * mh-loaddefs.el: Regenerated. 2002-12-21 Peter S Galbraith * mh-customize.el (mh-tool-bar-letter-set): Bug fix. The `tool-bar-add-item-from-menu' items were broken. I can't use my constants there. 2002-12-21 Peter S Galbraith * mh-alias.el (mh-alias-insert-file): Bug fix. I never checked that an AliasFile entry existed in .mh_profile. 2002-12-21 Peter S Galbraith * mh-customize.el (mh-alias-insertion-location): New defustom. Specifies where new aliases are entered in alias files. * mh-alias.el (mh-alias-add-alias-to-file): Use it. 2002-12-21 Peter S Galbraith * mh-alias.el (mh-alias-add-alias-to-file): If ALIAS matches exactly, prompt to [i]nsert before old value or [a]ppend after it. (mh-alias-insert-file): Make sure we don't edit the passwd file. Add optional argument for alias; If ALIAS is specified and it already exists, try to return the file that contains it. (mh-alias-which-file-has-alias): New function. Return the name of writable file which defines ALIAS from list FILE-LIST. (mh-alias-add-alias): Remove prompts for case of alias already defined; done in mh-alias-add-alias-to-file. 2002-12-21 Satyaki Das * mh-speed.el (mh-speed-folders-actual): Fix bug in parsing of folder names that have spaces in them. The original function would truncate the folder name at the first space. (mh-speed-flists): Add -sequence option to flists. This guards against the user specifying something other than the unseen sequence in his .mh_profile. (mh-speed-parse-flists-output-line): New function that parses a single line in the output of flists to find the folder name and the counts of unseesn and total messages. (mh-speed-parse-flists-output): Fix parsing bug which truncates the folder names at the first space. * mh-index.el (mh-index-generate-pretty-name): New function which generates a nicer name for the search results. It trims white space at the beginning and end and replaces white space with underscores within the search regexp. (mh-index-search): Use mh-index-generate-pretty-name. * mh-loaddefs.el: Regenerated. 2002-12-20 Satyaki Das * mh-index.el (mh-index-new-folder): Add new folder to mh-folder-list to enable name completion. (mh-glimpse-execute-search, mh-swish-execute-search) (mh-swish++-execute-search): Fix documentation. * mh-seq.el (mh-thread-generate): Fixed a stupid bug where the wrong folder could get 'scan'ed when generating the threaded view. * mh-index.el (mh-index-search): If optional prefix arg is given then the search in the current index buffer is redone. (mh-glimpse-execute-search, mh-swish-execute-search) (mh-namazu-execute-search): Documentation fixes. * mh-e.el (mh-index-previous-search): New buffer local variable stores parameters of search that created the buffer. (mh-folder-mode): Make mh-index-previous-search buffer local. (mh-visit-folder): Tweak the function so that only a single window with the folder buffer is shown if mh-showing-mode is nil. * mh-loaddefs.el: Regenerated. 2002-12-19 Peter S Galbraith * mh-alias.el (mh-alias-add-alias): Bug fix. 2002-12-19 Peter S Galbraith * mh-alias.el (mh-alias-add-alias): New interactive command. Add ALIAS for ADDRESS in personal alias file. (mh-alias-grab-from-field): New interactive command. Add ALIAS for ADDRESS in personal alias file. (mh-alias-add-address-under-point): New interactive command. Insert an alias for email address under point. (mh-alias-suggest-alias): New function. Suggest an alias for STRING. (mh-alias-insert-file): New function. Return the alias file to write a new entry in. (mh-alias-address-to-alias): New function. Return the ADDRESS alias if defined, or nil." (mh-alias-from-has-no-alias-p): New function. Return t is From has no current alias set. Used as tool-bar button enable function. (mh-alias-add-alias-to-file): New function. Add ALIAS for ADDRESS in alias FILE without alias check or prompts. * alias.xpm, alias.pbm: New tool-bar icon for mh-alias-grab-from-field. * mh-e.el (mh-folder-line-matches-show-buffer-p): New function. Return t if the message under point in folder-mode is in the show buffer. * mh-utils.el (mh-goto-address-find-address-at-point): New function copied from goto-addr.el, which we don't want to force-load on users. Find e-mail address around or before point. (mh-address-mail-regexp): New defvar. A regular expression probably matching an e-mail address. * mh-customize.el (mh-alias-insert-file): New defcustom. Filename to use to store new MH-E aliases. (mh-tool-bar-folder-buttons): Enable mh-tool-bar-item-alias icon. * mh-comp.el (mh-extract-from-header-value): New function. Extract From: string from header. 2002-12-19 Satyaki Das * mh-index.el (mh-index-update-single-msg): New defvar controls max number of command line args. (mh-index-execute): New function which is to be used instead of xargs so that we don't give the shell too many command line args. (mh-index-update-maps): Use mh-index-execute instead of xargs. (mh-index-search): Remove unused code. Also the first message in folder buffer is made current. 2002-12-18 Peter S Galbraith * mh-loaddefs.el: Regenerated. * mh-comp.el (mh-letter-tool-bar-map): Moved to mh-customize.el * mh-e.el (mh-folder-tool-bar-map): Moved to mh-customize.el * mh-utils.el (mh-get-msg-num): autoloaded. (mh-show-tool-bar-map): Moved to mh-customize.el * mh-customize.el (mh-tool-bar-item-*): 33 new defconsts for tool-bar setup and customization. (mh-tool-bar-folder-buttons-set): New function to setup the tool-bar after customization. (mh-tool-bar-folder-buttons): New defcustom to specify which icons appears in the tool-bar. (mh-tool-bar-letter-buttons-set): New function to setup the tool-bar after customization. (mh-tool-bar-letter-buttons): New defcustom to specify which icons appears in the tool-bar. (mh-tool-bar-show-set): New function to setup mh-letter-tool-bar-map. (mh-tool-bar-letter-set): New function to setup mh-letter-tool-bar-map. 2002-12-18 Satyaki Das * mh-e.el (mh-folder-mode-map): Change entries for "\t", "\M-\t" and backtab to call mh-index-next-folder and mh-index-previous-folder as appropriate. * mh-index.el (mh-index-next-folder, mh-index-previous-folder): New interactive functions which jumps to search results of next and previous folders respectively. * mh-loadddefs.el: Regenerated. * mh-index.el (mh-index-delete-folder-headers): Arrange for mh-goto-cur-msg to just go to the current message. * mh-e.el (mh-visit-folder): Since mh-scan-folder erases the whole buffer anyway, we don't need to delete the folder headers. Also index-data is non-nil only when the buffer folder doesn't exist. So we need to call mh-make-folder. (mh-folder-mode): Fix bug in that mh-index-checksum-origin-map was not being made buffer local! 2002-12-17 Satyaki Das * mh-e.el (mh-visit-folder): Fix bug. * mh-index.el (mh-md5sum-buffer): Buffer from which md5sum is run. (mh-index-folder-first, mh-index-folder-last) (mh-index-original-msg-list): Convenience macros aren't needed anymore since the data structure has been changed. (mh-index-update-single-msg): New function to update maps that relate MD5 checksums to actual messages and vice-versa for a single message. (mh-index-update-maps): Do the above for all messages. If some messages don't have MD5 checksums, they are annotated with the result of md5sum. (mh-index-search): Updated for the new version of mh-index-data. (mh-msg-exists-p): New function to test a message exists. (mh-index-insert-folder-headers): Updated for new mh-index-data. (mh-index-delete-folder-headers): New function used to eliminate original folder names from the buffer and make it look like a plain folder buffer. This is used from mh-process-commands. (mh-index-visit-folder): Use new version of mh-index-data. (mh-index-match-checksum): New function which checks if the X-MHE-Checksum header of a message matches. (mh-index-execute-commands): New function that rmm's the original messages. Then after mh-execute-commands executes it will seem that the original messages were executed upon. This completes the fix of SF #623321. (mh-checksum-buffer): Renamed from mh-md5sum-buffer. (mh-checksum-cmd, mh-checksum-parser): New globals to allow different checksum programs to be used. (mh-checksum-choose): New functions to find a checksum program. (mh-openssl-parser, mh-md5sum-parser, mh-md5-parser): Functions to parse the output of md5, md5sum and openssl. (mh-index-update-maps): Use checksum parsing function. (mh-index-search): Set checksum choice. Add a call to recenter, otherwise the window point in the index buffer doesn't get set properly. * mh-funcs.el (mh-pack-folder, mh-sort-folder): Enable these functions in folders created by index search. * mh-e.el (mh-index-msg-checksum-map) (mh-index-checksum-origin-map): New buffer local variables that keep track of message checksums (used to implement refiling/deletion for folders created by index folders). (mh-last-msg): Make the function behave like mh-first-msg. (mh-visit-folder): Add new optional argument which initializes folders created by mh-index-search. (mh-folder-mode): Make the variables mh-index-msg-checksum-map and mh-index-checksum-origin-map buffer local. (mh-process-commands): Call mh-index-execute-commands when called from an index search buffer. This will reflect the changes being made in the search folder to the original folders. * mh-loaddefs.el: Regenerated. 2002-12-16 Satyaki Das * mh-index.el (mh-index-insert-folder-headers): Fix a bug which caused the folder buffer to be marked as modified after rescanning an index folder. 2002-12-15 Satyaki Das * mh-e.el (mh-visit-folder): The function should insert folder names if it is visiting a folder created by index search. * mh-index.el (mh-index-insert-folder-headers): The function now maintains the old value of buffer-modified-p and temporarily makes the buffer writable. * mh-utils.el (mh-show-index-visit-folder): New interactive function callable from show buffer that displays search results from one folder. (mh-show-mode-map): Key binding for "v". * mh-speed.el: Fix credits. (mh-index-folder-speedbar-buttons) (mh-index-show-speedbar-buttons) (mh-index-folder-speedbar-key-map) (mh-index-show-speedbar-key-map) (mh-index-folder-speedbar-menu-items) (mh-index-show-speedbar-menu-items): Removed since the modes mh-index-folder-mode and mh-index-show-mode no longer exist. (mh-speed-extract-folder-name): Remove the bits about mh-index-folder-mode and mh-index-show-mode. * mh-seq.el (mh-copy-seq-to-eob): Updated to work properly with index search results. (mh-region-to-msg-list): Skip over non-scan lines. (mh-thread-inc, mh-thread-add-spaces, mh-thread-folder): Skip non-scan lines when populating mh-thread-scan-line-map. (mh-thread-folder, mh-toggle-threads): Move the check for buffer modification from mh-thread-folder to mh-toggle-threads. (mh-toggle-threads): When returning to unthreaded view insert the folder names if called from a index folder. * mh-index.el: Fix credits and update commentary. (font-lock-defaults, mh-index-buffer, mh-index-show-buffer) (mh-index-ma-x-msg-index, mh-index-other-buffer) (mh-index-matches, mh-index-previous-window-configuration) (mh-index-current-msg, mh-index-folder-mode-keymap) (mh-index-button-map, mh-index-folder-mode-help-messages): Remove eliminated variables. (mh-index-folder): New variable sets the MH folder under which the index searches are stored. (mh-index-folder-first, mh-index-folder-last) (mh-index-original-msg-list): Convenience macros used to pull data elements out of a list. If needed setf can be used to change them as well. (mh-index-search): Rewritten to create real folders where all the normal folder operation. This partially fixes SF #623321 (refiles and deletes doesn't work on original messages). (mh-index-find-max-width, mh-index-search-again) (mh-index-insert-scan, mh-index-callback, mh-index-search) (mh-index-notate, mh-index-show, mh-index-header-display) (mh-index-next, mh-index-folder-mode, mh-index-show-mode): Functions, macros and modes removed. (mh-folder-exists-p): New function to check if a folder exists. (mh-index-new-folder): Generate a new folder name from a given base string that mimics the way emacs generates buffer names. (mh-index-insert-folder-headers): Insert folder names among the search results. (mh-index-visit-folder): New interactive function to show the search results of one individual folder. (mh-swish++-execute-search): Update documentation. * mh-funcs.el (mh-pack-folder, mh-sort-folder): Disable these functions if index search results are being viewed. * mh-e.el (mh-folder-font-lock-keywords): Add highlight for folder. (mh-index-data): New buffer local variable that will be used to store info about index search results. (mh-rescan-folder): Implement rescanning for index search results. (mh-folder-mode): Make mh-index-data buffer local. (mh-remove-all-notation): Modified to take into account not all lines in the folder buffer are normal scan lines. (mh-folder-mode-map): Add key binding for "v" to jump to original folder narrowed to search results. * mh-customize.el (mh-index-folder-face): Make it bold so that it will look like before. * mh-loaddefs.el: Regenerated. 2002-12-12 Satyaki Das * mh-seq.el (mh-map-to-seq-msgs): Modified so that it can be given a list of messages in addition to a sequence. (mh-region-to-sequence, mh-region-to-msg-list): The function mh-region-to-msg-list replaces mh-region-to-sequence. The new function avoids creating a dummy sequence in MH-E. (mh-thread-delete, mh-thread-refile, mh-put-msg-in-seq): Modified to use mh-region-to-msg-list. * mh-funcs.el (mh-copy-msg): Modified to use mh-region-to-msg-list. * mh-e.el (mh-delete-msg, mh-refile-msg, mh-undo): Modified to use mh-region-to-msg-list. * mh-comp.el (mh-forward): Modified to use mh-region-to-msg-list. The buffer-local variable mail-header-separator is no longer bound. This fixes a bug where the default value of mail-header-separator gets used if mh-forward is called in a fresh emacs session. (mh-annotate-msg): Update this so that it will handle message lists too. (mh-insert-letter): Make the test stronger. Since %d is being used the argument better be an integer. * mh-loaddefs.el: Regenerated. 2002-12-11 Satyaki Das * mh-funcs.el (mh-copy-msg): Add support for transient-mark-mode. If mark is active and transient-mark-mode is enabled then all the messages in the region are copied. * mh-seq.el (mh-list-sequences): Use mh-coalesce-msg-list to print messages in sequence nicely. The prompt for the folder is removed (the current folder is always used) and the output is made nicer by not overflowing the screen width. * mh-loaddefs.el: Regenerated. 2002-12-09 Satyaki Das * mh-comp.el (mh-letter-complete): Checkdoc fix. * mh-seq.el (mh-thread-current-indentation-level): New function which returns the thread indentation level of current message. (mh-thread-next-sibling, mh-thread-previous-sibling): New interactive functions to jump to the next and previous siblings in thread tree respectively. (mh-thread-immediate-ancestor): New function to jump to ancestor of current message in thread tree. (mh-thread-ancestor): New interactive function to jump to immediate ancestor or to root message of current thread depending on optional argument. * mh-utils.el (mh-show-thread-ancestor) (mh-show-thread-next-sibling, mh-show-thread-previous-sibling): Interactive functions callable from the show buffer. (mh-show-thread-map): Bindings for Tu, Tp and Tn. * mh-e.el (mh-thread-map): Bindings for Tu, Tp and Tn. * mh-loaddefs.el: Regenerated. 2002-12-09 Satyaki Das * mh-seq.el (mh-region-to-sequence): Change name of region sequence created to 'mhe-region. This avoids any chance of collision with actual MH sequences. (mh-put-msg-in-seq, mh-thread-delete, mh-thread-refile): Change name of region sequence used to 'mhe-region. Also delete the 'mhe-region sequence when done. * mh-e.el (mh-delete-msg, mh-refile-msg, mh-undo): Same as above. * mh-comp.el (mh-forward): Same as above. * mh-loaddefs.el: Regenerated. 2002-12-08 Bill Wohler * mh-alias.el: Edited documentation. Broke up file into 2 sections: Alias Loading and Alias Expansion. Made terminology consistent (replaced expand, substitute, and translate with expand). (mh-alias-reload): Brought message in line with coding conventions and made more concise too. (mh-alias-translate): Renamed to mh-alias-expand. (mh-alias-substitute-aliases-flag): Renamed to mh-alias-expand-aliases-flag. (mh-alias-reload-local-users): Renamed to mh-alias-local-users. Now just returns an alist of local users rather than have side-effects. (mh-alias-reload): Set timestamp at beginning of function to catch edge case when alias added just after ali runs. Changed logic to reflect return value of mh-alias-local-users. * mh-customize.el (mh-alias-substitute-aliases-flag): Renamed to mh-alias-expand-aliases-flag. (mh-alias-local-users): Fixed documentation. * mh-loaddefs.el: Regenerated 2002-12-08 Satyaki Das * mh-e.el (require): Load Gnus at compile time so that the constant gnus-version is defined when MH-E is being compiled. (mh-macro-expansion-time-gnus-version, mh-run-time-gnus-version): Use the constant gnus-version instead of the function gnus-version to find out about gnus version information. (gnus-version): Remove the autoload since it is not needed any more. 2002-12-08 Bill Wohler * mh-e.el (mh-version): Moved compilation information in front of Emacs information. The idea is that you start at MH-E and move outwards. Show N/A if Gnus not compiled (be explicit). Matched coding style with other output statements. (Aside: not that efficiency matters here, but fewer calls to format have to be faster, right? ;-). Matched output style of old output to new statement--liked Satyaki's indentation better ;-). 2002-12-08 Satyaki Das * mh-e.el (gnus-version): Autoload the function for use in mh-version. (mh-macro-expansion-time-gnus-version): New macro that finds the Gnus version at macro expansion time. (mh-run-time-gnus-version): New function to find the Gnus version at run time. (mh-version): Add information about Gnus versions available at compile time and run time. 2002-12-07 Peter S Galbraith * mh-alias.el (mh-alias-ali): Add optional argument. if USER is t, then assume ALIAS is an address and call ali with option -user. * mh-alias.el (mh-alias-filenames): if ARG is t, appends list of files from `mh-alias-system-aliases' to output list obtained from mhparam output user list only. (mh-alias-tstamp): Use it. 2002-12-05 Satyaki Das * mh-mime.el (mh-inline-vcard-p): A new function which decides if a vcard should be displayed inline. (mh-mime-display-single): Use mh-inline-vcard-p to display attached vcard as a signature if no other signature is present (this partially addresses SF #649216). 2002-12-05 Peter S Galbraith * mh-comp.el (mh-send-letter): Edits docs for mh-mml-to-mime getting run if variable `mh-mml-compose-insert-flag' is set. (mh-get-header-field): use buffer-substring-no-properties instead of buffer-substring. 2002-12-04 Peter S Galbraith * mh-loaddefs.el: Regenerated. * mh-customize.el (mh-customize): Add ;;;###mh-autoload tag. 2002-12-04 Peter S Galbraith * mh-loaddefs.el: Regenerated. * mh-comp.el (mh-letter-complete): New command to do alias or word completion in letter-mode. (mh-letter-mode-map): Add \M-\t binding for mh-letter-complete. * mh-alias.el (mh-alias-letter-mode-expand-alias-hook): Obsolete. Replaced by mh-letter-complete command. (mh-alias-reload-maybe): New function to rebuild alias table if out of date. (mh-alias-letter-expand-alias): No longer interactive. Use mh-letter-complete instead. 2002-12-04 Peter S Galbraith * mh-customize.el (mh-letter-complete-function): New defcustom. Function to call when completing outside of fields specified to aliases. * mh-alias.el (mh-alias-filenames): s/mh-mhparam-component/mh-profile-component/ (mh-profile-component): Move to mh-utils.el and make interactive. (mh-read-address): Make it autoloaded. * mh-loaddefs.el: Regenerated. * mh-comp.el (mh-read-address): Removed. Replaced by mh-alias version. * mh-utils.el (mh-profile-component): Moved from mh-alias.el. 2002-12-04 Satyaki Das * mh-seq.el (mh-msg-is-in-seq): Formatting change. * mh-index.el (mh-index-insert-scan): Remove unused variable. 2002-12-04 Bill Wohler * mh-loaddefs.el: Regenerated. * Makefile (MH-E-SRC): Moved mh-loaddefs.el into MH-E-LOADDEFS as this was causing a cycle. (MH-E-LOADDEFS): New variable to house mh-loaddefs.el. (emacs): Reintroduced autoloads. (autoloads): We're baaa-aack! (dist, install-emacs): Use MH-E-LOADDEFS. * mh-comp.el (mh-customize): Moved to mh-customize.el. * mh-customize.el (mh-customize): Moved here from mh-comp. Makes more sense, doesn't it? * mh-alias.el, mh-comp.el, mh-e.el, mh-index.el, mh-mime.el, mh-pick.el, mh-speed.el: Added mh-autoload cookie to all interactive functions. 2002-12-04 Satyaki Das * Makefile (world): Remove target. (mh-loaddefs.el): Add comment that only GNU Emacs can be used to regenerate mh-loaddefs.el. * mh-make.el: Removed. 2002-12-04 Mark D. Baushke * mh-e.el (recursive-load-depth-limit): Only modify the limit if it is an integer. 2002-12-04 Peter S Galbraith * mh-utils.el (mh-header-field-beginning): New function. Move to the beginning of the current header field. 2002-12-04 Satyaki Das * mh-make.el (mh-files): Read in the MH-E filenames from the environment variable where the Makefile puts it. (mh-generate-autoloads, step2): Simplified since we now have the complete file names. * Makefile (world): Pass the MH-E files into the script, so that the filenames don't need to be repeated in the script. 2002-12-04 Bill Wohler * mh-loaddefs.el: New file. Check in automatically generated file and include in package for the benefit of those who don't want to or can't compile. * Makefile (MH-E-SRC): Added mh-loaddefs.el now that it is checked in and will be packaged. (emacs): Removed autoloads. Adding mh-loaddefs.el to MH-E-SRC is sufficient to build it. (compile): Depend on MH-E-SRC instead of MH-E-OBJ and pass $? into emacs so that Emacs is only invoked once to compile files. This speeds things up by a factor of 3. It would be nice to only pass those files that have been modified, but Emacs 21.4 will have batch-byte-compile-if-not-done which we might be able to copy into mh-make.el (or my proposed mh-e-dev.el which would be more general-purpose). (.SUFFIXES): Removed. Now that compile works directly on the sources, the implicit rule is obsolete. (autoloads): Deleted. See emacs change above. 2002-12-03 Bill Wohler * Makefile (MH-E-SRC, emacs): 2002-12-03 Satyaki Das * mh-make.el (mh-emacs): Make failing condition more strict. (mh-loaddefs-end): Remove redundant statement. * Makefile (world): A little typo. The bug didn't seem to make any difference though. * mh-make.el: New script that compiles MH-E. (mh-loaddefs-beginning, mh-loaddefs-end): Don't save the autoloads file in between. Only save at the end. (mh-emacs-generate-autoloads, mh-xemacs-generate-autoloads) (mh-generate-autoloads): Replace the separate functions in Emacs and XEmacs with one that works in both variants. This simplifies the script a lot. (mh-generate-autoloads): doc fix. * Makefile (world): New target which works for both GNU Emacs and XEmacs. 2002-12-03 Peter S Galbraith * mh-alias.el (mh-mhparam-component): Don't raise error if call to mhparam fails. * mh-alias.el (mh-alias-letter-expand-alias): Build alias table if not already available. 2002-12-03 Bill Wohler * mh-customize.el (mh-show-threads-flag): Alphabetized. 2002-12-03 Jeffrey C Honig * Makefile: Moved .PHONY rule after all rule for compatibility with BSD/OS's old pmake. 2002-12-03 Mark D Baushke * mh-e.el (mh-get-new-mail): Simplify no-new-mail test. (mh-add-cur-notation): Remove unnecessary function. 2002-12-03 Peter S Galbraith * mh-identity.el (mh-identity-make-menu): Check if 'mh-letter-mode-map' is bound, since this code also gets run when mh-customize.el is loaded at startup. 2002-12-03 Satyaki Das * mh-customize.el (mh-show-threads-flag): New customizable variable which controls if new folders start of in threaded mode (closes SF #646794). * mh-e.el (mh-rescan-folder): Fix the function so that threading is preserved across rescans. (mh-visit-folder, mh-inc-folder): The folder is threaded if it was already threaded or if mh-show-threads-flag is non-nil and the number of scan lines is fewer than mh-large-folders (closes SF #646794). 2002-12-02 Mark D Baushke * mh-e.el (mh-add-cur-notation): New function to mark the current message with the mh-note-cur character. (mh-get-new-mail): Use mh-add-cur-notation to undo the work of mh-remove-cur-notation if there was no new mail (closes SF #647681). * mh-e.el (mh-set-cmd-note): Do not update the default mh-cmd-note value (closes SF #643701). 2002-12-02 Peter S Galbraith * mh-alias.el (mh-alias-reload): Renamed from mh-alias-learn-aliases. (mh-alias-load-local-users): Renamed from mh-alias-learn-local-users. (mh-alias-passwd-alist): New variable, holding aliases extracted from the passwd file. (mh-alias-tstamp): New variable storing the timestamp for alias list generation. (mh-read-address, mh-alias-reload, mh-alias-reload-local-users): Complete rewrite. (mh-alias-minibuffer-confirm-address): Use mh-alias-translate. (mh-alias-translate): New function. Return translation for alias, checking if in blind or passwd list. (mh-alias-letter-expand-alias): Rewrite using mail-abbrev-complete-alias from mailabbrev.el (mh-alias-expand-alias-map): New variable. (mh-alias-ali): New function. Return formatted string of translated ALIAS from ali. (mh-mhparam-component): New function. Return COMPONENT value from mhparam, or nil if unset. (mh-alias-filenames): New function. Provide list of alias filenames from mhparam, or nil if none are set. * mh-customize.el (mh-alias-display-blind-name-on-completion-flag): Obsoleted. (mh-alias-timestamp): Renamed to mh-alias-system-aliases. 2002-12-02 Bill Wohler * Makefile (mh-loaddefs.el): Suppress creation of backup file. 2002-12-02 Mark D. Baushke * Makefile (mh-loaddefs.el): Simplify rule. * Makefile (clean): Remove mh-loaddefs.el* for good measure. ($(MH-E-OBJ)): Depend on mh-loaddefs.el to compile these. (autoloads, mh-loaddefs.el): Revamp rules. (mh-loaddefs.el-tail, autoloads-gen): Remove rules. * mh-e.el (recursive-load-depth-limit): Do not try to bump the value unless the variable exists. * mh-e.el (recursive-load-depth-limit): Bump value of recursive-load-depth-limit to 50 to allow emacs 21.1 which normally has a default value of 10 to be able to compile MH-E. 2002-12-02 Satyaki Das * mh-funcs.el (mh-pack-folder, mh-sort-folder): Fix the functions so that threading is preserved (needed for SF #646794). * mh-identity.el (mh-identity-signature-start) (mh-identity-signature-end): Checkdoc fixes. * mh-e.el (mh-previous-unread-msg, mh-next-unread-msg): Checkdoc fixes. 2002-12-01 Satyaki Das * mh-identity.el (compile): Make mh-identity.el compile without warnings. * mh-e.el (mh-previous-unread-msg, mh-next-unread-msg): New interactive functions that go to next and previous unread messages (closes SF #630328). (mh-folder-mode-map): Add key bindings for M-n and M-p to mh-folder-mode-map. * mh-utils.el (mh-show-next-unread-msg) (mh-show-previous-unread-msg): New interactive functions that go to the next and previous unread messages respectively. These are callable from the show buffer. (mh-show-mode-map): Add key bindings for M-n and M-p to mh-show-mode-map. 2002-12-01 Bill Wohler * mh-mime.el (mh-defun-compat): Make it indent like a defun. * mh-index.el (mh-defun-index): Make it indent like a defun. * mh-customize.el: New file (closes SF #643722). * Makefile (MH-E-SRC): Added mh-customize.el (closes SF #643722). * mh-speed.el, mh-pick.el, mh-mime.el, mh-index.el, mh-e.el, mh-comp.el: Moved all defgroups, defcustoms, and deffaces to mh-customize.el (closes SF #643722). * mh-utils.el (mh-xemacs-flag): Moved here from below since needed by mh-customize.el. (mh-customize): Required. mh-invisible-headers) (mh-bury-show-buffer-flag, mhl-formfile): Moved all defgroups, defcustoms, and deffaces to mh-customize.el (closes SF #643722) . * mh-identity.el (mh-comp-loaded): New variable in a desparate attempt to prevent an infinite loop. (eval-when-compile): Was able to remove these defvars as they are now predefined in mh-loaddefs and mh-customize. (mh-identity-list-set): Added ;;;###mh-autoload cookie. Moved all defgroups, defcustoms, and deffaces to mh-customize.el (closes SF #643722). * mh-alias.el (mh-e): Require this, as it needs defcustoms, which is in mh-customize which is required by mh-utils which is required by mh-e. Moved all defgroups, defcustoms, and deffaces to mh-customize.el (closes SF #643722). 2002-11-30 Satyaki Das * mh-e.el (mh-thread-map): Add key bindings "Td" and "To" (closes SF #630493). (mh-help-messages): Update help message for prefix map. (mh-help-messages): Doc fix. (mh-help-messages): Really fix it. * mh-utils.el (mh-show-thread-delete, mh-show-thread-refile): New interactive functions corresponding to mh-thread-delete and mh-thread-refile callable from the show buffer. (mh-show-thread-map): Add key bindings for "Td" "To". * mh-seq.el (mh-narrow-to-seq, mh-put-msg-in-seq, mh-rename-seq) (mh-narrow-to-subject, mh-delete-subject, mh-toggle-threads): Add mh-autoload cookies. (mh-thread-find-children): New function which finds the region containing all children of a message. (mh-thread-delete): New interactive function that marks for deletion the current message and its children. (mh-thread-refile): New interactive function that marks for refiling the current message and its children. 2002-11-30 Bill Wohler * mh-funcs.el, mh-identity.el, mh-index.el, mh-pick.el, mh-seq.el: Removed MH-E autoloads. These are now provided by mh-loaddefs.el. Added ;;;###mh-autoload tag to selected functions so that autoloads for those functions can be automatically created in mh-loaddefs.el (closes half of SF #643722). * mh-mime.el (mh-buffer-data): Moved to mh-utils where it is used. Added ;;;###mh-autoload tag to selected functions so that autoloads for those functions can be automatically created in mh-loaddefs.el (closes half of SF #643722).. * mh-utils.el (mh-loaddefs): Added require. (mh-buffer-data): Moved here from mh-mime.el as it is used in mh-display-msg. (mh-set-cmd-note): Moved to mh-e.el. Removed MH-E autoloads. These are now provided by mh-loaddefs.el. Added ;;;###mh-autoload tag to selected functions so that autoloads for those functions can be automatically created in mh-loaddefs.el (closes half of SF #643722).. * mh-e.el (mh-set-cmd-note): Moved here from mh-utils.el since it uses mh-scan-format-file which is defined here. Removed MH-E autoloads. These are now provided by mh-loaddefs.el. Added ;;;###mh-autoload tag to selected functions so that autoloads for those functions can be automatically created in mh-loaddefs.el (closes half of SF #643722).. * mh-comp.el, mh-speed.el (mh-utils): Removed require. mh-utils is provided via mh-e.el. Removed MH-E autoloads. These are now provided by mh-loaddefs.el. Added ;;;###mh-autoload tag to selected functions so that autoloads for those functions can be automatically created in mh-loaddefs.el (closes half of SF #643722).. * Makefile (emacs): Add dependency on autoloads. (clean): Remove mh-loaddefs.el too. (autoloads): New target. Builds mh-loaddefs.el. (mh-loaddefs.el): New target. Initializes mh-loaddefs.el. (mh-loaddefs.el-tail): New target. Appends to mh-loaddefs.el. (autoloads-gen): Runs batch-update-autoloads to populate mh-loaddefs.el (closes half of SF #643722).. (auto-autoloads.elc): Renamed from autoloads to be explicit about file that's created. (custom-load.elc): Ditto. 2002-11-30 Satyaki Das * mh-seq.el (mh-thread-last-ancestor): New variable which keeps track of oldest ancestor of last message. If due to narrowing the common ancestor of two messages is lost then one of them is promoted to be the parent of the other. This variable helps in this process. (mh-thread-generate-scan-lines): Group messages which belong to the same thread tree, even if a common ancestor is no longer present. (mh-thread-folder, mh-copy-seq-to-eob, mh-thread-inc): Bind mh-thread-last-ancestor to nil when calling mh-thread-generate-scan-lines. * mh-mime.el (font-lock): Font-lock required at compile time to avoid warning about font-lock-maximum-size (mh-display-smileys, mh-display-emphasis): Show graphical smileys and emphasis only if message isn't too large. * mh-e.el (mh-visit-folder): Revisiting a buried folder which has been threaded or narrowed confuses MH-E. Even though the folder is displayed as not threaded and not narrowed, MH-E still believes the folder is in the previous state. This can cause problems when trying to narrow/thread the folder. The change fixes this. * mh-mime.el (mh-mime-display-alternative): The setting of mh-display-buttons-for-inline-parts-flag was not being used when displaying one of the alternatives. This change fixes that. * mh-comp.el (mh-show-buffer-message-number): Replace subseq with substring. (mh-filter-out-non-text): When filtering out MIME buttons from yanked text, the last line of the MIME part was getting lost. The fix avoids that and removes only the last new line instead. 2002-11-29 Peter S Galbraith * Makefile (MH-E-SRC): Add mh-alias. * mh-alias.el: Assign copyright to FSF instead of myself. (mh-read-address): Add support for emacs-21's completing-read-multiple to prompt for multiple entries. (mh-alias-PC-complete-address): Deleted. (mh-alias-learn-aliases): Use mh-exec-cmd-quiet instead of old kludge. (mh-alias-letter-mode-expand-alias-hook): Simplify. (mh-alias-hostname): Deleted. (mh-alias-substitute-aliases-flag): Change default to nil. (mh-alias-display-blind-name-on-completion-flag) Change default to nil. (mh-alias-alist): Now holds alias values. (mh-alias-lowercase-alist): Deleted. (mh-alias-minibuffer-confirm-address, mh-alias-learn-aliases) (mh-alias-learn-local-users, mh-alias-letter-expand-alias): Use new mh-alias-alist instead of old mh-alias-lowercase-alist. * mh-alias.el: Moved from contrib/ directory. Now part of MH-E! * Makefile (MH-E-SRC): Add mh-identity. * mh-identity.el (mh-compose-and-send-mail, mh-insert-identity) (mh-identity-make-menu, mh-identity-default, mh-identity-menu): Moved to mh-comp.el. * mh-comp.el (mh-compose-and-send-mail): Add mh-identity support. (mh-insert-identity, mh-identity-make-menu, mh-identity-default) (mh-identity-menu): Added from mh-identity.el 2002-11-29 Bill Wohler * mh-comp.el, mh-e.el, mh-funcs.el, mh-identity.el, mh-index.el, mh-mime.el, mh-pick.el, mh-seq.el, mh-speed.el, mh-utils.el: Ran indent-region, reformatted long lines, ran untabify. (indent-tabs-mode): Set file local variable to nil. 2002-11-29 Bill Wohler Released MH-E version 7.0. * mh-e.el (Version, mh-version): Updated for release 7.0. * mh-comp.el (subseq, search): Require cl instead of autoloading these due to compilation warnings in CVS Emacs. 2002-11-23 Bill Wohler * MH-E-NEWS: Emphasize the renaming of the variables at the top of the notes. 2002-11-22 Satyaki Das * mh-utils.el (mh-show-mode-map): Remove binding for RET since it is not needed and the binding is more useful to toggle display of MIME parts. * mh-mime.el (mh-mime-button-commands): Remove bindings for "i" and "o" from MIME buttons. (mh-insert-mime-button): Change comment to reflect change in button key map. 2002-11-21 Bill Wohler Released MH-E version 6.1.91. * mh-e.el (Version, mh-version): Updated for release 6.1.91. * MH-E-NEWS: Inline HTML parts supported with Gnus 5.10, not 5.9. 2002-11-21 Mark D. Baushke * mh-comp.el (mh-letter-insert-signature-hook): This should be in customize-group mh-compose. 2002-11-21 Satyaki Das * mh-utils.el (load): Load mm-view.el here so that mm-inline-text-html would be defined if available. (mh-mm-inline-media-tests): If mm-inline-text-html is available then use it, otherwise fall back on using mm-inline-text (closes SF #641482). * mh-mime.el (load): Remove the load of mm-view here since it happens in mh-utils.el now. 2002-11-15 Bill Wohler Released MH-E version 6.1.90. * README (Compile): New section. Users must now compile MH-E due to the vagaries of the various versions of gnus. * Makefile (MH-E-IMG): Added reply-all.pbm, reply-all.xpm, reply-from.pbm, reply-from.xpm, reply-to.pbm, reply-to.xpm. (MH-E-ETC-ETC): Added Makefile and README. (dist): Depend on all, so clean happens. Don't add .elc files to tarball as they are built upon installation now. 2002-11-15 Satyaki Das * mh-e.el (mh-process-commands): Fix a bug in mh-execute-commands. If called in threaded mode, cur was always getting set to the last message in the folder. 2002-11-14 Bill Wohler * mh-e.el (Version, mh-version): Updated for release 6.1.90. * MH-E-NEWS, README: Updated for release 7.0. * mh-utils.el (mh-index-search): Added full docstring which new users will need before they run a search! (mh-swish++-execute-search, mh-swish-execute-search, mh-namazu-execute-search mh-glimpse-execute-search): Added autoloads with full docstrings for the same reason! * mh-e.el (mh-limit-map): Removed / / alias for mh-narrow-to-subject. * mh-utils.el (mh-show-thread-map): Removed / / alias for mh-show-narrow-to-subject. * mh-seq.el (mh-delete-subject): Checkdoc fix. * mh-e.el (mh-help-messages): Added / prefix character to help string. Tweaked / helpstring a little. 2002-11-14 Mark D. Baushke * mh-utils.el (mh-set-cmd-note): Fix nitpick by adding one to the width for cosmetic reasons. 2002-11-14 Peter S Galbraith * mh-identity.el (mh-insert-identity): Fix a few things undone by Jeff's patch. (mml-insert-tag): Add autoload. 2002-11-13 Mark D. Baushke * mh-identity.el (mh-insert-identity): A value of either nil or "" should cause the field to be removed. (mh-identity-list): Update the docstring. 2002-11-13 Peter S Galbraith * mh-e.el (mh-limit-map): New key map for limits (subject for now). * mh-utils.el (mh-show-limit-map): Same. * mh-seq.el (mh-delete-subject): Renamed from mh-delete-subject-sequence. (mh-narrow-to-subject): Renamed from mh-narrow-to-subject-sequence. (mh-next-unseen-subject-sequence): Removed. :-( * mh-e.el: Use 'em * mh-seq.el: Use 'em. 2002-11-13 Mark D. Baushke * mh-e.el (mh-alt-show): New defalias for mh-show. (mh-alt-refile-msg): New defalias for mh-refile-msg. (mh-alt-send): New defalias for mh-send. (mh-folder-mode-map): Use mh-alt-show, mh-alt-refile-msg and mh-alt-send for the alias bindings. (mh-alt-visit-folder): New defalias for mh-visit-folder. (mh-folder-map): Use it. (mh-folder-message-menu): Revert previous change. 2002-11-13 Peter S Galbraith * mh-e.el (mh-folder-message-menu): Make key binding "o" appear in menu for mh-refile-msg. 2002-11-13 Satyaki Das * mh-seq.el (mh-thread-generate-scan-lines): In threaded view, scan lines of duplicate messages were too long. The change fixes that. 2002-11-13 Bill Wohler * mh-utils.el (mh-adaptive-cmd-note-flag): Improved grammar in docstring. * mh-speed.el (mh-speed-run-flists-flag): While documenting this variable in the release notes, I was unsure what would happen if set to nil. So, I clarified the docstring and indicated implications of setting this variable to nil, and offered manual workaround. 2002-11-13 Satyaki Das * mh-index.el (mh-index-quit): Fix documentation and run mh-before-quit-hook and mh-quit-hook. 2002-11-13 Bill Wohler * mh-utils.el (with-mh-folder-updating): Renamed local variable mh-save-modification-flag to save-modification-flag. 2002-11-12 Bill Wohler * mh-index.el (mh-index-keymap): Renamed to mh-index-folder-mode-keymap to be a closer to the usual keymap naming convention. Since we want our own keymap and not inherit the one in mh-folder-mode, we need to use a suffix other than -map. * mh-e.el (mh-folder-sequence-menu): s/Msg/Message. s/Seq/Sequence. (mh-folder-message-menu): s/Msg/Message. Removed redundant refile item. (mh-folder-folder-menu): Aligned symbols. * mh-index.el (mh-index-folder-message-menu): s/Msg/Message. * mh-utils.el (mh-show-sequence-menu): s/Msg/Message. s/Seq/Sequence. (mh-show-message-menu): s/Msg/Message. Removed redundant refile item. (mh-show-folder-menu): Aligned symbols. 2002-11-12 Satyaki Das * mh-index.el (mh-index-matches, mh-index-current-match): Remove these variables since they were only used for glimpse and grep. Now the functionality of all the indexing programs will be uniform. (mh-index-search, mh-index-insert-scan, mh-defun-index) (mh-index-show): Simplify functions since matches are no longer shown. (mh-index-parse-match): Remove function. * mh-e.el (mh-scan-cmd-note-width, mh-scan-destination-width) (mh-scan-date-width, mh-scan-date-flag-width) (mh-scan-from-mbox-width, mh-scan-from-mbox-sep-width): New variables to keep track of the widths of the different fields in the scan lines. (mh-scan-field-from-start-offset, mh-scan-field-from-end-offset) (mh-scan-field-subject-start-offset): Offsets that are computed from the scan line widths. * mh-seq.el (mh-copy-seq-to-eob, mh-thread-inc) (mh-thread-parse-scan-line): Use new variables that remember the various offsets in place of integer constants. (mh-thread-generate-scan-lines): Space shouldn't be added here! 2002-11-12 Bill Wohler * mh-e.el (mh-scan-format-mh, mh-scan-format-nmh): Noted that the first column is column number 0 and changed "sixth column" to "fifth column" accordingly. * mh-index.el (mh-index-folder-mode): Clarified method of replying in mode documentation. (mh-index-folder-tool-bar-map): s/mh-e/MH-E/. * mh-e.el (mh-generate-new-cmd-note): Try not to mention internal variable mh-cmd-note in docstrings. * mh-utils.el (mh-adaptive-cmd-note-flag): Set default value to t. Reworded docstring so it doesn't mention internal variable mh-cmd-note. Added information about using fixed-width message numbers. (mh-cmd-note): Mention mh-set-cmd-note in docstring. Also suggest that it is updated dynamically only if mh-scan-format-file is t. (mh-set-cmd-note): Grammer fix in docstring. (mh-cmd-note): Noted that the first column is column number 0. * mh-e.el (mh-scan-format-file): Added information about mh-set-cmd-note and mh-adaptive-cmd-note-flag to docstring. * mh-index.el (mh-index-keymap): Added bindings for i (mh-inc-folder), m (mh-send alias), and s (mh-send) since these appear to be supported and are found in the toolbar. (mh-index-folder-key-map): Ditto for f (mh-visit-folder alias), o (mh-visit-folder) alias, and v (mh-visit-folder). (mh-index-folder-mode-help-messages): Changes for above. (mh-index-folder-message-menu, mh-index-folder-folder-menu): New menus. I decided to delete the unavailable items since greying out implies that the user can do something to access them. In this case, that's not the case. Well, that's not entirely true--the user could write code for those functions ;-). (mh-index-folder-mode): Use new menus. * mh-utils.el (mh-prompt-for-folder): Added optional argument default-string which can be used in case the string for default isn't intuitive enough. * mh-index.el (mh-index-search): Made default prompt more intuitive (I hope!). 2002-11-11 Peter S Galbraith * mh-identity.el (mh-header-field-delete): Remove save-excursion. Strange that this worked for me before... Thanks to Jeff for the patch. (mh-insert-identity): Numerous tweaks and fixes from Jeff who also adds a nicer-looking MIME header for signatures inserted after MIME insertions. 2002-11-11 Satyaki Das * mh-seq.el (mh-thread-parse-scan-line): Generalize this function so that it can take a string containing the scan-line as argument in addition to using the line at point. (mh-thread-add-spaces): New function to pad each scan line to the appropriate length. This is called when mh-cmd-note is increased. * mh-e.el (mh-generate-new-cmd-note): Make this work on a threaded folder by using mh-thread-add-spaces to pad the pre-existing lines in mh-thread-scan-line-map appropriately. (mh-thread-add-spaces): Autoload from mh-seq. 2002-11-11 Mark D. Baushke * mh-index.el: Fix checkdoc nit. * mh-mime.el (mh-display-buttons-for-inline-parts-flag): Renamed from mh-display-buttons-for-inline-parts. (mh-mime-display-single): Use it. This addresses part of SF #627015. * mh-e.el (mh-print-background-flag): Renamed from mh-print-background. * mh-funcs.el (mh-print-msg): Use it. This addresses part of SF #627015. * mh-comp.el (mh-delete-yanked-msg-window-flag): Renamed from mh-delete-yanked-msg-window. (mh-yank-from-start-of-msg, mh-yank-cur-msg): Use it. This addresses part of SF #627015. * mh-utils.el (mh-update-sequences-after-mh-show-flag): Renamed from mh-update-sequences-after-mh-show. (mh-show-msg): Use it. This addresses part of SF #627015. * mh-utils.el (mh-decode-quoted-printable-flag): Renamed from mh-decode-quoted-printable (mh-display-msg, mh-decode-quoted-printable-have-mimedecode): Use it. This addresses part of SF #627015. * mh-utils.el (mh-recursive-folders-flag): Renamed from mh-recursive-folders. (mh-make-folder-list-background): Use it. * mh-funcs.el (mh-list-folders): Ditto. This addresses part of SF #627015. * mh-utils.el (mh-auto-folder-collect-flag): Renamed from mh-auto-folder-collect. (mh-find-path): Use it. This addresses part of SF #627015. * mh-utils.el (mh-decode-mime-flag): Renamed from mh-decode-mime. * mh-utils.el (mh-show-mode, mh-show-xface) (mh-decode-quoted-printable, mh-display-msg, mh-display-msg): Use it. * mh-mime.el (mh-graphical-smileys-flag) (mh-graphical-emphasis-flag): Ditto. * mh-index.el (mh-index-search, mh-index-show): Ditto. * mh-e.el (mh-header-display): Ditto. This addresses part of SF #627015. * mh-e.el (mh-make-folder-mode-line): Use save-window-excursion to get back to the current message. 2002-11-10 Satyaki Das * mh-index.el (mh-index-keymap, mh-index-page-msg) (mh-index-folder-tool-bar-map): Replace mh-index-scroll-up with mh-index-page-msg. (mh-index-keymap, mh-index-previous-page): Replace mh-index-scroll-down with mh-index-previous-page. 2002-11-09 Satyaki Das * mh-index.el (autoload/require): Load mh-mime when mh-index.el is loaded. This fixes the infinite load loop. I am not sure what the actual problem is. Also removed the nop requires/autoloads. (mh-defun-index): Use the right argument for mh-recenter. Otherwise it misbehaves for the default value of mh-summary-height. * mh-e.el (mh-goto-next-button): Fix infinite loop when S-Tab was used on first line of index folder buffer. 2002-11-09 Peter S Galbraith * mh-index.el (mh-index-folder-tool-bar-map): Tool-bar for mh-index-mode. (mh-index-folder-mode): Use it. (mh-index-keymap): Added mouse-2 binding, like in regular folder-mode. 2002-11-08 Satyaki Das * mh-index.el (mh-index-folder-mode): Fix doc string for major mode. It was pointing to the wrong keymap. (mh-index-show-mode): Fix doc string for mode. Also add mh-help support. * mh-comp.el (mh-forward, mh-yank-cur-msg): Use new macro mh-mark-active-p instead. This does the right thing for different variants of Emacs. (mh-yank-cur-msg): Add a space between sexprs. * mh-utils.el (mh-mark-active-p): New macro which papers over diffences between GNU Emacs and XEmacs. The variables mark-active and transient-mark-mode are used in GNU Emacs while zmacs-regions and region-active-p are used in XEmacs. * mh-seq.el (mh-put-msg-in-seq, mh-thread-ancestor-p): Use mh-mark-active-p as above. * mh-e.el (mh-delete-msg, mh-refile-msg, mh-undo): Use mh-mark-active-p as above. 2002-11-06 Peter S Galbraith * mh-comp.el (mh-yank-cur-msg): Fix for XEmacs. It didn't work with a selected region, and left the inserted text selected (in reverse video). I didn't use SF patch #402315 to implement this. 2002-11-05 Peter S Galbraith * mh-utils.el (mh-show-tool-bar-map): Change call to mh-tool-bar-search-command such that user can customize it for the current session. * mh-e.el (mh-folder-tool-bar-map): Same. 2002-11-05 Bill Wohler * mh-utils.el, mh-e.el (mh-tool-bar-search-function): Renamed from mh-tool-bar-search-command. * mh-index.el (mh-index-search): Backed out previous change to prompt. There ain't no folder named "all." * mh-utils.el (mh-tool-bar-search-command): Added mh-search-folder and mh-index-search to the docstring so that user can easily click on them for more information. * mh-pick.el (mh-search-folder): Mention that this function uses the MH pick command to give the user more information when choosing between mh-search-folder and mh-index-folder. * mh-index.el (mh-index-search): Edited the docstring. Direct the user to mh-index-program if necessary. (mh-index-program): Edited this docstring too. Viewing the help in a *Help* buffer really exposes grammatical flaws. 2002-11-05 Peter S Galbraith * mh-utils.el (mh-tool-bar-search-command): New defcustom to set what search function to use in tool-bar. (mh-show-tool-bar-map): Use it. * mh-e.el (mh-folder-tool-bar-map): Use it. 2002-11-05 Bill Wohler * mh-index.el (mh-index-search): Changed default prompt from "+" to "all". mh-prompt-for-folder doesn't seem to mind. * mh-e.el (mh-folder-folder-menu): Added menu entry for mh-index-search. * mh-utils.el (mh-show-folder-menu): Added menu entry for mh-index-search. * mh-index.el: Added commentary on supported search engines and for getting started (initializing database). 2002-11-04 Satyaki Das * mh-index.el (mh-index-keymap, mh-index-folder-key-map): Move key binding of "i" to "Fi". (mh-index-folder-mode-help-messages): Change help message to reflect above change. 2002-11-04 Bill Wohler * mh-index.el (mh-index-program, mh-indexer): Swapped names since the former seems like a better user variable name. If you've customized mh-indexer, be sure to toss it out and customize mh-index-program. 2002-11-04 Satyaki Das * mh-index.el (mh-indexer-choices): Not having the quotes in the binary names is a bit nicer since that maintains uniformity with the other names. (mh-index-choose): Use symbol-value instead of eval. Eval should be avoided except when it can't be :-). 2002-11-04 Bill Wohler * mh-index.el (mh-index-program): New variable to hold the name of the indexer that was found; use this instead of clobbering user-customizable variable mh-indexer. (mh-index-search): Use it. Added comments to keep others from doing what I had done (fortunately, I caught myself before checking it in ;-). (mh-index-choose): Set mh-index-program instead of mh-indexer. Update docstring to describe side-effects. * mh-index.el (mh-indexer): Added swish++ to docstring. Chances are good that if someone has both swish++ and swish, they want to use the much faster, much smaller swish, so move it up in the list. (mh-indexer-choices): Ditto for rationale for moving swish++ up in priority over swish. Also, use -binary symbols instead of hard-coding binary names. This allows package installers to customize the location of the binaries in site-lisp and still have the auto-detection code work. It also allows one to have alternate binary names (see mh-swish++-binary). (mh-index-search): Ditto (moving swish++ up). (mh-swish++-binary): Look for search++, then search. The rationale is that a package maintainer may rename search to search++ if search is already in use (e.g., Debian) so try it first. (mh-swish++-execute-search): Replaced Satyaki's path with dummy path in docstring. Also removed RecurseSubdirs since this is the default. Added comment that index might be named index++ on some systems (e.g., Debian). (mh-index-choose): Updated to work with new mh-indexer-choices. 2002-11-04 Peter S Galbraith * mh-identity.el (mh-identity-list-set): Don't call easy-menu-add here, since that adds the menu to the Customize buffer in XEmacs. 2002-11-04 Peter S Galbraith * mh-comp.el (mh-mhn-compose-insert-flag) (mh-mml-compose-insert-flag): Removed eval-when-compile defvar. * mh-mime.el (mh-mhn-compose-insert-flag) (mh-mml-compose-insert-flag): Move variables to mh-utils.el. Fixes mh-letter-menu for XEmacs. 2002-11-04 Eric Ding * mh-comp.el (mh-rejected-letter-start): add another string 2002-11-04 Eric Ding * mh-comp.el (mh-rejected-letter-start): regexp-opt doesn't take regexps as args, only regular strings 2002-11-04 Peter S Galbraith * mh-comp.el (mh-insert-mail-followup-to): Don't modify a pre-existing M-F-T field. If a nmh replgroupcomps propagates a M-F-T field in a message reply, then we have to have it alone. 2002-11-02 Bill Wohler * mh-comp.el, mh-e.el, mh-funcs.el, mh-identity.el, mh-index.el, mh-mime.el, mh-pick.el, mh-seq.el, mh-speed.el, mh-utils.el, mh-xemacs-compat.el: Added Local Variables section. Defined sentence-end-double-space to be nil so that those who might not buy my setting of this variable can at least run checkdoc without a whole lot of noise. 2002-11-02 Peter S Galbraith * mh-identity.el: New file. Multiple Identify support for MH-E. Used to easily set different fields such as From and Organization, as well as diffrent signature files. This file won't be included with V7.0. 2002-11-02 Bill Wohler * mh-mime.el (mh-mm-save-part): New function to wrap mm-save-part from Gnus 5.10 to make it explicit which code has been commandeered. (mh-mime-save-part): Call mh-mm-save-part instead of cut-n-pasted code from Gnus 5.10. 2002-11-02 Peter S Galbraith * mh-comp.el (mh-yank-from-start-of-msg): Edit docstring to mention related variables mh-reply-show-message-flag and mh-delete-yanked-msg-window. (mh-reply): Change the "Reply to whom" prompt. 2002-11-01 Bill Wohler * mh-e.el (mh-show-hook): Moved to mh-utils.el where it is used. (mh-folder-list-change-hook): Converted this from defvar in other files to defcustom here. It is called, not documented as obsolete, and might as well be documented. (mh-inc-folder, mh-quit, mh-delete-a-msg, mh-refile-a-msg, mh-process-commands, mh-update-unseen): Added missing documentation about hook, or made verbiage about hook consistent throughout, even if the function isn't interactive. * mh-utils.el (mh-folder-list-change-hook): Moved defvar to mh-e and made it a defcustom. (mh-show-mode-hook): Put it back in (actually, it was in mh-e.el, but this is the place where it is called). (mh-show-hook): Moved here from mh-e.el since it's called here. (mh-show-mode): Call mh-show-mode-hook. (mh-show-mode, mh-show-msg, mh-find-path, mh-prompt-for-folder, mh-prompt-for-folder, mh-set-folder-list): Added missing documentation about hook, or made verbiage about hook consistent throughout, even if the function isn't interactive. * mh-comp.el (mh-send-letter): Made verbiage about hook consistent throughout. (mh-insert-prefix-string): Made docstring more descriptive of what is going on. * mh-funcs.el (mh-kill-folder): Added missing documentation about hook. * mh-index.el (mh-index-show-hook): Moved defvar to defcustom. (mh-index-show): Made verbiage about hook consistent throughout. * mh-mime.el (mh-edit-mhn-hook): Moved defvar to defcustom. (mh-edit-mhn): Added missing documentation about hook. * mh-pick.el (mh-pick-mode): Made verbiage about hook consistent throughout. Call the damn hook. 2002-11-01 Satyaki Das * mh-comp.el (mh-insert-mail-followup-to-list): Fix typo so that it will look right in info. * mh-index.el (mh-index-search): Change argument name from new-buffer-p to new-buffer-flag. (mh-index-search-again, mh-index-search): New index-buffers were being named *mh-index*<2>, *m-index*<2><2> and so on. This problem is fixed. (mh-index-scroll-up, mh-index-scroll-down): Scrolling in index show buffers (after the first one) was broken. (mh-index-quit): Bury show buffer instead of killing it. Killing it, without killing the corresponding folder buffer, can cause confusion with two folder buffers trying to display in the same show buffer. * mh-seq.el (mh-thread-prune-containers): Rewritten without recursion. Also removed the top-level-p argument since it isn't required anymore. (mh-thread-sort-containers): New function factored out from previous definition of mh-thread-prune-containers. It sorts message containers in ascending order wrt their message indices. (mh-thread-generate): Use new mh-thread-prune-containers. * mh-e.el (mh-remove-all-notation): Fix the test. It was testing at the wrong place! 2002-10-31 Bill Wohler * Makefile, README, import-emacs, mh-comp.el, mh-e.el, mh-funcs.el, mh-index.el, mh-mime.el, mh-pick.el, mh-seq.el, mh-speed.el, mh-utils.el: Replaced mh-e with MH-E. 2002-10-31 Satyaki Das * mh-seq.el (mh-thread-parse-scan-line): Modified to remove user sequence notation and leave notation for other things alone. This ensures that threading doesn't lose notations for replied-to messages. * mh-e.el (mh-inc-folder): Remove call to mh-widen here and instead do it in mh-get-new-mail. This way the widening happens only if new mail is incorporated. (mh-generate-new-cmd-note): The function now returns the point from which the new messages start. This will allow threading to do the right thing. (mh-get-new-mail): Always call mh-remove-cur-notation. Otherwise adaptive scan mode leaves two messages marked as current in certain cases. Fix indentation of if statement. If there are messages to be incorporated, the folder is widened. If mh-cmd-note changes set start-of-inc correctly. (mh-remove-all-notation): Change this function to only remove user sequence notation and leave notation for replied-to messages and similar notation alone. This means operations like narrowing to subject sequence and widening don't lose notations. 2002-10-31 Bill Wohler * mh-comp.el (mh-insert-mail-followup-to-list): Fixed typo in docstring and other minor edits. Checkdoc removed trailing spaces. (mh-insert-signature): Checkdoc flagged docstring. Reverted to previous value. Added specific name of hook that is run. (mh-regexp-in-field-p, mh-insert-letter): Checkdoc removed trailing spaces. 2002-10-31 Jeffrey C Honig * mh-e.el (mh-show-mode-hook): Remove the unused mh-show-mode-hook, mh-show-hook is the one that is used. * mh-utils.el (mh-show-mode): Change the documentation to refer to mh-show-hook instead of the unused mh-show-mode-hook. 2002-10-31 Peter S Galbraith * mh-comp.el (mh-insert-mail-followup-to-list): Set default to nil and include example in doc string. 2002-10-31 Satyaki Das * mh-index.el (mh-indexer): Add customization choice for swish++. (mh-indexer-choices): Add swish++ choice. (mh-index-search): Change doc to reflect addition of swish++ option. (mh-swish++-binary, mh-swish++-directory): New variables for swish++ interface. (mh-swish++-execute-search): New function to execute swish++ search. (mh-swish++-next-result): Function aliased to mh-swish-next-result since the result format of swish++ is the same as that of swish-e. (mh-index-search): Always overwrite window-configuration with new value. This is needed since we don't kill the index-buffer when quitting which means the window configuration wasn't getting set properly. (mh-index-search-again): If index buffer is reused, reset the old window config to its original value. 2002-10-30 Bill Wohler * Makefile (emacs, xemacs): New targets. (all): Use these targets instead of calling specific targets. (.PHONY): Added emacs, xemacs, autoloads, custom-loads. Broke up target and moved pieces into their own sections. 2002-10-30 Peter S Galbraith * mh-utils.el (mh-show-font-lock-keywords): Wrap an 'eval-and-compile around its defvar, otherwise byte-compilation fails on `mh-show-font-lock-keywords-with-cite'. 2002-10-29 Jeffrey C Honig * mh-comp.el (mh-letter-insert-signature-hook) (mh-insert-signature): Add a hook to be called before inserting the signature. Do not attempt to insert the signature if mh-insert-signature-file-name is nil. 2002-10-29 Peter S Galbraith * mh-e.el (mh-inc-folder): Call mh-widen when mh-narrowed-to-seq (Closes SF #629233: inc in narrowed folder suboptimal) * mh-comp.el (mh-insert-letter): Stop using mhl to include a message before it mangles the header, and supercite fails (Closes SF #629153: mh-insert-letter uses mhl?). (mh-insert-prefix-string): Leave point at beginning instead of end, since that's what sc-cite-original does. (mh-yank-cur-msg): Adjust for mh-insert-prefix-string change. 2002-10-30 Steve Youngs * mh-e.el (mh-folder-mode): Check for 'font-lock-auto-fontify' when in XEmacs so we don't do font-locking unconditionally. * mh-utils.el (mh-show-mode): Ditto. 2002-10-29 Peter S Galbraith * mh-e.el (mh-folder-refiled-face, mh-folder-cur-msg-number-face) (mh-folder-to-face, mh-folder-body-face): Define faces instead of copying them from font-lock faces. This mh-e will look the same in XEmacs as it does in Emacs. * mh-utils.el (mh-show-cc-face, mh-show-date-face) (mh-show-header-face): Ditto. 2002-10-29 Jeffrey C Honig * mh-comp.el (mh-send-letter): I meant to use mh-goto-header-field, not mh-get-header-field. The former returns nil if the header is not found and doesn't need a conditional. 2002-10-29 Peter S Galbraith * mh-comp.el (mh-forward): Bug fix. Change 'kill-line for a 'delete-region, because I don't want that text yanked with C-y. * mh-seq.el (mh-put-msg-in-seq): Add support for selected region (Closes SF feature request #630324). 2002-10-28 Satyaki Das * mh-seq.el (mh-thread-prune-subject): Make the regexp a little general so that a subject of the form "Re[218]: howdy" would be properly pruned. * mh-mime.el (mh-mime-save-part): Copy function definition of mm-save-part from cvs gnus since that function is buggy in gnus that comes with emacs21.2. 2002-10-28 Peter S Galbraith * mh-e.el (mh-scan-subject-regexp): Add an expression to match an optional bracketed number after "Re", such as in "Re[2]:" (Patch by Satyaki; I checked it and applied). (mh-folder-font-lock-subject): Adapt to new mh-scan-subject-regexp. * mh-seq.el (mh-subject-to-sequence): Ditto. * mh-e.el (mh-folder-sequence-menu): Remove "Toggle Subject Thread" from menu. mh-toggle-threads is in the Folder menu. * mh-e.el (mh-folder-sequence-menu): Minor menu text edits. * mh-utils.el (mh-show-update-sequences): Added to mh-defun-show-buffer builds; needed for menu. (mh-show-sequence-menu, mh-show-message-menu) (mh-show-folder-menu): 3 new menus in mh-show-mode-map that mirror the menus used in mh-folder-mode. (mh-show-mode): easy-menu-add the 3 menus. 2002-10-28 Satyaki Das * mh-utils.el (mh-goto-msg): Fix the regexp to search so that we go to the right message. In a threaded folder message 2 may be present after 26 and the previous regexp would go to 26 when we really wanted to go to 2! * mh-seq.el (mh-widen): Add call to mh-recenter to make it like mh-narrow-to-seq. 2002-10-28 Bill Wohler * mh-utils.el (mh-show-mime-save-parts): Deleted definition. (mh-show-mime-map, tool-bar-map): Use mh-mime-save-parts instead of mh-show-mime-save-parts. 2002-10-28 Peter S Galbraith * mh-comp.el (mh-letter-tool-bar-map): tool-bar-add-item key name bug fix. * mh-utils.el (mh-show-tool-bar-map): Same. * mh-e.el (mh-folder-tool-bar-map, mh-folder-seq-tool-bar-map): Same 2002-10-27 Satyaki Das * mh-seq.el (mh-toggle-threads): Add call to mh-recenter to make its behavior like that of mh-narrow-to-seq. 2002-10-27 Bill Wohler * mh-mime.el (mh-mime-save-parts): Renamed from mh-store-mime-parts for consistency with mh-mime-save-part. Fixed bug whereby mh-mime-save-parts-directory was not getting initialized properly from a string-valued mh-mime-save-parts-default-directory. (mh-mime-save-parts-default-directory): Ditto. Check your customizations! (mh-mime-save-parts-directory): Ditto. * mh-utils.el (mh-show-mime-save-parts): Renamed from mh-store-mime-parts. (mh-show-mime-map): Added keybinding "K a" for mh-show-mime-save-parts. * mh-e.el (mh-mime-save-parts) Renamed from mh-store-mime-parts. (mh-mime-map): Added keybinding "K a" for mh-mime-save-parts. (mh-help-messages): Added help for "K a". 2002-10-27 Peter S Galbraith * mh-comp.el (mh-search-addr-regexp, mh-regexp-in-field-p): Rename the first to the second (and recode a bit). (mh-insert-mail-followup-to): Use it. 2002-10-27 Bill Wohler * mh-utils.el (mh-invisible-headers): Backed out change. Removed Mail-Followup-To due to objections from Peter and Mark. 2002-10-27 Satyaki Das * mh-seq.el (mh-msg-is-in-seq): Modified to show info about whether the message being queried about has been marked to be deleted or refiled. * mh-mime.el (mh-insert-mime-security-button): Make pressed-details a local. 2002-10-27 Steve Youngs * .cvsignore: New file. 2002-10-26 Steve Youngs * mh-seq.el (mh-notate-deleted-and-refiled): Don't bind local variable 'dest', it isn't used anywhere. * mh-pick.el (mh-do-pick-search): Don't bind local variable 'finding-messages', it isn't used anywhere. * mh-utils.el: Byte-compiler warning suppression. (mh-gnus-article-highlight-citation): Rather than redefining 'gnus-cite-face-list', just re-order it. (mh-show-mode): Force turning on font-lock in XEmacs. * mh-seq.el: Byte-compiler warning suppression. * mh-index.el: Byte-compiler warning suppression. * mh-comp.el: Byte-compiler warning suppression. * mh-xemacs-compat.el: Add defaliases for 'timerp' & 'cancel-timer' to the equivalent 'itimer' functions. (rfc822): Require it for 'rfc822-goto-eoh'. Byte-compiler warning suppression. * mh-e.el (mh-folder-mode): Force turning on font-lock in XEmacs. (mh-toggle-threads): Remove duplicate autoload. Byte-compiler warning suppression. (mh-folder-unseen-seq-list): Use 'with-temp-buffer' to fix a bug in XEmacs when font-lock is on. (mh-folder-unseen-seq-name): Ditto. 2002-10-27 Mark D. Baushke * Makefile: Reorganize to allow for building also compiling for XEmacs too. Sanitize so that it will work using least-common denominator versions of 'make'. Tested using GNU make, Solaris make, and Berkely make. (all): Use recursive invokation based on the emacs or xemacs executable passed on the 'make EMACS=xemacs' command line. (XEMACS_OPTIONS): The incantation to be passed to an xemacs editor to compile things properly. (AUTO_PRELOADS): Magic XEmacs glue. (clean): Ditto. (autoloads): Ditto. (custom-loads): Ditto. 2002-10-26 Satyaki Das * mh-e.el (mh-last-msg): Add call to mh-recenter. 2002-10-26 Peter S Galbraith * mh-comp.el (mh-search-addr-regexp, mh-re-search-to-cc): Remove `mh-re-search-to-cc' in favour of more generalized new function `mh-search-addr-regexp'. (mh-insert-mail-followup-to): Use it. 2002-10-26 Satyaki Das * mh-seq.el (mh-copy-seq-to-eob): Avoid rethreading when the folder is already threaded. This is more efficient and also avoids problems when the folder is widened. (mh-thread-inc): Don't try to restore the point to original location since mh-inc-folder from where this is called changes point location after calling this function. * mh-e.el (mh-make-folder-mode-line): Fix a small bug where the test was wrong. 2002-10-26 Peter S Galbraith * mh-comp.el (mh-insert-mail-followup-to): Fix for new defcustom. 2002-10-26 Satyaki Das * mh-seq.el (mh-notate-deleted-and-refiled): Remove unused binding of dest. The problem was pointed out by Steve as well. * mh-e.el (mh-toggle-threads): Remove duplicate autoload as pointed out by Steve. 2002-10-26 Bill Wohler * mh-utils.el (mh-invisible-headers): Added Mail-Followup-To. 2002-10-26 Peter S Galbraith * mh-comp.el (mh-insert-mail-followup-to-list): Change defvar to defcustom. 2002-10-25 Satyaki Das * mh-e.el (mh-remove-all-notation): New function that removes all notation. * mh-seq.el (mh-narrow-to-seq): When hiding the original folder remove all notation. This avoids stale notation hanging around. Also changes in show buffer and position in folder buffer are avoided if possible. (mh-widen): When widening the scan-lines are notated based on the current state of the folder. This means any changes made when the folder was narrowed are shown consistently. (mh-notate-deleted-and-refiled): Update the documentation. (mh-thread-parse-scan-line): For some reason the ASCII value of the space character was being used here. This is fixed. (mh-thread-inc, mh-toggle-threads): Avoid change of point in folder and message being displayed in shown buffer. * mh-utils.el (mh-recenter): Rewrite mh-recenter to show fewer blank lines when point is towards the end of the folder buffer. 2002-10-25 Peter S Galbraith * mh-comp.el (mh-insert-mail-followup-to-flag): New boolean defcustom to append a Mail-Followup-To field to the header. The insertion is done if the To: or Cc: fields matches an entry in `mh-insert-mail-followup-to-list'." (mh-insert-mail-followup-to-list): New defvar. List of addresses for which a Mail-Followup-To field is inserted. (mh-re-search-to-cc): New function. Search for REGEXP in To: and Cc: fields. (mh-insert-mail-followup-to): New function. Insert Mail-Followup-To: if To or Cc match `mh-insert-mail-followup-to-list'. (mh-compose-and-send-mail): Call mh-insert-mail-followup-to if mh-insert-mail-followup-to-flag is true. 2002-10-25 Mark D. Baushke * mh-utils.el (mh-show-maximum-size): New variable to control the display of large messages. (mh-display-msg): Use it (Closes SF #488696). * mh-seq.el (mh-toggle-threads): Checkdoc fix. * mh-e.el (mh-reset-threads-and-narrowing): Checkdoc fix. * mh-comp.el (mh-insert-x-mailer-flag): Renamed from mh-insert-x-mailer-p. Update docstring. (mh-send-letter): Use it. (mh-reply-show-message-flag): Renamed from mh-reply-show-message-p. Update docstring. (mh-reply): Use it. This addresses part of SF #627015. * mh-e.el (mh-recenter-summary-flag): Renamed from mh-recenter-summary-p. Update docstring. (mh-set-scan-mode): Use it. This addresses part of SF #627015. 2002-10-25 Satyaki Das * mh-e.el (mh-reset-threads-and-narrowing): New function which resets all thread and narrowing state to completely unthreaded and widened state. As a side effect, the folder buffer is erased. (mh-rescan-folder): Reset threads and narrowing state. * mh-funcs.el (mh-pack-folder-1): Reset threads and narrowing state. * mh-seq.el (mh-copy-seq-to-eob): Change mh-view-ops after threading is over so that if user aborts threading, it doesn't leave mh-e in an inconsistent state. (mh-toggle-threads): Use mh-scan-folder to populate the folder buffer instead of mh-rescan-folder which resets threading and narrowing state. 2002-10-24 Bill Wohler * mh-e is completely checkdoc clean now. * mh-utils.el (mh-clean-message-header-flag): Renamed from mh-clean-message-header. (mh-bury-show-buffer-flag): Renamed from mh-bury-show-buffer. (mh-show-use-goto-addr-flag): Renamed from mh-show-use-goto-addr. This addresses part of SF #627015. * mh-mime.el (mh-clean-message-header-flag): Renamed from mh-clean-message-header. Checkdoc fixes. This addresses part of SF #627015. * mh-index.el (mh-clean-message-header-flag): Renamed from mh-clean-message-header. This addresses part of SF #627015. * mh-funcs.el (mh-do-not-confirm-flag): Renamed from mh-do-not-confirm. This addresses part of SF #627015. * mh-e.el (mh-do-not-confirm-flag): Renamed from mh-do-not-confirm. (mh-clean-message-header-flag): Renamed from mh-clean-message-header. This addresses part of SF #627015. * mh-comp.el: checkdoc fixes. 2002-10-24 Satyaki Das * mh-seq.el (mh-copy-seq-to-eob): Rewritten to scan the headers fresh instead of yanking from buffer. This is needed to get correct threading in copied sequence. (mh-thread-inc, mh-thread-update-scan-line-map) (mh-thread-parse-scan-line): Eliminate the use, and hence the definition of, the kludgy mh-thread-update-scan-line-map. Instead the functions mh-notate-deleted-and-refiled and mh-notate-user-sequences are used to get the message marks right. (mh-thread-generate-scan-lines): Updated to allow the thread tree to be used in a narrowed folder buffer. (mh-thread-folder, mh-toggle-threads): Remove mh-folder-threaded-view-flag. (mh-thread-old-scan-line-map): New buffer-local variable that remembers the original scan-line map so that the sequence thread, narrow, widen will work. (mh-narrow-to-seq, mh-widen): Remember the scan-line map when narrowing and restore it when widening. * mh-e.el (mh-folder-threaded-view-flag, mh-folder-folder-menu) (mh-regenerate-headers, mh-get-new-mail) (mh-make-folder-mode-line, mh-process-commands) (mh-delete-scan-msgs): Remove mh-folder-threaded-view-flag. Instead (memq 'unthread mh-view-ops) is used to test if the folder is threaded. * mh-mime.el (mh-display-emphasis): Shadow article-goto-body here since we want to do emphasis on the whole of the region and not just after the first blank line. (mh-mm-display-part): When displaying a text part show smilies and emphasis. * mh-index.el (mh-index-insert-scan): Attempt to keep number of args to scan small if there are lots of adjacent matches. (mh-index-quit): Bury index-buffer on quit instead of killing it. This behavior is more like that of mh-quit. * mh-seq.el (mh-widen): If folder was threaded after narrowing then make mh-widen undo the threading instead of erroring out. 2002-10-24 Peter S Galbraith * mh-seq.el (mh-toggle-threads): Add a cond (as suggested by Satyaki) to properly unthread a narrowed-to-sequence. * mh-seq.el (mh-thread-generate-scan-lines): Fix threading breakage from partial switch to mh-container-real-child-flag and to dupl-flag. * mh-comp.el (mh-yank-cur-msg): Bug fix: specify (eq t mh-yank-from-start-of-msg) when that's what we want. 2002-10-24 Mark D. Baushke * mh-seq.el (mh-thread-prune-subject): Renamed subject-pruned-p as subject-pruned-flag. (mh-thread-inc): Renamed old-buffer-modified-p as old-buffer-modified-flag. (mh-thread-generate-scan-lines): Renamed dupl-p as dupl-flag. This addresses part of SF #627015. * mh-index.el (mh-index-advance): Renamed backward-p local variable as backward-flag. (mh-index-next-button): Renamed backward-p argument as backward-flag. (mh-index-show): Renamed display-headers-p argument as display-headers-flag. This addresses part of SF #627015. * mh-e.el (mh-scan-format, mh-version): Use mh-nmh-flag. (mh-folder-mime-action): Renamed include-security-p argument as include-security-flag. (mh-goto-next-button, mh-next-button): Renamed backward-p argument as backward-flag. (mh-get-new-mail): Renamed new-mail-p local variable as new-mail-flag. (mh-goto-cur-msg): Renamed minimal-changes-p argument as minimal-changes-flag. (redraw-needed-flag): Renamed redraw-needed-p local variable as redraw-needed-flag. (mh-seq-containing-msg): Renamed include-internal-p argument as include-internal-flag. (mh-page-msg): Use mh-page-to-next-msg-flag. This addresses part of SF #627015. * mh-mime.el (mh-mhn-compose-insert-flag): Renamed from mh-mhn-compose-insert-p. Make it buffer-local. (mh-mhn-compose-type, mh-mhn-compose-external-type, mh-mhn-compose-forw, mh-edit-mhn): Use mh-mhn-compose-insert-flag. (mh-mml-to-mime, mh-mml-secure-message-encrypt-pgpmime, mh-mime-display-part, mh-mime-display-single): Use mh-gnus-pgp-support-flag renamed from mh-gnus-pgp-support-p. (mh-mime-display-single): Renamed small-image-p local variable as small-image-flag. (mh-mime-inline-part): Renamed local variable inserted-p as inserted-flag. (mh-mime-inline-part): Renamed local variable displayed-p as displayed-flag. This addresses part of SF #627015. * mh-comp.el (mh-letter-menu, mh-letter-mode, mh-send-letter): mh-mhn-compose-insert-flag. (mh-repl-group-formfile, mh-forward): Use mh-nmh-flag renamed from mh-nmh-p. (mh-reply, mh-insert-x-mailer, mh-send-letter): Use mh-nmh-flag. (mh-letter-mode-map): Use mh-gnus-pgp-support-flag renamed from mh-gnus-pgp-support-p. (mh-mml-secure-message-sign-pgpmime): Use mh-gnus-pgp-support-flag. This addresses part of SF #627015. * mh-utils.el (mh-page-to-next-msg-flag): Renamed from mh-page-to-next-msg-p. (mh-show-msg): Use mh-page-to-next-msg-flag. (mh-gnus-pgp-support-flag): Renamed from mh-gnus-pgp-support-p. (mh-show-font-lock-fontify-region): Fix docstring per checkdoc. (with-mh-folder-updating): Renamed argument save-modification-flag-p as mh-save-modification-flag. (mh-prompt-for-folder): Renamed new-file-p local variable as new-file-flag. This addresses part of SF #627015. 2002-10-24 Mark D Baushke * mh-comp.el (mh-forward): Fix mh-mml-compose-insert-p reference in last commit to be mh-mml-compose-insert-flag. (mh-mml-compose-insert-flag): Move defvar to fix compiler warning. 2002-10-24 Jeffrey C Honig * mh-comp.el (mh-forward): Add support for transient-mark mode. When using nmh, always specify -mime so as to preserve the original message(s). If mh-compose-insertion is 'gnus, convert the mhbuild format forwarding directives into MML. 2002-10-24 Eric Ding * mh-comp.el (mh-send-letter): Fix for earlier change that added "-mime" for bcc'ed MIME mail; still doesn't work with nmh 1.0, but at least no longer triggered for every outgoing message! 2002-10-24 Peter S Galbraith * mh-comp.el (mh-yank-cur-msg): Fix selected regions for supercite (see text below). * mh-comp.el (mh-yank-cur-msg): Fix for supercite. Someone played with the point and mark setting prior to the call to 'mh-insert-prefix-string and that broke supercite. I put comments to make it obvious to future coders why those settings exists. Note that supercite is still broken when a region is selected in the show buffer. Presumably it's been like that for a long time. We need to insert the header as well as the selected region oin that case. I'll submit an SF bug. 2002-10-24 Jeffrey C Honig * mh-comp.el (mh-yank-from-start-of-msg, mh-reply): Use -noformat flag to reply when 'autosupercite or 'autoattrib are specified to prevent duplicate cites of the body of a message. 2002-10-23 Satyaki Das * mh-utils.el (font-lock-default-fontify-region): Add autoload to avoid compiler warning. 2002-10-23 Peter S Galbraith * mh-comp.el (mh-letter-mode): set fill-paragraph-function to our own 'mh-fill-paragraph-function instead of simply 'mail-mode-fill-paragraph (because it doesn't handle a non-nil fill-prefix correctly). (mh-fill-paragraph-function): New function for mh-letter-mode fill-paragraph-function in order to handle non-nil fill-prefix. Call sendmail's mail-mode-fill-paragraph if in the mail header, else call default fill-paragraph with fill-prefix set to nil. (Closes SF #489927) * mh-comp.el (mh-letter-mode): Let's use font-lock even if gnus is used in show-mode. The reason is that gnus uses static text properties which are not appropriate for a buffer that will be edited. So the choice here is either fontify the citations and header or the header only. * mh-utils.el (mh-show-font-lock-fontify-region): Limit font-lock in mh-show-mode to the header. Used when mh-highlight-citation-p is set to gnus, leaving the body to be dealt with by gnus highlighting. This fixes gnus text emphasis in mh-show-mode. (mh-show-mode): In font-lock-defaults, set font-lock-fontify-region-function to mh-show-font-lock-fontify-region. 2002-10-23 Bill Wohler * mh-mime.el (mh-mml-attach-file): Prompt for disposition should be Disposition, not Content-Type. The Content-Type has been determined automatically. 2002-10-23 Mark D. Baushke * MH-E-NEWS: s/mh-adaptive-cmd-note/mh-adaptive-cmd-note-flag/ s/mh-show-use-xface/mh-show-use-xface-flag/ s/mh-tool-bar-reply-3-buttons/mh-tool-bar-reply-3-buttons-flag/ This addresses part of SF #627015. * mh-comp.el: s/mh-mml-compose-insert-p/mh-mml-compose-insert-flag/ s/mh-xemacs-p/mh-xemacs-flag/ (mh-letter-menu): Use mh-mml-compose-insert-flag. (mh-insert-x-mailer): Use mh-xemacs-flag. (mh-mml-compose-insert-flag): Renamed from mh-mml-compose-insert-p. (mh-send-letter): Use mh-mml-compose-insert-flag. This addresses part of SF #627015. * mh-e.el: s/mh-folder-threaded-view-p/mh-folder-threaded-view-flag/ s/mh-adaptive-cmd-note/mh-adaptive-cmd-note-flag/ s/mh-xemacs-p/mh-xemacs-flag/ (mh-folder-threaded-view-flag): Renamed from mh-folder-threaded-view-p. Make it buffer local. (mh-folder-tool-bar-map): Use mh-tool-bar-reply-3-buttons-flag. (mh-remove-xemacs-horizontal-scrollbar): Use mh-xemacs-flag. (mh-make-folder, mh-regenerate-headers, mh-get-new-mail): Use mh-adaptive-cmd-note-flag. (mh-folder-folder-menu, mh-regenerate-headers, mh-get-new-mail, mh-make-folder-mode-line, mh-process-commands, mh-delete-scan-msgs): Use mh-folder-threaded-view-flag. This addresses part of SF #627015. * mh-index.el: s/mh-adaptive-cmd-note/mh-adaptive-cmd-note-flag/ (mh-index-search): Use mh-adaptive-cmd-note-flag. This addresses part of SF #627015. * mh-mime.el: s/mh-mml-compose-insert-p/mh-mml-compose-insert-flag/ s/mh-xemacs-p/mh-xemacs-flag/ (mh-mml-compose-insert-flag): Renamed from mh-mml-compose-insert-p. Make it buffer local. (mh-mml-attach-file, mh-mml-secure-message-sign-pgpmime, mh-mml-secure-message-encrypt-pgpmime): Use it. (gnus-local-map-property): Use mh-xemacs-flag. This addresses part of SF #627015. * mh-seq.el: s/mh-folder-threaded-view-p/mh-folder-threaded-view-flag/ (mh-thread-generate, mh-thread-folder, mh-toggle-threads): Use mh-folder-threaded-view-flag. This addresses part of SF #627015. * mh-speed.el: s/mh-speed-run-flists-p/mh-speed-run-flists-flag/ s/mh-speed-refresh-p/mh-speed-refresh-flag/ (mh-speed-run-flists-flag): Renamed from mh-speed-run-flists-p. (mh-folder-speedbar-buttons): Use it. (mh-speed-refresh-flag): Renamed from mh-speed-refresh-p. (mh-speed-update-current-folder, mh-speed-invalidate-map, mh-speed-add-folder): Use it. This addresses part of SF #627015. * mh-utils.el: s/mh-xemacs-p/mh-xemacs-flag/ s/mh-tool-bar-reply-3-buttons/mh-tool-bar-reply-3-buttons-flag/ s/mh-show-use-xface/mh-show-use-xface-flag/ (mh-xemacs-flag): Renamed from mh-xemacs-p. (mh-show-xface-function): Use it. (mh-tool-bar-reply-3-buttons-flag): Renamed from mh-tool-bar-reply-3-buttons. (mh-show-tool-bar-map): Use it. (mh-adaptive-cmd-note-flag): Renamed from mh-adaptive-cmd-note. (mh-cmd-note): Use it in description. (mh-show-use-xface-flag): Renamed from mh-show-use-xface. Use mh-xemacs-flag. (mh-show-xface): Use mh-show-use-xface-flag. This addresses part of SF #627015. 2002-10-23 Bill Wohler * Makefile (all): Rather than have to run "make clean all" all the time, make the default target do a clean so all you have to say is "make". * mh-e.el (mh-folder-map): Moved "t (mh-toggle-threads)" to T prefix. 2002-10-22 Satyaki Das * mh-index.el (mh-indexer-choices, mh-swish-binary): The executable swish-e can be used to search (just like swish-search). However the Makefile in swish-e-2.2.2 doesn't install swish-search. So it is preferable to use swish-e. 2002-10-22 Bill Wohler * mh-comp.el (mh-letter-mode-map): Added aliases for keybindings. For example, you now have "C-c C-m C-i" in addition to "C-c C-m i". 2002-10-22 Mark D. Baushke * mh-mime.el (mh-graphical-smileys-flag): Renamed from mh-graphical-smileys-p. (mh-display-smileys): Use it. (mh-graphical-emphasis-flag): Renamed from mh-graphical-emphasis-p. (mh-display-emphasis): Use it. This addresses part of SF #627015. 2002-10-22 Satyaki Das * mh-mime.el (mh-insert-mime-security-button): A message is produced if PGP decryption/verification fails. This addresses SF# 627025. 2002-10-21 Bill Wohler * mh-seq.el (mh-widen): Checkdoc removed the period in the error. The info node (elisp) Coding Conventions says: "An error message should start with a capital letter but should not end with a period." * mh-e.el, mh-utils.el (mh-tool-bar-reply-3-buttons): Moved defcustom to mh-utils because I got an error about a nil value for mh-tool-bar-reply-3-buttons when I fired up mh-rmail. * mh-comp.el, mh-funcs.el, mh-mime.el, mh-pick.el: Moved (provide) to the end of the file to be consistent with most other files (see additional rationale in mh-e.el description below). * mh-e.el: Had to remove eval-when-compile from the (require 'cl) here too (because the remove-if generated a warning in CVS Emacs). Moved (provide) to the end of the file to be consistent with most other files. My guess is that this is good to keep a feature from being "provided" if the file craps out while being loaded. 2002-10-21 Satyaki Das * mh-utils.el (mh-reply, Info-goto-node): Add autoloads to avoid compiler warnings. (mh-tool-bar-reply-3-buttons): Add defvar to avoid compiler warning. * mh-seq.el (mh-narrow-to-seq): Remember that a narrowing has occurred. (mh-valid-view-change-operation-p): New function that checks if the widening or unthreading that we are about to perform is allowed. (mh-widen): Check if widening is applicable. (mh-thread-inc, mh-thread-folder): Use delete-region instead of erase-buffer. This means if the buffer is narrowed then the hidden parts aren't removed. This allows widening of the folder later on. (mh-toggle-threads): Maintain mh-view-ops. * mh-e.el (mh-view-ops, mh-folder-mode): New buffer-local variable that keeps track of the sequence in which threading and narrowing of the folder buffer has been carried out. This is needed so that narrowing followed by threading (or vice versa) behaves in a reasonable manner. (mh-regenerate-headers): Use delete-region instead of erase-buffer. (mh-make-folder-mode-line): Change mh-first-msg-num and mh-last-msg-num conservatively. This might show a larger range in the mode-line but allows the unthreading to not miss messages present initially. 2002-10-21 Bill Wohler * mh-mime.el (mh-graphical-emphasis-p): Added _underline_ to the docstring, as well as the source of the strings, gnus-emphasis-alist. (mh-graphical-emphasis-p, mh-graphical-smileys-p): Set the default to t. 2002-10-21 Peter S Galbraith * mh-utils.el (mh-show-mode): Invoke new toolbar. (mh-show-tool-bar-map): New tool-bar for mh-show-mode, similar to mh-letter-mode. 2002-10-21 Satyaki Das * mh-utils.el (mh-display-msg): Call the smiley display function after the call to mh-show-mode. This is needed since mh-show-mode kills all buffer-local variables and resets the variable that controls display of graphical smileys. 2002-10-21 Bill Wohler * mh-e.el (mh-folder-mime-action): Change mime to MIME in message. * mh-comp.el (mh-mml-to-mime autoload): Ditto. 2002-10-21 Mark D Baushke * mh-mime.el (smiley-region): Use load for a non-fatal dependency on the smiley library. 2002-10-21 Jeffrey C Honig * mh-comp.el (mh-forward): Search for a blank line as well as mail-header-separator. (mh-letter-mode): Search for a blank line as well as mail-header-separator. (mh-send-letter): The default BCC encapsulation will make a MIME message unreadable. If we are running nmh and the letter contains a Bcc: and a Content-Type: field, add the -mime switch to to the arguments to send. 2002-10-21 Peter S Galbraith * mh-utils.el: Add a mh-defun-show-buffer call to define mh-show-pack-folder. 2002-10-21 Peter S Galbraith * mh-mime.el (mh-store-mime-parts): Simplify code a bit. * mh-e.el (mh-help-messages): Update help message for changed keybindings. 2002-10-21 Satyaki Das * mh-speed.el (mh-speed-invalidate-map): Invalidate mh-speed-folders-cache before it is used by mh-speed-folders. Also fix indentation of if statement. (mh-speed-folder-size): The folder name should be extracted from the speedbar buffer and not from the temp buffer has was happening before. (mh-speed-folder-size): Harden the function some more. It shouldn't produce errors any more unless flist really didn't work. 2002-10-21 Bill Wohler * mh-seq.el (mh-put-msg-in-seq): Formatting only. The reason I was in there is because I was trying to use mh-put-msg-in-seq and mh-msg-is-in-seq non-interactively and found that although the docstring says it uses the current message by default, I got errors if I passed in nil for the message. Is this expected, or is this a bug? I suppose the fix would be to make the arguments optional, right? This would cause the arguments in mh-put-msg-in-seq to be reversed, however. Might be a backwards compatibility problem. * mh-speed.el (mh-speed-view): Convert default size to string before passing it to read-string. This was done because XEmacs can't handle a numeric value for the default. 2002-10-20 Satyaki Das * mh-utils.el (mh-show-mode-map, mh-show-folder-map) (mh-show-sequence-map, mh-show-thread-map, mh-show-extract-map) (mh-show-digest-map, mh-show-mime-map): Interactive functions callable in show buffer are now prefixed with mh-show. * mh-seq.el (mh-notate-deleted-and-refiled): Take into account the changes to mh-refile-list and the removal of the 'deleted sequence. (mh-toggle-threads): Changing from threaded to normal view doesn't try to push out message refiles and deletions to MH. * mh-e.el (mh-rescan-folder, mh-scan-folder): Add a new optional argument to both functions that prevents them from carrying out pending refiles and deletes. (mh-undo): Remove dead code. (mh-delete-a-msg, mh-undo-msg): Get rid of the 'deleted sequence. The same information is present in mh-delete-list any way. (mh-refile-a-msg, mh-undo-msg, mh-process-commands): Change the semantics of mh-refile-list to make it self-contained. This variable now contains a list of lists. The first element of each sublist is the destination folder name. The remaining elements are the messages that are to be refiled to the destination folder. (mh-toggle-threads, mh-folder-folder-menu): Use mh-toggle-threads instead of mh-thread-folder. 2002-10-20 Peter S Galbraith * mh-mime.el (mh-store-mime-parts): Bug fix? Make this command work when in the show buffer, and not just in the folder buffer pointing to a message. 2002-10-20 Peter S Galbraith * mh-seq.el (mh-narrow-to-subject-sequence): Renamed from mh-narrow-to-subject-thread. (mh-subject-to-sequence): Renamed from mh-subject-thread-to-sequence. (mh-delete-subject-sequence): Renamed from mh-delete-subject-thread. (mh-next-unseen-subject-sequence): Renamed from mh-next-unseen-subject-thread. (mh-toggle-subject-thread): Removed. :-( * mh-e.el: s/subject-thread/subject-sequence/ (mh-thread-map): Bind mh-widen to "w". * mh-utils.el: s/subject-thread/subject-sequence/ (mh-show-thread-map): Bind mh-widen to "w". 2002-10-20 Satyaki Das * mh-seq.el (mh-thread-folder): This function is no longer interactive. The mh-toggle-threads is the interactive function that gets called by the user. Also the already computed values in mh-first-msg-num and mh-last-msg-num are used instead of recomputing the first and last message indices in the current folder. (mh-toggle-threads): New interactive function that toggles threaded view of the folder. * mh-utils.el (mh-letter-toggle-threads): New interactive function which toggles thread view from show buffer. This function replaces mh-letter-thread-folder. (mh-show-folder-map): Use mh-letter-toggle-threads instead of mh-letter-thread-folder. * mh-e.el (mh-folder-map): Use mh-toggle-threads instead of mh-thread-folder. 2002-10-20 Bill Wohler * mh-e.el (mh-scan-folder): Formatting only. (mh-goto-cur-msg): Removed call to mh-last-msg in those cases where there isn't a current message. Since I've started using the speedbar to read my mh-e mail, I've had to use M-< every time to go to the beginning of the new messages. Very annoying! Thus, if there isn't a current message, the cursor is left alone, which sounds like the right thing to do anyway. 2002-10-19 Peter S Galbraith * mh-seq.el (mh-subject-thread-to-sequence): Bug fix. After making the 'subject sequence real, I now have to delete it globally. * mh-seq.el (mh-toggle-subject-thread): Make toggle back to full scan exactly mh-widen (removed moving to current message). * mh-seq.el (mh-subject-thread-to-sequence): Make 'subject sequence a real one, exported to MH. This means you can, for example, mh-forward it. But it also shows up with a mark in the scan output. (Closes SF #489445). 2002-10-19 Bill Wohler * mh-speed.el (mh-speed-view): If there weren't any unseen messages, and you specified a string (a sequence like "last") when prompted for the number of messages to display, you got an error. This has been fixed. 2002-10-19 Mark D Baushke * mh-e.el (mh-last-destination-folder): Destination of last refile command. (mh-last-destination-write): Destination of last write command. (mh-refile-msg): Use 'mh-last-destination-folder and update both it and 'mh-last-destination. (mh-write-msg-to-file): Use 'mh-last-destination-write and update both it and 'mh-last-destination (Closes SF #580772). 2002-10-19 Bill Wohler * mh-comp.el (mh-yank-from-start-of-msg): Changed default to 'attribution. (mh-letter-mode-map): Removed commented-out keybindings as well as alias "C-c C-m a (mh-compose-insertion)." Prefer "C-c C-m i." * mh-utils.el: Removed autoload of help. It no longer appears to be necessary in cvs Emacs (21.4). 2002-10-18 Bill Wohler * mh-e.el (mh-execute-commands): Doc fix. (mh-compat-write-file-hook): Renamed to mh-write-file-functions-compat. (mh-folder-mode): Add mh-write-file-functions-compat instead of mh-compat-write-file-hook 2002-10-18 Peter S Galbraith * mh-utils.el (mh-invisible-headers-show-xface): Killed this variable. (mh-invisible-headers): Use 'mh-show-use-xface instead of 'mh-invisible-headers-show-xface to determine whether to render the X-Face header line visible or not. 2002-10-18 Satyaki Das * mh-e.el (mh-compat-write-file-hook, mh-folder-mode): Use the new macro mh-compat-write-file-hook to use write-file-functions for Emacs 21.4 and local-write-file-hooks for older versions. 2002-10-18 Mark D Baushke * mh-utils.el (mh-invisible-headers): Add more anti-spam headers. 2002-10-18 Peter S Galbraith * mh-mime.el (mh-mml-forward-message): mml-attach-file constructs a malformed composition if the description string is empty, so test for that and call mml-attach-file without that argument if it's an empty string (closes SF #625168). 2002-10-17 Satyaki Das * mh-index.el (mh-index-keymap): Removed extra binding of " ". (mh-index-folder-mode-help-messages): Made the cheat sheet entry of quit like the others. (mh-index-search): If space was pressed in the index buffer before a search result has been shown with ".", the old show buffer would be scrolled. This is confusing since the index and show buffer contents are contradictory. Killing the show buffer here avoids this problem. (mh-index-configure-windows): Refine the window configuration logic. Avoid the two window view unless there is a message being displayed in the show buffer. (mh-index-scroll-up): Rewrite this function. The old version had a bizarre problem where the show buffer wouldn't be scrolled if the speedbar was present. (mh-index-scroll-down): Rewritten because of similar reason as above. 2002-10-17 Peter S Galbraith * mh-comp.el (mh-reply): Add an undo boundary in the undo list before calling 'mh-yank-cur-msg (closes SF #623693). 2002-10-17 Satyaki Das * mh-e.el (mh-folder-mode): Use local-write-file-hooks instead of write-file-hooks. This is required for XEmacs and also the right thing according to GNU Emacs21 documentation. 2002-10-16 Satyaki Das * mh-seq.el (mh-thread-generate): Get threading to work correctly on partial folders. The fix here disregards messages that aren't already present in the buffer. (mh-thread-folder): When querying scan about thread info try to avoid asking about messages that aren't present in the folder buffer. A more efficient fix would be to ask scan about just the messages that are present instead of a range of messages. However that runs the risk of sending long command lines to scan. Another change was to populate the mh-scan-line-map early so that the change in mh-thread-generate would work. (mh-thread-generate-scan-lines): In case duplicates are present make one of them the pseudo parent of the rest. This makes it look prettier if there are multiple duplicates at top level. * mh-comp.el (mh-edit-again): If a buffer in show-mode is being reused then reinsert message file. This should fix SF #624283. * mh-mime.el (mh-mm-display-part): Make sure mh-display-part is always called when we want to remove the displayed MIME part. 2002-10-16 Bill Wohler * mh-speed.el (mh-speed-folder-size): checkdoc fix. (mh-speed-view): Tweaked output to mirror gnus verbiage. Offer to view number of messages in folder rather than mh-large-folder. Replaced (intern mh-unseen-seq) with mh-unseen-seq since the former was generating errors. 2002-10-15 Satyaki Das * mh-speed.el (mh-large-folder): New customizable variable to control mh-e's perception of large folders. (mh-speed-folder-size): New function which computes the size of folder on current line. (mh-speed-view): Modified to handle large folders. If the folder being clicked has unseen messages then only those messages are shown. Otherwise if number of messages in folder is larger than mh-large-folders then the user is asked for the number of messages to be shown. If the folder satisfies neither of the above cases then it is displayed in its entirety 2002-10-15 Bill Wohler * mh-index.el (mh-index-keymap): Use gnus-define-keys. Sorted. Noticed that there were two key bindings for SPACE... * mh-speed.el (mh-folder-speedbar-key-map): Ditto (except for the dup SPACE binding). Completed help in other modes: * mh-utils.el (mh-xemacs-p): Fixed doc. (mh-show-mode-map, mh-show-folder-map, mh-show-sequence-map) (mh-show-thread-map, mh-show-extract-map): Added binding for mh-help. * mh-pick.el (mh-search-folder): Added startup help message. (mh-pick-mode-help-messages): New variable that contains help messages for pick buffer. (mh-pick-mode): Set local buffer variable mh-help-messages to mh-pick-mode-help-messages. * mh-index.el (mh-index-keymap): Added binding for mh-help (mh-index-folder-mode-help-messages): New variable that contains help messages for MH Index buffer. (mh-index-folder-mode): Set local buffer variable mh-help-messages to mh-index-mode-help-messages. * mh-funcs.el (mh-help, mh-prefix-help): Call substitute-command-keys on the help messages. * mh-e.el (mh-help-messages): Added ,. Ran C-M-q. (mh-help): This autoload doc is now used for more than just the MH-Folder, so drop that specific text. * mh-comp.el (mh-edit-again, mh-extract-rejected-mail) (mh-forward, mh-reply, mh-send-sub): Call mh-letter-mode-message to display a help message at startup. (mh-letter-mode): Set local buffer variable mh-help-messages to mh-letter-mode-help-messages. (mh-letter-mode-help-messages): New variable with help messages for the MH-Letter buffer. (mh-letter-mode-message): New function that displays a startup help message. (mh-letter-mode-map): Added binding for mh-help. Sorted. 2002-10-15 Satyaki Das * mh-speed.el (mh-speedbar-selected-folder-with-unseen-messages-face) (mh-speedbar-folder-face, mh-speedbar-selected-folder-face) (mh-speedbar-folder-with-unseen-messages-face): New faces for mh-e speedbar. (mh-folder-speedbar-buttons, mh-speed-update-current-folder) (mh-speed-add-buttons): Use the new faces. (mh-speed-normal-face, mh-speed-bold-face): Functions to convert to bold face and back to normal face. (mh-speed-set-face): Removed. (mh-speed-highlight): Modified to allow it to be used instead of mh-speed-set-face. Also changes were made to fontify folders with unread messages. (mh-speed-parse-flists-output, mh-speed-parse-flists-output) (mh-speed-invalidate-map): Use mh-speed-highlight instead of mh-speed-set-face. 2002-10-15 Bill Wohler * mh-mime.el, mh-seq.el, mh-speed.el, mh-utils.el: It appears that the cl package has been restructured in 21.4 in such a way that the use of eval-when-compile no longer suppresses warnings when compiling so that (require 'cl) must be called directly (maybe this is a bug in 21.4 ;-). Thus the autoloads of cl are no longer needed. Now compiles clean under 21.4. * mh-e.el (mh-folder-mode): The use of local-write-file-hooks is deprecated in Emacs 21.4, so use add-hook write-file-functions (or write-file-hook for older versions) with the LOCAL argument instead. Now compiles clean under 21.4. * mh-comp.el (mh-yank-cur-msg): Push a mark at the opposite end of the included text to make it easy to jump or delete to the other end of the included text. 2002-10-15 Satyaki Das * mh-comp.el (mh-insert-prefix-string): Remove the erroneous use of set-mark and other related functions. 2002-10-14 Bill Wohler * mh-comp.el (mh-yank-from-start-of-msg): Fixed documentation. It isn't ignored if there is a region. It is still used for the attribution. (mh-yank-cur-msg): Removed unnecessary push-mark when snarfing the entire message. Move the cursor to the end of the snarfed message if there is a region. In this case, push a mark so user can pop to the beginning of the snarfed fragment. (mh-insert-prefix-string): This calls set-mark which I find suspect since I found that my last user mark was deleted after yanking a message. Added a comment to this effect. Will probably add a bug report... * README (Installed, Supported versions): To appear in GNU Emacs 21.3; supported on Emacs 21, 20.7 and XEmacs 21. * mh-funcs.el (mh-concat-list): Deleted. Use mapconcat instead. (mh-help, mh-prefix-help): Use mapconcat instead of mh-concat-list. (mh-ephem-message): Use "%s" in message. * mh-funcs.el (mh-concat-list): New function to concatenate a list of strings into a single string. I would have thought elisp already contained a function like this, but I couldn't find it. (mh-ephem-message): New function to display a message in the minibuffer ephemerally. minibuffer-message seemed like the right function, but it writes to the current buffer oddly enough. (mh-help, mh-prefix-help): New functions to display command cheat sheets in the minibuffer (closes SF #493740). It would be nice to refactor these two into a single function if possible. * mh-e.el (mh-folder-mode-map, mh-folder-map, mh-sequence-map) (mh-thread-map, mh-extract-map): Added ? keybinding for `mh-help' and `mh-prefix-help' (closes SF #493740). (mh-help-messages): New variable to hold various help messages. (mh-help, mh-prefix-help): Autoload from mh-funcs.el. 2002-10-13 Bill Wohler * mh-index.el (mh-glimpse-directory, mh-swish-directory, mh-namazu-directory): New variables that hold the name of the configuration and indexing directory. All are now hidden `.' directories. * mh-e.el, mh-funcs.el, mh-index.el, mh-mime.el, mh-pick.el, mh-seq.el, mh-xemacs-compat.el (Docstrings): Converted comments to docstrings, reworded some docstrings to conform to Emacs documentation conventions, and eliminated all checkdoc warnings (except for -flag, which we'll fix after 6.2 is released). 2002-10-13 Satyaki Das * mh-index.el (mh-swish-next-result): Fix a bug in a corner case where the lack of a trailing "/" caused the function to wrongly filter out correct hits. This should fix SF #622679. 2002-10-12 Steve Youngs * mh-utils.el (mh-xemacs-p): Simplify it, don't test for 'defvaralias' and don't use 'running-xemacs'. 2002-10-11 Bill Wohler * mh-comp.el: (Docstrings): Eliminated all checkdoc warnings by converting comments to docstrings and rewording some docstrings to conform to Emacs documentation conventions. 2002-10-11 Steve Youngs * mh-utils.el (mh-xemacs-p): New. (mh-show-use-xface): Use it. (mh-show-xface-function): Ditto. * mh-e.el (toplevel): Ditto. (mh-remove-xemacs-horizontal-scrollbar): Ditto. (mh-folder-mode-map): Ditto. * mh-comp.el (mh-insert-x-mailer): Ditto. * mh-mime.el (gnus-local-map-property): Ditto. (mh-mml-to-mime): Move (require 'mh-utils) to toplevel. (mh-prompt-for-folder): Autoloading this not needed because mh-utils is now required at toplevel. (mh-show-xface): Ditto. (mh-show-addr): Ditto. 2002-10-11 Bill Wohler * Makefile (EMACS_HOME): Set default to $(TOP)/../emacs so it would be useful. * mh-utils.el (mh-invisible-headers): Added various spam header fields. (mh-path-search): Removed argument `func-p' and related code. It was not documented and no one used it. (Docstrings): Converted comments to docstrings, reworded some docstrings to conform to Emacs documentation conventions, and basically eliminated all checkdoc warnings (except for -flag warnings). 2002-10-11 Satyaki Das * mh-seq.el (mh-thread-generate): Kill dead code. 2002-10-10 Satyaki Das * mh-seq.el (mh-region-to-sequence): Don't include point-max in region (closes SF #621632). * mh-utils.el (mh-defun-show-buffer): Fix call of frame-first-window to work with XEmacs. Also avoid warning about cur-buffe-name in XEmacs. (mh-modify, mh-goto-msg): Remove dead code. * mh-speed.el (mh-speed-toggle, mh-speed-add-buttons): Remove dead code. * mh-seq.el (mh-subject-thread-to-sequence, mh-thread-get-message, mh-thread-generate, mh-thread-folder): Remove dead code. * mh-mime.el (mh-mm-inline-message): Remove dead code. * mh-index.el (mh-index-search): Remove dead code. * mh-comp.el (mh-open-line): Remove dead code. * mh-e.el (mh-folder-mode): Use the macro mh-remove-xemacs-horizontal-scrollbar to avoid compiler-warning in Emacs. (mh-remove-xemacs-horizontal-scrollbar): New macro to avoid compiler-warnings. 2002-10-10 Mark D Baushke * Makefile (EMACS_OPTIONS): New macro for command-line compile options. (EMACS): Allow the user to specify which emacs command to use for the compile. (COMPILE_COMMAND): Combine the compile command with its options. (.el.elc): Use the new $(COMPILE_COMMAND). 2002-10-10 Mark D Baushke * mh-speed.el (mh-speed-select-attached-frame): Define a new compatibility macro for getting to the attached-frame. (mh-speed-update-current-folder): Use it. 2002-10-10 Mark D Baushke * mh-speed.el (mh-speed-update-current-folder): Use 'dframe-select-attached-frame if we are in a newer speedbar version that no longer supports the 'speedbar-attached-frame variable. 2002-10-10 Steve Youngs * mh-speed.el (mh-speed-update-current-folder): Use 'dframe-select-attached-frame' if we're in XEmacs. * mh-e.el (mh-folder-mode): Remove the horizontal scrollbar from the MH-Folder buffer if we're in XEmacs. 2002-10-09 Satyaki Das * mh-utils.el (mh-show-xface-function): New global that stores what function needs to be called to display X-Face. (mh-show-xface): Rewritten to avoid compiler warning. 2002-10-09 Peter S Galbraith * mh-utils.el (mh-exchange-point-and-mark-preserving-active-mark): Simplify code for all emacsen to avoid byte-compilation warnings. 2002-10-09 Satyaki Das * mh-mime.el (mh-mm-display-part): If a sub-part of the current part is an inline image then clicking the button keeps the image around. The change fixes this bug. 2002-10-09 Peter S Galbraith * mh-utils.el (mh-exec-cmd-output): Use new function 'mh-exchange-point-and-mark-preserving-active-mark instead of 'exchange-point-and-mark. Fixes a bug in emacs20 and XEmacs21. (mh-exchange-point-and-mark-preserving-active-mark): New function. Does like 'exchange-point-and-mark but doesn't activate the mark. * mh-comp.el (mh-letter-menu): Allow access to "Pull in All Compositions" menu entries when edits have really occurred. Works with "forw: -mime" mh_profile entry, so this fixes a bug. * mh-mime.el (mh-mime-inline-part, mh-mm-display-part): Use line-beginning-position and line-end-position instead of point-at-bol and point-at-eol XEmacs functions. * mh-xemacs-compat.el: Added line-end-position and line-beginning-position compatibility aliases. 2002-10-08 Mark D. Baushke * mh-utils.el (mh-scan-msg-format-regexp): The regexp to find %number(msg). (mh-scan-msg-format-string): Format to be used with the current maximum width of message number for the folder in the `mh-upate-scan-format' function. (mh-update-scan-format): Use `mh-scan-msg-format-regexp' for greater flexibility. The message number is no longer anchored to the beginning of the `mh-scan-format-nmh' or `mh-scan-format-mh' format strings. The `mh-update-scan-format' allows for using zero-filled message numbers. 2002-10-08 Peter S Galbraith * mh-e.el (mh-folder-folder-menu): Add entry for "Thread Folder". 2002-10-07 Satyaki Das * mh-seq.el (mh-thread-generate): Use mh-progs to get path to mh executables. * mh-speed.el (mh-speed-flists): Use mh-progs to get path to mh executables right. (mh-speed-folders-actual): Same as above. 2002-10-05 Steve Youngs * mh-comp.el (mh-yank-from-start-of-msg): Make default setting 't' a const. * mh-xemacs-compat.el (match-string-no-properties): Rewrite as a defsubst using 'buffer-substring-no-properties' so we don't grab any extents. (rfc822-goto-eoh): Removed. This exists in the XEmacs mail-lib package. (mail-header-end): Ditto. (mail-mode-fill-paragraph): Ditto. 2002-10-05 Satyaki Das * mh-speed.el (mh-speed-invalidate-map): When called interactively the function will clear mh-speed-folders-cache. 2002-10-02 Satyaki Das * mh-mime.el (mh-insert-mime-button): Rewrite without using replace-match. 2002-10-01 Satyaki Das * mh-mime.el (mh-file-mime-type-substitutions): Reorder code to avoid compiler warning. 2002-10-01 Bill Wohler * Makefile (MH-E-ETC): Moved ChangeLog into MH-E-ETC-ETC since it shouldn't get installed in Emacs. (install-emacs): Install MH-E-IMG into Emacs' lisp/toolbar and MH-E-IMG2 into Emacs' lisp/mail. 2002-10-01 Peter S Galbraith * mh-e.el (mh-tool-bar-reply-3-buttons): New customization. Non-nil means use three buttons for reply commands in tool-bar. If you have room on your tool-bar because you are using a large font, you may set this variable to expand the single reply button into three buttons that won't lead to minibuffer prompt about who to reply to. (mh-folder-tool-bar-map): Use mh-tool-bar-reply-3-buttons to decide how many buttons to use for replying. * mh-mime.el (mh-file-mime-type-substitutions) (mh-file-mime-type-substitute): Fix typos and doc strings. 2002-09-30 Peter S Galbraith * mh-mime.el (mh-file-mime-type): Run Content-Type string returned by file command through mh-file-mime-type-substitute (see below). (mh-file-mime-type-substitute): Possibly change Content-Type string using mh-file-mime-type-substitutions variable. This is mostly because all MS-Office file are seen as application/msword by the file command. (mh-file-mime-type-substitutions): New variable. Defines substitutions to make for Content-Type returned from file command. 2002-09-27 Bill Wohler * README: Moved Id to end of file since it broke outline mode at the beginning. * import-emacs (release): Renamed "mainline" tag to "emacs-mainline" to correspond with existing CVS tag. (EMACS_HOME): Fixed typo in docstring. * mh-utils.el (mh-folder-name-p, mh-defun-show-buffer): Lowercase NIL and T in docstring. (mh-update-scan-format): Fixed typo. * mh-comp.el, mh-e.el, mh-pick.el, mh-utils.el: Updated from CVS Emacs. The only new thing appears to be to downcase NIL and T in the documentation. 2002-09-26 Satyaki Das * mh-seq.el (mh-thread-generate): The threading code will now be more resistant to corruption of messages. Before the change any corruption of message x would cause all messages with indices higher than x to be neglected when threading! 2002-09-23 Peter S Galbraith * mh-mime.el (mh-store-mime-parts): Don't store value into user-customizable variable mh-store-mime-parts-default-directory and use mh-store-mime-parts-directory instead. 2002-09-20 Satyaki Das * mh-seq.el (mh-thread-prune-subject): Use regular expressions to make the subject pruning behave the way it is specified in the imap-thread RFC. * mh-speed.el (mh-speed-folders-actual): Don't use pop when we are not going to use the first element. This avoids a compilation warning with cvs emacs. 2002-09-19 Satyaki Das * mh-utils.el (mh-display-msg): Put the call to set-buffer-modified after mh-show-mode. This is needed for CVS emacs since calling mh-show-mode marks the buffer as modified if font-lock is on. 2002-09-17 Peter S Galbraith * mh-mime.el (mh-store-mime-parts-default-directory): Renamed from mh-store-mime-parts-directory (mh-store-mime-parts-directory): Renamed from mh-store-mime-parts-directory-default. 2002-09-16 Peter S Galbraith * mh-comp.el (mail-citation-hook): Doc tweaks suggested by Bill. 2002-09-08 Satyaki Das * mh-e.el (autoloads): Reorder autoload of mh-reply to avoid compiler warning. 2002-09-03 Peter S Galbraith * mh-mime.el (mh-store-mime-parts-directory): New defcustom. Default directory to use for mh-store-mime-parts. (mh-store-mime-parts): New Command. Store the MIME parts of the current message. (mh-store-mime-parts-directory-default): New internal working variable. Default to use for mh-store-mime-parts-directory, set from last use. * mh-e.el (mh-folder-seq-tool-bar-map): Add mh-store-mime-parts to toolbar. 2002-08-22 Satyaki Das * mh-seq.el (mh-thread-generate-scan-lines): In threaded view, complete scan lines are printed for all messages (not just the ones at the top of a thread). * mh-index.el (mh-index-insert-scan): Replace use of kill-line since that pollutes the kill-ring. * mh-comp.el (autoloads): Add autoloads for search and subseq to get rid of compiler warnings. 2002-08-19 Peter S Galbraith * reply-to.xpm, reply-to.pbm, reply-from.xpm, reply-from.pbm, * reply-all.xpm, reply-all.bpm: New icons for various reply methods. * mh-e.el (mh-folder-tool-bar-map): Split reply button into three that won't prompt for "from", "to" and "all". * mh-comp.el (mh-reply): Put variable reply-to in the interactive list since it's specified on the command line for the new toolbar. * mh-comp.el (mail-citation-hook): Tweak docs concerning historical usage for supercite. (mh-yank-from-start-of-msg): Add settings 'supercite and 'autosupercite. Rename 'automatic to 'autoattrib. (mh-insert-prefix-string): Invoke sc-cite-original if mh-yank-from-start-of-msg is et to 'supercite or 'autosupercite. 2002-08-17 Satyaki Das * mh-comp.el (compilation-fix): Reorder defvars to avoid warnings during compilation. 2002-08-17 Peter S Galbraith * mh-comp.el (mh-yank-from-start-of-msg): Add 'automatic choice. Do as for `attribution' automatically when show buffer matches the message being replied-to. (mh-reply): Call 'mh-yank-cur-msg when mh-yank-from-start-of-msg is set to 'automatic and show buffer matches message number being replied-to. (mh-show-buffer-message-number): New helper function to get the message number of the current show-buffer. (mh-yank-cur-msg): Handle 'automatic choice the same as 'attribution. (mh-yank-cur-msg): Bug fix. It would bail on error if mh-show-buffer didn't exists. 2002-08-16 Peter S Galbraith * mh-comp.el (mh-insert-x-mailer): It wrongly assumed that Emacs was used even when XEmacs was used. Fixed so X-Mailer header is more exact about what we are using. 2002-08-15 Peter S Galbraith * mh-e.el (mh-version): Change CVS version number to 6.1+cvs just so X-Mailer header is more exact about what we are using. * mh-mime.el (mh-mhn-compose-insertion, mh-mhn-compose-anon-ftp, mh-mml-attach-file): "Jeffrey P. Morgenthaler" reported that "require" in emacs 20.3 doesn't handle 3 arguments. We use "load" at the top of file elsewhere anyway to handle such a case of non-essential loading, so switch to that here. 2002-08-06 Satyaki Das * mh-funcs.el (autoload): Add autoload for mh-speed-invalidate-map. * mh-speed.el (mh-speed-add-folder): New function to make the speedbar aware of new folders when they are created by mh-e. * mh-utils.el (mh-prompt-for-folder): Use mh-speed-add-folder to tell speedbar that new folder is being created. Also use folder instead of mkdir to create new folders. 2002-08-01 Peter S Galbraith * mh-utils.el (mh-decode-quoted-printable): Conditionalize the limit of search for quoted-printable. If we're using mm-decode for MIME decoding, it's possible that `mimedecode' could mess our message, so we only run a full search for quoted-printable parts when not using gnus' mm-decode. When using mm-decode, mimedecode can still help by handling the case of the whole message being quoted-printable as opposed to only a part. 2002-07-31 Peter S Galbraith * mh-comp.el (mh-compose-insertion): Moved from mh-mime.el because the pulldown menu were broken in XEmacs21 from this variable being undefined. 2002-07-28 Mark D. Baushke * mh-utils.el (mh-show-mode): Use the default paragraph-start rather than the inherited text-mode value. 2002-07-28 Satyaki Das * mh-seq.el (mh-thread-duplicates): New hash table to track duplicate messages. (mh-thread-get-message): Remove debug code. (mh-thread-canonicalize-id): Modified to handle messages without message-id header. Such messages are given distinct copies of the empty string as message-id. (mh-thread-generate): The function was inadvertently rebuilding the thread tree when message refiles and message deletes are processed. The change here fixes that. Also code has been added to keep track of duplicate message-id's. (mh-thread-generate-scan-lines): Modified to print scan lines for duplicate messages (that is messages with the same message-id). (mh-thread-forget-message): Modified to maintain mh-thread-duplicates. 2002-07-22 Satyaki Das * mh-speed.el (mh-speed-parse-flists-output): Use delete-region instead of kill-region. Otherwise the kill ring gets polluted. 2002-07-16 Satyaki Das * mh-seq.el (mh-thread-update-scan-line-map): New function to refresh the stale scan lines. (mh-thread-inc): Update old scan lines when mh-thread-inc is called. Otherwise notations for deleted and refiled messages get lost and the folder display gets out of sync with real mh-e state. * mh-mime.el (mh-mm-display-part): Call Gnus citation highlight code when text part is displayed. Otherwise buttonized text parts aren't correctly fontified when they are displayed. 2002-07-15 Mark D. Baushke * mh-utils.el (mm-decode): Use load for the Non-fatal depencency on the mm-decode library. * mh-mime.el (mm-decode, mm-uu, mm-view): Use load for the Non-fatal depencencies on the mm-decode, mm-uu and mm-view libraries. 2002-07-15 Satyaki Das * mh-utils.el (mh-require, mh-autoload): Remove these macros. (mh-decode-mime): Initialized to t iff the mm-decode library is present in the load-path. * mh-mime.el (mh-require): Don't use it anymore. 2002-07-15 Mark D Baushke * mh-utils.el (mh-update-scan-format): Rewrite for compatibility with Xemacs as replace-match appears not to have identical functionality with FSF emacs. (mh-scan-msg-format-regexp): Deleted. This regexp is now hardcoded into the mh-update-scan-format function. 2002-07-12 Satyaki Das * mh-seq.el: Add message threading code. * mh-utils.el (mh-letter-thread-folder): New interactive function that allows switching to threaded view from show buffer. (mh-show-folder-map): Bound "F t" to call mh-letter-thread-folder. (mh-goto-msg): Replace the function to not assume that messages are sorted in the folder buffer. * mh-e.el (mh-folder-threaded-view-p): New buffer local variable in the folder buffer that records whether threaded view is being used currently. (mh-scan-subject-regexp, mh-scan-format-regexp): Get font lock working for threaded view as well. (mh-regenerate-headers): Reset mh-folder-threaded-view-p to nil. (mh-get-new-mail, mh-process-commands): Do incremental threading if folder is in threaded view. (mh-delete-scan-msgs): Update thread tables if folder is in threaded view. (mh-folder-map): Add "F t" as key binding for mh-thread-folder * mh-comp.el (mh-yank-cur-msg): Bug fix. mh-show-buffer is only has a meaningful value in the folder buffer. 2002-07-11 Peter S Galbraith * mh-comp.el (mh-yank-cur-msg): Run only if mh-show-buffer actually exists (otherwise a back-traceable error occurred). * mh-utils.el (mh-find-progs): Run PATH search only when mh-progs, mh-lib and mh-lib-progs are not all already set. This allows the user to set them using a simple setq prior to loading mh-e. This is useful for implementation of mh-e on win32. Note that many commands still call mh-find-path which also parses the mh_profile file (that may still fail on win32), so this is still done often. But it lets us change the mh_profile file and have mh-e see the changed file without exiting emacs and starting over so I left that in. 2002-07-04 Satyaki Das * mh-index.el (mh-index-show): Fixed a bug in mh-index-show which caused it to lose track of point when called from show buffer. 2002-07-04 Mark D. Baushke * Makefile: Add more information and common methods to allow both GNU make and Berkeley make to properly build everything. 2002-07-04 Satyaki Das * mh-mime.el (mh-push-button): Bug fix for mime display with mouse. Select show window before executing the mime display functions. 2002-07-01 Mark D. Baushke * Makefile: Use a conditional variable assignment operator rather than ifndef to let Makefile be used by both GNU make and Berkeley make (or similar versions of make). This does not help Solaris /usr/ccs/bin/make, but Solaris make has problems with the ifndef syntax too. 2002-07-01 Satyaki Das * mh-index.el (mh-index-search): Check for mh-decode-mime before adding mh-mime-cleanup to kill-buffer-hook. * mh-mime.el (mm-destroy-parts): Add definition for old emacs. 2002-06-30 Mark D Baushke * mh-utils.el (mh-update-scan-format): Add documentation string. (mh-scan-msg-format-regexp): Update the regexp to find %(msg). (mh-set-cmd-note): When mh-scan-format-file is not t, dynamic update of mh-cmd-note is wrong. Do not assume that mh-scan-format-nmh and mh-scan-format-mh can be kept in lock-step with mh-cmd-note via mh-set-cmd-note. The mh-scan-format function is now where the updated mh-cmd-note value is put into the scan format. * mh-e.el (mh-generate-new-cmd-note): Add documentation string. (mh-scan-format): Use mh-update-scan-format to get updated copies of mh-scan-format-nmh and mh-scan-format-mh to avoid format skew. (mh-get-new-mail): Do not try to adapt mh-cmd-note unless mh-scan-format-file is equal to t. (mh-scan-format-nmh): No longer buffer local. (mh-scan-format-mh): No longer buffer local. 2002-06-30 Satyaki Das * mh-index.el (mh-index-max-msg-index): New variable to keep track of max message index among search results. If mh-adaptive-cmd-note is non-nil this is used to compute the width of the index field. (mh-index-search): Keep track of max index seen while parsing the search results and set it if mh-adaptive-cmd-note is non-nil. (mh-index-find-max-width): New function to find the required width of the message index field. (mh-defun-index): Binding buffer local variables is bad, so don't do that. (mh-index-show): New argument display-headers-p decides whether the message is displayed in raw form or not. (mh-index-header-display): New interactive function bound to "," which shows the message in raw form. (mh-index-keymap): Add appropriate bindings for backtab and ",". (read-from-string): Add ignore-errors around it so that the code doesn't die when it gets unexpected input. 2002-06-29 Satyaki Das * mh-index.el (mh-count-windows): This function works around the lack of the window-list builtin function in emacs20. 2002-06-29 Mark D Baushke * mh-utils.el (mh-message-number-width): New function to scan the last message of a folder and return its width. (mh-adaptive-cmd-note): New variable, if Non-nil indicates that mh-set-cmd-note should be called with the message width for the folder. (mh-cmd-note): Update documentation. (mh-update-scan-format): Helper function for updating the mh-scan-format-nmh and mh-scan-format-mh variables. (mh-scan-msg-overflow-regexp): New variable to help find problem messages after an inc. (mh-scan-msg-format-regexp): New variable to find the old message width in one of the mh-scan-format-nmh or mh-scan-format-mh variables. (mh-set-default-cmd-note): Replaced by mh-set-cmd-note. (mh-set-cmd-note): New function to replace update mh-cmd-note value. * mh-e.el (mh-regenerate-headers): If mh-adaptive-cmd-note is non-nil, use mh-set-cmd-note on empty folder buffers. (mh-make-folder): Ditto. (mh-generate-new-cmd-note): New function to adapt the mh-cmd-note to fit when mh-get-new-mail gets message number truncation. (mh-get-new-mail): Maybe use mh-generate-new-cmd-note if mh-adaptive-cmd-note is Non-nil. 2002-06-29 Satyaki Das * mh-speed.el (mh-speed-view): The display gets confused if the cursor is in the show buffer when mh-speed-view is called. This is a fix for that. 2002-06-27 Satyaki Das * mh-e.el (mh-next-undeleted-msg): Get rid of optional arg reverse-p. If there are no more undeleted messages the the point remains at its original position and a message is produced (closes SF #494304). (mh-previous-undeleted-msg): Change similar to mh-next-undeleted-msg. (mh-next-msg, mh-refile-msg, mh-delete-msg): Backout previous change. (mh-folder-map): Bind "S-tab" and "K S-tab" to mh-prev-button. * mh-utils.el (mh-show-mode-map): Bind "S-tab" and "K S-tab" to mh-letter-prev-button. * mh-mime.el (gnus-newsgroup-name): Initialize it to nil, so that mm-uu-dissect doesn't cause error. 2002-06-27 Mark D Baushke * mh-utils.el (mh-cmd-note): Make buffer-local. Changes to this variable should be made via the new mh-set-default-cmd-note function. (mh-set-default-cmd-note): New function to setq-default the mh-cmd-note, mh-scan-format-mh and mh-scan-format-nmh values to related values. * mh-e.el (mh-scan-format-mh): Make buffer-local. (mh-scan-format-nmh): Ditto. (mh-scan-good-msg-regexp): Use a more general regular expression so that the width of message numbers, mh-cmd-note, may vary. (mh-scan-deleted-msg-regexp): Ditto. (mh-scan-refiled-msg-regexp): Ditto. (mh-scan-cur-msg-number-regexp): Ditto. (mh-scan-cur-msg-regexp): Ditto. (mh-scan-subject-regexp): Ditto. 2002-06-26 Satyaki Das * mh-speed.el: Speedbar support code. * Makefile: Add mh-speed.el to MH-E-SRC. * mh-utils.el (mh-prompt-for-folder): Add speedbar hook if speedbar is being used. * mh-funcs.el (mh-kill-folder): Add speedbar hook if speedbar is being used. * mh-e.el (speedbar-autoloads): Autoload speedbar initialization functions so that speedbar can find them. 2002-06-25 Satyaki Das * mh-index.el (mh-grep-execute-search, mh-grep-next-result): Allow grep to be used to search mail. (mh-index-font-lock-keywords): Modified to avoid bug when using lazy font-lock. * mh-e.el (mh-delete-msg, mh-refile-msg): Modify so that if no undeleted (or unrefiled) message exists in the current movement direction then try to find an undeleted (or unrefiled) message in the opposite direction instead. (mh-next-undeleted-msg): Added a new optional argument. If non-nil search for undeleted message backwards if none exists in the forward direction. (mh-previous-undeleted-msg): Added an optional argument. If non-nil search for undeleted message in the forward direction if none exists in the backward direction. (mh-next-msg): Optional argument to change direction if undeleted messages are not found in the current direction. * mh-index.el (mh-cmd-note): Use mh-cmd-note instead of hardcoding the index field size to 4. * mh-utils.el (mh-show-addr, mh-show-xface): New functions added to do xface display and goto-addr interface to allow reuse by the mime display code. (mh-show-mode): Use mh-show-addr and mh-show-xface. Only add mh-mime-cleanup to kill-buffer-hook if mime decoding is enabled. (mh-modify): Use mh-letter-mode instead of mh-show-mode when editing messages. * mh-mime.el (mh-mm-inline-message): Arrange for xface and highlighting to work in forwarded messages. 2002-06-23 Peter S Galbraith * mh-comp.el (mh-yank-from-start-of-msg): Add 'attribution' option to add an attribution line in mh-yank-cur-msg. (mh-extract-from-attribution-verb): Verb to use for attribution when a message is yanked by mh-yank-cur-msg. Provides a method for setting a different language. (mh-yank-cur-msg): Add support for 'attribution' option. (mh-extract-from-attribution): Function to get the attribution line, or the sender from the From: line in the current show buffer. 2002-06-20 Satyaki Das * mh-index.el (mh-index-show): mh-display-msg was not being called in the show buffer. This causes weird results on some mime messages. * mh-mime.el (gnus-newsgroup-charset): Defvar to avoid error in pgp messages if gnus hasn't been used yet. * mh-comp.el (mh-letter-mode-map): Typo fix. 2002-06-19 Satyaki Das * mh-mime.el (mh-mml-secure-message-encrypt-pgpmime): Typo fix. (compiler-warnings): Add autoloads to remove compiler warnings. * mh-index.el (autoload-fixes): Fix autoload forms. 2002-06-18 Satyaki Das * mh-comp.el (mh-letter-mode-map): Change binding of "\C-c\C-ma" to mh-compose-insertion. Remove duplicate binding for "C-c\C-mf". (compiler-warnings): Add defvar to remove compiler-warning. 2002-06-18 Peter S Galbraith * mh-comp.el (mh-letter-menu): Conditionalize GPG function on mh-gnus-pgp-support-p. * mh-mime.el (mh-mml-forward-message): s/subseq/substring/. (mh-compose-forward): cut&paste typo: s/messages/message/. (mml-minibuffer-read-file): autoload added. (mml-minibuffer-read-description): autoload added. (mml-insert-empty-tag): autoload added. (mh-mml-secure-message-sign-pgpmime): Check mh-gnus-pgp-support-p. (mh-mml-secure-message-encrypt-pgpmime): Check mh-gnus-pgp-support-p. 2002-06-17 Peter S Galbraith * mh-utils.el (mh-show-use-xface): Check for availability of `uncompface' executable on system. * mh-mime.el (mh-compose-forward): New front end for both mh-mml-forward-message and mh-mhn-compose-forw. (mh-compose-insertion): New front end for both mh-mml-attach-file and mh-mhn-compose-insertion. (mh-mml-to-mime): New function. Compose mime message from mml directives. (mh-mml-forward-message): New function. Forward a message as attachment. (mh-mml-attach-file): New function. Attach a file to the outgoing MIME message. (mh-mml-compose-insert-p): New variable. Buffer-local variable to know whether MIME insertion was done. Triggers an automatic call to `mh-mml-to-mime' in `mh-send-letter'. (mh-mml-secure-message-sign-pgpmime): New function. Front end to mml-secure-message-sign-pgpmime. (mh-mml-secure-message-encrypt-pgpmime): New function. Front end to mml-secure-message-encrypt-pgpmime. * mh-comp.el (mh-send-letter): automatic call to `mh-mml-to-mime' if mh-mml-compose-insert-p is set. (mh-letter-mode-map): Add keys for new mh-mime functions above. * mh-comp.el: Added autoloads for new mh-mime functions above. 2002-06-17 Peter S Galbraith * mh-utils.el (mh-show-use-xface): new defcustom to determine whether to call external package x-face to display the x-face. (mh-invisible-headers-show-xface): variable now defaults to value of mh-show-use-xface. (mh-show-mode): When mh-show-use-xface is t, invoke external package x-face to display the x-face. 2002-06-15 Satyaki Das * mh-e.el (mh-prev-button): New interactive function which moves point to the previous mime button in the show buffer. (mh-folder-mode-map): Bind M-TAB and K M-TAB to mh-prev-button. * mh-utils.el (mh-show-mode-map): Bind M-TAB and K M-TAB to call mh-letter-prev-button (which is analogous to mh-prev-button). (mh-gnus-pgp-support-p): New global variable to replace the variable mh-recent-gnus-p. The name better describes what it is used for. * mh-mime.el (mh-mime-display-part, mh-mime-display-single): Use mh-gnus-pgp-support-p instead of mh-recent-gnus-p. 2002-06-12 Satyaki Das * mh-mime.el (mh-display-buttons-for-inline-parts): New customizable variable. When non-nil inline parts have are displayed with a button (that is initially expanded). (mh-maybe-insert-newline): The function has been removed. (mh-mime-display-single): Add code to display buttons for inline parts. Reduce the insertion of extra newlines between inline parts and also for pgp signature parts. (mh-mm-display-part): The function has been rewritten and cleaned up. There was a bug which could change the show buffer if the user pressed C-g while a mime part was being displayed has been fixed. (mh-press-button, mh-push-button): Use unwind-protect to make sure that set-buffer-modified-p is always called after mime display. (mh-mime-inline-part): The behavior of the function has been changed so that it toggles the display of the raw bytes. (mh-mime-display-security): Remove the display of too many newlines. (documentation): Remove most check-doc warnings. * mh-comp.el (mh-filter-out-non-text): Updated since whitespace added around mime buttons have changed. 2002-06-10 Satyaki Das * mh-index.el (mh-index-last-search, mh-index-search): The default prompt in mh-index-search has been removed since currently there is no good way of reading "+" with mh-prompt-for-folder. (mh-index-folder-mode, mh-index-show-mode): New major modes derived from mh-folder-mode and mh-show-mode respectively. They use a restricted keymap compared to the parent modes. (mh-index-folder-face): New customizable face to display folder names in the index buffer. (documentation): Change two spaces after period back to one. 2002-06-08 Satyaki Das * mh-e.el (mh-folder-toggle-mime-part): New interactive function to control mime display from folder buffer. (mh-folder-inline-mime-part): New interactive function to inline raw mime part from folder buffer. (mh-folder-save-mime-part): New interactive function to save mime part from folder buffer. (mh-folder-mode-map): Add keybindings for "K v", "K o", "K i" and "K \t" to mh-folder-mode-map. (mh-goto-next-button): Modified to allow searching for next button that satisfies some condition. (mh-folder-mime-action): Support function for mh-folder-save-mime-part, mh-folder-inline-mime-part and mh-folder-toggle-mime-part. * mh-utils.el (mh-show-mode-map): Modify keymap to add appropriate bindings for "K v", "K o", "K i" and "K \t". * mh-index.el (documentation): Fix docs according to checkdoc format. 2002-06-07 Satyaki Das * mh-seq.el, mh-funcs.el (Compiler): Remove (require 'view) and instead add defvar for view-exit-action. 2002-06-06 Satyaki Das * mh-comp.el (mh-insert-x-face): If transient-mark-mode is enabled the call to mark returns error. So avoid using mark. * mh-index.el: Support for new interactive function mh-index-search. * mh-e.el (mh-next-button, mh-goto-next-button): Refactor mh-next-button so that the code may be reused by mh-index.el. (mh-folder-map): Add key "F i" to call mh-index-search. * mh-utils.el (mh-recent-gnus-p): Fix documentation. (mh-msg-folder, mh-display-msg): The new function mh-msg-folder maps a MH folder name to the buffer displaying it. In normal operation the two names are identical but they are different in a folder buffer generated by index search. Minor modification to mh-display-msg to use mh-msg-folder to enable mh-index-search to reuse code. (mh-show-mode-map): Add key "F i" to call mh-index-search. * Makefile: Add mh-index.el 2002-06-05 Peter S Galbraith * mh-e.el (mh-folder-message-menu): Add an entry for mh-modify. 2002-05-31 Satyaki Das * mh-utils.el (mh-decode-quoted-printable): Only decode if the whole message is encoded. So restrict the search for the content-transfer-encoding header to the headers of the message itself. * mh-mime.el (mh-mime-display-alternative): Make sure that point is moved after mm-display-part is called. 2002-05-29 Satyaki Das * mh-mime.el (mh-mime-display-single): Fix the logic that determines when an attachment is buttonized. For inline parts that can't be displayed a button is now created. 2002-05-29 Satyaki Das * mh-e.el (mh-regenerate-headers): Fix an error in which the mh-mode-line-annotation was not being set properly. * mh-mime.el, mh-utils.el (compilation): Macros mh-require and mh-autoload are used to make sure that emacs20 doesn't croak when it tries to load non-existent mm-* files. (mh-decode-mime): Make it default to nil for Emacs major version below 21. 2002-05-28 Satyaki Das * mh-e.el (mh-regenerate-headers): Generalize the function to handle multiple ranges. 2002-05-25 Satyaki Das * compilation: Reduce use of eval-when-compile so that load-path is not changed if lisp files are loaded without compilation. Small changes were made to Makefile, mh-comp.el mh-e.el, mh-funcs.el, mh-seq.el, mh-utils.el * mh-e.el (mh-next-button, mh-folder-mode-map): New interactive function to advance point to next MIME button. It is bound to TAB. * mh-utils.el (mh-letter-next-button, mh-show-mode-map): New interactive function mh-letter-next-button has been added to advance point to the next MIME button. It is bound to TAB. * mh-mime.el (comments): Added some comments. 2002-05-24 Satyaki Das * mh-mime.el (compilation): Replace (eval-when-compile ...) by (eval-when (compile) ...) to remove a bug when mh-e is loaded without compilation. 2002-05-23 Satyaki Das * mh-comp.el (compilation): Some code was rearranged to avoid compiler warnings. * mh-e.el (compilation): Code rearrangement and extra autoloads to remove compiler warnings (mh-quit): Add call to mh-destroy-postponed-handles to remove handles that are associated with external viewers. Also fixed a bug that I accidentally introduced by adding an extra line when cut and pasting my changes. * mh-func.el (compilation): Code rearrangement to remove compiler warnings. * mh-mime.el (compilation): Code rearrangement to remove compiler warnings. (mh-defun-compat): New macro to define to useful functions that aren't present present in old Gnus. (mh-destroy-postponed-handles): New function to cleanup handles that are associated with external viewers. (mh-handle-set-external-undisplayer): New function to replace mm-handle-set-external-undisplayer. It associates handles for external viewers with the folder buffer. These are released when the user quits the folder. (mh-mime-display, mh-press-button, mh-push-button): Hook in mh-handle-set-external-undisplayer. (mh-maybe-insert-newline): New function to avoid inserting too many newlines between mime parts. (mh-mm-display-part): Workaround for Gnus bug which causes new lines to be inserted when images are shown inline. (mh-mime-display-security): Cut down on newlines inserted. * mh-pick.el (compilation): Code rearrangement to remove compiler warnings. * mh-seq.el (compilation): Code rearrangement to remove compiler warnings. (comments): Remove @SD from comments. * mh-utils.el (compilation): Slight code rearrangement. (mh-defun-show-buffer): Fix documentation so that the first line is not too long as was the case earlier. Use mh-previous-window-config to remember where the cursor should return functions like mh-reply. (mh-display-msg): Initialize handles data-structure for the folder buffer so that postponed handles can be added to it. (mh-add-msgs-to-seq): Always keep messages in the sequences sorted. This removes some unexpected behavior when working with sequences that go out of sync with the corresponding MH sequences. (mh-canonicalize-sequence): New function to sort and remove duplicates from mh-e sequence. 2002-05-21 Satyaki Das * mh-utils.el (require): Load mm-decode.el here so that mm-inline-media-tests is properly initialized. * mh-comp.el (mh-yank-cur-msg): Don't try to remove the displayed mime parts when yanking the message. This also fixes the problem of regions not being respected during the yank. 2002-05-20 Satyaki Das * mh-utils.el (compiler-warnings): Some code was rearranged to remove all compiler warnings. (mh-decode-mime): New defcustom to control whether mime attachments are shown using Gnus. (mh-globals-hash): New global variable which maps a given buffer to the corresponding mime data structures. (mh-recent-gnus-p): New global variable which checks if Gnus is recent enough so that PGP/GPG encrypted messages can be handled. (mh-mm-inline-media-tests): Tests to determine whether a mime part can be shown inline. (mh-gnus-article-highlight-citation): Shadow the Gnus function, gnus-article-add-button before gnus-article-highlight-citation is called. This prevents the insertion of useless buttons in the message. (mh-show-mode): Don't set font-lock-support-mode to nil. Modify kill-buffer-hook to call mh-mime-cleanup. (mh-modify): Only the edit buffer is shown. (mh-display-msg): Add call to mh-mime-display, mh-display-smileys, mh-display-emphasis when mh-decode-mime is non-nil. * mh-mime.el (mh-buffer-data): New structure to keep track of per-buffer mime information. (compiler-warnings): Some code was rearranged to get rid of all compiler warnings. (mh-graphical-smileys-p): New defcustom which controls whether graphical smileys are shown. (mh-graphical-emphasis-p): New defcustom for graphical emphasis. (mh-max-inline-image-width, mh-max-inline-image-height): New defcustoms for inlining image. (gnus-local-map-property, mm-merge-handles): Copy utility functions for use with version of Gnus that ships with Emacs21.1. (mh-mime-cleanup): New function to free mime data-structures. (mh-add-missing-mime-version-header): New function to add missing Mime-Version header if a Content-Type header exists. (mh-display-smileys): New function to show graphical smileys. (mh-display-emphasis): New function to show graphical emphasis. (new-globals): New variables mh-mime-button-* and mh-mime-security-* were added to control mime buttons. (mh-mime-display): New function to display mime messages. The functions mh-mime-display-part, mh-mime-display-alternative, mh-mime-display-mixed, mh-mime-part-index, mh-small-image-p, mh-mime-display-single, mh-insert-mime-button, mh-mm-display-part, mh-press-button, mh-push-button, mh-mime-save-part, mh-mime-inline-part, mh-widget-press-button, mh-mm-inline-message, mh-mime-display-security, mh-mime-security-show-details, mh-mime-security-press-button and mh-insert-mime-security-button were added to support mh-mime-display. * mh-e.el (mh-header-display): Bind mh-decode-mime to nil when mh-show-msg is called, so that mime isn't decoded when headers are displayed. (mh-quit): The show buffer is killed instead of invalidating and burying it. * mh-comp.el (mh-yank-cur-msg): Filter out the mime buttons from the yanked message. (mh-filter-out-non-text): New function to filter out attachments from message being yanked. 2002-05-20 Bill Wohler * mh-utils.el (mh-invisible-headers-show-xface): First sentence of docstring was not entirely on first line so was truncated in customize and help buffers. Reworded so first sentence could fit within 80 columns per checkdoc recommendation. (mh-defun-show-buffer): Reworded per checkdoc recommendations. Removed @SD while I was in there. 2002-05-18 Satyaki Das * mh-seq.el (mh-narrow-to-seq): This function now removes the current message notation in the folder. Otherwise, two current message notations may be present after mh-widen is called. Also mh-copy-seq-to-eob is called instead of mh-copy-seq-to-point since the latter has a bug. (mh-copy-seq-to-point): This function has a tricky problem. It calls mh-map-to-seq-msgs which uses mh-goto-msg. mh-goto-msg assumes that the folder is sorted (since it uses binary search). The assumption isn't true, so it may not copy all the messages. Since this function is not used any more it has been removed. (mh-copy-seq-to-eob): This function is a specialized (and hopefully correct) replacement for mh-copy-seq-to-point. 2002-05-17 Satyaki Das * mh-utils.el (mh-gnus-article-highlight-citation): Workaround for problem caused by low value of recursive-load-depth-limit in Emacs21.1 and CVS version of Gnus. (mh-show-mode-map): New keymap variable to facilitate use of summary commands from the show buffer. (mh-show-folder-buffer): New local variable which keeps track of the folder-buffer corresponding to the message being shown. (mh-defun-show-buffer): New macro to convert interactive functions callable in the summary buffer to interactive functions callable in the show buffer. (mh-show-mode): Make buffer read-only and use mh-show-mode-map as keymap (closes SF #527946). (mh-modify): New interactive function to edit a message in-place. * mh-e.el (mh-goto-cur-msg): Add an optional argument, minimal-changes-p. If non-nil, the function will just change the point to current message and do not change folder display. (mh-folder-mode-map): Make "M" call mh-modify. 2002-05-07 Peter S Galbraith * mh-utils.el (mh-invisible-headers-show-xface): New defcustom variable. If non-nil, the X-Face header line will be excluded from the variable `mh-invisible-headers'. Set this when using a package such as x-face-el to display X-Face icons in mh-show-mode. This variable's setting will eventually be set automatically when mh-e does its own X-Face decoding (or this variable will be replaced by one telling mh-e to decode the X-Face). We may not ship the next release with this variable. 2002-05-07 Peter S Galbraith * mh-comp.el (mh-x-face-file): New defcustom variable. File name containing the encoded X-Face string to insert in outgoing mail. (mh-insert-x-face): New function. Appends an X-Face field to the header, but only if it doesn't already exist and if 'mh-x-face-file' is non-nil and points to an existing file. (mh-send-letter): Invoke mh-insert-x-face. 2002-04-29 Mike Kupfer * mh-e.el (mh-delete-msg, mh-refile-msg, mh-undo): Check whether XEmacs region is actually active (needed at least for 21.1). [Patch committed by psg] 2002-04-29 Mike Kupfer * mh-utils.el (mh-prompt-for-folder): Remove "default" argument from completing-read as XEmacs-21.1 doesn't have it (21.4 does however) and using the argument adds no functionality. [Patch committed by psg] 2002-04-11 Peter S Galbraith * mh-e.el (mh-delete-msg, mh-refile-msg, mh-undo): Add support for XEmacs to act on selected region when active. 2002-04-10 Peter S Galbraith * mh-e.el (mh-delete-msg, mh-refile-msg, mh-undo): XEmacs fix; Add check to see if mark-active is bound, because Mandrake Linux include XEmacs initialization code that binds transient-mark-mode. This fix gets around a problem in Mandrake only. It wasn't a problem on XEmacs generally. Fixes SF #541915. 2002-04-08 Bill Wohler Released mh-e version 6.1. * mh-e.el (mh-folder-unseen-seq-name): Use "mhparam -component Unseen-Sequence" command and "Unseen-Sequence: \\(.*\\)$" regexp to increase robustness. (mh-folder-unseen-seq-list): Use `expand-file-name' as `mh-expand-file-name' isn't needed and the former saves function call. (Version, mh-version): Updated for release 6.1. 2002-04-08 Peter S Galbraith * mh-e.el (mh-folder-unseen-seq-list): Specify mh-progs path in call to mark command. Fixes a bug in which unseen messages weren't highlighted if "mark" wasn't in the path. 2002-04-07 Bill Wohler * MH-E-NEWS: Updated for release 6.1. * README: Updated for release 6.1. Updated verbiage about reading MH-E-NEWS. * mh-comp.el, mh-e.el, mh-funcs.el, mh-mime.el, mh-seq.el, mh-utils.el, mh-xemacs-compat.el: Updated copyright in files modified this year. * mh-xemacs-compat.el: Put Author field back in, but set to FSF. * mh-comp.el, mh-funcs.el, mh-mime.el, mh-seq.el, mh-utils.el: Fixed all checkdoc errors, except for no documentation, and documentation in comments. Also removed the- prefix from certain local variables. * mh-e.el: Fixed all checkdoc errors, except for no documentation, and documentation in comments. Also removed the- prefix from certain local variables. (mh-folder-unseen-seq-name): Refactored to make default sequence name more explicit and to handle undefined Unseen-Sequence MH profile entry better. 2002-04-02 Peter S Galbraith * mh-e.el: 'defvar mh-folder-unseen-seq-name' called a function to set it's value, and this happens also on byte-compilation (where it can fail if the user's MH environment is not setup correctly). I now set the value of mh-folder-unseen-seq-name at runtime when I first need it. This should fix Debian bugs http://bugs.debian.org/140232 and http://bugs.debian.org/140817 2002-03-25 Peter S Galbraith * mh-utils.el: remove "(require 'mh-e)" since mh-utils.el should be at the bottom of the dependency tree. * mh-e.el (mh-folder-unseen-seq-name): Make sure mh-progs is set and use it as path to mhparam command in call-process. 2002-01-23 Peter S Galbraith * mh-e.el (mh-folder-font-lock-keywords): Add call to mh-folder-font-lock-unseen to fontify unseen messages in bold. (mh-folder-unseen-seq-name): Provide name of unseen sequence from mhparam. Used as default for variable of same name. (mh-folder-unseen-seq-list): Returns a list of unseen messages numbers for current folder. (mh-folder-unseen-seq-cache): Cache variable to hold list of unseen message numbers while font-lock iterates. This variable is buffer-local. (mh-folder-font-lock-unseen): Returns unseen message lines to font-lock one by one. 2002-01-15 Peter S Galbraith * mh-comp.el (mh-insert-prefix-string): Wrap a "(let ((zmacs-regions nil))" around (mark) so it works in XEmacs. Bug reported and fix suggested by Will Partain Indeed, this is how it appears in XEmacs-21's mh-comp.el. 2001-12-16 Jeffrey C Honig * mh-comp.el (mh-forward): Move the assignment to `fwd-msg-file' to before the assignment to `draft' as the later changes buffers and invalidates `mh-seq-list' (which is used in a function called by (mh-seq-to-msgs)). Resolves SF #489448. * mh-utils.el: Add defcustoms for `mh-temp-folders-buffer' and `mh-temp-sequences-buffer'. * mh-e.el (mh-quit): If they exist, kill 'mh-temp-buffer, 'mh-temp-folders-buffer and 'mh-temp-sequences-buffer when quitting. * mh-funcs.el (mh-list-folders): Use `mh-temp-folders-buffer' (a defcustom initialized to "*Folders*") for folder listing. Put into view mode and set it up to kill the buffer when exiting view mode. * mh-seq.el (mh-list-sequences): Use `mh-temp-sequences-buffer' (a defcustom initialized to "*Sequences") for sequences listing. Put into view mode and set it up to kill the buffer when exiting view mode. 2001-12-16 Bill Wohler Released mh-e version 6.0. * MH-E-NEWS: Be a little more specific about incompatible changes. Added info about outdated manual. Removed variables in mh-scan regexp table that did not exist in 5.0.2. Added helpful documentation about finding relevant variables containing regexps to mh-scan-format-file's description. * mh-e.el (mh-scan-format-file): Added information about getting a list of regexp variables that you'll need to change if you customize your scan's output. (mh-folder-mode): Added documentation about `mh-scan-format-file' for those users who modify their scan formats. * README: New file. Describes packages and provides simple installation instructions. * Makefile (clean, dist, install-emacs): Replaced $(RM) with rm -rf (closes SF #488661). 2001-12-14 Bill Wohler Released mh-e version 5.0.93. * Makefile (MH-E-SRC): Added mh-xemacs-compat.el. (MH-E-IMG): Added .pbm images for all. Removed mail_ prefix from all. (MH-E-IMG2): New variable to hold images in mail sub-directory. (dist): Updated target to make mail sub-directory and copy MH-E-IMG2 images there. * mh-xemacs-compat.el: Modified docs per GNU coding conventions. * mh-e.el: Reorganized variables having to do with the scan line. Moved some random variables that were interspersed out of the middle. Moved `mh-scan-format-file' first and let the variables flow from there. As the number of variables increases, it is becoming important to organize the mh-e namespace. Several variables having to do with the format of scan lines were renamed, as follows: (mh-good-msg-regexp): Renamed to mh-scan-good-msg-regexp. (mh-deleted-msg-regexp): Renamed to mh-scan-deleted-msg-regexp. (mh-refiled-msg-regexp): Renamed to mh-scan-refiled-msg-regexp. (mh-valid-scan-line): Renamed to mh-scan-valid-regexp. (mh-cur-msg-number-regexp): Renamed to mh-scan-cur-msg-number-regexp. (mh-cur-msg-line-regexp): Renamed to mh-scan-cur-msg-regexp. (mh-scan-rcpt-addr-regexp): Renamed to mh-scan-rcpt-regexp. (mh-scan.font-lock-regexp): Renamed to mh-scan-format-regexp. (mh-folder-scan-font-lock-face): Renamed to mh-folder-scan-format-face. (mh-folder-cur-msg-line-face): Renamed to mh-folder-cur-msg-face). 2001-12-13 Bill Wohler * mh-utils.el (mh-msg-number-regexp): Renamed to mh-scan-msg-number-regexp. (mh-msg-search-regexp): Renamed to mh-scan-msg-search-regexp. * Corrected typos, quoted variables in doc strings, and made minor wording changes in docs. 2001-12-13 Peter S Galbraith * mh-xemacs-compat.el: defalias 'match-string-no-properties to 'match-string for XEmacs. I've seen a better function for this that actually removes text properties, but this will do for now. * mh-utils.el (mh-decode-quoted-printable): deactivate-mark not bound in XEmacs. * mh-xemacs-compat.el: GNU Emacs Functions needed by XEmacs. New file. * mh-e.el: (require 'mh-xemacs-compat) when running XEmacs. 2001-12-12 Peter S Galbraith * mh-comp.el (mh-send-letter): function local-variable-p needs two arguments in XEmacs. (mh-send-letter): sendmail-coding-system not bound in XEmacs. (mh-send-letter): default-buffer-file-coding-system not bound in Xemacs. * mh-e.el (mh-delete-msg, mh-refile-msg, mh-undo): transient-mark-mode not bound in XEmacs. The feature of operations made on all messages in the selected range when transient-mark-mode is on doesn't work in XEmacs. * mh-e.el, mh-utils.el: Conditionalize calls to 'add-to-list 'facemenu-unlisted-faces for XEmacs. 2001-12-11 Jeffrey C Honig * mh-e.el (mh-scan-format): Add `mh-scan-format-file' variable to specify the scan format string or file to use. Define formats for MH and nmh that are compatible with the standard format, but provide hints for font-lock. Define (mh-scan-format) for use by (mh-regenerate-headers) and (mh-get-new-mail) to specify the args necessary to inform the scan program which scan format string or file to use. 2001-12-07 Peter S Galbraith * mh-e.el (scan.font-lock): New format file documented in comments. (mh-scan.font-lock-regexp): Adapted to new format. (mh-folder-font-lock-keywords): Use new format. * mh-e.el (page-down.xpm): Icon renamed from nextpage. * mh-utils.el (mh-decode-quoted-printable): Bug fix. Better check on what actually is a quoted-printable attachment. 2001-12-06 Eric Ding * mh-mime.el (mh-mhn-compose-insertion, mh-mhn-compose-anon-ftp): require mailcap.el here rather than using autoload at top of mh-mime. (mh-file-mime-type): get rid of unused variables (why were they there to begin with?) 2001-12-06 Peter S Galbraith * mh-e.el (mh-cur-msg-number-regexp, mh-cur-msg-line-regexp): mh-cur-scan-msg-regexp splits into these two variables. The whole-line fontification is disabled, but easily restored by a user (although it could be a defcustom with choices DISABLED or the correct regexp?) (mh-folder-cur-msg-line-face): mh-folder-current-msg-face renamed to this. (mh-folder-cur-msg-number-face): mh-folder-current-face renamed to this. * cabinet.xpm: Revert to rescan icon name. * mh-e.el (mh-folder-tool-bar-map): s/cabinet/rescan/ * mh-e.el (mh-folder-font-lock-keywords): Reorder and tweak such that current message line highlight doesn't mess up other highlights. 2001-12-05 Eric Ding * mh-utils.el (mh-show-from-face): Change mh-show-from-face to cyan on dark backgrounds; through a series of changes, it had become the same color as mh-show-subject-face! 2001-12-05 Bill Wohler * mh-e.el, mh-utils.el: Fixed typos in face definitions, and made a couple of small doc string tweaks while I was in there. Peter, if you don't agree, let me know and I'll back them out. I thought the "mh-e" in the text was redundant since the variables start with "mh"; I was also thinking ahead to how the documentation may read. 2001-12-05 Peter S Galbraith * mh-e.el (mh-cur-scan-msg-regexp): Match 0 is the whole line. (mh-folder-current-msg-face): New face with only a background settings, used in font-lock for the current message. (mh-folder-font-lock-keywords): Use mh-folder-current-msg-face for mh-cur-scan-msg-regexp. * mh-utils.el (mh-show-from-face): Use red3 instead of red for light backgrounds. It's not as bright on the eyes. (mh-show-subject-face): copy from mh-folder-subject-face instead. Makes the look consistent with folder-mode. * mh-e.el (mh-folder-subject-face): Moved to mh-utils since we need it to copy to mh-show-subject-face. 2001-12-05 Bill Wohler * mh-e.el (mh-folder-mode-map): Moved `mh-extract-rejected-mail' from "a" to "E". Better mnemonic, nicer to folks used to using a for `mh-reply'. 2001-12-04 Bill Wohler * mh-e.el (mh-folder-map): Added "S" for `mh-sort-folder'. 2001-12-04 Peter S Galbraith * mh-e.el (mh-folder-subject-face et al.): Yet another attempt at colours for folder-mode. Still themed, but fewer and darker colours (Blame Eric this time!). I'll get to underlining tomorrow night. * mh-e.el (mh-folder-tool-bar-map): Renamed all icons so they don't have the word mail in them. Also generated a pbm format of each icon for users without XPM support conpiled into Emacs. 2001-12-04 Eric Ding * mh-utils.el (mh-show-font-lock-keywords): Use mh-header-subject-font-lock instead of regexp for subject headers, which may go multiple lines. (mh-header-subject-font-lock): New function. Fix typos (hightlight -> highlight). 2001-12-04 Eric Ding * mh-e.el: changes to face colors on dark backgrounds. (mh-folder-followup-face): change to LightGoldenRod. (mh-folder-date-face): change to snow3. (mh-folder-msg-number-face): change to snow4. 2001-12-04 Bill Wohler Released mh-e version 5.0.92. * mh-utils.el (gnus-cite-face-list) (mh-gnus-article-highlight-citation): Don't autoload. Revert to requiring in `mh-gnus-article-highlight-citation' as before. With the autoloads, if you ran mh-e before gnus, you'd get an undefined gnus variable when viewing an article in gnus. Go figure. 2001-12-03 Bill Wohler Released mh-e version 5.0.91. * MH-E-NEWS: Removed info about bumping up `max-specpdl-size' now that workaround has been implemented. * Makefile (MH-E-OBJ): New variable to hold .elc files. (all): Just compile. (clean): New target that blows away MH-E-OBJ. (dist): Added $(MH-E-OBJ) to tarball. Attempt to quiet compilation errors to a dull roar. * mh-e.el: Require easymenu, added autoload of info. (mh-smail, mh-smail-other-window): Comment says these were needed by Emacs 18. Out! * mh-utils.el: Don't require sendmail, but require mh-e. Moved autoloads to top of file, and autoload gnus-cite and sendmail too. * mh-pick.el: Require easymenu. Remove cond on `easy-menu-define'--it exists. * mh-mime.el: Autoload mailcap. * mh-comp.el: Require mh-e and easymenu, moved autoloads to top of file. * Makefile: (EMACS): New constant to hold emacs calling sequence. (install): Renamed to install-emacs. (compile): New target to compile all files. (dist): Make dependent on compile. (import): Renamed to import-emacs. (%.elc): New implicit rule to compile elisp files. * mh-e.el (mh-thread-map): Added "Td" for mh-delete-subject-thread. 2001-12-03 Peter S Galbraith * mh-e.el (mh-folder-tool-bar-map): Change tooltip for exec icon. * mh-e.el (mh-folder-subject-face): Change to IndianRed1. (mh-folder-followup-face): Change to IndianRed. (mh-folder-deleted-face): Use sedate face instead of bright one. 2001-12-03 Bill Wohler * mh-utils.el (mh-invisible-headers): Increase size of `max-specpdl-size' locally to work around insufficient default. (mh-invisible-headers): Added X-Info and X-VSMLoop (NTMail). 2001-12-03 Jeffrey C Honig * mh-utils.el (mh-find-progs): Searches should not stop if the strings are not found, there is error detection at the end of the routine (closes SF #488231). 2001-12-02 Bill Wohler * MH-E-NEWS: Added info about bumping up `max-specpdl-size'. * Makefile (MH-E-IMG): New variable that contains images used by mh-e. Add these files to release. * MH-E-NEWS: Second draft of mh-e 6.0 (was 5.1) release notes. * mh-e.el (mh-folder-updated-hook): Reworded to avoid ambiguity. Is the hook called when you type `d' or when you type `x'? (mh-unseen-updated-hook): Reworded to be consistent with `mh-folder-updated-hook.' * mh-utils.el (mh-recenter): Accepted Gerd's change which is evaluated at compile time. 2001-12-02 Bill Wohler * mh-e.el Major, major keymap changes. The specific changes are listed below, but view the sources, or use "C-h m" in MH Folder mode for the complete list. Use of sub-keymaps inspired by gnus. The changes tripped me up at first too, but after about 5 minutes of shock (which is to be expected, I've been using the old keybindings for 16 years), I honestly found the new bindings to be nice indeed. It will also provide flexibility to allow for future functionality. I hate to do this on the eve of the beta release, but you asked for it! It's likely I'll have to pull an Eric and back this change out, but if we can live with pink subjects, this can't be so bad ;-). Question: will the users revolt? If they do, I suppose we can release 6.0.1 the next day ;-). (mh-folder-map, mh-sequence-map, mh-extract-map, mh-digest-map): New keymaps which start with F, S, X, and D, respectively. The mhstore commands can go in the mh-extract-map eventually. (mh-thread-map): Renamed from mh-folder-thread-map. Keymap changes and rationale. The sub-keymaps allowed some consistency (e.g., esp. with l(ist) and k(ill). e Deleted. Already have x. Now used by mh-edit-again. a Deleted. Already have r. Now used by mh-extract-rej.. j Deleted. Already have g. M-a -> e Better mnemonic. Matches rmail. Frees movement cmd. M-e -> a Try `a'gain! M-f -> Fv Frees movement command M-f -> Ff Alias (keep?) M-f -> Fo Alias (keep?) M-k -> Fk No reason but to keep with folder commands M-l -> Fl No reason but to keep with folder commands M-p -> Fp No reason but to keep with folder commands M-r -> Fr Frees movement command M-s -> Fs No reason but to keep with folder commands M-u -> Fu No reason but to keep with folder commands M-% -> Sd Better mnemonic M-# -> Sk Better mnemonic M-q -> Sl Better mnemonic C-xn -> Sn Frees up standard key binding % -> Sp Better mnemonic for putting a message in a sequence ? -> Ss Shows sequences that message is in C-xw -> Sw Frees up standard key binding M-n -> Xs Better mnemonic (shar) M-n -> Xu Better mnemonic (uuencode) M-SPC -> DSPC Frees mark command M-\177 -> D\177 No reason but to keep with digest commands M-b -> Db Frees movement command 2001-12-01 Bill Wohler * mh-e.el: Use gnus style of keymaps. Now requires gnus-util. (mh-folder-thread-map): New map, created by gnus-define-keys. Reached when typing T in mh-folder-mode-map. Moved threading functions to this new keymap so we can use dired again. (mh-folder-mode-map): Defined by gnus-define-keys. Otherwise than the new threading functions, no changes to the UI were made at this point--saving that for the next check-in. * mh-pick.el (mh-pick-mode-map): Use gnus-define-keys. Now requires gnus-util. * mh-comp.el (mh-letter-mode-map): Use gnus-define-keys. Now requires gnus-util. 2001-12-01 Jeffrey C Honig * mh-e.el: Update the documentation for the regexps used by `mh-folder-font-lock-keywords' to specify how many parethesized expressions they are expected to have and what those expressions are expected to match. 2001-12-01 Bill Wohler * mh-e.el (mh-folder-mode): Removed iteration of key bindings, \\{mh-folder-mode-map} suffices. Removed variable documentation also as this is already out of date and a maintenance hassle. Reference new mh customization group instead. * mh-comp.el (mh-letter-mode): Ditto. Also added new information about MIME directives getting processed automatically if inserted via mh-e commands. * mh-pick.el (mh-pick-mode): Edited documentation so it reads like the other modes. * mh-e.el (mh-compat-quit): Deleted obsolete and unused function. Comment in this function said that `b' shouldn't be used for burst-digest, as it is used for `back' in info, less, and rn. But what does `back' mean in MH Folder? I suppose if you visit a folder, you would go `back' to the original folder. Hmmm, I guess we'll leave the `b' binding alone for now. * mh-utils.el: Moved some of the variable comments to the first column so they wouldn't wrap in such an ugly fashion. (mh-showing-mode): Renamed variable and function from mh-showing to conform with minor mode conventions. Added optional arg to function so it would behave like a normal minor mode: no or nil arg toggles mode, 0 arg turns off, non-nil turns on. It also turns out that desktop-create-buffer would barf when recreating mh-e buffers because it was calling mh-show with an arg. (mh-show-mode): Use define-derived-mode to simplify definition a *lot*. (mh-set-mode-name): Deprecated by use of define-derived-mode. Removed. * mh-pick.el (mh-pick-mode): Use define-derived-mode to simplify definition a *lot*. * mh-e.el (mh-scan-prog): Removed message about "Buffer local" as this message will appear in a future version of Emacs. (mh-inc-folder): mh-showing renamed to mh-show-mode and made a real minor mode. (mh-folder-mode): Use define-derived-mode to simplify definition a *lot*. * import-emacs (release): Change `(none)' to `mainline' so import doesn't choke after running `cvs up -A' on Emacs. (COPYING): Moved from $EMACS_HOME/etc to $EMACS_HOME. (cvs update): Whoops! Forgot the second join (-jemacs). make import works fine again. 2001-11-30 Peter S Galbraith * mh-e.el (mh-folder-font-lock-keywords): Change order of font-lock patterns such that subject body text doesn't get date fontification. * mh-e.el (mh-scan-subject-regexp): Bug fix. Remove a dot. scan.font-lock users have to setq it separately. 2001-11-30 Eric Ding * mh-utils.el (mh-clean-msg-header): Go back to using mh-delete-line. Using invisible text property is nicer in some ways, but winds up with somewhat mysterious behavior should user kill/yank stuff from the header (i.e., text gets yanked invisibly and won't be seen by user until file is reloaded). 2001-11-29 Bill Wohler * mh-e.el (mh-page-msg): Use mh-next-direction to page in the right direction. 2001-11-29 Jeffrey C Honig * mh-e.el (mh-scan-folder): Fix logic to not attempt to go to the current message if there are no messages in the folder. 2001-11-29 Peter S Galbraith * mh-e.el (mh-folder-font-lock-subject): New fontifier function for subject lines in folder-mode (mh-scan-followup-regexp): Deleted obsolete regexp. Use mh-scan-subject-regexp instead. (mh-folder-font-lock-keywords): Use mh-folder-font-lock-subject instead of obsolete mh-scan-followup-regexp variable. (mh-folder-date-face, mh-folder-msg-number-face): (mh-folder-subject-face, mh-folder-followup-face): Now defined as proper faces instead of copied from font-lock faces. * mh-mime.el (mh-media-type-regexp): New variable. Regexp matching valid media types used in MIME attachment compositions. (mh-file-mime-type): Use mh-media-type-regexp instead of hard-wiring its value. * mh-utils.el (mh-show-unquote-From): New function to unquote "^>From" in mh-show-mode (not saved to disk). (mh-show-mode): Call mh-show-unquote-From. 2001-11-29 Eric Ding * mh-utils.el (mh-clean-msg-header): Use mh-make-line-invisible rather than mh-delete-line. (mh-make-line-invisible): New function to make line(s) invisible rather than deleting line(s). Optional argument specifies number of lines to delete. (mh-show-msg): screen-height has been deprecated; use no more. (mh-notate): screen-width has been deprecated; use no more. 2001-11-29 Jeffrey C Honig * mh-utils.el: (mh-find-progs): Change mh-find-progs to rely on the existence of mhparam. The location of mhparam is used to find `mh-progs'. It uses the libdir and etcdir to find the `mh-lib-progs' and `mh-lib' directories. If etcdir doesn't return anything we assume `mh-lib-progs' is the same as `mh-lib' and that we are using MH instead of nmh. 2001-11-29 Peter S Galbraith * mh-e.el (mh-scan.font-lock-regexp): Change docs to reflect that second paren expression is the user match. (mh-folder-font-lock-keywords): Change from 1st to 2nd parenthesized expression to match user name, after Jeffrey's change to the regexps. 2001-11-29 Bill Wohler * mh-utils.el (mh-clean-message-header): Default is now t. (mh-invisible-headers): Padded out to contain all the headers that the mh-e developers don't like to see (closes SF #415759). 2001-11-28 Bill Wohler * mh-comp.el (mh-rejected-letter-start): Added MIME MDN. While this allows mh-extract-rejected-mail to strip the start of the MDN, there is still a closing MIME marker at the end. This should be cleaned up eventually. 2001-11-28 Peter S Galbraith * mh-e.el (mh-folder-seq-tool-bar-map): New tool-bar used for folder-mode when narrowed to sequence. * mh-seq.el (mh-narrow-to-seq): Set tool-bar to mh-folder-seq-tool-bar-map. (mh-widen): Set tool-bar to mh-folder-tool-bar-map. * widen.xpm: New icon used in mh-folder-seq-tool-bar-map. * mh-mime.el (mh-file-mime-type): Much better check on validity of 'file' output. * mh-e.el (mh-scan-subject-regexp): New regexp variable for subject string in folder mode. Used to extract subject sequence, and will be used for font-lock soon. * mh-seq.el (mh-subject-thread-to-sequence): More robust code by using mh-scan-subject-regexp, allows users with non-standard scan format to use subject sequences. * mh-comp.el (mh-letter-fill-column): Fill column to use in mh-letter-mode. (Yes, I'm doing this in spite of what Bill said; Someone can always undo it later) (mh-letter-mode): setq fill-column to mh-letter-fill-column. 2001-11-28 Bill Wohler * mh-e.el (mh-page-msg): The first time the end of page is hit, set mh-page-to-next-msg-p to t. The second time the end of page is hit, go to the next message. * mh-utils.el: (mh-show-msg): Initialize mh-page-to-next-msg-p to nil. 2001-11-27 Bill Wohler * mh-mime.el (mh-mime-content-types): Updated list of types to contain types used by mh-e developers, but not including types not listed in http://www.isi.edu/in-notes/iana/assignments/media-types/media-types. 2001-11-27 Peter S Galbraith * mh-seq.el (mh-subject-thread-to-sequence) New function placing all messages with similar subject line into a sequence named 'subject. (mh-narrow-to-subject-thread): New command to narrow to all messages with similar subject line into a sequence named 'subject. (mh-toggle-subject-thread): New command to toggle between a new 'subject sequence or the wide view of a folder. (mh-delete-subject-thread): New command to delete all following messages with similar subject lines (leaving preceeding ones untouched). (mh-next-unseen-subject-thread): New command to create and move to a new subject thread created from the next unseen message as a starting point. * mh-e.el (mh-folder-message-menu): New menu entries for subject threads. (mh-folder-mode-map): New keybindings for subject threads. (mh-lessp): New function to sort messages. * mh-utils.el (mh-show-font-lock-keywords): and various faces... scoped within eval-after-load "font-lock" to avoid requiring font-lock to use its faces. * mh-e.el (mh-folder-font-lock-keywords): Same. 2001-11-27 Jeffrey C Honig * mh-mime.el (mh-file-mime-type): Use mh-temp-buffer instead of " *mh-temp". * mh-comp.el (mh-insert-x-mailer): Kill mh-temp-buffer after use. 2001-11-26 Eric Ding * mh-utils.el: revert to using external mimedecode to decode MIME quoted-printable parts 2001-11-26 Jeffrey C Honig * mh-e.el (mh-process-commands): Added mh-folder-updated-hook. * mh-e.el (mh-update-unseen): Added mh-unseen-updated-hook. 2001-11-26 Peter S Galbraith * mh-mime.el (mh-file-mime-type): Make sure output from file command is known to mailcap file, otherwise prompt the user. (mh-mime-content-types): Add "image/png" type. * mh-e.el (mh-folder-font-lock-keywords): Use a bunch of new mh-folder-*-face faces. * mh-utils.el (mh-show-font-lock-keywords): Use a bunch of new mh-show-*-face faces. * mh-utils.el (mh-letter-header-font-lock): Bug fix. Fix infinite loop in emacs20 font-locking. (mh-header-field-font-lock): Preventive fix with similar change. * mh-comp.el (mh-reply-show-message-p): Typo. diplayed -> displayed. * MH-E-NEWS: Same. * mh-e.el (mh-folder-tool-bar-map): Bug fix. I had mh-repack-folder instead of mh-pack-folder. 2001-11-26 Bill Wohler * mh-e.el: Updated header for consistency and to conform with (elisp)Library Headers. (mh-do-not-confirm): Updated documentation string to reflect reality (e.g., is no longer used by mh-kill-folder and is used by more functions than just mh-undo-folder). (mh-page-msg): Now shows the next undeleted message if looking at the bottom of the current message. (mh-process-or-undo-commands): Fixed indentation. * mh-mime.el: (mh-mhn-compose-insertion, mh-mhn-compose-anon-ftp): If MIME type cannot be determined with file command, use mailcap-mime-types (if available) to provide list for completing read. * MH-E-NEWS: First draft of mh-e 5.1 release notes. 2001-11-26 Eric Ding * mh-utils.el (mh-decode-quoted-printable): Implement quoted-printable decoding in elisp (starting with code copied from FLIM). (mh-decode-quoted-printable-region): Move (require 'hexl) outside while loop. (mh-decode-quoted-printable): give user a choice between using internal code or external program to decode quoted-printable content. Resurrect code that calls external mimedecode program. 2001-11-25 Peter S Galbraith * mh-utils.el (mh-highlight-citation-p): New variable to determine whether to hightlight citations in message body with gnus, font-lock or not at all. (mh-show-font-lock-keywords): removed citations from keywords. (mh-show-font-lock-keywords-with-cite): New variable, equivalent to prior mh-show-font-lock-keywords. (mh-gnus-article-highlight-citation): hook into gnus for multi-level citation highlighting. (mh-show-mode): Use either mh-show-font-lock-keywords or mh-show-font-lock-keywords-with-cite, depending on value of mh-highlight-citation-p, and possibly call mh-gnus-article-highlight-citation. * mh-comp.el (mh-letter-mode): Same as for mh-show-mode above. 2001-11-25 Jeffrey C Honig * mh-comp.el (mh-redistribute): Added mh-redist-background variable to cause mh-redistribute to run the redist command in the background. This causes the transaction log to be visible, like with send. 2001-11-25 Peter S Galbraith * mh-e.el (mh-inc-folder): 'inc' finishes by displaying the first new message if already showing messages. 2001-11-22 Peter S Galbraith * mh-utils.el (mh-prompt-for-folder): Exit with error if no folder specified, otherwise mh-refile-msg may try to create a folder with empty name, and this creates problems; even mh-undo can't handle it (Closes SF #476824). * mh-comp.el (mh-letter-tool-bar-map): Info button needed to require 'info. Also tweaked help texts. (mh-letter-menu): Use headline capitalization (Closes SF #483203). * mh-e.el (mh-folder-tool-bar-map): Same as above. (mh-folder-folder-menu, mh-folder-message-menu): (mh-folder-sequence-menu): Same as above. * mh-pick.el (mh-pick-menu): Same as above. 2001-11-21 Peter S Galbraith * mh-comp.el (mh-reply-show-message-p): The setting of this variable determines whether the MH show-buffer is diplayed with the current message when using mh-reply without a prefix argument. Set it to nil if you already include the message automatically in your draft using "repl: -filter repl.filter" in your ~/.mh_profile file. (mh-reply): Don't show message in other window if mh-reply-show-message-p is nil. * mh-e.el (mh-folder-tool-bar-map): Add mail_exec.xpm icon for mh-execute-commands. * mh-utils.el (mh-show-mouse): New function to click on a message in folder-mode and show that message. * mh-e.el (mh-folder-mode-map): Bind mh-show-mouse to mouse-2. * mh-e.el (mh-page-msg): Show buffer first if not displayed, instead of simply complaining there's no other window. * mh-e.el (mh-folder-tool-bar-map): New tool-bar for folder mode! (mh-folder-mode): Setup tool-bar. * mh-mime.el (mh-have-file-command): try to non-fatally load executable.el because emacs20 doesn't autoload it. * mh-utils.el (load "executable" t t): Idem. * mh-utils.el (mh-clean-msg-header): Bug fix. locally bind after-change-functions to nil, working around a strange font-lock bug in emacs20 when (add-hook 'mh-show-mode-hook 'turn-on-font-lock) was used. * mh-comp.el (require 'sendmail): Moved from mh-comp.el to mh-utils.el because it is needed in reading mail too. (mh-header-field-end, mh-in-header-p): Moved to mh-utils.el because they are needed by mh-show-mode's font-lock code. Unfortunately, this splits the field related code into two files. Perhaps it should all go into mh-utils? 2001-11-20 Eric Ding * mh-utils.el (mh-show-from-face): Fix typo in defface 2001-11-20 Bill Wohler * mh-utils.el (mh-mail-header-separator): Set to -------- as defined by MH (components, and replcomps files). This variable cannot be a regexp since it is used as an argument to insert and is passed through regexp-quote before being used. The previous value broke a lot of code, including mailcrypt. * mh-comp.el (mh-letter-mode, mh-send-letter): Insert X-Mailer header field from mh-send-letter. (mh-edit-again, mh-extract-rejected-mail): Call mh-insert-header-separator to ensure that there is a separator. Packages such as mailcrypt depend on it. (mh-insert-header-separator): New function to insert mh-mail-header-separator if it doesn't exist. 2001-11-20 Peter S Galbraith * mh-comp.el (mh-letter-mode): Make font-lock-defaults a local variable * mh-e.el (mh-folder-mode): Same. * mh-utils.el (mh-show-mode): Same. * mh-e.el (mh-scan-msg-num-regexp): Delete variable and replace with mh-good-msg-regexp. * mh-utils.el (mh-mail-header-separator): Bug fix. Moved from mh-comp.el to mh-utils.el (which mh-comp.el loads). * mh-comp.el (mh-in-header-p): Recycle sendmail.el code (as suggested by Bill). * mh-utils.el (mh-letter-header-font-lock): Use mh-in-header-p. * mh-comp.el (mh-letter-tool-bar-map): tool-bar customize button goes to customizing mh-compose group. * mh-utils.el (mh-show-mode): font-lock bug fix. Locally set font-lock-support-mode to nil. (mh-letter-header-font-lock, mh-header-field-font-lock): font-lock bug fix. Don't return match beyond font-lock search limit. * mh-comp.el (mh-letter-mode): Emacs20 bug fix. tool-bar-mode is not a bound variable. 2001-11-19 Peter S Galbraith * mh-comp.el (mh-letter-tool-bar-map): tool-bar help button goes to 'Draft Editing' info node. * mh-utils.el (mh-show-from-face, mh-show-to-face): New faces used for font-lock. (mh-header-to-font-lock, mh-header-cc-font-lock) (mh-header-field-font-lock): New helper function returning whole header field arguments to font-lock. (mh-show-font-lock-keywords): Heavily modified using the above. * mh-e.el (mh-scan-msg-num-regexp): Regexp matching the message number in scan lines. (mh-scan-date-regexp): Regexp matching a valid date in scan lines. (mh-scan-rcpt-addr-regexp): Regexp specifying the recipient in scan lines for messages we sent. (mh-scan-followup-regexp): Regexp matching a followup subject line, starting with Re: (mh-scan-body-regexp): Regexp matching the message body beginning displayed in scan lines. (mh-scan.font-lock-regexp): Regexp matching output of the the optional scan.font-lock format file. (mh-folder-font-lock-keywords): New font-lock for folder-mode that uses the above regexps. 2001-11-19 chad * mh-comp.el (mh-letter-tool-bar-map): made both references to mh-letter-tool-bar-map conditional on tool-bar-mode, instead of just one. 2001-11-19 Bill Wohler * mh-comp.el (mh-position-on-field): Move to the end of the header if the field is not present. This function was documented to do this, but wasn't doing so. (mh-insert-x-mailer): Simplified by using existing mh-goto-header-field and mh-insert-fields functions. Now that mh-insert-fields is used to insert X-Mailer header field, no longer need to include X-Mailer in mh-x-mailer-string. 2001-11-18 Peter S Galbraith * mh-comp.el (mh-letter-tool-bar-map): New version of mh-letter-mode tool-bar. Changed order of buttons; made customize and info buttons specific to mh-e. * mh-e.el (mh-folder-font-lock-keywords): New font-lock regexp uses variables mh-deleted-msg-regexp, mh-refiled-msg-regexp and mh-cur-scan-msg-regexp, so will better adapt to non-default scan formats. Also, lines marked for refiling are now fontified. 2001-11-18 Bill Wohler * mh-utils.el (mh-show-mode): Added local variable mail-header-separator which is initialized to mh-mail-header-separator. * mh-comp.el (mh-mail-header-separator): Updated to include ^$. Needed when running mh-edit-again, since by then the separator is gone. Added documentation saying one should use mail-header-separator and initialize it from mh-mail-header-separator. (mh-forward): Initialize mail-header-separator since mh-letter-mode hasn't kicked in yet (which does initialize mail-header-separator). (mh-letter-mode): Initialize mail-header-separator from mh-mail-header-separator, not hard-coded string. * mh-comp.el (mh-insert-x-mailer-p): New variable to control whether X-Mailer string is inserted. Default: t. (mh-x-mailer-string): New variable that caches actual X-Mailer string. (mh-letter-mode): Call mh-insert-x-mailer if mh-insert-x-mailer-p is t. (mh-insert-x-mailer): New function that inserts X-Mailer header field. 2001-11-17 Peter S Galbraith * mh-utils.el (mh-letter-header-font-lock): New function to return the entire mail header to font-lock for sedate font-locking. (mh-show-font-lock-keywords): Modified to fontify whole lines and use mh-letter-header-font-lock above to fontify whole header. 2001-11-17 Bill Wohler * mh-comp.el (mail-header-separator): Added ^ and $ to make more specific. (mh-forward, mh-letter-mode): Replaced hard-coded string with mail-header-separator. 2001-11-16 Bill Wohler * mh-e.el (mh-e-RCS-id): Renamed to mh-version. (mh-version): The variable: Set to a number instead of Id since the Id didn't have the mh-e version number, and both Emacs and gnus do it this way too. (mh-version): The function: Fixed for nmh. Now displays mh-e version correctly. Cleaned up output and display mh-progs, etc. (Closes SF #405620.) 2001-11-15 Peter S Galbraith * mh-comp.el (mh-letter-tool-bar-map): New tool-bar support for mh-letter-mode in emacs21. Uses icons from gnus/message.el. * mh-comp.el (mh-letter-mode): Add buffer-local binding of tool-bar-map to mh-letter-tool-bar-map. 2001-11-15 Peter S Galbraith * mh-mime.el (mh-have-file-command): Add check for existence of executable-find command, which Jeffrey didn't exist in emacs-20.4. * mh-utils.el (mh-decode-quoted-printable-have-mimedecode): same as above. * mh-mime.el (mh-file-mime-type): Bug Fix. Some versions of 'file' output a string like "file: Using regular magic file..." to stderr, so discard stderr when using call-process with 'file'. 2001-11-14 Peter S Galbraith * mh-mime.el (mh-have-file-command): Check if 'file' command on system accepts arguments -i -b before accepting it for our use. 2001-11-14 Peter S Galbraith * mh-utils.el (mh-find-progs): Use expand-file-name instead of concatenating together strings into a path. 2001-11-14 Peter S Galbraith * mh-e.el (mh-folder-sequence-menu): Enable mh-widen in sequence menu only when mh-narrowed-to-seq is t. 2001-11-14 Peter S Galbraith * mh-mime.el (mh-have-file-command): Use 'executable-find' instead of more complicated and error-prone call-process to which command. * mh-utils.el (mh-decode-quoted-printable-have-mimedecode): Same change as above. 2001-11-14 Jeffrey C Honig * mh-e.el (mh-make-folder-mode-line): Bug fix. Properly deal with folders that do not have any lines in them. Print "no msgs" instead of "0 msgs". Do not try to print a range when there are no messages. * mh-e.el (mh-regenerate-headers): Bug fix. Catch and remove the "scan: band message list" message. 2001-11-13 Jeffrey C Honig * mh-utils.el (mh-find-progs): Bug fix. Add "mh/etc" to the subdirectories to search for "components". On BSD/OS, nmh is in "/usr/contrib/mh/*". 2001-11-13 Peter S Galbraith * mh-comp.el (mh-letter-mode): Bug fix. Load mh-mime before setting mh-mhn-compose-insert-p (when looking at a "forw: -mime" message containing a MIME composition) such that the variable is properly declared as buffer-local. 2001-11-12 Bill Wohler * mh-funcs.el (mh-print-msg): mhl is in the mh-lib-progs directory, not mh-lib (closes SF #481128). 2001-11-12 Peter S Galbraith * mh-seq.el (mh-widen): Bug fix (closes SF #481036). In a sequence with pending deletes and refiles, running mh-widen would wipe out their notations, even though the sequences are still defined. Fixed by calling a new function, mh-notate-deleted-and-refiled. Also changed the coping of mh-goto-msg-num since it didn't work consistently. * mh-seq.el (mh-notate-deleted-and-refiled): New functions written to fix above mh-widen bug. It's a first cut, we may want to clear all notations first, and notate the current-message sequence and user sequences. Time will tell. 2001-11-12 Peter S Galbraith * mh-seq.el (mh-widen): Make it attempt to stay on the same message number (closes SF bug #480922). 2001-11-11 Bill Wohler * import-emacs: New shell script to import Emacs changes to mh-e. * Makefile (import): New target to import Emacs changes. 2001-11-09 Peter S Galbraith * mh-mime.el (mh-file-mime-type): Bug fix. Change regexp to extract mime type from 'file -i' command output. 2001-11-08 Peter S Galbraith * mh-utils.el (mh-update-sequences-after-mh-show): New customizable variable telling whether to run mh-update-sequences in mh-show-mode. Default is t. * mh-utils.el (mh-show-msg): Run mh-update-sequences when mh-update-sequences-after-mh-show is set. 2001-11-08 Peter S Galbraith * mh-utils.el (mh-decode-quoted-printable-have-mimedecode): New variable telling whether command 'mimedecode' is on system. (http://www.freesoft.org/CIE/FAQ/mimedeco.c) * mh-utils.el (mh-decode-quoted-printable): New customizable variable telling whether to run mimedecode on MIME message containing quoted-printable parts. mimedecode will only alter quoted-printable parts , leaving others intact, and the resulting message is still fully MIME. * mh-utils.el (mh-decode-quoted-printable): New function to run mimedecode on the current buffer. * mh-utils.el (mh-display-msg): Conditionnaly call mh-decode-quoted-printable function if mh-decode-quoted-printable variable is set, to view messages containing quoted-printable characters into 8-bit. 2001-11-08 Peter S Galbraith * mh-comp.el (mh-letter-mode): Set mh-mhn-compose-insert-p if looking at a "forw: -mime" message containing a MIME composition. * mh-mime.el (mh-file-mime-type): Bug fix. Failed on files like "~/.mh_profile" because of shell construct. Wrapped filename with expand-file-name. * mh-comp.el (mh-letter-mode-map): C-cC-o keybinding in mh-letter-mode-map for mh-open-line. 2001-11-07 Peter S Galbraith * mh-comp.el (mh-open-line): New user function to split open a line when editing a reply with included text. * mh-comp.el (mh-current-fill-prefix): New function used by mh-open-line to get the fill-prefix on the current line. * mh-comp.el: Add mh-open-line to mh-letter-mode menubar. 2001-11-06 Peter S Galbraith * mh-seq.el (mh-region-to-sequence): New function, creating a sequence named 'region containing the message list in the selected region. * mh-e.el (mh-delete-msg): Mark messages in region for deletion if mark is active and in transient-mark-mode. * mh-e.el (mh-refile-msg): Mark messages in region for refiling if mark is active and in transient-mark-mode. * mh-e.el (mh-undo): Undo message marks for refile or deletion if region if mark is active and in transient-mark-mode. 2001-11-06 Peter S Galbraith * mh-comp.el (mh-letter-mode): Use sendmail.el's fill-paragraph. Copy its settings for paragraph-start, paragraph-separate, fill-paragraph-function, adaptive-fill-regexp and adaptive-fill-first-line-regexp. This make M-q (fill-paragraph) work correctly! 2001-11-05 Peter S Galbraith * mh-funcs.el (mh-kill-folder): Remove mh-do-not-confirm condition and always prompt the user for such a drastic step. Also change the prompt a bit to clarify it. 2001-11-04 Peter S Galbraith * mh-mime.el (mh-mhn-compose-insert-p): New buffer-local variable to tell when a MIME insertion was done in a letter. * mh-mime.el (mh-mhn-compose-type): Set mh-mhn-compose-insert-p. * mh-mime.el (mh-mhn-compose-external-type): Set mh-mhn-compose-insert-p. * mh-mime.el (mh-mhn-compose-forw): Set mh-mhn-compose-insert-p. * mh-mime.el (mh-edit-mhn): Clear mh-mhn-compose-insert-p. * mh-comp.el (mh-send-letter): Run mh-edit-mhn when mh-mhn-compose-insert-p is set. 2001-11-03 Peter S Galbraith * mh-mime.el (mh-have-file-command): new function testing whether file command is on the system. * mh-mime.el (mh-file-mime-type): new function returning MIME type from file command. * mh-mime.el (mh-mhn-compose-insertion): Make use of mh-file-mime-type function instead of prompting. 2001-10-30 Peter S Galbraith * mh-utils.el (mh-show-use-goto-addr): defcustom this new variable, determining whether to call goto-addr in mh-show-mode. * mh-utils.el (mh-show-mode): Call goto-address when mh-show-use-goto-addr is t. 2001-10-25 Peter S Galbraith * mh-utils.el (mh-recenter): Clarify docs and change '(t) to (list 4) to match elisp doc on what C-u prefix argument actually is. 2001-10-23 Peter S Galbraith * mh-utils.el (mh-summary-height): In my quest to make mh-e more useful out-of-the-box for new users, set mh-summary-height to a minimum of 4 and a maximum of 10 depending on frame height. I typically have 70 lines in my Emacs frame, so having a default of 4 was silly for my case. * mh-e.el (mh-update-sequences): Check for nil value of mh-current-folder, which happens if mh-summary-height < 4 although I haven't tracked doen why that happens. 2001-10-22 Peter S Galbraith * mh-comp.el (mh-insert-fields): Test for nil value when inserting field. 2001-10-20 Peter S Galbraith * mh-comp.el (mh-user-agent-compose): Merged-in from XEmacs-21.4 source * mh-comp.el (mh-letter-mode): Add easy-menu-add statement for XEmacs21 * mh-pick.el (mh-pick-mode): Add easy-menu-add statement for XEmacs21. * mh-e.el (mh-folder-mode): Add easy-menu-add statements for XEmacs21. * mh-utils.el: defalias 'screen-height to 'frame-height for XEmacs21. 2001-10-19 Peter S Galbraith * mh-mime.el (mh-edit-mhn): Use mhbuild in nmh context. * mh-utils.el (mh-find-progs): The variable mh-nmh-p (t when nmh is in use rather than MH) was set assuming that the string "nmh" will be in mh-lib-progs or mh-lib. This failed on Debian systems. Better to check for the existence of mhbuild in directory mh-progs. (closes SF bug #441776) 2001-10-18 Peter S Galbraith * mh-e.el: Add menubar entry from contrib/mh-menubar.el * mh-comp.el: Add menubar entry from contrib/mh-menubar.el * mh-pick.el: Add menubar entry from contrib/mh-menubar.el 2001-07-30 Peter S Galbraith * mh-e.el: Change font-lock patterns for folders. Fontify scan.font-lock patterns (which will be documented) and fontify subject lines prefixed with "Re:" differently. * mh-comp.el (mh-letter-mode): Add font-lock support as in mh-show-mode. 2001-04-14 chad brown Rearrange the font-lock keywords a bit. 2001-04-12 chad brown Preliminary (somewhat boring) font-lock support for mh-e. More interesting font-lock support probably wants to have better support for multiple format files 2001-02-24 chad brown Add default nmh paths to mh-find-prog in mh-utils.el. change to mh-kill-folder in mh-funcs.el to make it more general. 2001-02-19 Bill Wohler * Makefile (EMACS): Renamed to EMACS_HOME. Also, don't define if EMACS_HOME already exists to give developer a chance to set environment variable. (install): $MH-E-SRC is copied to $(EMACS_HOME)/lisp/mail, not $(EMACS_HOME)/src. (dist): Leave release in current directory. Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. This file is part of GNU Emacs. 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) any later version. GNU Emacs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Emacs; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ;; arch-tag: 2577172b-b1bf-4d87-acfb-c9d8780e8851