MMCT TEAM
Server IP : 111.118.215.189  /  Your IP : 18.218.164.141
Web Server : Apache
System : Linux md-in-83.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64
User : a1673wkz ( 2475)
PHP Version : 8.2.25
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /usr/share/emacs/24.3/lisp/mh-e/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : //usr/share/emacs/24.3/lisp/mh-e/mh-utils.elc
;ELC
;;; Compiled by mockbuild@buildfarm06-new.corp.cloudlinux.com on Fri Oct 11 10:11:41 2024
;;; from file /builddir/build/BUILD/emacs-24.3/lisp/mh-e/mh-utils.el
;;; in Emacs version 24.3.1
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.

;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.

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


(byte-code "\300\301!\210\300\302!\207" [require mh-e font-lock] 2)
#@169 Return the position of last occurrence of CHAR in STRING.
If CHAR is not present in STRING then return nil. The function is
used in lieu of `search' in the CL package.
(defalias 'mh-search-from-end #[(char string) "GS\305\306	\307Y\203)	H\f\232\203	\306\211\202\305\203)	S\211\202	\n?\205/+\207" [string index #1=#:--cl-var-- #2=#:--cl-var-- char t nil 0] 3 (#$ . 625)])
#@45 Return position of the N th word backwards.
(defalias 'mh-beginning-of-word #[(&optional n) "\204\303\301 \304\216\212\305 \210\306\n!\210[v\210`+\207" [n syntax-table mail-abbrev-syntax-table 1 ((set-syntax-table syntax-table)) mh-mail-abbrev-make-syntax-table set-syntax-table] 2 (#$ . 1019)])
#@56 Check if colors are available in the Emacs being used.
(defalias 'mh-colors-available-p #[nil "\301 \211\247\205\302Y)\207" [color-cells mh-display-color-cells 8] 3 (#$ . 1327)])
#@54 Check if colors are being used in the folder buffer.
(defalias 'mh-colors-in-use-p #[nil "\205	\207" [mh-colors-available-flag font-lock-mode] 1 (#$ . 1516)])
#@30 Delete the next LINES lines.
(defalias 'mh-delete-line #[(lines) "`y\210`|\207" [lines] 2 (#$ . 1684)])
#@67 Initialize local variables according to the variable-value PAIRS.
(defalias 'mh-make-local-vars #[(&rest pairs) "\205\301@!A@L\210AA\211\204\302\207" [pairs make-local-variable nil] 3 (#$ . 1795)])
#@63 Apply FUNCTION to each element of LIST for side effects only.
(defalias 'mh-mapc #[#'list "\205	@!\210A\211\204\302\207" [list function nil] 3 (#$ . 2008)])
#@57 List of special characters in pick regular expressions.
(defvar mh-pick-regexp-chars ".*$[" (#$ . 2179))
#@108 Quote `mh-pick-regexp-chars' in PICK-EXPR.
PICK-EXPR is a list of strings. Return nil if PICK-EXPR is nil.
(defalias 'mh-quote-pick-expr #[(pick-expr) "\306	\306\211\203L@\211\203E\n\307\230\204E\310
GS
\f
X\203>\302\311
\fH\"\312\211\n\313\211%)\fT\211\202*\314\nC\"A\211\204\n*)\207" [quoted-pick-expr pick-expr string --dolist-tail-- i mh-pick-regexp-chars nil "" 0 92 mh-replace-regexp-in-string t append #1=#:--cl-var-- s] 7 (#$ . 2291)])
#@101 Replace all occurrences of OLD with NEW in the current buffer.
Ignores case when searching for OLD.
(defalias 'mh-replace-string #[(old new) "eb\210\303\304	\305\303#\205\306\n\303\211#\210\202)\207" [case-fold-search old new t search-forward nil replace-match] 4 (#$ . 2768)])
(defvar mh-logo-cache nil)
#@40 Modify mode line to display MH-E logo.
(defalias 'mh-logo-display #[nil "\304\305\306\"\211@\307\301!\205	B\310\311\312\313\n\206#\314\315!\205!\315\316!\211D@$\210*\317\207" [load-path image-load-path mh-logo-cache mode-line-buffer-identification mh-image-load-path-for-library "mh-e" "mh-logo.xpm" boundp add-text-properties 0 2 display fboundp find-image ((:type xpm :ascent center :file "mh-logo.xpm")) nil] 7 (#$ . 3084)])
#@142 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.
(defvar mh-find-path-run nil (#$ . 3527))
#@537 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.
(defalias 'mh-find-path #[nil "?\205\256\306\307!\203\310\306\307!!\204\311\312\306\307!\"\210\313 \204#\311\314!\210\306\307!\2043\310\315!\2043\311\316!\210\317\320!\211\204=\321\322\323	\323\324!\"!\325\323\326	\"!\210\317\327!\211\203o\330\n!\204`\331\332\n\"\333\334\n!!\204o\311\335\334\n!\"\210\317\336!\211\204|\337\202\207\330!\204\207\331\332\"\317\340!\211\203\226\341\f!\202\230\342\317\343!\211\203\244\341
!\344\345!\210\346 \210\347\211\207" [mh-find-path-run mh-user-path mh-draft-folder mh-inbox mh-unseen-seq mh-previous-seq getenv "MH" file-readable-p error "MH environment variable contains unreadable file %s" mh-variants "Install MH and run install-mh before running MH-E" "~/.mh_profile" "Run install-mh before running MH-E" mh-profile-component "Path" "Mail" file-name-as-directory expand-file-name "~" mh-set-x-image-cache-directory ".mhe-x-image-cache" "Draft-Folder" mh-folder-name-p format "+%s" file-exists-p mh-expand-file-name "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-collect-folder-names t] 6 (#$ . 3717)])
#@47 Display STRING in the minibuffer momentarily.
(defalias 'mh-ephem-message #[(string) "\301\302\"\210\303\304!\210\301\305!\207" [string message "%s" sit-for 5 ""] 3 (#$ . 5449)])
#@63 Mode to use if messages are not present for the current mode.
(defvar mh-help-default nil (#$ . 5635))
#@150 Help messages for all modes.
This is an alist of alists. The primary key is a symbol
representing the mode; the value is described in `mh-set-help'.
(defvar mh-help-messages nil (#$ . 5745))
#@574 Set help messages.

The MESSAGES are assumed to be an associative array. It is used
to show help for the most common commands in the current mode.
The key is a prefix char. The value is one or more strings which
are concatenated together and displayed in a help buffer if ? is
pressed after the prefix character. The special key nil is used
to display the non-prefixed commands.

The substitutions described in `substitute-command-keys' are performed as
well.

If optional argument DEFAULT is non-nil, then these messages will
be used if help is asked for an unknown mode.
(defalias 'mh-set-help #[(messages &optional default) "\304\305	B\"\210\n\205\211\207" [major-mode messages default mh-help-default add-to-list mh-help-messages] 4 (#$ . 5943)])
#@236 Display cheat sheet for the MH-E commands.
See `mh-set-help' for setting the help messages.
HELP-MESSAGES are used instead if given.
This is a list of one or more strings which are concatenated together
and displayed in a help buffer.
(defalias 'mh-help #[(&optional help-messages) "\206\f\306\307\306	\n\"\"A\310\311\312\313#!\314\315
\"*\207" [help-messages major-mode mh-help-messages help text mh-help-buffer assoc nil substitute-command-keys mapconcat identity "" with-electric-help #[nil "c\207" [text] 1]] 5 (#$ . 6706) nil])
#@75 Display cheat sheet for the commands of the current prefix in minibuffer.
(defalias 'mh-prefix-help #[nil "\305 \211\211G\306Z\234\307	\307\n\"\"A\310\f!+\207" [keys prefix-char major-mode mh-help-messages help recent-keys 2 assoc mh-help] 6 (#$ . 7251) nil])
#@261 Given a list of MESSAGES, return a list of message number ranges.
This is the inverse of `mh-read-msg-list', which expands ranges.
Message lists passed to MH programs should be processed by this
function to avoid exceeding system command line argument limits.
(defalias 'mh-coalesce-msg-list #[(messages) "\305\306!\307\"\310\311\310\n\203I\2039\n\247\203\"\f@\nS\232\2049\n=\203/	B\2027\312\313\n#	B\310\204@\f@\f@\fA\202
	,\207" [messages ranges prev range-high msgs sort copy-sequence mh-greaterp nil -1 format "%s-%s"] 4 (#$ . 7522)])
#@154 Return the greater of two message indicators MSG1 and MSG2.
Strings are "smaller" than numbers.
Valid values are things like "cur", "last", 1, and 1820.
(defalias 'mh-greaterp #[(msg1 msg2) "\247\203	\247\203	V\207\302\207	\247?\205	\231\207" [msg1 msg2 t] 2 (#$ . 8092)])
#@153 Return the lesser of two message indicators MSG1 and MSG2.
Strings are "smaller" than numbers.
Valid values are things like "cur", "last", 1, and 1820.
(defalias 'mh-lessp #[(msg1 msg2) "\302	\"?\207" [msg1 msg2 mh-greaterp] 3 (#$ . 8381)])
#@159 Return the message number of the displayed message.
If the argument ERROR-IF-NO-MESSAGE is non-nil, then complain if
the cursor is not pointing to a message.
(defalias 'mh-get-msg-num #[(error-if-no-message) "\212\301 \210\302\303 !\203\304\305\224\305\225{!\202 \203\306\307!\202 \310)\207" [error-if-no-message beginning-of-line looking-at mh-scan-msg-number-regexp string-to-number 1 error "Cursor not pointing to message" nil] 3 (#$ . 8630)])
(add-to-list 'debug-ignored-errors "^Cursor not pointing to message$")
(defvar mh-sub-folders-cache (make-hash-table :test 'equal))
(defvar mh-current-folder-name nil)
(defvar mh-flists-partial-line "")
(defvar mh-flists-process nil)
#@31 Clear `mh-sub-folders-cache'.
(defalias 'mh-clear-sub-folders-cache #[nil "\301!\207" [mh-sub-folders-cache clrhash] 2 (#$ . 9324)])
#@44 Collect folder names by running "folders".
(defalias 'mh-collect-folder-names #[nil "?\205
\301\302\303\304\305$\211\207" [mh-flists-process mh-exec-cmd-daemon "folders" mh-collect-folder-names-filter "-recurse" "-fast"] 5 (#$ . 9464)])
#@140 Read folder names.
PROCESS is the flists process that was run to collect folder
names and the function is called when OUTPUT is available.
(defalias 'mh-collect-folder-names-filter #[(process output) "\306\307 \310\211\311\216\312\313\f#\211\2032\314\315
\f	O#\316\317H\320\232\204,\321!\210	T\202)\f\310O\211,\207" [folder line-end prevailing-match-data position output mh-flists-partial-line 0 match-data nil ((set-match-data prevailing-match-data)) string-match "\n" format "+%s%s" "" 1 46 mh-populate-sub-folders-cache] 6 (#$ . 9711)])
#@43 Tell `mh-sub-folders-cache' about FOLDER.
(defalias 'mh-populate-sub-folders-cache #[(folder) "\306\307\"	\206\310T\311O	\205\310	O\211\205 \306\307\"\205.\f\206+\310T\311O\f\2057\310\fO\312\"\211\311\313\311:\203u@\211@\n\232\203h\313\311\211\202i\313\203uA\211\202N?\205},?\205\244\nCB\314\315\316\"#\210*\205\244\317\320\215.\207" [folder last-slash child1 parent parent-slash child2 mh-search-from-end 47 0 nil gethash t puthash sort #[(x y) "@	@\231\207" [x y] 2] --cl-block-nil-- (byte-code "\306	\"\307\n:\203)\n@\211@\f\232\203\"\211\310\241\210)\311\312\307\"\210\nA\211\202*\307\207" [grand-parent mh-sub-folders-cache #1=#:--cl-var-- x child2 #2=#:v gethash nil t throw --cl-block-nil--] 4) grand-parent mh-sub-folders-cache cache-entry #3=#:--cl-var-- x #4=#:--cl-var-- #5=#:--cl-var-- #6=#:v #7=#:v] 6 (#$ . 10275)])
#@830 Normalizes FOLDER name.

Makes sure that two '/' characters never occur next to each
other. Also all occurrences of ".." and "." are suitably
processed. So "+inbox/../news" will be normalized to "+news".

If optional argument EMPTY-STRING-OKAY is nil then a '+' is added
at the front if FOLDER lacks one. If non-nil and FOLDER is the
empty string then nothing is added.

If optional argument DONT-REMOVE-TRAILING-SLASH is non-nil then a
trailing '/' if present is retained (if present), otherwise it is
removed.

If optional argument RETURN-NIL-IF-FOLDER-EMPTY is non-nil, then
return nil if FOLDER is "" or "+". This is useful when
normalizing the folder for the "folders" command which displays
the directories in / if passed "+". This is usually not
desired. If this argument is non-nil, then EMPTY-STRING-OKAY has
no effect.
(defalias 'mh-normalize-folder-name #[(folder &optional empty-string-okay dont-remove-trailing-slash return-nil-if-folder-empty) "\306\232\204\f\307\232\203	\203\310\211\204;\203\311\312\"\203,\313\314\310\315$\202G\211\316V\205;\nSH\317\232\n\316V\205G\316H\317\232\n\316V\203d\316H\320\232\203d
;\203d\321\322
\323\310O#\324\307\325\314\"\"\310\211\310\211\203\263@\211\326\232\203\225\203\225\211A@\210\202\252\326\232\204\252\327\232\204\252BA\211\204z*\307\310\211\203\324@\211\314QA\211\204\301*\203\336\204\353\307\232\204\353\316GSO\f\203\363\314P-\203\377\307\232\204\307\232\203\n\306\202\316H\330\232\204\306P\207" [folder return-nil-if-folder-empty length trailing-slash-present leading-slash-present mh-current-folder-name "+" "" nil string-match "//" replace-match "/" t 0 47 64 format "%s/%s/" 1 delete split-string ".." "." 43 result components component --dolist-tail-- dont-remove-trailing-slash empty-string-okay] 7 (#$ . 11204)])
#@57 Return t if FOLDER from sub-folders cache has children.
(defalias 'mh-children-p '(macro . #[(folder) "\301\302D\303BB\207" [folder if cdr (t nil)] 3 (#$ . 13111)]))
#@565 Return FOLDER and its descendants.
FOLDER may have a + prefix. Returns a list of strings without the
+ prefix. If FOLDER is nil, then all folders are considered. For
example, if your Mail directory only contains the folders +inbox,
+outbox, +lists, and +lists/mh-e, then

  (mh-folder-list nil)
       => ("inbox" "lists" "lists/mh-e" "outbox")
  (mh-folder-list "+lists")
       => ("lists" "lists/mh-e")

Respects the value of `mh-recursive-folders-flag'. If this flag
is nil, and the sub-folders have not been explicitly viewed, then
they will not be returned.
(defalias 'mh-folder-list #[(folder) "\304	\203\305\306\307	#\305\310\307	#\211\307\232\203\304	\203%	C	\311P\312	!\304\n:\203Q\n@\313A\203C\314	@P!\202H	@PC\"\nA\211\202,*)\207" [folder-list folder #1=#:--cl-var-- f nil mh-replace-regexp-in-string "^+" "" "/+$" "/" mh-sub-folders append mh-folder-list] 6 (#$ . 13285)])
#@286 Find the subfolders of FOLDER.
The function avoids running folders unnecessarily by caching the
results of the actual folders call.

If optional argument ADD-TRAILING-SLASH-FLAG is non-nil then a
slash is added to each of the sub-folder names that may have
nested folders within them.
(defalias 'mh-sub-folders #[(folder &optional add-trailing-slash-flag) "\306\307\211\310$\311	\312#\211\312=\203\"	\313\314!\f#*\202#\n\2030\315\316
\"\2021
+\207" [folder mh-sub-folders-cache match #1=#:v #2=#:v sub-folders mh-normalize-folder-name nil t gethash no-result puthash mh-sub-folders-actual mapcar #[(x) "A\203
@\301PAB\207\207" [x "/"] 2] add-trailing-slash-flag] 6 (#$ . 14203)])
#@278 Execute the command folders to return the sub-folders of FOLDER.
Filters out the folder names that start with "." so that
directories that aren't usually mail folders are hidden.
Expects FOLDER to have already been normalized with
  (mh-normalize-folder-name folder nil nil t)
(defalias 'mh-sub-folders-actual #[(folder) "\306\307\"\310\311\310\312\313\314	;\205	CBBBBBBB\310\315\316!r\nq\210\317\216\320\306\321\"\310\322\310\323%\210edS{+\324P\315\316!'r'q\210\325\216\326\320
\"\210eb\210l\203Tn\204\330\327 b\210\330 \331\332\330 \333#()(\250\203\321(f\334\232\203{(S\211(\202l(T()f\334\232\203\221)T\211)\202\202)({\211*\335H+*\211GSH,+\336\235\204\320,\337\232\203\304*\232\203\304*\335*GSO**\340\341\327 \333#B\fB+\342y\210*\202L+\f\237	;\203\364\fA\343\344	\342\310O\"G-\345\346\f\")\f+\207" [mh-progs folder #1=#:temp-buffer current-folder results arg-list expand-file-name "folders" nil (t nil) "-noheader" "-norecurse" "-nototal" generate-new-buffer " *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#1# buffer-name kill-buffer] 2)) call-process "folder" (t nil) "-fast" "+" ((byte-code "\301!\203\n\302!\210\301\207" [#2=#:temp-buffer buffer-name kill-buffer] 2)) apply mh-line-end-position mh-line-beginning-position search-backward " has " t 32 0 (46 35 44) 43 search-forward "(others)" 1 format "%s/" mapcar #[(f) "@	\302OAB\207" [f folder-name-len nil] 3] #2# has-pos start-pos name first-char last-char folder-name-len] 9 (#$ . 14911)])
#@459 Remove FOLDER and its parent from `mh-sub-folders-cache'.
FOLDER should be unconditionally removed from the cache. Also the
last ancestor of FOLDER present in the cache must be removed as
well.

To see why this is needed assume we have a folder +foo which has
a single sub-folder qux. Now we create the folder +foo/bar/baz.
Here we will need to invalidate the cached sub-folders of +foo,
otherwise completion on +foo won't tell us about the option
+foo/bar!
(defalias 'mh-remove-from-sub-folders-cache #[(folder) "\302	\"\210\303\304\215\207" [folder mh-sub-folders-cache remhash --cl-block-ancestor-found-- (byte-code "\305\211\306\307\"\211\2034\310	O\311\f\312#\312=\204\313\f\"\210\n\203/\314\315\305\"\210\202\316\202\313\305\f\"+\207" [folder last-slash one-ancestor-found parent mh-sub-folders-cache nil mh-search-from-end 47 0 gethash none remhash throw --cl-block-ancestor-found-- t] 4)] 3 (#$ . 16436)])
#@121 Return non-nil if NAME is the name of a folder.
A name (a string or symbol) can be a folder name if it begins
with "+".
(defalias 'mh-folder-name-p #[(name) "9\203
\301!\302H\303=\207G\302V\205\302H\303=\207" [name symbol-name 0 43] 2 (#$ . 17377)])
#@189 Expand FILENAME like `expand-file-name', but also handle MH folder names.
Any filename that starts with '+' is treated as a folder name.
See `expand-file-name' for description of DEFAULT.
(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 (#$ . 17641)])
(defvar mh-folder-hist nil)
#@245 Non-nil means "+" is an acceptable folder name.
This variable is used to communicate with
`mh-folder-completion-function'. That function can have exactly
three arguments so we bind this variable to t or nil.

This variable should never be set.
(defvar mh-allow-root-folder-flag nil (#$ . 18064))
(defvar mh-folder-completion-map (copy-keymap minibuffer-local-completion-map))
(define-key mh-folder-completion-map " " 'minibuffer-complete)
(defvar mh-speed-flists-inhibit-flag nil)
#@59 Check if speedbar is running with message counts enabled.
(defalias 'mh-speed-flists-active-p #[nil "\302\303!\205?\205\304	!\305V\207" [mh-speed-flists-inhibit-flag mh-speed-flists-cache featurep mh-speed hash-table-count 0] 2 (#$ . 18551)])
#@346 Programmable completion for folder names.
NAME is the partial folder name that has been input. PREDICATE if
non-nil is a function that is used to filter the possible
choices. FLAG is nil to indicate `try-completion', t for
`all-completions', or the symbol lambda for `test-completion'.
See Info node `(elisp) Programmed Completion' for details.
(defalias 'mh-folder-completion-function #[(name predicate flag) "\306\307\310#\311\312\"\211\205\313\nTO\211\203#\nT\307O\202/\203.\314\307O\202/\315
\242\316=\203d\316\311\312	\"\211\203HT\202T\317\320	\"\203S\314\202T\313)
A\205_\317\321
A\"BB\202\365
\307=\203\247\322\f\323\310\"#\211\307=\203\307\202\243\310=\203\220	\232\203\220\310\202\243\310=\203\233\202\243\206\240\324P)\202\365
\310=\203\271\325\f\323\310\"#\202\365
\326=\205\365G\314V\205\313\314H\312=?\205\321\314\307OP\203\344\327!\202\364\232\203\360\307\202\364\327!)-\207" [name orig-name last-slash last-complete remainder flag mh-normalize-folder-name nil t mh-search-from-end 47 0 1 "" boundaries string-match "\\`\\+" "/" try-completion mh-sub-folders "+" all-completions lambda file-directory-p slash predicate try-res mh-user-path path mh-allow-root-folder-flag] 6 (#$ . 18806)])
#@168 Read folder name with PROMPT and default result DEFAULT.
If ALLOW-ROOT-FOLDER-FLAG is non-nil then "+" is allowed to be
a folder name corresponding to `mh-user-path'.
(defalias 'mh-folder-completing-read #[(prompt default allow-root-folder-flag) "\306\307	\310
\311\312\211\211\313
&+\314\"\207" [mh-folder-completion-map allow-root-folder-flag mh-allow-root-folder-flag minibuffer-local-completion-map completion-root-regexp prompt mh-normalize-folder-name "^[+/]" completing-read mh-folder-completion-function nil mh-folder-hist t default] 9 (#$ . 20099)])
#@443 Prompt for a folder name with PROMPT.
Returns the folder's name as a string. DEFAULT is used if the
folder exists and the user types return. If the CAN-CREATE flag
is t, then a folder is created if it doesn't already exist. If
optional argument DEFAULT-STRING is non-nil, use it in the prompt
instead of DEFAULT. If ALLOW-ROOT-FOLDER-FLAG is non-nil then the
function will accept the folder +, which means all folders when
used in searching.
(defalias 'mh-prompt-for-folder #[(prompt default can-create &optional default-string allow-root-folder-flag) "\204\306	\203\307\310	\"\202\306\232\203\306\202\307\310\"\307\311\n	#\312\211)\313\n*#\211\203D
\306\232\203D\306\232\204-
\306\232\204U
\314\232\203Z*\204Z\202e\315
!\204e\307\316
\"
\203o
\306\232\203s\317\320!\210
\211)G\321V\203\217)\211GSH\322=\203\217)\321\323O)\324\322)\"\211+\205\240)\321+O,+\203\261)+T\312O\202\266)\325\312O\211-\326\327\330,.\"\"\235\204\313\331)!\210+\332\333)!!?\211/\2030\203\334\307\335)\"!\203\336\337)\"\210\340\312\341)#\210\331)!\210\342\343!\203\344)!\210\336\345)\"\210\202-/\203\317\346)\"\210\202-\347\333)!!\204-\317\350\333)!\"\210))-\207" [default default-string prompt mh-current-folder mh-current-folder-name read-name "" format " (default %s)" "%s folder%s: " nil mh-folder-completing-read "+" mh-folder-name-p "+%s" error "No folder specified" 0 47 -1 mh-search-from-end 1 mapcar car gethash mh-remove-from-sub-folders-cache file-exists-p mh-expand-file-name y-or-n-p "Folder %s does not exist.  Create it? " message "Creating %s" mh-exec-cmd-error "folder" boundp mh-speed-folder-map mh-speed-add-folder "Creating %s...done" "Folder %s does not exist" file-directory-p "%s is not a directory" folder-name allow-root-folder-flag last-slash parent child mh-sub-folders-cache new-file-flag can-create] 7 (#$ . 20671)])
#@66 Return non-nil if the point is in the header of a draft message.
(defalias 'mh-in-header-p #[nil "`\300 W\207" [mh-mail-header-end] 2 (#$ . 22584)])
#@35 Extract From: string from header.
(defalias 'mh-extract-from-header-value #[nil "\212\300\301!\205\302\303w\210\304`\305 \210`\")\207" [mh-goto-header-field "From:" " 	" nil buffer-substring-no-properties mh-header-field-end] 3 (#$ . 22739)])
#@137 Find and return the body of FIELD in the mail header.
Returns the empty string if the field is not in the header of the
current buffer.
(defalias 'mh-get-header-field #[(field) "\302!\203\303\304w\210`\305 \210\306	`\")\207\307\207" [field start mh-goto-header-field " 	" nil mh-header-field-end buffer-substring-no-properties ""] 3 (#$ . 22991)])
#@134 Move to FIELD in the message header.
Move to the end of the FIELD name, which should end in a colon.
Returns t if found, nil if not.
(defalias 'mh-goto-header-field #[(field) "eb\210\303\212\304\305!\210`)\306\307\310\n\"\303#*\207" [headers-end case-fold-search field t mh-goto-header-end 0 re-search-forward format "^%s"] 4 (#$ . 23350)])
#@45 Move the cursor ARG lines after the header.
(defalias 'mh-goto-header-end #[(arg) "\302\303\304!\305Q\306\211#\205	y\207" [mh-mail-header-separator arg re-search-forward "^\\(" regexp-quote "\\)?$" nil] 4 (#$ . 23700)])
#@215 Substitute for `mail-header-end' that doesn't widen the buffer.

In MH-E we frequently need to find the end of headers in nested
messages, where the buffer has been narrowed. This function works
in this situation.
(defalias 'mh-mail-header-end #[nil "\212eb\210\300\301\215\210`)\207" [--cl-block-nil-- (byte-code "\301\302\303\301\304#\211\204\305\306\301\"\210\202\307\224b\210\310\311!\204#\305\306\301\"\210b\210\202" [p nil re-search-forward "^\\([:\n]\\|[^: 	\n]+[ 	\n]\\)" move throw --cl-block-nil-- 0 looking-at "From "] 5)] 2 (#$ . 23930)])
#@88 Move to the beginning of the current header field.
Handles RFC 822 continuation lines.
(defalias 'mh-header-field-beginning #[nil "\300 \210\301\302!\205\303y\210\202\207" [beginning-of-line looking-at "^[ 	]" -1] 2 (#$ . 24497)])
#@82 Move to the end of the current header field.
Handles RFC 822 continuation lines.
(defalias 'mh-header-field-end #[nil "\300y\210\301\302!\203\300y\210\202\303u\207" [1 looking-at "^[ 	]" -1] 2 (#$ . 24738)])
#@26 Hide all skipped fields.
(defalias 'mh-letter-hide-all-skipped-fields #[nil "\212eb\210\214`\301 }\210\302\303\304#\205,\305\306\307!!\203!\310\311!\210\202%\310\312!\210\313\314!\210\202\n*\207" [mh-letter-header-field-regexp mh-mail-header-end re-search-forward nil t mh-letter-skipped-header-field-p match-string 1 mh-letter-toggle-header-field-display -1 long beginning-of-line 2] 4 (#$ . 24956)])
#@34 Check if FIELD is to be skipped.
(defalias 'mh-letter-skipped-header-field-p #[(field) "\227	\306\307\306\n:\203-\n@\211\227\232\203\"\307\306\211\202#\307\203-\nA\211\202\f\f?\2053
-\207" [field mh-compose-skipped-header-fields #1=#:--cl-var-- x #2=#:--cl-var-- #3=#:--cl-var-- nil t] 3 (#$ . 25369)])
(defvar mh-hidden-header-keymap (byte-code "\301 \302\303\304#\210)\207" [map make-sparse-keymap define-key [mouse-2] mh-letter-toggle-header-field-display-button] 4))
#@284 Toggle display of header field at point.

Use this command to display truncated header fields. This command
is a toggle so entering it again will hide the field. This
command takes a prefix argument ARG: if negative then the field
is hidden, if positive then the field is displayed.
(defalias 'mh-letter-toggle-header-field-display #[(arg) "\306 \205\224\307\210\310\307\311#\205\224\307\312 `\307\307\210\313\314\307\311#\203)\315\224\202*dS\nb\210\316\n	\317
\320BB#\210\321\216!\204I\322\n	\323\324$\204e!\247\203V!\315Y\204e!\325=\203w\326\327!	V\203w\330\n	\331#\210\332\333\334 \311#\210\335 \202\223!\325=\203\212\336\210\337	!\210\340 \202\223\307\210\337	!\210\340 -\207" [mh-letter-header-field-regexp end begin modified-flag buffer-read-only mh-hidden-header-keymap mh-in-header-p nil re-search-backward t buffer-modified-p re-search-forward "^[^ 	]" 0 add-text-properties keymap (mouse-face highlight) ((set-buffer-modified-p modified-flag)) text-property-any invisible vanish long mh-line-beginning-position 5 remove-text-properties (invisible nil) search-forward ":" mh-line-end-position mh-letter-skip-leading-whitespace-in-header-field 4 mh-letter-truncate-header-field beginning-of-line arg] 6 (#$ . 25867) (list nil)])
#@145 Skip leading whitespace in a header field.
If the header field doesn't have at least one space after the
colon then a space character is added.
(defalias 'mh-letter-skip-leading-whitespace-in-header-field #[nil "\301\302f\303>\203\302u\210\302\202\205\304c)\207" [need-space t nil (9 32) " "] 2 (#$ . 27139)])
#@122 Replace text from current line till END with an ellipsis.
If the current line is too long truncate a part of it as well.
(defalias 'mh-letter-truncate-header-field #[(end) "\302 \303^i\304\\V\203i\305\\Z[u\210	`V\205 \306`	\307#)\207" [max-len end window-width 62 4 5 add-text-properties (invisible vanish)] 4 (#$ . 27465)])
#@44 Return non-nil if buffer includes "^-- $".
(defalias 'mh-signature-separator-p #[nil "\212eb\210\301\302\303#)\207" [mh-signature-separator-regexp re-search-forward nil t] 4 (#$ . 27802)])
(provide 'mh-utils)

MMCT - 2023