;ELC   
;;; Compiled by pot@pot.cnuce.cnr.it on Tue Mar 18 15:47:49 2003
;;; from file /home/pot/gnu/emacs-pretest.new/lisp/mail/mh-utils.el
;;; in Emacs version 21.3
;;; with bytecomp version 2.85.4.1
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.
(if (and (boundp 'emacs-version)
	 (< (aref emacs-version (1- (length emacs-version))) ?A)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`mh-utils.el' was compiled for Emacs 19.29 or later"))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


#@63 Directory containing MH commands, such as inc, repl, and rmm.
(defvar mh-progs nil (#$ . 623))
#@104 Directory containing the MH library.
This directory contains, among other things,
the components file.
(defvar mh-lib nil (#$ . 725))
#@105 Directory containing MH helper programs.
This directory contains, among other things, 
the mhl program.
(defvar mh-lib-progs nil (#$ . 866))
#@58 Non-nil if nmh is installed on this system instead of MH
(defvar mh-nmh-p nil (#$ . 1013))
(byte-code "\300\301\302\303#\210\300\304\302\303#\210\300\305\302\303#\210\300\306\302\303#\210\307\310\311\312\313\314\315\316&\207" [put mh-progs risky-local-variable t mh-lib mh-lib-progs mh-nmh-p custom-declare-group mh-buffer nil "Layout of MH-E buffers" :prefix "mh-" :group mh] 8)
#@181 *Whether to start collecting MH folder names immediately in the background.
Non-nil means start a background process collecting the names of all
folders as soon as mh-e is loaded.
(custom-declare-variable 'mh-auto-folder-collect 't '(#$ . -1401) :type 'boolean :group 'mh)
#@72 *If non-nil, then commands which operate on folders do so recursively.
(custom-declare-variable 'mh-recursive-folders 'nil '(#$ . -1680) :type 'boolean :group 'mh)
#@161 *Non-nil means clean headers of messages that are displayed or inserted.
The variables `mh-visible-headers' and `mh-invisible-headers' control what
is removed.
(custom-declare-variable 'mh-clean-message-header 'nil '(#$ . -1851) :type 'boolean :group 'mh-buffer)
#@186 *If non-nil, contains a regexp specifying the headers to keep when cleaning.
Only used if `mh-clean-message-header' is non-nil.  Setting this variable
overrides `mh-invisible-headers'.
(custom-declare-variable 'mh-visible-headers 'nil '(#$ . -2121) :type '(choice (const nil) regexp) :group 'mh-buffer)
#@149 Regexp matching lines in a message header that are not to be shown.
If `mh-visible-headers' is non-nil, it is used instead to specify what
to keep.
(defvar mh-invisible-headers "^Received: \\|^Message-Id: \\|^Remailed-\\|^Via: \\|^Mail-from: \\|^Return-Path: \\|^Delivery-Date: \\|^In-Reply-To: \\|^Resent-" (#$ . 2431))
#@71 *Non-nil means that the displayed show buffer for a folder is buried.
(custom-declare-variable 'mh-bury-show-buffer 't '(#$ . -2758) :type 'boolean :group 'mh-buffer)
#@65 *Number of lines in MH-Folder window (including the mode line).
(custom-declare-variable 'mh-summary-height '4 '(#$ . -2931) :type 'integer :group 'mh-buffer)
#@107 Regexp to find the number of a message in a scan line.
The message's number must be surrounded with \( \)
(defvar mh-msg-number-regexp "^ *\\([0-9]+\\)" (#$ . 3097))
#@136 Format string containing a regexp matching the scan listing for a message.
The desired message's number will be an argument to format.
(defvar mh-msg-search-regexp "^[^0-9]*%d[^0-9]" (#$ . 3270))
#@407 *Name of format file to be used by mhl to show and print messages.
A value of T means use the default format file.
Nil means don't use mhl to format messages when showing; mhl is still used,
with the default format file, to format messages when printing them.
The format used should specify a non-zero value for overflowoffset so
the message continues to conform to RFC 822 and mh-e can parse the headers.
(custom-declare-variable 'mhl-formfile 'nil '(#$ . -3473) :type '(choice (const nil) (const t) string) :group 'mh)
(put 'mhl-formfile 'info-file "mh-e")
#@598 Function to select a default folder for refiling or Fcc.
If set to a function, that function is called with no arguments by
`\[mh-refile-msg]' and `\[mh-to-fcc]' to get a default when
prompting the user for a folder.  The function is called from within a
save-excursion, with point at the start of the message.  It should
return the folder to offer as the refile or Fcc folder, as a string
with a leading `+' sign.  It can also return an empty string to use no
default, or NIL to calculate the default the usual way.
NOTE: This variable is not an ordinary hook;
It may not be a list of functions.
(defvar mh-default-folder-for-message-function nil (#$ . 4039))
#@62 Invoked by mh-find-path while reading the user's MH profile.
(defvar mh-find-path-hook nil (#$ . 4706))
#@70 Invoked whenever the cached folder list `mh-folder-list' is changed.
(defvar mh-folder-list-change-hook nil (#$ . 4816))
#@136 Format string to produce `mode-line-buffer-identification' for show buffers.
First argument is folder name.  Second is message number.
(defvar mh-show-buffer-mode-line-buffer-id "{show-%s} %d" (#$ . 4944))
#@28 Offset to insert notation.
(defvar mh-cmd-note 4 (#$ . 5156))
#@72 String whose first character is used to notate messages in a sequence.
(defvar mh-note-seq "%" (#$ . 5224))
(byte-code "\301B\306\301!\204\f \307\302B\306\302!\204 \307\303B\306\303!\204$ \307\304B\306\304!\2040 \307\305B\306\305!\204< \307\310B\306\310!\204I \307\311B\312	\313B\306\313!\204] \307\314B\306\314!\204j \307\f\315B\306\315!\204w \307\316B\306\316!\204\204 \307\317B\306\317!\204\221 \307\320B\306\320!\204\236 \307\307\207" [current-load-list mh-folder-list mh-user-path mh-draft-folder mh-unseen-seq mh-previous-seq boundp nil mh-inbox mh-temp-buffer " *mh-temp*" mh-previous-window-config mh-current-folder mh-show-buffer mh-folder-filename mh-msg-count mh-showing] 2)
#@92 When moving to a new message in the Folder window,
also show it in a separate Show window.
(defalias 'mh-showing #[nil "\300\207" [nil] 1 (#$ . 5962)])
(byte-code "\301B\304\301!\204\f \305\302B\304\302!\204 \305\303B\304\303!\204$ \305\305\207" [current-load-list mh-seq-list mh-seen-list mh-showing-with-headers boundp nil] 2)
(defalias 'with-mh-folder-updating '(macro . #[(save-modification-flag-p &rest body) "@\302\303\304\302\305	B\306BBE?\205 \307BB\207" [save-modification-flag-p body prog1 let ((mh-folder-updating-mod-flag (buffer-modified-p)) (buffer-read-only nil) (buffer-file-name nil)) progn ((mh-set-folder-modified-p mh-folder-updating-mod-flag)) ((mh-set-folder-modified-p nil))] 6]))
(put 'with-mh-folder-updating 'lisp-indent-hook 1)
(defalias 'mh-in-show-buffer '(macro . #[(show-buffer &rest body) "@\302\303\304D\305\306\307	B\310BB\257\207" [show-buffer body let ((mh-in-show-buffer-saved-window (selected-window))) switch-to-buffer-other-window (if mh-bury-show-buffer (bury-buffer (current-buffer))) unwind-protect progn ((select-window mh-in-show-buffer-saved-window))] 7]))
(put 'mh-in-show-buffer 'lisp-indent-hook 1)
(defalias 'mh-make-seq '(macro . #[(name msgs) "\302	E\207" [name msgs cons] 3]))
(defalias 'mh-seq-name '(macro . #[(pair) "\301D\207" [pair car] 2]))
(defalias 'mh-seq-msgs '(macro . #[(pair) "\301D\207" [pair cdr] 2]))
(put 'mh-show-mode 'mode-class 'special)
#@116 Major mode for showing messages in mh-e.
The value of mh-show-mode-hook is called when a new message is displayed.
(defalias 'mh-show-mode #[nil "\301 \210\302\303\304!\210\305\306!\207" [major-mode kill-all-local-variables mh-show-mode mh-set-mode-name "MH-Show" run-hooks mh-show-mode-hook] 2 (#$ . 7401)])
(defalias 'mh-maybe-show #[(&optional msg) "\205 \302	!\207" [mh-showing msg mh-show] 2])
#@487 Show MESSAGE (default: message at cursor).
Force a two-window display with the folder window on top (size
mh-summary-height) and the show buffer below it.
If the message is already visible, display the start of the message.

Display of the message is controlled by setting the variables
`mh-clean-message-header' and `mhl-formfile'.  The default behavior is
to scroll uninteresting headers off the top of the window.
Type "\[mh-header-display]" to see the message with all its headers.
(defalias 'mh-show #[(&optional message) "\203 	\204\f \n\203 \304 \210\305!\207" [mh-showing-with-headers mhl-formfile mh-clean-message-header message mh-invalidate-show-buffer mh-show-msg] 2 (#$ . 7810) nil])
(defalias 'mh-show-msg #[(msg) "\204 \306\307!\307\n\310\f!\311\312 !\313 =\204! \314 \210\313 \315\f!\210\2032 \316p!\210\317\216\203Q \320\"\232\203Q eb\210\204W \321 \210\202W \322\"\210-\323 T\324 U\204i \325\323 Z!\210\326\327!\210 >\204z  B \330\331!\207" [msg mh-showing mh-current-folder mh-clean-message-header mh-show-buffer show-window mh-get-msg-num t get-buffer-window next-window minibuffer-window selected-window delete-other-windows switch-to-buffer-other-window bury-buffer ((select-window mh-in-show-buffer-saved-window)) mh-msg-filename mh-start-of-uncleaned-message mh-display-msg window-height screen-height shrink-window mh-recenter nil run-hooks mh-show-hook clean-message-header folder mh-in-show-buffer-saved-window mh-bury-show-buffer buffer-file-name mh-summary-height mh-seen-list] 4])
(defalias 'mh-display-msg #[(msg-num folder) "q\210	\n\f\306! !\"#$%&\307\"!\204$ \310\311\"\210!q\210\"'\232?\205\254 \312 \210\313 \210\314\315!\203A \316\315!\210&\203[ \317\320\321\322&;\205T \323&D\"%\210\202` \324\"!\210eb\210%\203v \325e$##\210eb\210\202y \326 \210(\327=\204\203 \330(\331\330!\210\332 \210\"'\330)\333\334!\210\335\330!\210\336 \210\337*#C+q\210\330\211,.\207" [folder mhl-formfile mh-clean-message-header mh-invisible-headers mh-visible-headers msg-num mh-msg-filename file-exists-p error "Message %d does not exist" mh-unvisit-file erase-buffer boundp write-contents-hooks kill-local-variable mh-exec-lib-cmd-output "mhl" "-nobell" "-noclear" "-form" insert-file-contents mh-clean-msg-header mh-start-of-uncleaned-message t nil set-buffer-modified-p set-buffer-auto-saved auto-save-mode 1 set-mark mh-show-mode format mh-show-buffer show-buffer msg-filename visible-headers invisible-headers clean-message-header formfile buffer-file-name buffer-undo-list buffer-backed-up mh-show-buffer-mode-line-buffer-id mode-line-buffer-identification mh-showing-with-headers] 6])
(defalias 'mh-start-of-uncleaned-message #[nil "\301\302\303\304\301#\210\305 \210\306\307!)\207" [case-fold-search t re-search-forward "^To:\\|^Cc:\\|^From:\\|^Subject:\\|^Date:" nil beginning-of-line mh-recenter 0] 4])
(defalias 'mh-invalidate-show-buffer #[nil "\301!\205 \212q\210\302 )\207" [mh-show-buffer get-buffer mh-unvisit-file] 2])
(defalias 'mh-unvisit-file #[nil "\301 \203 \203 \302\303\304\305!\"!\204 \306\307!\210\310 \210\311 \210\312\211\207" [buffer-file-name buffer-modified-p yes-or-no-p format "Message %s modified; flush changes? " file-name-nondirectory error "Flushing changes not confirmed" clear-visited-file-modtime unlock-buffer nil] 5])
(defalias 'mh-get-msg-num #[(error-if-no-message) "\212\302 \210\303!\203 \304\305\224\305\225{!\202 	\203 \306\307!\202 \310)\207" [mh-msg-number-regexp error-if-no-message beginning-of-line looking-at string-to-int 1 error "Cursor not pointing to message" nil] 3])
(defalias 'mh-msg-filename #[(msg &optional folder) "\303\304!	\203 \305	!\202 \n\"\207" [msg folder mh-folder-filename expand-file-name int-to-string mh-expand-file-name] 4])
(defalias 'mh-clean-msg-header #[(start invisible-headers visible-headers) "\304\214	b\210\305\306\307\310#\203 \311u\210	`}\210eb\210\n\203H `dW\203d \312\n!\2037 \313y\210\312\314!\203 \313y\210\202+ \315\313!\210\312\314!\203 \315\313!\210\202; \316\307\304#\203d \317 \210\315\313!\210\312\314!\203H \315\313!\210\202W \320 *\207" [case-fold-search start visible-headers invisible-headers t search-forward "\n\n" nil move -1 looking-at 1 "[ 	]" mh-delete-line re-search-forward beginning-of-line unlock-buffer] 4])
(defalias 'mh-recenter #[(arg) "\301p!\302 =\205 \303\203 \202 \304!\207" [arg get-buffer-window selected-window recenter (4)] 2])
(defalias 'mh-delete-line #[(lines) "`y\210`|\207" [lines] 2])
(defalias 'mh-notate #[(msg notation offset) "\212\203 \306\307\211#\205% \310 \311\211\312 \210\fu\210\313\314!\210c\315!\210+)\207" [msg buffer-file-name buffer-read-only mh-folder-updating-mod-flag offset notation mh-goto-msg t buffer-modified-p nil beginning-of-line delete-char 1 mh-set-folder-modified-p] 4])
(defalias 'mh-find-msg-get-num #[(step) "\303\304!\2066 \304\305\211\2044 \306W\2034 m\203  \307T\202) o\203) \310T\ny\210\303\304!\211\203 	*\207" [nreverses msg-num step mh-get-msg-num nil 0 2 -1 1] 3])
#@280 Position the cursor at message NUMBER.
Optional non-nil second argument means return nil instead of
signaling an error if message does not exist; in this case,
the cursor is positioned near where the message would have been.
Non-nil third argument means not to show the message.
(defalias 'mh-goto-msg #[(number &optional no-error-if-no-message dont-show) "\306!\307\310!	\n\311V\203I \203I =\204I W\2034 Z\312\nT\310\"^\211y\210\307\311!\202\n Z\312\nT\310\"^\211[y\210\307\310!\202\n =\203` \313 \210\f\206i \314!\206i \315\202i ?\205i \316\317\"*\207" [number mh-msg-count jump-size cur-msg dont-show no-error-if-no-message prefix-numeric-value mh-find-msg-get-num -1 1 ash beginning-of-line mh-maybe-show t error "No message %d"] 5 (#$ . 12888) "NGo to message: "])
(defalias 'mh-msg-search-pat #[(n) "\302	\"\207" [mh-msg-search-regexp n format] 3])
(defalias 'mh-get-profile-field #[(field) "\303eb\210\304\305\306	\"\307\303#\204 \307\202. \310\311!\203 \307\202. \304\312\307\303#\210\313\224\307\210\n`{))\207" [case-fold-search field start t re-search-forward format "^%s" nil looking-at "[	 ]*$" "[	 ]*\\([^	 \n].*\\)$" 1] 4])
(byte-code "\301B\302B\301\207" [current-load-list mail-user-agent read-mail-command] 2)
#@49 Non-nil if `mh-find-path' has been run already.
(defvar mh-find-path-run nil (#$ . 14153))
(defalias 'mh-find-path #[nil "\306 \210\204 \307\310\311\212\312\313\314!\206 \315!\316\f!q\210\317\320 \210\321\322\323\217\210\324\325!\211+\2043 \326+\327\312+\312\330!\"!+\324\331!\211,\203f \332,!\204U \333\334,\",\335\336,!!\204f \337\340\336,!\"\210\324\341!\211-\204u \342-\202\203 \332-!\204\203 \333\334-\"-\324\343!\211.\203\225 \344.!.\202\230 \345.\324\346!\211/\203\247 \344/!/\347\350!\210*0\205\271 \3071\321\351\352\217)\207" [mh-find-path-run read-mail-command mail-user-agent profile mh-temp-buffer buffer-offer-save mh-find-progs t mh-rmail mh-e-user-agent expand-file-name getenv "MH" "~/.mh_profile" get-buffer-create nil erase-buffer err (insert-file-contents profile) ((file-error (mh-install profile err))) mh-get-profile-field "Path:" "Mail" file-name-as-directory "~" "Draft-Folder:" mh-folder-name-p format "+%s" file-exists-p mh-expand-file-name error "Draft folder \"%s\" not found.  Create it and try again" "Inbox:" "+inbox" "Unseen-Sequence:" intern unseen "Previous-Sequence:" run-hooks mh-find-path-hook (mh-make-folder-list-background) ((file-error)) mh-user-path mh-draft-folder mh-inbox mh-unseen-seq mh-previous-seq mh-auto-folder-collect mh-no-install] 6])
#@65 Return t if file FILE is the name of a executable regular file.
(defalias 'mh-file-command-p #[(file) "\301!\205	 \302!\207" [file file-regular-p file-executable-p] 2 (#$ . 15480)])
#@128 Find the `inc' and `mhl' programs of MH.
Set the `mh-progs' and `mh-lib', and `mh-lib-progs' variables to the
directory names.
(defalias 'mh-find-progs #[nil "\203 \306\307\310\"!\204 \311	\310\"\206 \311\312\310\"\203u \313\314\n!!\211\315\230\206. \316\230)\203; \317\314\n!!\202 \f\203H \320\307\321\f\"!\204Q \311\322\323\324\"\321\320#\203^ \306\307\325\"!\204t \311\322\326\327\"\325\"\206s \311\330\325\"\206s \311	\325\")\203\201 \f\203\201 \204\205 \331\332!\210\333\334\"\206\220 \333\334\f\"??\211\207" [mh-progs exec-path mh-base dir-name mh-lib mh-lib-progs mh-file-command-p expand-file-name "inc" mh-path-search ("/usr/local/bin/mh/" "/usr/local/mh/" "/usr/bin/mh/" "/usr/new/mh/" "/usr/contrib/mh/bin/" "/usr/pkg/bin/" "/usr/local/bin/") file-name-nondirectory directory-file-name "mh" "bin" file-name-directory file-exists-p "components" mapcar #[(p) "\302	\"\207" [p mh-base expand-file-name] 3] ("lib/mh" "etc/nmh" "/etc/nmh" "mh/lib" "etc" "lib") "mhl" #[(p) "\302	\"\207" [p mh-base expand-file-name] 3] ("lib/mh" "libexec/nmh" "lib/nmh" "mh/lib" "lib") ("/usr/local/bin/mh/") error "Cannot find the commands `inc' and `mhl' and the file `components'" string-match "nmh" mh-nmh-p] 5 (#$ . 15671)])
(defalias 'mh-path-search #[(path file &optional func-p) "\203 	\206	 \303\304\n@\"!\204 A\211\204 @\207" [path func-p file mh-file-command-p expand-file-name] 5])
(byte-code "\301B\302\301!\204\f \303\303\207" [current-load-list mh-no-install boundp nil] 2)
(defalias 'mh-install #[(profile error-val) "\304\305!\204 \306!\204 	\203 \307\n@\310\311\"\nAA@D\"\210\312\313\314\"\315\"\210\316 \210\317\320\321\217\207" [profile mh-no-install error-val mh-lib-progs getenv "MH" file-exists-p signal format "Cannot read MH profile \"%s\"" mh-exec-cmd expand-file-name "install-mh" "-auto" erase-buffer err (insert-file-contents profile) ((file-error (byte-code "\302@\303\304	\"AA@D\"\207" [err profile signal format "Cannot read MH profile \"%s\""] 5)))] 5])
(defalias 'mh-set-folder-modified-p #[(flag) "\301!\207" [flag set-buffer-modified-p] 2])
(defalias 'mh-find-seq #[(name) "\302	\"\207" [name mh-seq-list assoc] 3])
(defalias 'mh-seq-to-msgs #[(seq) "\301!A\207" [seq mh-find-seq] 2])
(defalias 'mh-add-msgs-to-seq #[(msgs seq &optional internal-flag) "\306!\n\203 \n:\204 \nC	\204 \nBB\202) \n\203) 	\307\n	A\"\241\210\f?\205: \310\n\"\210\311\nT#)\207" [seq entry msgs mh-seq-list internal-flag mh-note-seq mh-find-seq append mh-add-to-sequence mh-notate-seq mh-cmd-note] 4])
(byte-code "\300\301\302\"\210\300\303\302\"\210\300\304\302\"\210\300\305\302\"\207" [autoload mh-add-to-sequence "mh-seq" mh-notate-seq mh-read-seq-default mh-map-to-seq-msgs] 3)
(defalias 'mh-set-mode-name #[(mode-name-string) "\302\303!\207" [mode-name-string mode-name force-mode-line-update t] 2])
(byte-code "\301B\302\301!\204\f \303\303\207" [current-load-list mh-folder-hist boundp nil] 2)
(defalias 'mh-prompt-for-folder #[(prompt default can-create) "\204 \306\307\310	\306\232\203 \311\202 \307\312\"#\313\313\f\204$ \314 \210\315	\f\313\211\316\317&\211\203? \n\306\232\203? \306\232\204$ \n\306\232\204K \n\316\232\203P \202[ \320\n!\204[ \307\321\n\"\n\211G\322V\203s \211GSH\323=\203s \322\324O\325\326!!?\211\203\247 \327\307\330\"!\203\247 \331\332\"\210\333\334\313\211\211\326!%\210\331\335\"\210\nC\fB\336\337!\210\202\336 \203\263 \340\341\"\210\202\336 \342\326!!\204\305 \340\343\326!\"\210\202\336 \344\n\f\"\204\336 \344\n\345P\f\"\204\336 \nC\fB\336\337!\210)+\207" [default prompt read-name folder-name mh-folder-list new-file-p "" format "%s folder%s" "? " " [%s]? " nil mh-set-folder-list completing-read "+" mh-folder-hist mh-folder-name-p "+%s" 0 47 -1 file-exists-p mh-expand-file-name y-or-n-p "Folder %s does not exist.  Create it? " message "Creating %s" call-process "mkdir" "Creating %s...done" run-hooks mh-folder-list-change-hook error "Folder %s is not created" file-directory-p "\"%s\" is not a directory" assoc "/"] 9])
(byte-code "\301B\304\301!\204\f \305\302B\304\302!\204 \305\303B\304\303!\204$ \306\305\207" [current-load-list mh-make-folder-list-process mh-folder-list-temp mh-folder-list-partial-line boundp nil ""] 2)
(defalias 'mh-set-folder-list #[nil "\303\304!\210\204 \305 \210\306!\307=\203 \310!\210\202 	\311\312!\210\313\314!\210\313\303\315!\207" [mh-make-folder-list-process mh-folder-list-temp mh-folder-list message "Collecting folder names..." mh-make-folder-list-background process-status run accept-process-output run-hooks mh-folder-list-change-hook nil delete-process "Collecting folder names...done"] 2])
(defalias 'mh-make-folder-list-background #[nil "?\205* 	\204\f \305 \210\306\307\310\306\311\310\"\312\f\203 \313\202 \314%\315\316\"\210\317!)\207" [mh-make-folder-list-process mh-inbox process-connection-type mh-progs mh-recursive-folders mh-find-path nil start-process "folders" expand-file-name "-fast" "-recurse" "-norecurse" set-process-filter mh-make-folder-list-filter process-kill-without-query] 6])
(defalias 'mh-make-folder-list-filter #[(process output) "\306\307\211\310 \311\216\312\313\f#\211\203S \314\315\f\nO#\316\203F \312\317@@\320P!	\"\203F 	C@@\320PCABB\202M 	CB\nT\202 )\f\307O\211,\207" [prevailing-match-data new-folder line-end position output mh-folder-list-partial-line 0 nil match-data ((set-match-data prevailing-match-data)) string-match "\n" format "+%s%s" "" regexp-quote "/" mh-folder-list-temp] 6])
(defalias 'mh-folder-name-p #[(name) "9\203 \301!\302H\303=\207G\302V\205 \302H\303=\207" [name symbol-name 0 43] 2])
(defalias 'mh-exec-cmd #[(command &rest args) "\212\304!q\210\305 \210\306\307\310	\n\"\311\312\311\313!&\210\314 \315V\205! \316\213)\207" [mh-temp-buffer command mh-progs args get-buffer-create erase-buffer apply call-process expand-file-name nil t mh-list-to-string buffer-size 0 ((byte-code "\301!\210\302\303!\207" [mh-temp-buffer switch-to-buffer-other-window sit-for 5] 2))] 8])
(defalias 'mh-exec-cmd-error #[(env command &rest args) "\212\306!q\210\307 \210	\203% \310\311\312\313\314\313\315\316\317	\320\n\"#\n\321\f!&	\2023 \310\311\320\n\"\313\314\313\321\f!&\322\n\"*\207" [mh-temp-buffer env command mh-progs args status get-buffer-create erase-buffer apply call-process "/bin/sh" nil t "-c" format "%s %s ${1+\"$@\"}" expand-file-name mh-list-to-string mh-handle-process-error] 13])
(defalias 'mh-exec-cmd-daemon #[(command &rest args) "\212\306!q\210\307 \210)\310\311\312\n\310\313\n\"\314\f!%\315\316\"*\207" [mh-temp-buffer process-connection-type command mh-progs args process get-buffer-create erase-buffer nil apply start-process expand-file-name mh-list-to-string set-process-filter mh-process-daemon] 7])
(defalias 'mh-process-daemon #[(process output) "\302!q\210\303	!\210\304!\207" [mh-temp-buffer output get-buffer-create insert-before-markers display-buffer] 2])
(defalias 'mh-exec-cmd-quiet #[(raise-error command &rest args) "\306!q\210\307 \210\310\311\312	\n\"\313\314\313&eb\210\203# \315	\f\"\202$ \f)\207" [mh-temp-buffer command mh-progs args value raise-error get-buffer-create erase-buffer apply call-process expand-file-name nil t mh-handle-process-error] 7])
(defalias 'mh-exec-cmd-output #[(command display &rest args) "\304`\305\"\210\306\307\310	\"\311\305\n\312!&\210\313 \207" [command mh-progs display args push-mark t apply call-process expand-file-name nil mh-list-to-string exchange-point-and-mark] 8])
(defalias 'mh-exec-lib-cmd-output #[(command &rest args) "\303\304\305	\"\306\n$\207" [command mh-lib-progs args apply mh-exec-cmd-output expand-file-name nil] 5])
(defalias 'mh-handle-process-error #[(command status) "\302=\203 \207;\203 \303\304	#\207\305 \302U\203  \303\306	#\207\307\310!\210\305 \311 W\203= m\203= \303\312\313\211b\210\314\210`{\"\207\315p!\210\303\316	#\207" [status command 0 error "%s: %s" buffer-size "%s: exit code %d" goto-line 2 screen-width "%s" 1 nil display-buffer "%s failed with status %d.  See error message in other window"] 4])
(defalias 'mh-expand-file-name #[(filename &optional default) "\303!\203 \304\305\306O	\"\207\304\n\"\207" [filename mh-user-path default mh-folder-name-p expand-file-name 1 nil] 4])
(defalias 'mh-list-to-string #[(l) "\301!\237\207" [l mh-list-to-string-1] 2])
(defalias 'mh-list-to-string-1 #[(l) "\302	\203] 	@\203V 	@9\203 \303	@!B\202V 	@\247\203+ \304	@!B\202V 	@\305\232\204V 	@;\203@ 	@B\202V 	@<\203P \306	@!\244\202V \307\310	@\"\210	A\211\204 )\207" [new-list l nil symbol-name int-to-string "" mh-list-to-string-1 error "Bad element in mh-list-to-string: %s"] 4])
(provide 'mh-utils)
