# HG changeset patch # User Bill Wohler # Date 1136937342 0 # Node ID 40429cab94e15017b428a24f7074414c0d3e1803 # Parent e886a1139db0470b9e7ba04b33daeafb145e6055 * mh-index.el (mh-index-search): Checking mh-find-path-run is unnecessary. * mh-init.el (mh-sys-path): Co-locate with mh-variants, which uses it. (mh-variants): Note variable isn't meant to be accessed directly; use function mh-variants instead. (mh-variant-info, mh-variant-mh-info, mh-variant-mu-mh-info) (mh-variant-nmh-info): Co-locate next to mh-variants, which uses them. Updated to use mh-file-command-p which is more accurrate than file-executable-p which returns t for directories. (mh-file-command-p): Move here from mh-utils, since mh-variant-*-info are the only functions to use it. (mh-variant-set, mh-variant-set-variant, mh-variant-p): Use function mh-variants instead of variable. More robust. (mh-find-path-run): Move here from mh-utils.el. Mention that checking this variable is unnecessary. (mh-find-path): Move here from mh-utils.el. With the advent of MH variants and an mhparam command that doesn't work if there isn't an MH profile, we can't get libdir for running install-mh. So don't bother. If there's an issue with the environment, direct the user to install MH and run install-mh (closes SF #835192). Don't read ~/.mh_profile directly. Use mh-profile-component which uses mhparam (closes SF #1016027). * mh-utils.el (mh-get-profile-field): Rename to mh-profile-component-value. Add colon to search removing unnecessary addition of colon to field in mh-profile-component. (mh-profile-component): Modify call to mh-profile-component-value accordingly. Move next to mh-profile-component-value. (mh-find-path-run, mh-find-path, mh-file-command-p): Move to mh-init.el. It makes sense that code that is only run once per session (more or less) is in mh-init.el rather than cluttering mh-utils.el. (mh-no-install, mh-install): Delete. diff -r e886a1139db0 -r 40429cab94e1 lisp/mh-e/ChangeLog --- a/lisp/mh-e/ChangeLog Tue Jan 10 23:52:34 2006 +0000 +++ b/lisp/mh-e/ChangeLog Tue Jan 10 23:55:42 2006 +0000 @@ -1,3 +1,44 @@ +2006-01-10 Bill Wohler + + * mh-index.el (mh-index-search): Checking mh-find-path-run is + unnecessary. + + * mh-init.el (mh-sys-path): Co-locate with mh-variants, which uses + it. + (mh-variants): Note variable isn't meant to be accessed directly; + use function mh-variants instead. + (mh-variant-info, mh-variant-mh-info, mh-variant-mu-mh-info) + (mh-variant-nmh-info): Co-locate next to mh-variants, which uses + them. Updated to use mh-file-command-p which is more accurrate + than file-executable-p which returns t for directories. + (mh-file-command-p): Move here from mh-utils, since + mh-variant-*-info are the only functions to use it. + (mh-variant-set, mh-variant-set-variant, mh-variant-p): Use + function mh-variants instead of variable. More robust. + (mh-find-path-run): Move here from mh-utils.el. Mention that + checking this variable is unnecessary. + (mh-find-path): Move here from mh-utils.el. With the advent of MH + variants and an mhparam command that doesn't work if there isn't + an MH profile, we can't get libdir for running install-mh. So + don't bother. If there's an issue with the environment, direct the + user to install MH and run install-mh (closes SF #835192). Don't + read ~/.mh_profile directly. Use mh-profile-component which uses + mhparam (closes SF #1016027). + + * mh-utils.el (mh-get-profile-field): Rename to + mh-profile-component-value. Add colon to search removing + unnecessary addition of colon to field in mh-profile-component. + (mh-profile-component): Modify call to mh-profile-component-value + accordingly. Move next to mh-profile-component-value. + (mh-find-path-run, mh-find-path, mh-file-command-p): Move to + mh-init.el. It makes sense that code that is only run once per + session (more or less) is in mh-init.el rather than cluttering + mh-utils.el. + (mh-no-install, mh-install): Delete. + + * mh-customize.el (mh-folder-msg-number): + * mh-mime.el (mh-file-mime-type): Removed trailing whitespace. + 2006-01-09 Bill Wohler * mh-init.el (mh-variant-mu-mh-info, mh-variant-nmh-info): Applied diff -r e886a1139db0 -r 40429cab94e1 lisp/mh-e/mh-index.el --- a/lisp/mh-e/mh-index.el Tue Jan 10 23:52:34 2006 +0000 +++ b/lisp/mh-e/mh-index.el Tue Jan 10 23:55:42 2006 +0000 @@ -443,7 +443,7 @@ (interactive (list current-prefix-arg (progn - (unless mh-find-path-run (mh-find-path)) + (mh-find-path) (or (and current-prefix-arg mh-index-sequence-search-flag) (and current-prefix-arg (car mh-index-previous-search)) (mh-prompt-for-folder "Search" "+" nil "all" t))) diff -r e886a1139db0 -r 40429cab94e1 lisp/mh-e/mh-init.el --- a/lisp/mh-e/mh-init.el Tue Jan 10 23:52:34 2006 +0000 +++ b/lisp/mh-e/mh-init.el Tue Jan 10 23:55:42 2006 +0000 @@ -29,7 +29,7 @@ ;; Sets up the MH variant (currently nmh, MH, or GNU mailutils). ;; ;; Users may customize `mh-variant' to switch between available variants. -;; Available MH variants are described in the variable `mh-variants'. +;; Available MH variants are returned by the function `mh-variants'. ;; Developers may check which variant is currently in use with the ;; variable `mh-variant-in-use' or the function `mh-variant-p'. ;; @@ -43,6 +43,22 @@ (mh-require-cl) (require 'mh-utils) +(defvar mh-sys-path + '("/usr/local/nmh/bin" ; nmh default + "/usr/local/bin/mh/" + "/usr/local/mh/" + "/usr/bin/mh/" ; Ultrix 4.2, Linux + "/usr/new/mh/" ; Ultrix < 4.2 + "/usr/contrib/mh/bin/" ; BSDI + "/usr/pkg/bin/" ; NetBSD + "/usr/local/bin/" + "/usr/local/bin/mu-mh/" ; GNU mailutils - default + "/usr/bin/mu-mh/") ; GNU mailutils - packaged + "List of directories to search for variants of the MH variant. +The list `exec-path' is searched in addition to this list. +There's no need for users to modify this list. Instead add extra +directories to the customizable variable `mh-path'.") + ;; Set for local environment: ;; mh-progs and mh-lib used to be set in paths.el, which tried to ;; figure out at build time which of several possible directories MH @@ -72,7 +88,8 @@ (defvar mh-variants nil "List describing known MH variants. -Created by the function `mh-variants'") +Do not access this variable directly as it may not have yet been initialized. +Use the function `mh-variants' instead.") ;;;###mh-autoload (defun mh-variants () @@ -95,106 +112,15 @@ (add-to-list 'mh-variants variant))))) mh-variants))) -(defvar mh-variant-in-use nil - "The MH variant currently in use; a string with variant and version number. -This differs from `mh-variant' when the latter is set to -\"autodetect\".") - -;;;###mh-autoload -(defun mh-variant-set (variant) - "Set the MH variant to VARIANT. -Sets `mh-progs', `mh-lib', `mh-lib-progs' and -`mh-flists-present-flag'. -If the VARIANT is \"autodetect\", then first try nmh, then MH and -finally GNU mailutils." - (interactive - (list (completing-read - "MH Variant: " - (mapcar (lambda (x) (list (car x))) (mh-variants)) - nil t))) - (let ((valid-list (mapcar (lambda (x) (car x)) (mh-variants)))) - (cond - ((eq variant 'none)) - ((eq variant 'autodetect) +(defun mh-variant-info (dir) + "Return MH variant found in DIR, or nil if none present." + (save-excursion + (let ((tmp-buffer (get-buffer-create mh-temp-buffer))) + (set-buffer tmp-buffer) (cond - ((mh-variant-set-variant 'nmh) - (message "%s installed as MH variant" mh-variant-in-use)) - ((mh-variant-set-variant 'mh) - (message "%s installed as MH variant" mh-variant-in-use)) - ((mh-variant-set-variant 'mu-mh) - (message "%s installed as MH variant" mh-variant-in-use)) - (t - (message "No MH variant found on the system")))) - ((member variant valid-list) - (when (not (mh-variant-set-variant variant)) - (message "Warning: %s variant not found. Autodetecting..." variant) - (mh-variant-set 'autodetect))) - (t - (message "Unknown variant; use %s" - (mapconcat '(lambda (x) (format "%s" (car x))) - mh-variants " or ")))))) - -(defun mh-variant-set-variant (variant) - "Setup the system variables for the MH variant named VARIANT. -If VARIANT is a string, use that key in the variable `mh-variants'. -If VARIANT is a symbol, select the first entry that matches that -variant." - (cond - ((stringp variant) ;e.g. "nmh 1.1-RC1" - (when (assoc variant mh-variants) - (let* ((alist (cdr (assoc variant mh-variants))) - (lib-progs (cadr (assoc 'mh-lib-progs alist))) - (lib (cadr (assoc 'mh-lib alist))) - (progs (cadr (assoc 'mh-progs alist))) - (flists (cadr (assoc 'flists alist)))) - ;;(set-default mh-variant variant) - (setq mh-x-mailer-string nil - mh-flists-present-flag flists - mh-lib-progs lib-progs - mh-lib lib - mh-progs progs - mh-variant-in-use variant)))) - ((symbolp variant) ;e.g. 'nmh (pick the first match) - (loop for variant-list in mh-variants - when (eq variant (cadr (assoc 'variant (cdr variant-list)))) - return (let* ((version (car variant-list)) - (alist (cdr variant-list)) - (lib-progs (cadr (assoc 'mh-lib-progs alist))) - (lib (cadr (assoc 'mh-lib alist))) - (progs (cadr (assoc 'mh-progs alist))) - (flists (cadr (assoc 'flists alist)))) - ;;(set-default mh-variant flavor) - (setq mh-x-mailer-string nil - mh-flists-present-flag flists - mh-lib-progs lib-progs - mh-lib lib - mh-progs progs - mh-variant-in-use version) - t))))) - -;;;###mh-autoload -(defun mh-variant-p (&rest variants) - "Return t if variant is any of VARIANTS. -Currently known variants are 'MH, 'nmh, and 'mu-mh." - (let ((variant-in-use - (cadr (assoc 'variant (assoc mh-variant-in-use mh-variants))))) - (not (null (member variant-in-use variants))))) - -(defvar mh-sys-path - '("/usr/local/nmh/bin" ; nmh default - "/usr/local/bin/mh/" - "/usr/local/mh/" - "/usr/bin/mh/" ; Ultrix 4.2, Linux - "/usr/new/mh/" ; Ultrix < 4.2 - "/usr/contrib/mh/bin/" ; BSDI - "/usr/pkg/bin/" ; NetBSD - "/usr/local/bin/" - "/usr/local/bin/mu-mh/" ; GNU mailutils - default - "/usr/bin/mu-mh/") ; GNU mailutils - packaged - "List of directories to search for variants of the MH variant. -The list `exec-path' is searched in addition to this list. -There's no need for users to modify this list. Instead add extra -directories to the customizable variable `mh-path'.") + ((mh-variant-mh-info dir)) + ((mh-variant-nmh-info dir)) + ((mh-variant-mu-mh-info dir)))))) (defun mh-variant-mh-info (dir) "Return info for MH variant in DIR assuming a temporary buffer is setup." @@ -209,7 +135,7 @@ ;; [SPRINTFTYPE=int] [SVR4] [SYS5] [SYS5DIR] [TERMINFO] ;; [TYPESIG=void] [UNISTD] [UTK] [VSPRINTF] (let ((mhparam (expand-file-name "mhparam" dir))) - (when (and (file-exists-p mhparam) (file-executable-p mhparam)) + (when (mh-file-command-p mhparam) (erase-buffer) (call-process mhparam nil '(t nil) nil "-help") (goto-char (point-min)) @@ -233,7 +159,7 @@ ;; 'mhparam -version' output: ;; mhparam (GNU mailutils 0.3.2) (let ((mhparam (expand-file-name "mhparam" dir))) - (when (and (file-exists-p mhparam) (file-executable-p mhparam)) + (when (mh-file-command-p mhparam) (erase-buffer) (call-process mhparam nil '(t nil) nil "-version") (goto-char (point-min)) @@ -254,7 +180,7 @@ ;; `mhparam -version' outputs: ;; mhparam -- nmh-1.1-RC1 [compiled on chaak at Fri Jun 20 11:03:28 PDT 2003] (let ((mhparam (expand-file-name "mhparam" dir))) - (when (and (file-exists-p mhparam) (file-executable-p mhparam)) + (when (mh-file-command-p mhparam) (erase-buffer) (call-process mhparam nil '(t nil) nil "-version") (goto-char (point-min)) @@ -269,15 +195,164 @@ (flists ,(file-exists-p (expand-file-name "flists" dir))))))))) -(defun mh-variant-info (dir) - "Return MH variant found in DIR, or nil if none present." - (save-excursion - (let ((tmp-buffer (get-buffer-create mh-temp-buffer))) - (set-buffer tmp-buffer) +(defun mh-file-command-p (file) + "Return t if file FILE is the name of a executable regular file." + (and (file-regular-p file) (file-executable-p file))) + +(defvar mh-variant-in-use nil + "The MH variant currently in use; a string with variant and version number. +This differs from `mh-variant' when the latter is set to +\"autodetect\".") + +;;;###mh-autoload +(defun mh-variant-set (variant) + "Set the MH variant to VARIANT. +Sets `mh-progs', `mh-lib', `mh-lib-progs' and +`mh-flists-present-flag'. +If the VARIANT is \"autodetect\", then first try nmh, then MH and +finally GNU mailutils." + (interactive + (list (completing-read + "MH variant: " + (mapcar (lambda (x) (list (car x))) (mh-variants)) + nil t))) + (let ((valid-list (mapcar (lambda (x) (car x)) (mh-variants)))) + (cond + ((eq variant 'none)) + ((eq variant 'autodetect) (cond - ((mh-variant-mh-info dir)) - ((mh-variant-nmh-info dir)) - ((mh-variant-mu-mh-info dir)))))) + ((mh-variant-set-variant 'nmh) + (message "%s installed as MH variant" mh-variant-in-use)) + ((mh-variant-set-variant 'mh) + (message "%s installed as MH variant" mh-variant-in-use)) + ((mh-variant-set-variant 'mu-mh) + (message "%s installed as MH variant" mh-variant-in-use)) + (t + (message "No MH variant found on the system")))) + ((member variant valid-list) + (when (not (mh-variant-set-variant variant)) + (message "Warning: %s variant not found. Autodetecting..." variant) + (mh-variant-set 'autodetect))) + (t + (message "Unknown variant; use %s" + (mapconcat '(lambda (x) (format "%s" (car x))) + (mh-variants) " or ")))))) + +(defun mh-variant-set-variant (variant) + "Setup the system variables for the MH variant named VARIANT. +If VARIANT is a string, use that key in the alist returned by the +function `mh-variants'. +If VARIANT is a symbol, select the first entry that matches that +variant." + (cond + ((stringp variant) ;e.g. "nmh 1.1-RC1" + (when (assoc variant (mh-variants)) + (let* ((alist (cdr (assoc variant (mh-variants)))) + (lib-progs (cadr (assoc 'mh-lib-progs alist))) + (lib (cadr (assoc 'mh-lib alist))) + (progs (cadr (assoc 'mh-progs alist))) + (flists (cadr (assoc 'flists alist)))) + ;;(set-default mh-variant variant) + (setq mh-x-mailer-string nil + mh-flists-present-flag flists + mh-lib-progs lib-progs + mh-lib lib + mh-progs progs + mh-variant-in-use variant)))) + ((symbolp variant) ;e.g. 'nmh (pick the first match) + (loop for variant-list in (mh-variants) + when (eq variant (cadr (assoc 'variant (cdr variant-list)))) + return (let* ((version (car variant-list)) + (alist (cdr variant-list)) + (lib-progs (cadr (assoc 'mh-lib-progs alist))) + (lib (cadr (assoc 'mh-lib alist))) + (progs (cadr (assoc 'mh-progs alist))) + (flists (cadr (assoc 'flists alist)))) + ;;(set-default mh-variant flavor) + (setq mh-x-mailer-string nil + mh-flists-present-flag flists + mh-lib-progs lib-progs + mh-lib lib + mh-progs progs + mh-variant-in-use version) + t))))) + +;;;###mh-autoload +(defun mh-variant-p (&rest variants) + "Return t if variant is any of VARIANTS. +Currently known variants are 'MH, 'nmh, and 'mu-mh." + (let ((variant-in-use + (cadr (assoc 'variant (assoc mh-variant-in-use (mh-variants)))))) + (not (null (member variant-in-use variants))))) + + + +;;; Read MH Profile + +(defvar mh-find-path-run nil + "Non-nil if `mh-find-path' has been run already. +Do not access this variable; `mh-find-path' already uses it to +avoid running more than once.") + +(defun mh-find-path () + "Set variables from user's MH profile. + +This function sets `mh-user-path' from your \"Path:\" MH profile +component (but defaults to \"Mail\" if one isn't present), +`mh-draft-folder' from \"Draft-Folder:\", `mh-unseen-seq' from +\"Unseen-Sequence:\", `mh-previous-seq' from +\"Previous-Sequence:\", and `mh-inbox' from \"Inbox:\" (defaults +to \"+inbox\"). + +The hook `mh-find-path-hook' is run after these variables have +been set. This hook can be used the change the value of these +variables if you need to run with different values between MH and +MH-E." + (unless mh-find-path-run + ;; Sanity checks. + (if (and (getenv "MH") + (not (file-readable-p (getenv "MH")))) + (error "MH environment variable contains unreadable file %s" + (getenv "MH"))) + (if (null (mh-variants)) + (error "Install MH and run install-mh before running MH-E")) + (let ((profile "~/.mh_profile")) + (if (not (file-readable-p profile)) + (error "Run install-mh before running MH-E"))) + ;; Read MH profile. + (setq mh-user-path (mh-profile-component "Path")) + (if (not mh-user-path) + (setq mh-user-path "Mail")) + (setq mh-user-path + (file-name-as-directory + (expand-file-name mh-user-path (expand-file-name "~")))) + (unless mh-x-image-cache-directory + (setq mh-x-image-cache-directory + (expand-file-name ".mhe-x-image-cache" mh-user-path))) + (setq mh-draft-folder (mh-profile-component "Draft-Folder")) + (if mh-draft-folder + (progn + (if (not (mh-folder-name-p mh-draft-folder)) + (setq mh-draft-folder (format "+%s" mh-draft-folder))) + (if (not (file-exists-p (mh-expand-file-name mh-draft-folder))) + (error + "Draft folder \"%s\" not found; create it and try again" + (mh-expand-file-name mh-draft-folder))))) + (setq mh-inbox (mh-profile-component "Inbox")) + (cond ((not mh-inbox) + (setq mh-inbox "+inbox")) + ((not (mh-folder-name-p mh-inbox)) + (setq mh-inbox (format "+%s" mh-inbox)))) + (setq mh-unseen-seq (mh-profile-component "Unseen-Sequence")) + (if mh-unseen-seq + (setq mh-unseen-seq (intern mh-unseen-seq)) + (setq mh-unseen-seq 'unseen)) ;old MH default? + (setq mh-previous-seq (mh-profile-component "Previous-Sequence")) + (if mh-previous-seq + (setq mh-previous-seq (intern mh-previous-seq))) + (run-hooks 'mh-find-path-hook) + (mh-collect-folder-names) + (setq mh-find-path-run t))) diff -r e886a1139db0 -r 40429cab94e1 lisp/mh-e/mh-utils.el --- a/lisp/mh-e/mh-utils.el Tue Jan 10 23:52:34 2006 +0000 +++ b/lisp/mh-e/mh-utils.el Tue Jan 10 23:55:42 2006 +0000 @@ -1950,12 +1950,18 @@ (or dont-show (not return-value) (mh-maybe-show number)) return-value)) -(defun mh-get-profile-field (field) - "Find and return the value of FIELD in the current buffer. -Returns nil if the field is not in the buffer." +(defun mh-profile-component (component) + "Return COMPONENT value from mhparam, or nil if unset." + (save-excursion + (mh-exec-cmd-quiet nil "mhparam" "-components" component) + (mh-profile-component-value component))) + +(defun mh-profile-component-value (component) + "Find and return the value of COMPONENT in the current buffer. +Returns nil if the component is not in the buffer." (let ((case-fold-search t)) (goto-char (point-min)) - (cond ((not (re-search-forward (format "^%s" field) nil t)) nil) + (cond ((not (re-search-forward (format "^%s:" component) nil t)) nil) ((looking-at "[\t ]*$") nil) (t (re-search-forward "[\t ]*\\([^\t \n].*\\)$" nil t) @@ -1963,99 +1969,6 @@ (end-of-line) (buffer-substring start (point))))))) -(defvar mh-find-path-run nil - "Non-nil if `mh-find-path' has been run already.") - -(defun mh-find-path () - "Set variables from user's MH profile. - -This function sets `mh-user-path' from your \"Path:\" MH profile -component (but defaults to \"Mail\" if one isn't present), -`mh-draft-folder' from \"Draft-Folder:\", `mh-unseen-seq' from -\"Unseen-Sequence:\", `mh-previous-seq' from -\"Previous-Sequence:\", and `mh-inbox' from \"Inbox:\" (defaults -to \"+inbox\"). - -The hook `mh-find-path-hook' is run after these variables have -been set. This hook can be used the change the value of these -variables if you need to run with different values between MH and -MH-E." - (mh-variants) - (unless mh-find-path-run - (setq mh-find-path-run t) - (save-excursion - ;; Be sure profile is fully expanded before switching buffers - (let ((profile (expand-file-name (or (getenv "MH") "~/.mh_profile")))) - (set-buffer (get-buffer-create mh-temp-buffer)) - (setq buffer-offer-save nil) ;for people who set default to t - (erase-buffer) - (condition-case err - (insert-file-contents profile) - (file-error - (mh-install profile err))) - (setq mh-user-path (mh-get-profile-field "Path:")) - (if (not mh-user-path) - (setq mh-user-path "Mail")) - (setq mh-user-path - (file-name-as-directory - (expand-file-name mh-user-path (expand-file-name "~")))) - (unless mh-x-image-cache-directory - (setq mh-x-image-cache-directory - (expand-file-name ".mhe-x-image-cache" mh-user-path))) - (setq mh-draft-folder (mh-get-profile-field "Draft-Folder:")) - (if mh-draft-folder - (progn - (if (not (mh-folder-name-p mh-draft-folder)) - (setq mh-draft-folder (format "+%s" mh-draft-folder))) - (if (not (file-exists-p (mh-expand-file-name mh-draft-folder))) - (error - "Draft folder \"%s\" not found. Create it and try again" - (mh-expand-file-name mh-draft-folder))))) - (setq mh-inbox (mh-get-profile-field "Inbox:")) - (cond ((not mh-inbox) - (setq mh-inbox "+inbox")) - ((not (mh-folder-name-p mh-inbox)) - (setq mh-inbox (format "+%s" mh-inbox)))) - (setq mh-unseen-seq (mh-get-profile-field "Unseen-Sequence:")) - (if mh-unseen-seq - (setq mh-unseen-seq (intern mh-unseen-seq)) - (setq mh-unseen-seq 'unseen)) ;old MH default? - (setq mh-previous-seq (mh-get-profile-field "Previous-Sequence:")) - (if mh-previous-seq - (setq mh-previous-seq (intern mh-previous-seq))) - (run-hooks 'mh-find-path-hook) - (mh-collect-folder-names))))) - -(defun mh-file-command-p (file) - "Return t if file FILE is the name of a executable regular file." - (and (file-regular-p file) (file-executable-p file))) - -(defvar mh-no-install nil) ;do not run install-mh - -(defun mh-install (profile error-val) - "Initialize the MH environment. -This is called if we fail to read the PROFILE file. ERROR-VAL is -the error that made this call necessary." - (if (or (getenv "MH") - (file-exists-p profile) - mh-no-install) - (signal (car error-val) - (list (format "Cannot read MH profile \"%s\"" profile) - (car (cdr (cdr error-val)))))) - ;; The "install-mh" command will output a short note which - ;; mh-exec-cmd will display to the user. - ;; The MH 5 version of install-mh might try prompt the user - ;; for information, which would fail here. - (mh-exec-cmd (expand-file-name "install-mh" mh-lib-progs) "-auto") - ;; now try again to read the profile file - (erase-buffer) - (condition-case err - (insert-file-contents profile) - (file-error - (signal (car err) ;re-signal with more specific msg - (list (format "Cannot read MH profile \"%s\"" profile) - (car (cdr (cdr err)))))))) - (defun mh-set-folder-modified-p (flag) "Mark current folder as modified or unmodified according to FLAG." (set-buffer-modified-p flag)) @@ -2594,12 +2507,6 @@ (mh-handle-process-error command value) value))) -(defun mh-profile-component (component) - "Return COMPONENT value from mhparam, or nil if unset." - (save-excursion - (mh-exec-cmd-quiet nil "mhparam" "-components" component) - (mh-get-profile-field (concat component ":")))) - ;; Shush compiler. (eval-when-compile (defvar mark-active))