Mercurial > emacs
changeset 68520:6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
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.
author | Bill Wohler <wohler@newt.com> |
---|---|
date | Tue, 31 Jan 2006 20:46:15 +0000 |
parents | bf46ace1ce4e |
children | 04c2548593f7 |
files | lisp/mh-e/ChangeLog lisp/mh-e/mh-acros.el lisp/mh-e/mh-alias.el lisp/mh-e/mh-compat.el lisp/mh-e/mh-folder.el lisp/mh-e/mh-gnus.el lisp/mh-e/mh-identity.el lisp/mh-e/mh-mime.el lisp/mh-e/mh-utils.el lisp/mh-e/mh-xface.el |
diffstat | 10 files changed, 223 insertions(+), 149 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/mh-e/ChangeLog Tue Jan 31 20:19:50 2006 +0000 +++ b/lisp/mh-e/ChangeLog Tue Jan 31 20:46:15 2006 +0000 @@ -1,3 +1,79 @@ +2006-01-31 Bill Wohler <wohler@newt.com> + + * mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name + argument 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-letter.el (mh-complete-word): Fix bug in call to + mh-display-completion-list. Wrong argument was passed, so + completions wouldn't show highlighted prefix. + 2006-01-29 Bill Wohler <wohler@newt.com> * mh-e.el (mh-scan-format-file-check): Allow any non-nil for
--- a/lisp/mh-e/mh-acros.el Tue Jan 31 20:19:50 2006 +0000 +++ b/lisp/mh-e/mh-acros.el Tue Jan 31 20:46:15 2006 +0000 @@ -82,25 +82,25 @@ (funcall ',function ,@args)))) ;;;###mh-autoload -(defmacro mh-defun-compat (function arg-list &rest body) - "This is a macro to define functions which are not defined. -It is used for functions which were added to Emacs recently. -If FUNCTION is not defined then it is defined to have argument -list, ARG-LIST and body, BODY." +(defmacro mh-defun-compat (name function arg-list &rest body) + "Create function NAME. +If FUNCTION exists, then NAME becomes an alias for FUNCTION. +Otherwise, create function NAME with ARG-LIST and BODY." (let ((defined-p (fboundp function))) - (unless defined-p - `(defun ,function ,arg-list ,@body)))) + (if defined-p + `(defalias ',name ',function) + `(defun ,name ,arg-list ,@body)))) (put 'mh-defun-compat 'lisp-indent-function 'defun) ;;;###mh-autoload -(defmacro mh-defmacro-compat (function arg-list &rest body) - "This is a macro to define functions which are not defined. -It is used for macros which were added to Emacs recently. -If FUNCTION is not defined then it is defined to have argument -list, ARG-LIST and body, BODY." - (let ((defined-p (fboundp function))) - (unless defined-p - `(defmacro ,function ,arg-list ,@body)))) +(defmacro mh-defmacro-compat (name macro arg-list &rest body) + "Create macro NAME. +If MACRO exists, then NAME becomes an alias for MACRO. +Otherwise, create macro NAME with ARG-LIST and BODY." + (let ((defined-p (fboundp macro))) + (if defined-p + `(defalias ',name ',macro) + `(defmacro ,name ,arg-list ,@body)))) (put 'mh-defmacro-compat 'lisp-indent-function 'defun)
--- a/lisp/mh-e/mh-alias.el Tue Jan 31 20:19:50 2006 +0000 +++ b/lisp/mh-e/mh-alias.el Tue Jan 31 20:46:15 2006 +0000 @@ -169,7 +169,7 @@ (if (string-equal username realname) (concat "<" username ">") (concat realname " <" username ">")))) - (when (not (assoc-string alias-name mh-alias-alist t)) + (when (not (mh-assoc-string alias-name mh-alias-alist t)) (setq passwd-alist (cons (list alias-name alias-translation) passwd-alist))))))) (forward-line 1))) @@ -198,12 +198,12 @@ (cond ((looking-at "^[ \t]")) ;Continuation line ((looking-at "\\(.+\\): .+: .*$") ; A new -blind- MH alias - (when (not (assoc-string (match-string 1) mh-alias-blind-alist t)) + (when (not (mh-assoc-string (match-string 1) mh-alias-blind-alist t)) (setq mh-alias-blind-alist (cons (list (match-string 1)) mh-alias-blind-alist)) (setq mh-alias-alist (cons (list (match-string 1)) mh-alias-alist)))) ((looking-at "\\(.+\\): .*$") ; A new MH alias - (when (not (assoc-string (match-string 1) mh-alias-alist t)) + (when (not (mh-assoc-string (match-string 1) mh-alias-alist t)) (setq mh-alias-alist (cons (list (match-string 1)) mh-alias-alist))))) (forward-line 1))) @@ -214,7 +214,7 @@ user) (while local-users (setq user (car local-users)) - (if (not (assoc-string (car user) mh-alias-alist t)) + (if (not (mh-assoc-string (car user) mh-alias-alist t)) (setq mh-alias-alist (append mh-alias-alist (list user)))) (setq local-users (cdr local-users))))) (run-hooks 'mh-alias-reloaded-hook) @@ -251,10 +251,10 @@ "Return expansion for ALIAS. Blind aliases or users from /etc/passwd are not expanded." (cond - ((assoc-string alias mh-alias-blind-alist t) + ((mh-assoc-string alias mh-alias-blind-alist t) alias) ; Don't expand a blind alias - ((assoc-string alias mh-alias-passwd-alist t) - (cadr (assoc-string alias mh-alias-passwd-alist t))) + ((mh-assoc-string alias mh-alias-passwd-alist t) + (cadr (mh-assoc-string alias mh-alias-passwd-alist t))) (t (mh-alias-ali alias)))) @@ -292,7 +292,7 @@ (let* ((case-fold-search t) (beg (mh-beginning-of-word)) (the-name (buffer-substring-no-properties beg (point)))) - (if (assoc-string the-name mh-alias-alist t) + (if (mh-assoc-string the-name mh-alias-alist t) (message "%s -> %s" the-name (mh-alias-expand the-name)) ;; Check if if was a single word likely to be an alias (if (and (equal mh-alias-flash-on-comma 1)
--- a/lisp/mh-e/mh-compat.el Tue Jan 31 20:19:50 2006 +0000 +++ b/lisp/mh-e/mh-compat.el Tue Jan 31 20:46:15 2006 +0000 @@ -36,31 +36,91 @@ ;; way, it's easy to occasionally go through this file and see which ;; macros we can retire. -;; See also mh-gnus.el for compatibility macros used to span different -;; versions of Gnus. +;; Please use mh-gnus.el when providing compatibility with different +;; versions of Gnus and mh-xemacs.el for compatibility with XEmacs. -;; Macros are listed alphabetically. +;; Items are listed alphabetically. -(unless (fboundp 'assoc-string) - (defsubst assoc-string (key list case-fold) - "Like `assoc' but specifically for strings. +(mh-defun-compat mh-assoc-string assoc-string (key list case-fold) + "Like `assoc' but specifically for strings. Case is ignored if CASE-FOLD is non-nil. This function added by MH-E for Emacs versions that lack `assoc-string', introduced in Emacs 22." - (if case-fold - (assoc-ignore-case key list) - (assoc key list)))) + (if case-fold + (assoc-ignore-case key list) + (assoc key list))) + +(require 'mailabbrev nil t) +(mh-defun-compat mh-mail-abbrev-make-syntax-table + mail-abbrev-make-syntax-table () + "Emacs 21 and XEmacs don't have this function." + nil) (defmacro mh-display-completion-list (completions &optional common-substring) "Display the list of COMPLETIONS. -Calls `display-completion-list' correctly in older environments. -Versions of Emacs prior to version 22 lacked a COMMON-SUBSTRING -argument which is used to highlight the next possible character you -can enter in the current list of completions." +See documentation for `display-completion-list' for a description of the +arguments COMPLETIONS and perhaps COMMON-SUBSTRING. +This macro added by MH-E for Emacs versions that lack a +COMMON-SUBSTRING argument, introduced in Emacs 22." (if (< emacs-major-version 22) `(display-completion-list ,completions) `(display-completion-list ,completions ,common-substring))) +(defmacro mh-face-foreground (face &optional frame inherit) + "Return the foreground color name of FACE, or nil if unspecified. +See documentation for `face-foreground' for a description of the +arguments FACE, FRAME, and perhaps INHERIT. +This macro added by MH-E for Emacs versions that lack an INHERIT +argument, introduced in Emacs 22." + (if (< emacs-major-version 22) + `(face-foreground ,face ,frame) + `(face-foreground ,face ,frame ,inherit))) + +(defmacro mh-face-background (face &optional frame inherit) + "Return the background color name of face, or nil if unspecified. +See documentation for `back-foreground' for a description of the +arguments FACE, FRAME, and INHERIT. +This macro added by MH-E for Emacs versions that lack an INHERIT +argument, introduced in Emacs 22." + (if (< emacs-major-version 22) + `(face-background ,face ,frame) + `(face-background ,face ,frame ,inherit))) + +;; Copy of constant from url-util.el in Emacs 22; needed by Emacs 21. +(if (not (boundp 'url-unreserved-chars)) + (defconst mh-url-unresrved-chars + '( + ?a ?b ?c ?d ?e ?f ?g ?h ?i ?j ?k ?l ?m ?n ?o ?p ?q ?r ?s ?t ?u ?v ?w ?x ?y ?z + ?A ?B ?C ?D ?E ?F ?G ?H ?I ?J ?K ?L ?M ?N ?O ?P ?Q ?R ?S ?T ?U ?V ?W ?X ?Y ?Z + ?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 + ?- ?_ ?. ?! ?~ ?* ?' ?\( ?\)) + "A list of characters that are _NOT_ reserved in the URL spec. +This is taken from RFC 2396.")) + +(mh-defun-compat mh-url-hexify-string url-hexify-string (str) + "Escape characters in a string. +This is a copy of `url-hexify-string' from url-util.el in Emacs +22; needed by Emacs 21." + (mapconcat + (lambda (char) + ;; Fixme: use a char table instead. + (if (not (memq char mh-url-unreserved-chars)) + (if (> char 255) + (error "Hexifying multibyte character %s" str) + (format "%%%02X" char)) + (char-to-string char))) + str "")) + +(defmacro mh-write-file-functions () + "Return `write-file-functions' if it exists. +Otherwise return `local-write-file-hooks'. +This macro exists purely for compatibility. The former symbol is used +in Emacs 22 onward while the latter is used in previous versions and +XEmacs." + (if (boundp 'write-file-functions) + ''write-file-functions ;Emacs 22 on + ''local-write-file-hooks)) ;XEmacs + (provide 'mh-compat) ;; Local Variables:
--- a/lisp/mh-e/mh-folder.el Tue Jan 31 20:19:50 2006 +0000 +++ b/lisp/mh-e/mh-folder.el Tue Jan 31 20:46:15 2006 +0000 @@ -515,15 +515,6 @@ (set-specifier horizontal-scrollbar-visible-p nil (cons (current-buffer) nil))))) -(defmacro mh-write-file-functions-compat () - "Return `write-file-functions' if it exists. -Otherwise return `local-write-file-hooks'. This macro exists -purely for compatibility. The former symbol is used in Emacs 21.4 -onward while the latter is used in previous versions and XEmacs." - (if (boundp 'write-file-functions) - ''write-file-functions ;Emacs 21.4 - ''local-write-file-hooks)) ;XEmacs - ;; Register mh-folder-mode as supporting which-function-mode... (require 'which-func nil t) (when (boundp 'which-func-modes) @@ -650,8 +641,8 @@ (setq truncate-lines t) (auto-save-mode -1) (setq buffer-offer-save t) - (mh-make-local-hook (mh-write-file-functions-compat)) - (add-hook (mh-write-file-functions-compat) 'mh-execute-commands nil t) + (mh-make-local-hook (mh-write-file-functions)) + (add-hook (mh-write-file-functions) 'mh-execute-commands nil t) (make-local-variable 'revert-buffer-function) (make-local-variable 'hl-line-mode) ; avoid pollution (mh-funcall-if-exists hl-line-mode 1)
--- a/lisp/mh-e/mh-gnus.el Tue Jan 31 20:19:50 2006 +0000 +++ b/lisp/mh-e/mh-gnus.el Tue Jan 31 20:46:15 2006 +0000 @@ -39,26 +39,27 @@ (require 'mml nil t) ;; Copy of function from gnus-util.el. -(mh-defun-compat gnus-local-map-property (map) +(mh-defun-compat mh-gnus-local-map-property gnus-local-map-property (map) "Return a list suitable for a text property list specifying keymap MAP." (cond (mh-xemacs-flag (list 'keymap map)) ((>= emacs-major-version 21) (list 'keymap map)) (t (list 'local-map map)))) ;; Copy of function from mm-decode.el. -(mh-defun-compat mm-merge-handles (handles1 handles2) +(mh-defun-compat mh-mm-merge-handles mm-merge-handles (handles1 handles2) (append (if (listp (car handles1)) handles1 (list handles1)) (if (listp (car handles2)) handles2 (list handles2)))) ;; Copy of function from mm-decode.el. -(mh-defun-compat mm-set-handle-multipart-parameter (handle parameter value) +(mh-defun-compat mh-mm-set-handle-multipart-parameter + mm-set-handle-multipart-parameter (handle parameter value) ;; HANDLE could be a CTL. (if handle (put-text-property 0 (length (car handle)) parameter value (car handle)))) ;; Copy of function from mm-view.el. -(mh-defun-compat mm-inline-text-vcard (handle) +(mh-defun-compat mh-mm-inline-text-vcard mm-inline-text-vcard (handle) (let (buffer-read-only) (mm-insert-inline handle @@ -72,25 +73,27 @@ ;; Function from mm-decode.el used in PGP messages. Just define it with older ;; Gnus to avoid compiler warning. -(mh-defun-compat mm-possibly-verify-or-decrypt (parts ctl) +(mh-defun-compat mh-mm-possibly-verify-or-decrypt + mm-possibly-verify-or-decrypt (parts ctl) nil) ;; Copy of macro in mm-decode.el. -(mh-defmacro-compat mm-handle-multipart-ctl-parameter (handle parameter) +(mh-defmacro-compat mh-mm-handle-multipart-ctl-parameter + mm-handle-multipart-ctl-parameter (handle parameter) `(get-text-property 0 ,parameter (car ,handle))) ;; Copy of function in mm-decode.el. -(mh-defun-compat mm-readable-p (handle) +(mh-defun-compat mh-mm-readable-p mm-readable-p (handle) "Say whether the content of HANDLE is readable." (and (< (with-current-buffer (mm-handle-buffer handle) (buffer-size)) 10000) (mm-with-unibyte-buffer (mm-insert-part handle) (and (eq (mm-body-7-or-8) '7bit) - (not (mm-long-lines-p 76)))))) + (not (mh-mm-long-lines-p 76)))))) ;; Copy of function in mm-bodies.el. -(mh-defun-compat mm-long-lines-p (length) +(mh-defun-compat mh-mm-long-lines-p mm-long-lines-p (length) "Say whether any of the lines in the buffer is longer than LENGTH." (save-excursion (goto-char (point-min)) @@ -102,21 +105,22 @@ (and (> (current-column) length) (current-column)))) -(mh-defun-compat mm-keep-viewer-alive-p (handle) +(mh-defun-compat mh-mm-keep-viewer-alive-p mm-keep-viewer-alive-p (handle) ;; Released Gnus doesn't keep handles associated with externally displayed ;; MIME parts. So this will always return nil. nil) -(mh-defun-compat mm-destroy-parts (list) +(mh-defun-compat mh-mm-destroy-parts mm-destroy-parts (list) "Older versions of Emacs don't have this function." nil) -(mh-defun-compat mm-uu-dissect-text-parts (handles) +(mh-defun-compat mh-mm-uu-dissect-text-parts mm-uu-dissect-text-parts (handles) "Emacs 21 and XEmacs don't have this function." nil) ;; Copy of function in mml.el. -(mh-defun-compat mml-minibuffer-read-disposition (type &optional default) +(mh-defun-compat mh-mml-minibuffer-read-disposition + mml-minibuffer-read-disposition (type &optional default) (unless default (setq default (if (and (string-match "\\`text/" type) (not (string-match "\\`text/rtf\\'" type)))
--- a/lisp/mh-e/mh-identity.el Tue Jan 31 20:19:50 2006 +0000 +++ b/lisp/mh-e/mh-identity.el Tue Jan 31 20:46:15 2006 +0000 @@ -127,7 +127,7 @@ character \":\", then it must have a special handler defined in `mh-identity-handlers', else return an error since it is not a valid header field." - (or (cdr (assoc-string field mh-identity-handlers t)) + (or (cdr (mh-assoc-string field mh-identity-handlers t)) (and (eq (aref field 0) ?:) (error "Field %s not found in `mh-identity-handlers'" field)) (cdr (assoc ":default" mh-identity-handlers))
--- a/lisp/mh-e/mh-mime.el Tue Jan 31 20:19:50 2006 +0000 +++ b/lisp/mh-e/mh-mime.el Tue Jan 31 20:46:15 2006 +0000 @@ -144,7 +144,7 @@ mm-inline-text-html-renderer) (and (boundp 'mm-text-html-renderer) mm-text-html-renderer)))) ("text/x-vcard" - mm-inline-text-vcard + mh-mm-inline-text-vcard (lambda (handle) (or (featurep 'vcard) (locate-library "vcard")))) @@ -174,7 +174,7 @@ ("audio/.*" ignore ignore) ("image/.*" ignore ignore) ;; Default to displaying as text - (".*" mm-inline-text mm-readable-p)) + (".*" mm-inline-text mh-mm-readable-p)) "Alist of media types/tests saying whether types can be displayed inline.") (defvar mh-mime-save-parts-directory nil @@ -460,10 +460,10 @@ (setf (gethash handle (mh-mime-handles-cache (mh-buffer-data))) (let ((handles (mm-dissect-buffer nil))) (if handles - (mm-uu-dissect-text-parts handles) + (mh-mm-uu-dissect-text-parts handles) (setq handles (mm-uu-dissect))) (setf (mh-mime-handles (mh-buffer-data)) - (mm-merge-handles + (mh-mm-merge-handles handles (mh-mime-handles (mh-buffer-data)))) handles)))) @@ -527,11 +527,11 @@ (if pre-dissected-handles (setq handles pre-dissected-handles) (if (setq handles (mm-dissect-buffer nil)) - (mm-uu-dissect-text-parts handles) + (mh-mm-uu-dissect-text-parts handles) (setq handles (mm-uu-dissect))) (setf (mh-mime-handles (mh-buffer-data)) - (mm-merge-handles handles - (mh-mime-handles (mh-buffer-data)))) + (mh-mm-merge-handles handles + (mh-mime-handles (mh-buffer-data)))) (unless handles (mh-decode-message-body))) @@ -637,7 +637,7 @@ (let ((mh-mime-security-button-line-format mh-mime-security-button-end-line-format)) (mh-insert-mime-security-button handle)) - (mm-set-handle-multipart-parameter + (mh-mm-set-handle-multipart-parameter handle 'mh-region (cons (point-min-marker) (point-max-marker))))) (defun mh-mime-display-single (handle) @@ -853,7 +853,7 @@ (setq begin (point)) (gnus-eval-format mh-mime-button-line-format mh-mime-button-line-format-alist - `(,@(gnus-local-map-property mh-mime-button-map) + `(,@(mh-gnus-local-map-property mh-mime-button-map) mh-callback mh-mm-display-part mh-part ,index mh-data ,handle)) @@ -878,7 +878,7 @@ (defun mh-insert-mime-security-button (handle) "Display buttons for PGP message, HANDLE." - (let* ((protocol (mm-handle-multipart-ctl-parameter handle 'protocol)) + (let* ((protocol (mh-mm-handle-multipart-ctl-parameter handle 'protocol)) (crypto-type (or (nth 2 (assoc protocol mm-verify-function-alist)) (nth 2 (assoc protocol mm-decrypt-function-alist)) "Unknown")) @@ -886,9 +886,9 @@ (if (equal (car handle) "multipart/signed") " Signed" " Encrypted") " Part")) - (info (or (mm-handle-multipart-ctl-parameter handle 'gnus-info) + (info (or (mh-mm-handle-multipart-ctl-parameter handle 'gnus-info) "Undecided")) - (details (mm-handle-multipart-ctl-parameter handle 'gnus-details)) + (details (mh-mm-handle-multipart-ctl-parameter handle 'gnus-details)) pressed-details begin end face) (setq details (if details (concat "\n" details) "")) (setq pressed-details (if mh-mime-security-button-pressed details "")) @@ -898,7 +898,7 @@ (gnus-eval-format mh-mime-security-button-line-format mh-mime-security-button-line-format-alist - `(,@(gnus-local-map-property mh-mime-security-button-map) + `(,@(mh-gnus-local-map-property mh-mime-security-button-map) mh-button-pressed ,mh-mime-security-button-pressed mh-callback mh-mime-security-press-button mh-line-format ,mh-mime-security-button-line-format @@ -1065,7 +1065,7 @@ are stored in data structures corresponding to MH-E folder buffer FOLDER instead of in Gnus (as in the original). The MIME part, HANDLE is associated with the undisplayer FUNCTION." - (if (mm-keep-viewer-alive-p handle) + (if (mh-mm-keep-viewer-alive-p handle) (let ((new-handle (copy-sequence handle))) (mm-handle-set-undisplayer new-handle function) (mm-handle-set-undisplayer handle nil) @@ -1076,19 +1076,19 @@ (defun mh-mime-security-press-button (handle) "Callback from security button for part HANDLE." - (if (mm-handle-multipart-ctl-parameter handle 'gnus-info) + (if (mh-mm-handle-multipart-ctl-parameter handle 'gnus-info) (mh-mime-security-show-details handle) - (let ((region (mm-handle-multipart-ctl-parameter handle 'mh-region)) + (let ((region (mh-mm-handle-multipart-ctl-parameter handle 'mh-region)) point) (setq point (point)) (goto-char (car region)) (delete-region (car region) (cdr region)) - (with-current-buffer (mm-handle-multipart-ctl-parameter handle 'buffer) + (with-current-buffer (mh-mm-handle-multipart-ctl-parameter handle 'buffer) (let* ((mm-verify-option 'known) (mm-decrypt-option 'known) - (new (mm-possibly-verify-or-decrypt (cdr handle) handle))) + (new (mh-mm-possibly-verify-or-decrypt (cdr handle) handle))) (unless (eq new (cdr handle)) - (mm-destroy-parts (cdr handle)) + (mh-mm-destroy-parts (cdr handle)) (setcdr handle new)))) (mh-mime-display-security handle) (goto-char point)))) @@ -1098,7 +1098,7 @@ ;; to be no way of getting rid of the inserted text. (defun mh-mime-security-show-details (handle) "Toggle display of detailed security info for HANDLE." - (let ((details (mm-handle-multipart-ctl-parameter handle 'gnus-details))) + (let ((details (mh-mm-handle-multipart-ctl-parameter handle 'gnus-details))) (when details (let ((mh-mime-security-button-pressed (not (get-text-property (point) 'mh-button-pressed))) @@ -1296,7 +1296,7 @@ (type (mh-minibuffer-read-type file)) (description (mml-minibuffer-read-description)) (dispos (or disposition - (mml-minibuffer-read-disposition type)))) + (mh-mml-minibuffer-read-disposition type)))) (mml-insert-empty-tag 'part 'type type 'filename file 'disposition dispos 'description description))) @@ -1784,7 +1784,7 @@ ;; This is for Emacs, what about XEmacs? (mh-funcall-if-exists remove-images (point-min) (point-max)) (when mime-data - (mm-destroy-parts (mh-mime-handles mime-data)) + (mh-mm-destroy-parts (mh-mime-handles mime-data)) (remhash (current-buffer) mh-globals-hash)))) ;;;###mh-autoload @@ -1792,7 +1792,7 @@ "Free MIME data for externally displayed MIME parts." (let ((mime-data (mh-buffer-data))) (when mime-data - (mm-destroy-parts (mh-mime-handles mime-data))) + (mh-mm-destroy-parts (mh-mime-handles mime-data))) (remhash (current-buffer) mh-globals-hash))) (provide 'mh-mime)
--- a/lisp/mh-e/mh-utils.el Tue Jan 31 20:19:50 2006 +0000 +++ b/lisp/mh-e/mh-utils.el Tue Jan 31 20:46:15 2006 +0000 @@ -51,11 +51,6 @@ ;;; General Utilities -(require 'mailabbrev nil t) -(mh-defun-compat mail-abbrev-make-syntax-table () - "Emacs 21 and XEmacs don't have this function." - nil) - ;;;###mh-autoload (defun mh-beginning-of-word (&optional n) "Return position of the N th word backwards." @@ -63,7 +58,7 @@ (let ((syntax-table (syntax-table))) (unwind-protect (save-excursion - (mail-abbrev-make-syntax-table) + (mh-mail-abbrev-make-syntax-table) (set-syntax-table mail-abbrev-syntax-table) (backward-word n) (point)) @@ -817,8 +812,6 @@ (buffer-substring-no-properties start (point)))) "")) -(fset 'mh-get-field 'mh-get-header-field) ;MH-E 4 compatibility - ;;;###mh-autoload (defun mh-goto-header-field (field) "Move to FIELD in the message header.
--- a/lisp/mh-e/mh-xface.el Tue Jan 31 20:19:50 2006 +0000 +++ b/lisp/mh-e/mh-xface.el Tue Jan 31 20:46:15 2006 +0000 @@ -59,32 +59,6 @@ mh-clean-message-header-flag)) (funcall mh-show-xface-function))) -(defmacro mh-face-foreground-compat (face &optional frame inherit) - "Return the foreground color name of FACE, or nil if unspecified. -See documentation for `face-foreground' for a description of the -arguments FACE, FRAME, and INHERIT. - -Calls `face-foreground' correctly in older environments. Versions -of Emacs prior to version 22 lacked an INHERIT argument which -when t tells `face-foreground' to consider an inherited value for -the foreground if the face does not define one itself." - (if (>= emacs-major-version 22) - `(face-foreground ,face ,frame ,inherit) - `(face-foreground ,face ,frame))) - -(defmacro mh-face-background-compat(face &optional frame inherit) - "Return the background color name of face, or nil if unspecified. -See documentation for `back-foreground' for a description of the -arguments FACE, FRAME, and INHERIT. - -Calls `face-background' correctly in older environments. Versions -of Emacs prior to version 22 lacked an INHERIT argument which -when t tells `face-background' to consider an inherited value for -the background if the face does not define one itself." - (if (>= emacs-major-version 22) - `(face-background ,face ,frame ,inherit) - `(face-background ,face ,frame))) - ;; Shush compiler. (eval-when-compile (mh-do-in-xemacs (defvar default-enable-multibyte-characters))) @@ -120,9 +94,9 @@ insert-image (create-image raw type t :foreground - (mh-face-foreground-compat 'mh-show-xface nil t) + (mh-face-foreground 'mh-show-xface nil t) :background - (mh-face-background-compat 'mh-show-xface nil t)) + (mh-face-background 'mh-show-xface nil t)) " "))) ;; XEmacs (mh-do-in-xemacs @@ -386,41 +360,17 @@ (defun mh-x-image-url-cache-canonicalize (url) "Canonicalize URL. Replace the ?/ character with a ?! character and append .png. -Also replaces special characters with `url-hexify-string' since -not all characters, such as :, are legal within Windows -filenames. See URL `http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/naming_a_file.asp'." +Also replaces special characters with `mh-url-hexify-string' +since not all characters, such as :, are legal within Windows +filenames. See URL +`http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/naming_a_file.asp'." (format "%s/%s.png" mh-x-image-cache-directory - (url-hexify-string + (mh-url-hexify-string (with-temp-buffer (insert url) (mh-replace-string "/" "!") (buffer-string))))) -;; Copy of constant from url-util.el in Emacs 22; needed by Emacs 21. -(if (not (boundp 'url-unreserved-chars)) - (defconst url-unreserved-chars - '( - ?a ?b ?c ?d ?e ?f ?g ?h ?i ?j ?k ?l ?m ?n ?o ?p ?q ?r ?s ?t ?u ?v ?w ?x ?y ?z - ?A ?B ?C ?D ?E ?F ?G ?H ?I ?J ?K ?L ?M ?N ?O ?P ?Q ?R ?S ?T ?U ?V ?W ?X ?Y ?Z - ?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 - ?- ?_ ?. ?! ?~ ?* ?' ?\( ?\)) - "A list of characters that are _NOT_ reserved in the URL spec. -This is taken from RFC 2396.")) - -(mh-defun-compat url-hexify-string (str) - "Escape characters in a string. -This is a copy of the function of the same name from url-util.el -in Emacs 22; needed by Emacs 21." - (mapconcat - (lambda (char) - ;; Fixme: use a char table instead. - (if (not (memq char url-unreserved-chars)) - (if (> char 255) - (error "Hexifying multibyte character %s" str) - (format "%%%02X" char)) - (char-to-string char))) - str "")) - (defun mh-x-image-get-download-state (file) "Check the state of FILE by following any symbolic links." (unless (file-exists-p mh-x-image-cache-directory)