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: 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.