* lisp/mh-e/mh-letter.el (mh-letter-completion-at-point): New function,
extracted from mh-letter-complete
(mh-letter-mode, mh-letter-complete, mh-letter-complete-or-space): Use it.
(mh-complete-word): Only use the common-substring arg when it works.
(mh-folder-expand-at-point):
* lisp/mh-e/mh-alias.el (mh-alias-letter-expand-alias): Return data suitable
for completion-at-point-functions.
* lisp/mh-e/mh-utils.el (mh-folder-completion-function): Make it work like
file-name completion, so partial-completion can do its job.
* lisp/minibuffer.el (completion-at-point, completion-help-at-point):
Don't presume that a given completion-at-point-function will always
use the same calling convention.
by mh-normalize-folder-name.
(mh-folder-completion-function): Handle completion of folders with
absolute names. Also, when flag is t, display complete folder name to
provide proper highlighting in Emacs 22 now that
minibuffer-completing-file-name is nil (closes SF #1470518).
(mh-folder-completing-read): No longer set
minibuffer-completing-file-name to t. This was causing "Can't set
current directory errors" when browsing absolute file names. Another
benefit of this change is that SPC can be used for completion
again (closes SF #1470518).
recommending that one binds image-load-path. Just defvar it to placate
compiler and only use it if previously defined.
* mh-e.el (image-load-path): Don't bind!
* mh-folder.el (mh-folder-mode): Only use image-load-path if
previously defined.
* mh-letter.el (mh-letter-mode): Ditto.
* mh-utils.el (mh-logo-display): Ditto.
from image-load-path-for-library, which are:
(image-load-path-for-library): Pass value of path rather than symbol.
Always return list of directories. Guarantee that image directory
comes first.
* mh-e.el (image-load-path): Define on those Emacsen that lack it to
avoid compile and run-time errors.
* mh-folder.el (mh-folder-mode): Use new idiom for setting
image-load-path.
* mh-letter.el (mh-letter-mode): Ditto.
* mh-utils.el (mh-logo-display): Ditto.
mh-utils.el and wrap with mh-defun-compat since this function will be
soon added to image.el.
* mh-utils.el (mh-image-load-path-for-library): Move to mh-compat.el.
(mh-normalize-folder-name): Add return-nil-if-folder-empty argument
which is useful when calling mh-normalize-folder-name to process the
folder argument for the folders command.
(mh-sub-folders): Use new flag to mh-normalize-folder-name to make
this function more robust. It could too easily list the folders in /.
(mh-folder-list): Fix a couple of problems pointed out by Thomas
Baumann. Set folder to nil if empty. Don't append "/" if folder nil.
mh-image-load-path-for-library.
* mh-letter.el (mh-letter-mode): Rename mh-image-load-path to
mh-image-load-path-for-library.
* mh-utils.el (mh-image-load-path): Rename to
mh-image-load-path-for-library. Add example to docstring. Rename local
variable mh-image-directory to image-directory. Move error checks to
default case in cond and simplify.
(mh-folder-mode): Call mh-tool-bar-init conditionally in XEmacs. Set
scoped variables image-load-path and load-path with updated
mh-image-load-path before calling mh-tool-bar-folder-buttons-init.
* mh-letter.el (mh-tool-bar-init): Autoload.
(mh-letter-mode): Call mh-tool-bar-init conditionally in XEmacs. Set
scoped variables image-load-path and load-path with updated
mh-image-load-path before calling mh-tool-bar-letter-buttons-init.
* mh-show.el (mh-tool-bar-init): Autoload.
(mh-show-mode): Perform tool bar stuff conditionally in XEmacs and GNU
Emacs.
* mh-tool-bar.el (mh-tool-bar-define): Don't quote stuff in error
messages per conventions.
(mh-tool-bar-folder-buttons-init)
(mh-tool-bar-letter-buttons-init): Don't call mh-image-load-path.
(mh-tool-bar-define call): Format.
* mh-utils.el (mh-image-directory, mh-image-load-path-called-flag):
Delete.
(mh-image-load-path): Incorporate changes from Gnus team. Biggest
changes are that it no longer uses/sets mh-image-directory or
mh-image-load-path-called-flag, and returns the updated path rather
than change it.
(mh-logo-display): Change usage of mh-image-load-path.
(mh-narrow-to-subject, mh-narrow-to-to): Fix inability to narrow to
subjects with special characters by quoting regular expression
characters in pick expression derived from existing subjects and other
fields (closes SF #1432548).
* mh-utils.el (mh-pick-regexp-chars, mh-quote-pick-expr): New variable
and function for quoting pick regular expression characters (closes SF
#1432548).
nothing back. Fix problem with passing in empty string and getting the
entire filesystem (or infinite loop). Don't append slash to folder.
These fixes fix problems observed with the pick search. Thanks to
Thomas Baumann for the help (closes SF #1435381).
not get updated if user set mh-image-load-path. Moved tests and
add-to-list calls outside of cond so they are applied consistently,
even if they are redundant in some circumstances. Efficiency isn't a
concern here. Made error messages more user-friendly.
MH-E images are stored. If nil, then the function `mh-image-load-path'
will find it. This variable will be used for Debian packaging.
(mh-image-load-path function): Use variable `mh-image-load-path' if
non-nil and exists.
instead of replace-regexp-in-string.
(crm, multi-prompt): Use mh-require instead of require.
(mh-goto-address-find-address-at-point): Use
mh-line-beginning-position and mh-line-end-position instead of
line-beginning-position and line-end-position. Use
mh-match-string-no-properties instead of match-string-no-properties.
* mh-comp.el (mh-modify-header-field): Use mh-line-beginning-position
and mh-line-end-position instead of line-beginning-position and
line-end-position.
* mh-compat.el (mailabbrev): Use mh-require instead of require.
(mh-assoc-string, mh-display-completion-list, mh-face-foreground)
(mh-face-background): Make docstring consistent.
(mh-require, mh-cancel-timer, mh-display-color-cells)
(mh-line-beginning-position, mh-line-end-position)
(mh-match-string-no-properties, mh-replace-regexp-in-string)
(mh-view-mode-enter): Move definition here from mh-xemacs.el and add
mh- prefix since compatibility functions should have our package
prefix (mh-) by Emacs convention and to avoid messing up checks for
the same functions in other packages.
* mh-e.el (mh-compiling-flag): Move mh-xemacs-compiling-flag here from
mh-xemacs.el and rename.
(mh-xargs): Use mh-line-beginning-position and mh-line-end-position
instead of line-beginning-position and line-end-position.
(mh-defface-compat): Use mh-display-color-cells instead of
display-color-cells.
* mh-folder.el (which-func): Use mh-require instead of require.
* mh-funcs.el (mh-list-folders): Use mh-view-mode-enter instead of
view-mode-enter.
* mh-gnus.el (gnus-util, mm-bodies, mm-decode, mm-view, mml): Use
mh-require instead of require.
* mh-letter.el (mh-letter-header-end, mh-letter-mode)
(mh-letter-next-header-field): Use mh-line-beginning-position and
mh-line-end-position instead of line-beginning-position and
line-end-position.
* mh-limit.el (mh-subject-to-sequence-unthreaded): Use
mh-match-string-no-properties instead of match-string-no-properties.
(mh-narrow-to-header-field): Use mh-line-beginning-position and
mh-line-end-position instead of line-beginning-position and
line-end-position.
* mh-mime.el (mh-mime-inline-part, mh-mm-display-part)
(mh-mh-quote-unescaped-sharp, mh-mh-directive-present-p): Use
mh-line-beginning-position and mh-line-end-position instead of
line-beginning-position and line-end-position.
* mh-search.el (which-func): Use mh-require instead of require.
(mh-make-pick-template, mh-index-visit-folder)
(mh-pick-parse-search-buffer, mh-swish-next-result)
(mh-mairix-next-result, mh-namazu-next-result)
(mh-pick-next-result, mh-grep-next-result)
(mh-index-create-imenu-index, mh-index-match-checksum)
(mh-md5sum-parser, mh-openssl-parser, mh-index-update-maps): Use
mh-line-beginning-position and mh-line-end-position instead of
line-beginning-position and line-end-position.
* mh-seq.el (mh-list-sequences): Use mh-view-mode-enter instead of
view-mode-enter.
(mh-folder-size-flist, mh-parse-flist-output-line)
(mh-add-sequence-notation): Use mh-line-beginning-position and
mh-line-end-position instead of line-beginning-position and
line-end-position.
* mh-show.el (mh-show-addr): Use mh-require instead of require.
* mh-speed.el (mh-folder-speedbar-menu-items, mh-speed-toggle)
(mh-speed-view, mh-folder-speedbar-buttons)
(mh-speed-highlight, mh-speed-goto-folder)
(mh-speed-add-buttons, mh-speed-parse-flists-output)
(mh-speed-invalidate-map, mh-speedbar-change-expand-button-char)
(mh-speed-add-folder): Use mh-line-beginning-position and
mh-line-end-position instead of line-beginning-position and
line-end-position.
(mh-speed-flists): Use mh-cancel-timer instead of cancel-timer.
* mh-thread.el (mh-thread-find-children)
(mh-thread-parse-scan-line, mh-thread-generate): Use
mh-line-beginning-position and mh-line-end-position instead of
line-beginning-position and line-end-position.
* mh-utils.el (mh-colors-available-p): Use mh-display-color-cells
instead of display-color-cells.
(mh-folder-list): Use mh-replace-regexp-in-string instead of
replace-regexp-in-string.
(mh-sub-folders-actual, mh-letter-toggle-header-field-display): Use
mh-line-beginning-position and mh-line-end-position instead of
line-beginning-position and line-end-position.
* mh-comp.el (mh-send-sub): Don't find components file in current
directory--this seems to have been a side-effect of commenting out the
use of an old mh-etc variable. Improve error message.
since compatibility functions should have our package prefix (mh-) by
Emacs convention and to avoid messing up checks for the same functions
in other packages. Use explicit argument instead of forming name by
adding mh-e prefix so that one can grep and find the definition.
* mh-alias.el (mh-alias-local-users, mh-alias-reload)
(mh-alias-expand, mh-alias-minibuffer-confirm-address): Use
mh-assoc-string instead of assoc-string.
* mh-compat.el (assoc-string): Rename to mh-assoc-string.
(mh-mail-abbrev-make-syntax-table, mh-url-hexify-string): Move here
from mh-utils.el.
(mh-display-completion-list): Move here from mh-comp.el.
(mh-face-foreground, mh-face-background): Move here from mh-xface.el.
(mh-write-file-functions): Move here from mh-folder.el
* mh-folder.el (mh-write-file-functions-compat): Move to mh-compat.el
and rename to mh-write-file-functions.
(mh-folder-mode): Use the new name.
* mh-gnus.el (gnus-local-map-property): Rename to
mh-gnus-local-map-property.
(mm-merge-handles): Rename to mh-mm-merge-handles.
(mm-set-handle-multipart-parameter): Rename to
mh-mm-set-handle-multipart-parameter.
(mm-inline-text-vcard): Rename to mh-mm-inline-text-vcard.
(mm-possibly-verify-or-decrypt): Rename to
mh-mm-possibly-verify-or-decrypt.
(mm-handle-multipart-ctl-parameter): Rename to
mh-mm-handle-multipart-ctl-parameter.
(mm-readable-p): Rename to mh-mm-readable-p.
(mm-long-lines-p): Rename to mh-mm-long-lines-p.
(mm-keep-viewer-alive-p): Rename to mh-mm-keep-viewer-alive-p.
(mm-destroy-parts): Rename to mh-mm-destroy-parts.
(mm-uu-dissect-text-parts): Rename to mh-mm-uu-dissect-text-parts.
(mml-minibuffer-read-disposition): Rename to
mh-mml-minibuffer-read-disposition.
* mh-identity.el (mh-identity-field-handler): Use mh-assoc-string
instead of assoc-string.
* mh-mime.el (mh-mm-inline-media-tests, mh-mm-inline-message)
(mh-mime-display, mh-mime-display-security) (mh-insert-mime-button,
mh-insert-mime-security-button) (mh-handle-set-external-undisplayer)
(mh-mime-security-press-button, mh-mime-security-show-details)
(mh-mml-attach-file, mh-mime-cleanup)
(mh-destroy-postponed-handles): Use new mh-* names for compatibility
functions.
* mh-utils.el (mail-abbrev-make-syntax-table): Move to mh-compat.el
and rename to mh-mail-abbrev-make-syntax-table.
(mh-beginning-of-word): Use the new name.
(mh-get-field): Delete ancient alias.
* mh-xface.el (mh-face-foreground-compat): Move to mh-compat.el and
rename to mh-face-foreground
(mh-face-background-compat): Move to mh-compat.el and rename to
mh-face-background.
(mh-face-display-function): Use the new names.
(mh-x-image-url-cache-canonicalize): Use mh-url-hexify-string instead
of url-hexify-string.
(url-unreserved-chars): Move to mh-compat.el and rename to
mh-url-unreserved-chars.
(url-hexify-string): Move to mh-compat.el and rename to
mh-url-hexify-string.
(mh-get-header-field): Move to mh-utils.el so that you can read
messages without having to load mh-comp.el and mh-letter.el.
* mh-letter.el (mh-hidden-header-keymap)
(mh-letter-toggle-header-field-display)
(mh-letter-skipped-header-field-p)
(mh-letter-skip-leading-whitespace-in-header-field)
(mh-letter-truncate-header-field): Move to mh-utils.el so that you can
read messages without having to load mh-comp.el and mh-letter.el.
* mh-utils.el (mh-get-header-field)
(mh-letter-hide-all-skipped-fields)
(mh-letter-skipped-header-field-p, mh-hidden-header-keymap)
(mh-letter-toggle-header-field-display)
(mh-letter-skip-leading-whitespace-in-header-field)
(mh-letter-truncate-header-field): Move here from mh-comp.el and
mh-letter.el so that you can read messages without having to load
mh-comp.el and mh-letter.el.
to help remove dependency on mh-utils.
* mh-exec.el: New file. Move process support routines here from
mh-utils.el.
* mh-init.el (mh-utils): Remove require.
(mh-exec): Add require.
(mh-profile-component, mh-profile-component-value): Move here from
mh-utils.el.
* mh-utils.el (mh-pgp-support-flag): Move to mh-comp.el to reduce
dependencies on mh-utils.el.
(mh-profile-component, mh-profile-component-value): Move to mh-init.el
since that's the only place that uses them. (Other than mh-alias.el;
I'm thinking that mh-find-path can set variable from the Aliasfile
component like it does the other components).
(mh-index-max-cmdline-args, mh-xargs, mh-quote-for-shell)
(mh-exec-cmd, mh-exec-cmd-error, mh-exec-cmd-daemon)
(mh-exec-cmd-env-daemon, mh-process-daemon, mh-exec-cmd-quiet)
(defvar, mh-exec-cmd-output)
(mh-exchange-point-and-mark-preserving-active-mark)
(mh-exec-lib-cmd-output, mh-handle-process-error): Move to new file
mh-exec.el so that mh-init.el doesn't have to depend on mh-utils.el,
breaking circular dependency.
* mh-alias.el: mh-customize.el: mh-e.el: mh-funcs.el: mh-gnus.el:
* mh-identity.el: mh-inc.el: mh-junk.el: mh-mime.el: mh-print.el:
* mh-search.el: mh-seq.el: mh-speed.el: Added debugging statements
(commented out) around requires to help find dependency loops. Will
remove them when issues are resolved.
docstring.
(mh-mairix-next-result): Use nil instead of () which doesn't stand out
as well.
(mh-pick-execute-search): Operate across all folders if no folder
given and recurse folder(s).
(mh-pick-next-result): Handle new output.
* mh-utils.el: (mh-collect-folder-names): Fix docstring.
(mh-children-p, mh-folder-list): New functions.
mh-pick.el. C-c C-c launches your mh-index-program; C-c C-p runs pick.
Pick no longer sets the "search" sequence. Instead, it brings up a
folder view that we're accustomed to. (closes SF #829207).
(mh-index-search): Rename to mh-search.
(mh-pick-menu): Rename menu from Pick to Search. Rename Execute the
Search to Perform Search and call mh-do-search. Add Search with Pick
menu item.
(mh-do-search): Delete.
(mh-search-mode): Rename from mh-pick-mode.
(MH-Search): Rename mode from MH-Pick.
(mh-search-mode-map): Rename from mh-pick-mode-map.
(mh-search-mode-help-messages): Rename from
mh-pick-mode-help-messages.
(mh-index-choose): Don't reuse the last value of mh-indexer; when
mh-pick-do-search sets it to 'pick, we don't necessarily want to stay
with that choice!
* mh-index.el: mh-pick.el: Merge into mh-search.el and delete.
* mh-customize.el (mh-index-program): Change mh-index-search to
mh-search in docstring.
(mh-tool-bar-search-function): Change default from mh-search-folder to
mh-search. Remove mh-search-folder as choice and rename
mh-index-search choice to mh-search. Fix docstring.
(mh-pick-mode-hook): Rename to mh-search-mode-hook and change
mh-search-folder to mh-search in docstring.
* mh-e.el (mh-folder-folder-menu): Delete Search a Folder. Change
Indexed Search to Search. Use mh-search instead of mh-index-search.
(mh-folder-map): Delete i (mh-index-search) keybinding. Change s from
mh-show-search-folder to mh-search.
* mh-seq.el (mh-put-msg-in-seq): Fix docstring now that
mh-search-folder no longer creates the search sequence.
* mh-utils.el (mh-show-search-folder): Delete.
(mh-show-folder-map): Delete i (mh-index-search) keybinding. Change s
from mh-show-search-folder to mh-search.
(mh-show-folder-menu): Delete Search a Folder. Change Indexed Search
to Search. Use mh-search instead of mh-index-search.
(mh-index-max-cmdline-args, mh-xargs, mh-quote-for-shell): Move here
from deleted mh-index.el.