403Webshell
Server IP : 217.160.0.212  /  Your IP : 216.73.216.75
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1073854427 ( 1073854427)
PHP Version : 8.4.23
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /usr/share/emacs/28.2/lisp/mh-e/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/share/emacs/28.2/lisp/mh-e/mh-utils.elc
;ELC
;;; Compiled
;;; in Emacs version 28.2
;;; with all optimizations.



(byte-code "\300\301!\210\300\302!\207" [require mh-e font-lock] 2)
#@187 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.

(fn CHAR STRING)
(defalias 'mh-search-from-end #[514 "\211GS\300\301\302Y\203(H\232\203\262\301\211\262\202\300\203(S\262\202?\205.\211\207" [t nil 0] 7 (#$ . 153)])
#@63 Return position of the N th word backwards.

(fn &optional N)
(defalias 'mh-beginning-of-word #[256 "\211\204\301\262\302 \303\304\"\216\212\305 \210\306!\210\206\301[v\210`*\207" [mail-abbrev-syntax-table 1 syntax-table make-closure #[0 "\301\300!\207" [V0 set-syntax-table] 2] mh-mail-abbrev-make-syntax-table set-syntax-table] 5 (#$ . 513)])
#@56 Check if colors are available in the Emacs being used.
(defalias 'mh-colors-available-p #[0 "\300 \211\247\205\n\211\301Y\207" [mh-display-color-cells 8] 3 (#$ . 872)])
#@54 Check if colors are being used in the folder buffer.
(defalias 'mh-colors-in-use-p #[0 "\205	\207" [mh-colors-available-flag font-lock-mode] 1 (#$ . 1048)])
#@42 Delete the next LINES lines.

(fn LINES)
(defalias 'mh-delete-line #[257 "`y\210`|\207" [] 3 (#$ . 1214)])
#@85 Initialize local variables according to the variable-value PAIRS.

(fn &rest PAIRS)
(defalias 'mh-make-local-vars #[128 "\211\205\300@!A@L\210\211AA\262\202\207" [make-local-variable] 3 (#$ . 1328)])
#@83 Apply FUNCTION to each element of LIST for side effects only.

(fn FUNCTION LIST)
(defalias 'mh-mapc #[514 "\211\205@!\210\211A\262\202\207" [] 4 (#$ . 1541)])
#@57 List of special characters in pick regular expressions.
(defvar mh-pick-regexp-chars ".*$[" (#$ . 1714))
#@124 Quote `mh-pick-regexp-chars' in PICK-EXPR.
PICK-EXPR is a list of strings. Return nil if PICK-EXPR is nil.

(fn PICK-EXPR)
(defalias 'mh-quote-pick-expr #[257 "\301\211\203D\211@\211\203=\211\302\230\204=\303GSX\2034\304\305H\"\306\211\307\211%\262\210T\262\202\266\310C\"\262A\266\202\202\210\207" [mh-pick-regexp-chars nil "" 0 string 92 mh-replace-regexp-in-string t append] 13 (#$ . 1826)])
#@115 Replace all occurrences of OLD with NEW in the current buffer.
Ignores case when searching for OLD.

(fn OLD NEW)
(defalias 'mh-replace-string #[514 "eb\210\301\302\303\301#\205\304\301\211#\210\202)\207" [case-fold-search t search-forward nil replace-match] 6 (#$ . 2253)])
(defvar mh-logo-cache nil)
#@40 Modify mode line to display MH-E logo.
(defalias 'mh-logo-display #[0 "\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 (#$ . 2568)])
#@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 (#$ . 3009))
#@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 #[0 "?\205\275	\204
\306\n!\210\307\310!\203\"\311\307\310!!\204\"\312\313\307\310!\"\210\314 \204+\312\315!\210\307\310!\204;\311\316!\204;\312\317!\210\320\321!\211\204E\322\323\324\324\325!\"!\326\324\327\"!\210\320\330!\211\203w\331\f!\204h\332\333\f\"\334\335\f!!\204w\312\336\335\f!\"\210\320\337!\211\204\204\340\202\217\331
!\204\217\332\333
\"\320\341!\211)\203\241\342)!)\202\244\343)\320\344!\211*\203\263\342*!*\345\346!\210\347 \210\350\211\207" [mh-find-path-run mh-variant-in-use mh-variant mh-user-path mh-draft-folder mh-inbox mh-variant-set 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 mh-unseen-seq mh-previous-seq] 6 (#$ . 3199)])
#@60 Display STRING in the minibuffer momentarily.

(fn STRING)
(defalias 'mh-ephem-message #[257 "\300\301\"\210\302\303!\210\300\304!\207" [message "%s" sit-for 5 ""] 4 (#$ . 5002)])
#@63 Mode to use if messages are not present for the current mode.
(defvar mh-help-default nil (#$ . 5189))
#@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 (#$ . 5299))
#@607 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.

(fn MESSAGES &optional DEFAULT)
(defalias 'mh-set-help #[513 "B\211	\235\203	\266\202\211	B\210\211\205\211\207" [major-mode mh-help-messages mh-help-default] 5 (#$ . 5497)])
#@266 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.

(fn &optional HELP-MESSAGES)
(defalias 'mh-help #[256 "\211\206\303\304	\"\236A\305\306\307\310#!\311\312\313\"\n\"\207" [major-mode mh-help-messages mh-help-buffer nil assoc substitute-command-keys mapconcat identity "" with-electric-help make-closure #[0 "\300c\207" [V0] 1]] 7 (#$ . 6265) nil])
#@75 Display cheat sheet for the commands of the current prefix in minibuffer.
(defalias 'mh-prefix-help #[0 "\302 \211G\303Z\234\304\304	\"\"A\305!\207" [major-mode mh-help-messages recent-keys 2 assoc mh-help] 7 (#$ . 6810) nil])
#@276 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.

(fn MESSAGES)
(defalias 'mh-coalesce-msg-list #[257 "\300\301!\302\"\303\304\303\203K\2038\247\203@S\232\2048=\203,B\262\2025\305\306#B\262\303\262\204@@\262@\262A\262\202	\207" [sort copy-sequence mh-greaterp nil -1 format "%s-%s"] 9 (#$ . 7048)])
#@170 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.

(fn MSG1 MSG2)
(defalias 'mh-greaterp #[514 "\247\203\211\247\203V\207\300\207\211\247?\205\211\231\207" [t] 4 (#$ . 7597)])
#@169 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.

(fn MSG1 MSG2)
(defalias 'mh-lessp #[514 "\300\"?\207" [mh-greaterp] 5 (#$ . 7893)])
#@185 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.

(fn ERROR-IF-NO-MESSAGE)
(defalias 'mh-get-msg-num #[257 "\212\300 \210\301\302 !\203\303\304\224\304\225{!\202 \211\203\305\306!\202 \307)\207" [beginning-of-line looking-at mh-scan-msg-number-regexp string-to-number 1 user-error "Cursor not pointing to message" nil] 4 (#$ . 8140)])
(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 #[0 "\301!\207" [mh-sub-folders-cache clrhash] 2 (#$ . 8759)])
#@44 Collect folder names by running "folders".
(defalias 'mh-collect-folder-names #[0 "?\205
\301\302\303\304\305$\211\207" [mh-flists-process mh-exec-cmd-daemon "folders" mh-collect-folder-names-filter "-recurse" "-fast"] 5 (#$ . 8897)])
#@161 Read folder names.
PROCESS is the flists process that was run to collect folder
names and the function is called when OUTPUT is available.

(fn PROCESS OUTPUT)
(defalias 'mh-collect-folder-names-filter #[514 "\301\302 \303\211\304\305\"\216\306\307#\211\262\2039\310\311O#\262\312\211\313H\314=\2042\315!\210T\262\202\n)\303O\211\207" [mh-flists-partial-line 0 match-data nil make-closure #[0 "\301\300!\207" [V0 set-match-data] 2] string-search "\n" format "+%s%s" "" 1 46 mh-populate-sub-folders-cache] 12 (#$ . 9142)])
#@56 Tell `mh-sub-folders-cache' about FOLDER.

(fn FOLDER)
(defalias 'mh-populate-sub-folders-cache #[257 "\301\302\"\206\n\303T\304O\205\303O\211\205\301\302\"\205*\206'\303T\304O\2052\303O\305\"\211\304\306\304:\203`@\262@\n\232\203U\306\262\304\211\262\202V\306\203`A\262\202:?\205f\211\266\204?\205\257CB\262\307\310\311\"#\266\205\257\3122\257\305\"\304:\203\253@\262\211@\232\203\244\211\306\241\210\313\312\304\"\210A\262\202\213\266\3040\207" [mh-sub-folders-cache mh-search-from-end 47 0 nil gethash t puthash sort #[514 "@@\231\207" [] 4 "\n\n(fn X Y)"] --cl-block-nil-- throw] 14 (#$ . 9694)])
#@925 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.

(fn FOLDER &optional EMPTY-STRING-OKAY DONT-REMOVE-TRAILING-SLASH RETURN-NIL-IF-FOLDER-EMPTY)
(defalias 'mh-normalize-folder-name #[1025 "\301\232\204\f\302\232\203\211\203\303\211\262\204;\203\304\305\"\203/\306\307\303\310$\262\202G\211\311V\205=SH\312=\311V\205H\311H\312=\311V\203g\311H\313=\203g;\203g\314\315	\316\303O#\262\317\302\320	\307\"\"\303\211\203\240\211@\211\321\232\203\210\203\210A\262\202\231\211\322\267\202\224\202\231\202\231\211B\262A\266\202\202q\210\302\262	\211\211\203\271\211@\211\307\fQ\262A\266\202\202\245\210\203\303\204\324\302\232\204\324\311\nGSO\262	\203\336\307	P\262	\266\203\352\302\232\204\302\232\203\366\301\262\202\311H\323=\204\301P\262\207" [mh-current-folder-name "+" "" nil string-match "//" replace-match "/" t 0 47 64 format "%s/%s/" 1 delete split-string ".." #s(hash-table size 2 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (".." 142 "." 145)) 43] 14 (#$ . 10368)])
#@70 Return t if FOLDER from sub-folders cache has children.

(fn FOLDER)
(defalias 'mh-children-p '(macro . #[257 "\300\301D\302BB\207" [if cdr (t nil)] 4 (#$ . 12234)]))
#@578 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.

(fn FOLDER)
(defalias 'mh-folder-list #[257 "\300\203\301\302\303#\262\301\304\303#\262\303\232\203\300\262\203)C\262\305P\262\306!\300:\203V@\262\307A\203G\310@P!\202L@PC\"\262A\262\202-\266\207" [nil mh-replace-regexp-in-string "^\\+" "" "/+$" "/" mh-sub-folders append mh-folder-list] 9 (#$ . 12409)])
#@333 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.

(fn FOLDER &optional ADD-TRAILING-SLASH-FLAG)
(defalias 'mh-sub-folders #[513 "\301\302\211\303$\304\305#\211\305=\203\306\307!#\262\202\211\203(\310\311\"\207\207" [mh-sub-folders-cache mh-normalize-folder-name nil t gethash no-result puthash mh-sub-folders-actual mapcar #[257 "\211A\203
\211@\300PAB\207\207" ["/"] 3 "\n\n(fn X)"]] 9 (#$ . 13322)])
#@291 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)

(fn FOLDER)
(defalias 'mh-sub-folders-actual #[257 "\301\302\"\303\304\303\305\306\307;\205CBBBBBBB\303\310\311\312\"r\211q\210\313\314\"\216\315\301\316\"\303\317\303\320%\210edS{*\262\321P\310\311\312\"r\211q\210\313\322\"\216\323\315\"\210eb\210l\203Yn\204\306\324 b\210\325 \326\327\325 \312#\211\250\203\277\211f\330=\203x\211S\262\202j\211T\262f\330=\203\212T\262\202|{\211\331H\211GSH\332>\204\275\211\333=\203\260\232\203\260\331GSO\262\334\335\324 \312#BB\262\266\336y\266\202Q*\210\237\262;\203\347A\262\337\340\336\303O\"G\341\313\342\"\"\262\210\207" [mh-progs expand-file-name "folders" nil (t nil) "-noheader" "-norecurse" "-nototal" generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	\302\300!\207" [V0 buffer-name kill-buffer] 2] call-process "folder" (t nil) "-fast" "+" #[0 "\301\300!\205	\302\300!\207" [V0 buffer-name kill-buffer] 2] apply mh-line-end-position mh-line-beginning-position search-backward " has " 32 0 (46 35 44) 43 search-forward "(others)" 1 format "%s/" mapcar #[257 "\211@\300\301OAB\207" [V0 nil] 4 "\n\n(fn F)"]] 15 (#$ . 13984)])
#@472 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!

(fn FOLDER)
(defalias 'mh-remove-from-sub-folders-cache #[257 "\301\"\210\3022D\211\303\211\304\305\"\211\262\203=\306O\262\307\310#\310=\204\f\301\"\210\2037\311\302\303\"\210\202\f\312\262\202\f\301\303\"\266\2030\207" [mh-sub-folders-cache remhash --cl-block-ancestor-found-- nil mh-search-from-end 47 0 gethash none throw t] 8 (#$ . 15412)])
#@132 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 "+".

(fn NAME)
(defalias 'mh-folder-name-p #[257 "\2119\203
\300!\301H\302=\207\211G\301V\205\211\301H\302=\207" [symbol-name 0 43] 3 (#$ . 16244)])
#@222 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.

(fn FILENAME &optional DEFAULT)
(defalias 'mh-expand-file-name #[513 "\301!\203\302\303\304O\"\207\302\"\207" [mh-user-path mh-folder-name-p expand-file-name 1 nil] 6 (#$ . 16520)])
(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 (#$ . 16933))
(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 #[0 "\302\303!\205?\205\304	!\305V\207" [mh-speed-flists-inhibit-flag mh-speed-flists-cache featurep mh-speed hash-table-count 0] 2 (#$ . 17420)])
#@372 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.

(fn NAME PREDICATE FLAG)
(defalias 'mh-folder-completion-function #[771 "\302\303\304#\305\306\"\211\205\307TO\211\203T\303O\202*\203)\310\303O\202*\311\242\312=\203^\312\305\306	\"\211\203@\211T\202M\313\314\n\"\203L\310\202M\307\262A\205[\315\316A\"BB\207\317\267\202\306\320\321\304\"#\211\204s\303\207\211\304=\203\202\232\203\202\304\207\211\304=\203\212\207\206\217\322P\207\323\321\304\"#\207G\310V\205\250\310H\306=?\205\255\310\303OP	\203\272\324!\207\211\232\203\302\303\207\324!\207\242\312=\205\371\312\305\306	\"\211\203\334\211T\202\351\313\314\n\"\203\350\310\202\351\307\262A\205\367\315\316A\"BB\207" [mh-user-path mh-allow-root-folder-flag mh-normalize-folder-name nil t mh-search-from-end 47 0 1 "" boundaries string-match "\\`\\+" string-search "/" #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (nil 100 t 146 lambda 156)) try-completion mh-sub-folders "+" all-completions file-directory-p] 12 (#$ . 17673)])
#@212 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'.

(fn PROMPT DEFAULT ALLOW-ROOT-FOLDER-FLAG)
(defalias 'mh-folder-completing-read #[771 "\304\305\306\307\310\211\211\311	&+\312\"\207" [mh-folder-completion-map mh-allow-root-folder-flag minibuffer-local-completion-map completion-root-regexp mh-normalize-folder-name "^[+/]" completing-read mh-folder-completion-function nil mh-folder-hist t] 12 (#$ . 19069)])
#@523 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.

(fn PROMPT DEFAULT CAN-CREATE &optional DEFAULT-STRING ALLOW-ROOT-FOLDER-FLAG)
(defalias 'mh-prompt-for-folder #[1283 "\204\303\262\206\303\232?\205\304\305#\306\211\307	#\211\262\2037\303\232\2037\303\232\204\303\232\204G\310\232\203N\204N\262\202Z\311!\204Z\312\313\"\262\203d\303\232\203h\314\315!\210\262\211G\316V\203\202\211GSH\317=\203\202\211\316\320O\262\321\317\"\211\205\216\316O\203\232T\306O\202\236\322\306O\211\323\324\325\n\"\"\235\204\256\326!\210\266\327\330!!?\211\203\352\203\352\331\312\332\"!\203\352\333\334\"\210\335\306\336#\210\326!\210\337\340!\203\341\341!\210\333\342\"\266\202\211\203\367\314\343\"\266\202\344\330!!\204\314\345\330!\"\210\210)\207" [mh-current-folder mh-current-folder-name mh-sub-folders-cache "" format-prompt "%s folder" nil mh-folder-completing-read "+" mh-folder-name-p format "+%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"] 18 (#$ . 19612)])
#@66 Return non-nil if the point is in the header of a draft message.
(defalias 'mh-in-header-p #[0 "`\300 W\207" [mh-mail-header-end] 2 (#$ . 21385)])
#@35 Extract From: string from header.
(defalias 'mh-extract-from-header-value #[0 "\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 (#$ . 21538)])
#@149 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.

(fn FIELD)
(defalias 'mh-get-header-field #[257 "\300!\203\301\302w\210`\303 \210\304`\"\207\305\207" [mh-goto-header-field " 	" nil mh-header-field-end buffer-substring-no-properties ""] 5 (#$ . 21788)])
#@146 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.

(fn FIELD)
(defalias 'mh-goto-header-field #[257 "eb\210\301\212\302\303!\210`)\304\305\306\"\301#)\207" [case-fold-search t mh-goto-header-end 0 re-search-forward format "^%s"] 7 (#$ . 22141)])
#@55 Move the cursor ARG lines after the header.

(fn ARG)
(defalias 'mh-goto-header-end #[257 "\301\302\303!\304Q\305\211#\205\211y\207" [mh-mail-header-separator re-search-forward "^\\(" regexp-quote "\\)?$" nil] 5 (#$ . 22480)])
#@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 #[0 "\212eb\210\30025\301\211\302\303\301\304#\262\204\305\300\301\"\210\202/\306\224b\210\307\310!\204,\305\300\301\"\210b\210\301\262\202\n\210`)\207" [--cl-block-nil-- nil re-search-forward "^\\([:\n]\\|[^: 	\n]+[ 	\n]\\)" move throw 0 looking-at "From "] 6 (#$ . 22717)])
#@98 Move to the beginning of the current header field.
Handle RFC 822 (or later) continuation lines.
(defalias 'mh-header-field-beginning #[0 "\300 \210\301\302!\205\303y\210\202\207" [beginning-of-line looking-at "^[ 	]" -1] 2 (#$ . 23253)])
#@92 Move to the end of the current header field.
Handle RFC 822 (or later) continuation lines.
(defalias 'mh-header-field-end #[0 "\300y\210\301\302!\203\300y\210\202\303u\207" [1 looking-at "^[ 	]" -1] 2 (#$ . 23502)])
#@26 Hide all skipped fields.
(defalias 'mh-letter-hide-all-skipped-fields #[0 "\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 (#$ . 23728)])
#@46 Check if FIELD is to be skipped.

(fn FIELD)
(defalias 'mh-letter-skipped-header-field-p #[257 "\211\227\301\302\301:\203+@\262\227\232\203 \302\262\301\211\262\202!\302\203+A\262\202?\2051\211\207" [mh-compose-skipped-header-fields nil t] 8 (#$ . 24139)])
(defvar mh-hidden-header-keymap (byte-code "\300 \301\302\303#\210\207" [make-sparse-keymap define-key [mouse-2] mh-letter-toggle-header-field-display-button] 5))
#@294 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.

(fn ARG)
(defalias 'mh-letter-toggle-header-field-display #[257 "\303 \205\223\304\210\305\304\306#\205\223\304\307 `\304\304\210\310\311\304\306#\203'\312\224\202(dS\262b\210\313\314\n\315BB#\210\316\317\"\216\204J\320\321\322$\204c\247\203U\312Y\204c\323=\203u\324\325!V\203u\326\327#\210\330\331\332 \306#\210\333 \202\220\323=\203\207\334\210\335!\210\336 \202\220\304\210\335!\210\336 *\266\204\207" [mh-letter-header-field-regexp 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) make-closure #[0 "\301\300!\207" [V0 set-buffer-modified-p] 2] 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] 11 (#$ . 24585) (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 #[0 "\300\301f\302>\203\301u\210\301\262\202\211\205\303c\207" [t nil (9 32) " "] 3 (#$ . 25870)])
#@132 Replace text from current line till END with an ellipsis.
If the current line is too long truncate a part of it as well.

(fn END)
(defalias 'mh-letter-truncate-header-field #[257 "\300 \301^i\302\\V\203i\303\\Z\206\304[u\210`V\205#\305`\306#\207" [window-width 62 4 5 1 add-text-properties (invisible vanish)] 6 (#$ . 26188)])
#@44 Return non-nil if buffer includes "^-- $".
(defalias 'mh-signature-separator-p #[0 "\212eb\210\301\302\303#)\207" [mh-signature-separator-regexp re-search-forward nil t] 4 (#$ . 26531)])
(provide 'mh-utils)

Youez - 2016 - github.com/yon3zu
LinuXploit