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-seq.elc
;ELC
;;; Compiled by mockbuild@buildfarm06-new.corp.cloudlinux.com on Fri Oct 11 10:11:40 2024
;;; from file /builddir/build/BUILD/emacs-24.3/lisp/mh-e/mh-seq.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!\210\300\303!\207" [require mh-e mh-scan font-lock] 2)
#@44 Name of seq to which a msg was last added.
(defvar mh-last-seq-used nil (#$ . 643))
#@66 Saved value of `mh-mode-line-annotation' when narrowed to a seq.
(defvar mh-non-seq-mode-line-annotation nil (#$ . 733))
(make-variable-buffer-local 'mh-non-seq-mode-line-annotation)
(defvar mh-internal-seqs '(answered cur deleted forwarded printed))
#@43 Create sequence NAME with the given MSGS.
(defalias 'mh-make-seq #[(name msgs) "	B\207" [name msgs] 2 (#$ . 990)])
(put 'mh-make-seq 'byte-optimizer 'byte-compile-inline-expand)
#@48 Extract sequence name from the given SEQUENCE.
(defalias 'mh-seq-name #[(sequence) "@\207" [sequence] 1 (#$ . 1175)])
(put 'mh-seq-name 'byte-optimizer 'byte-compile-inline-expand)
#@138 Delete RANGE from the "unseen" sequence.

Check the documentation of `mh-interactive-range' to see how
RANGE is read in interactive use.
(defalias 'mh-catchup #[(range) "\302	\"\207" [range mh-unseen-seq mh-delete-msg-from-seq] 3 (#$ . 1364) (list (mh-interactive-range "Catchup" (cons (point-min) (point-max))))])
#@200 Delete RANGE from SEQUENCE.

Check the documentation of `mh-interactive-range' to see how
RANGE is read in interactive use.

In a program, non-nil INTERNAL-FLAG means do not inform MH of the
change.
(defalias 'mh-delete-msg-from-seq #[(range sequence &optional internal-flag) "\306!\307!?	C\310\211\205h\247\203C\311\312\211#\203;\211\nB
A>\2038\313\f?\"\210\314\312#\210)\202;:\203\235@\247\203\235A\247\203\235\212@b\210\315 \210`AX\203\231m\204\231\316!\203\223\317\312!\211\nB
A>\203\213\313\f?\"\210\314\312#\210)\320y\210\202`)\202;\203\2579\203\257\321!\202\277;\203\275\322	\"\202\277\323 \211 \310\211!\203\355!@\211\"#\324\"\312##\210*!A\211!\204\317*\212eb\210\315 \210`dX\203:m\204:\316!\2034\317\312!$\325$\"\2033$\211\nB
A>\203+\313\f?\"\210\314\312#\210))\320y\210\202\365+%\204E\326\n\"\210&\203W%\204W\327\330\n\"\"'=\205h\331 \205h\332\333\312#,\207" [sequence mh-current-folder msg-list folders-changed user-sequence-flag entry mh-find-seq mh-internal-seq nil mh-goto-msg t mh-remove-sequence-notation mh-delete-a-msg-from-seq beginning-of-line looking-at mh-get-msg-num 1 mh-seq-to-msgs mh-translate-range make-hash-table puthash gethash mh-undefine-sequence append mh-index-delete-from-sequence mh-speed-flists-active-p apply mh-speed-flists range msg mh-scan-valid-regexp #1=#:seq-hash-table #2=#:msgs --dolist-tail-- #3=#:v #4=#:v v internal-flag mh-index-data mh-unseen-seq] 6 (#$ . 1687) (list (mh-interactive-range "Delete") (mh-read-seq-default "Delete from" t) nil)])
#@222 Delete SEQUENCE.

You are prompted for the sequence to delete. Note that this
deletes only the sequence, not the messages in the sequence. If
you want to delete the messages, use "\[universal-argument]
\[mh-delete-msg]".
(defalias 'mh-delete-seq #[(sequence) "\306!\307!	C\247\203#\310\311\211#\203\342\312
\"\210)\202\342:\203b@\247\203bA\247\203b\212@b\210\313 \210`AX\203^m\204^\314!\203X\315\311!\312
\"\210)\316y\210\202<)\202\342\203q9\203q\306!\202~;\203}\317	\"\202~\320 \211\321\211\203\252@\211 !\322 \311!#\210*A\211\204\215*\212eb\210\313 \210`dX\203\341m\204\341\314!\203\333\315\311!\"\323\"\"\203\332\"\312
\"\210))\316y\210\202\262+\324\325\"\210\326!\210#\203\370\327\n\330\f\"\"$=\205	\331 \205	\332\333\311\n#+\207" [sequence mh-current-folder folders-changed internal-flag msg-list msg mh-seq-to-msgs mh-internal-seq mh-goto-msg t mh-remove-sequence-notation beginning-of-line looking-at mh-get-msg-num 1 mh-translate-range make-hash-table nil puthash gethash mh-undefine-sequence ("all") mh-delete-seq-locally append mh-index-delete-from-sequence mh-speed-flists-active-p apply mh-speed-flists mh-scan-valid-regexp #1=#:seq-hash-table #2=#:msgs --dolist-tail-- #3=#:v #4=#:v v mh-index-data mh-unseen-seq] 6 (#$ . 3322) (list (mh-read-seq-default "Delete" t))])
#@87 List all sequences in folder.

The list appears in a buffer named "*MH-E Sequences*".
(defalias 'mh-list-sequences #[nil "	\n\306#$%r\307
!q\210p\310 \210%$\311\211&'\312\211(\312)*\313 \210\314\315!\210+\211+,r
q\210\313 \210\316\317!\210\320#\321\261\210\f\f\203b\322\f\211A@\211-@)!G]\202K\323\\)\f\203\321\f@\211-@)\324\325\326\f@\211-A)!\327\"!\311./0\330\211\331\"0\"\211.c\210/\203\306\330\332/\211A/@\"1i1G\\\333 Y\203\276\334c\210\330\211\335.G\"\336\"c\2101c\210)\202\224\334c\210+\fA\211\204keb\210\337 \210\3402\316\341!)\342+!\210.\207" [mh-current-folder mh-sequences-buffer mh-seq-list max-len seq-list temp-buffer 0 get-buffer-create kill-all-local-variables nil t erase-buffer run-hooks temp-buffer-setup-hook message "Listing sequences ..." "Sequences in folder " ":\n" symbol-name 2 mh-coalesce-msg-list sort copy-sequence < format "%%%ss:" " %s" window-width "\n" "%%%ss" "" mh-view-mode-enter kill-buffer "Listing sequences...done" internal-temp-output-buffer-show folder default-directory #1=#:old-dir buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks inhibit-read-only #2=#:buf standard-output sequence name-spec sorted-seq-msgs name next-element view-exit-action] 6 (#$ . 4698) nil])
#@143 Display the sequences in which the current message appears.

Use a prefix argument to display the sequences in which another
MESSAGE appears.
(defalias 'mh-msg-is-in-seq #[(message) "\204\306\307!	\310\307\310\n:\2033\n@A\235\203(@\310\211\202)\307\2033\nA\211\202\f?\2059
,\211?\205E\235\300\311\203W\312\313\"\202c\203b\312\314!\202c\315\316\317\320\321\307\"!\322#$*\207" [message mh-refile-list #1=#:--cl-var-- seq #2=#:--cl-var-- #3=#:--cl-var-- mh-get-msg-num t nil "Message %d%s is in sequences: %s" format " (to be refiled to %s)" " (to be deleted)" "" mapconcat concat mh-list-to-string mh-seq-containing-msg " " dest-folder mh-delete-list deleted-flag] 11 (#$ . 5992) "P"])
#@348 Restrict display to messages in SEQUENCE.

You are prompted for the name of the sequence. What this command
does is show only those messages that are in the selected
sequence in the MH-Folder buffer. In addition, it limits further
MH-E searches to just those messages.

When you want to widen the view to all your messages again, use
\[mh-widen].
(defalias 'mh-narrow-to-seq #[(sequence) "\306 \307\211\310!\203\211\311 \210d\312\307!!\"B\"\313\314\315\"!\316!\210\317e
\"#B#e
|\210\320 \210\321 \210\f\203D\322\f\323\211#\210$%\324!$\325 \210\326\307!\210\327\330!\203~\203~\331\332!\210&\333\334'!!\203~r'q\210\331\332!\210()\335)B\211)*\202\217\336\337\324!\"\340\n!\210+\207" [buffer-file-name buffer-read-only mh-folder-updating-mod-flag sequence msg-at-cursor eob buffer-modified-p nil mh-seq-to-msgs mh-remove-all-notation mh-get-msg-num make-hash-table :test eql mh-copy-seq-to-eob buffer-substring-no-properties mh-notate-deleted-and-refiled mh-notate-cur mh-goto-msg t symbol-name mh-make-folder-mode-line mh-recenter boundp tool-bar-mode make-local-variable tool-bar-map buffer-live-p get-buffer widen error "No messages in sequence %s" mh-set-folder-modified-p mh-thread-scan-line-map mh-thread-scan-line-map-stack mh-folder-view-stack mh-mode-line-annotation mh-non-seq-mode-line-annotation mh-folder-seq-tool-bar-map mh-show-buffer mh-show-seq-tool-bar-map mh-view-ops] 4 (#$ . 6725) (list (mh-read-seq "Narrow to" t))])
#@337 Limit to ticked messages.

What this command does is show only those messages that are in
the "tick" sequence (which you can customize via the
`mh-tick-seq' option) in the MH-Folder buffer. In addition, it
limits further MH-E searches to just those messages. When you
want to widen the view to all your messages again, use
\[mh-widen].
(defalias 'mh-narrow-to-tick #[nil "\204\302\303!\207\304!\211A)\204\305\306\"\207\307!\207" [mh-tick-seq sequence error "Enable ticking by customizing `mh-tick-seq'" mh-find-seq message "No messages in %s sequence" mh-narrow-to-seq] 4 (#$ . 8203) nil])
#@331 Add RANGE to SEQUENCE\<mh-folder-mode-map>.

Give this command a RANGE and you can add all the messages in a
sequence to another sequence (for example,
"\[universal-argument] \[mh-put-msg-in-seq] SourceSequence RET
DestSequence RET"). Check the documentation of
`mh-interactive-range' to see how RANGE is read in interactive
use.
(defalias 'mh-put-msg-in-seq #[(range sequence) "\306!\204\307\310\"\210\311!\312!\211A)C\313
!\314\315\316$\210
\247\203G\317
\316\211#\203
\211 \n>\204C\320 	\"\210)\202
:\203\216
@\247\203\216
A\247\203\216\212
@b\210\321 \210`
AX\203\212m\204\212\322!!\203\204\323\316!\211 \n>\204\203\320 	\"\210)\324y\210\202`)\202
\203\235
9\203\235\325
!\202\252
;\203\251\326
\"\202\252
\327 \"\211#\315$\211%\203\330%@\211$&\"'\330&\316'#\210*%A\211%\204\272*\212eb\210\321 \210`dX\203m\204\322!!\203\323\316!(\331(\"\"\203(\211 \n>\204\320 	\"\210))\324y\210\202\340+	\204)*\203-\332\f\333\"\"+=\205>\334 \205>\335\336\316\f#,\207" [sequence internal-seq-flag original-msgs mh-current-folder folders range mh-valid-seq-p error "Can't put message in invalid sequence %s" mh-internal-seq mh-find-seq mh-range-to-msg-list mh-add-msgs-to-seq nil t mh-goto-msg mh-add-sequence-notation beginning-of-line looking-at mh-get-msg-num 1 mh-seq-to-msgs mh-translate-range make-hash-table puthash gethash append mh-index-add-to-sequence mh-speed-flists-active-p apply mh-speed-flists msg-list m mh-scan-valid-regexp #1=#:seq-hash-table #2=#:msgs msg --dolist-tail-- #3=#:v #4=#:v v mh-last-seq-used mh-index-data mh-unseen-seq] 6 (#$ . 8809) (list (mh-interactive-range "Add messages from") (mh-read-seq-default "Add to" nil))])
#@311 Toggle tick mark of RANGE.

This command adds messages to the "tick" sequence (which you can customize
via the option `mh-tick-seq'). This sequence can be viewed later with the
\[mh-index-ticked-messages] command.

Check the documentation of `mh-interactive-range' to see how RANGE is read in
interactive use.
(defalias 'mh-toggle-tick #[(range) "\204\306\307!\210\310!\211\211A)\311\211\247\203l\312\313\211#\203\257\211\235\203O
B	\314	A\"\241\210	A\204E\311\315\316 \"\210\202h\fBD B \317\316 \"\210))\202\257:\203\353@\247\203\353A\247\203\353\212@b\210\320 \210`AX\203\347m\204\347\321!!\203\341\322\313!\211\235\203\307
B	\314	A\"\241\210	A\204\275\311\315\316 \"\210\202\340\fBD B \317\316 \"\210))\323y\210\202\211)\202\257\203\3759\203\375\324!\202;\203\f\325\"\"\202\326 #\211$\311\211%\203<%@\211&#'\327&\313'#\210*%A\211%\204*\212eb\210\320 \210`dX\203\256m\204\256\321!!\203\250\322\313!(\330(#\"\203\247(\211\235\203\215
B	\314	A\"\241\210	A\204\203\311\315\316 \"\210\202\246\fBD B \317\316 \"\210)))\323y\210\202D+\331\f\311\313$\210\332
\"\210)\205\311\333\f\"\210\334
\",\207" [mh-tick-seq tick-seq sequence tick-seq-msgs ticked unticked error "Enable ticking by customizing `mh-tick-seq'" mh-find-seq nil mh-goto-msg t delq mh-remove-sequence-notation mh-colors-in-use-p mh-add-sequence-notation beginning-of-line looking-at mh-get-msg-num 1 mh-seq-to-msgs mh-translate-range make-hash-table puthash gethash mh-add-msgs-to-seq mh-undefine-sequence mh-index-add-to-sequence mh-index-delete-from-sequence range msg mh-last-seq-used mh-seq-list mh-scan-valid-regexp mh-current-folder #1=#:seq-hash-table #2=#:msgs --dolist-tail-- #3=#:v #4=#:v v mh-index-data] 6 (#$ . 10548) (list (mh-interactive-range "Tick"))])
#@196 Remove last restriction.

Each limit or sequence restriction can be undone in turn with
this command. Give this command a prefix argument ALL-FLAG to
remove all limits and sequence restrictions.
(defalias 'mh-widen #[(&optional all-flag) "\306\307!	\203\247\n\203%A\203A\211\202
@\310=\203IA\202I\311\310!\204I\310>\203E@\310=\204?A\211\2022A\202I\312\313!\210\n\203e\fA\203Y\fA\211\202N	A\203e	A\211\202Z\f\211A@\314 \307\211ed|\210	\211A@c\210\315 \210 \316 \210\317!\210+\203\232\320\321\211#\210\322 \210\323 \210\324 \210\325\307!\210)	?\205\330\326\327!\205\330\205\330\330\331!\210!\332\333\"!!\205\330r\"q\210\330\331!\210#\211)\207" [msg mh-folder-view-stack all-flag mh-view-ops mh-thread-scan-line-map-stack mh-thread-scan-line-map mh-get-msg-num nil widen mh-valid-view-change-operation-p error "Widening is not applicable" buffer-modified-p mh-remove-all-notation mh-make-folder-mode-line mh-set-folder-modified-p mh-goto-msg t mh-notate-deleted-and-refiled mh-notate-user-sequences mh-notate-cur mh-recenter boundp tool-bar-mode make-local-variable tool-bar-map buffer-live-p get-buffer buffer-file-name buffer-read-only mh-folder-updating-mod-flag mh-non-seq-mode-line-annotation mh-mode-line-annotation mh-folder-tool-bar-map mh-show-buffer mh-show-tool-bar-map] 5 (#$ . 12461) "P"])
(defvar mh-sequence-history nil)
#@176 Read and return sequence name with default narrowed or previous sequence.
PROMPT is the prompt to use when reading. If NOT-EMPTY is non-nil
then a non-empty sequence is read.
(defalias 'mh-read-seq-default #[(prompt not-empty) "\303	\n\206\304\305\306!\306\"@#\207" [prompt not-empty mh-last-seq-used mh-read-seq mh-seq-containing-msg mh-get-msg-num nil] 6 (#$ . 13864)])
#@248 Read and return a sequence name.
Prompt with PROMPT, raise an error if the sequence is empty and
the NOT-EMPTY flag is non-nil, and supply an optional DEFAULT
sequence. A reply of '%' defaults to the first sequence
containing the current message.
(defalias 'mh-read-seq #[(prompt not-empty &optional default) "\306\307\310	\203\307\311	\"\202\312#\313\n!\314\211\211\315&\211\316\232\203+\317\320\321!\314\"@\2028\312\232\2035	\2028\322!\323\f!\211\204K\203K\324\325\f\"\210\f+\207" [prompt default mh-seq-list input seq msgs completing-read format "%s sequence%s: " " (default %s)" "" mh-seq-names nil mh-sequence-history "%" mh-seq-containing-msg mh-get-msg-num t intern mh-seq-to-msgs error "No messages in sequence %s" not-empty] 8 (#$ . 14246)])
#@66 Return non-nil if NAME is the name of an internal MH-E sequence.
(defalias 'mh-internal-seq #[(name) "	>\206$\n=\206$\305 \203\203=\206$\f=\206$\306!\207" [name mh-internal-seqs mh-unseen-seq mh-tick-seq mh-previous-seq mh-colors-in-use-p mh-folder-name-p] 2 (#$ . 15022)])
#@53 Return non-nil if NAME is a valid MH sequence name.
(defalias 'mh-valid-seq-p #[(name) "9\205\301\302\303!\"\207" [name string-match "^[a-zA-Z][a-zA-Z0-9]*$" symbol-name] 4 (#$ . 15317)])
#@23 Return sequence NAME.
(defalias 'mh-find-seq #[(name) "\302	\"\207" [name mh-seq-list assoc] 3 (#$ . 15515)])
#@39 Return a list of the messages in SEQ.
(defalias 'mh-seq-to-msgs #[(seq) "\302!\211A)\207" [seq sequence mh-find-seq] 3 (#$ . 15632)])
#@123 Return a list of the sequences containing MSG.
If INCLUDE-INTERNAL-FLAG non-nil, include MH-E internal sequences
in list.
(defalias 'mh-seq-containing-msg #[(msg &optional include-internal-flag) "\306\211\2032\n@\211A)>\203+
\204\"\307\n@\211@)!\204+\n@\211@)	B\nA\211\204	*\207" [mh-seq-list seqs l msg sequence include-internal-flag nil mh-internal-seq] 3 (#$ . 15775)])
#@138 Define the SEQ to contain the list of MSGS.
Do not mark pseudo-sequences or empty sequences.
Signals an error if SEQ is an invalid name.
(defalias 'mh-define-sequence #[(seq msgs) "\205\"\303	!\205\"\304	!?\205\"\212\305\306\307\n\310\311\312\313	!\314!&)\207" [msgs seq mh-current-folder mh-valid-seq-p mh-folder-name-p mh-exec-cmd-error nil "mark" "-add" "-zero" "-sequence" symbol-name mh-coalesce-msg-list] 10 (#$ . 16170)])
#@39 Remove from the SEQ the list of MSGS.
(defalias 'mh-undefine-sequence #[(seq msgs) "\303!\205	\205\304\305\306\n\307\310\311!\312	!&\207" [seq msgs mh-current-folder mh-valid-seq-p apply mh-exec-cmd "mark" "-delete" "-sequence" symbol-name mh-coalesce-msg-list] 9 (#$ . 16611)])
#@268 Add MSGS to SEQ.

Remove duplicates and keep sequence sorted. If optional
INTERNAL-FLAG is non-nil, do not mark the message in the scan
listing or inform MH of the addition.

If DONT-ANNOTATE-FLAG is non-nil then the annotations in the
folder buffer are not updated.
(defalias 'mh-add-msgs-to-seq #[(msgs seq &optional internal-flag dont-annotate-flag) "\306!\307!\203:\204C\n\204(\310!\211*B
B\202:\203:\n\310\311\n\211A)\"!\241\210?\205B\312\"\210?\205B\247\203l\313\314\211#\205B\211\nA>?\205h\315	\")\202B:\203\265@\247\203\265A\247\203\265\212@b\210\316 \210`AX\205\261m?\205\261\317!\203\253\320\314!\211\nA>\204\252\315	\"\210)\321y\210\202\205)\202B\203\3049\203\304\322!\202\322;\203\321\323\"\202\322\324 \211\325\211 \203 @\211!\"\326!\314\"#\210* A\211 \204\342*\212eb\210\316 \210`dX\205Am?\205A\317!\203;\320\314!#\327#\"\203:#\211\nA>\2049\315	\"\210))\321y\210\202+*\207" [seq internal-seq-flag entry msgs name mh-seq-list mh-find-seq mh-internal-seq mh-canonicalize-sequence append mh-add-to-sequence mh-goto-msg t mh-add-sequence-notation beginning-of-line looking-at mh-get-msg-num 1 mh-seq-to-msgs mh-translate-range make-hash-table nil puthash gethash sequence internal-flag dont-annotate-flag msg mh-scan-valid-regexp mh-current-folder #1=#:seq-hash-table #2=#:msgs --dolist-tail-- #3=#:v #4=#:v v] 6 (#$ . 16904)])
#@58 The sequence SEQ is augmented with the messages in MSGS.
(defalias 'mh-add-to-sequence #[(seq msgs) "\303!\205\304!?\205	\205\305\306\307\n\310\311\312!\313	!&\207" [seq msgs mh-current-folder mh-valid-seq-p mh-folder-name-p apply mh-exec-cmd "mark" "-add" "-sequence" symbol-name mh-coalesce-msg-list] 9 (#$ . 18364)])
#@54 Sort MSGS in decreasing order and remove duplicates.
(defalias 'mh-canonicalize-sequence #[(msgs) "\304\305!\306\"\211\nA\203-\n@\n\211A@)U\203&\n\211\211AA)\241\210\202	\nA\211\202\n	*\207" [msgs sorted-msgs head x sort copy-sequence >] 4 (#$ . 18700)])
#@93 Delete MSG from SEQUENCE.
If INTERNAL-FLAG is non-nil, then do not inform MH of the
change.
(defalias 'mh-delete-a-msg-from-seq #[(msg sequence internal-flag) "\304!\211\205&\n	\211A)>\205&\204\305\nC\"\210	\306\n	\211A)\"\241)\207" [sequence entry msg internal-flag mh-find-seq mh-undefine-sequence delq] 5 (#$ . 18971)])
#@30 Remove MH-E's record of SEQ.
(defalias 'mh-delete-seq-locally #[(seq) "\303!\304	\n\"\211)\207" [seq entry mh-seq-list mh-find-seq delq] 3 (#$ . 19310)])
#@36 Copy SEQ to the end of the buffer.
(defalias 'mh-copy-seq-to-eob #[(seq) "\212\306!\307	!db\210\214``}\210\310\n\311\"\210\312>\203C\313 \210edB\247\203F\314edB\311\211#\2032edB\211\315
\316 #\210+\2022edB:\203\232edB@\247\203\232edBA\247\203\232\212edB@b\210\317 \210`edBAX\203\226m\204\226\320!\203\220\321\311!\211\315\316 #\210+\322y\210\202g)\2022edB\203\257edB9\203\257\306edB!\202\303edB;\203\300\323 edB\"\202\303edB\324 !\211\"\325\211#\203\357#@\211$!%\315$\311%#\210*#A\211#\204\322*\212eb\210\317 \210`dX\2031m\2041\320!\203+\321\311!&\326&!\"\203*&\211'(\315'\316 (#\210+)\322y\210\202\367+ed|\210\327\330 \325\"!\210\331 \202J)\205J\332 ,\207" [seq msgs coalesced-msgs mh-view-ops msg #1=#:v mh-seq-to-msgs mh-coalesce-msg-list mh-regenerate-headers t unthread mh-remove-all-notation mh-goto-msg puthash mh-thread-parse-scan-line beginning-of-line looking-at mh-get-msg-num 1 mh-translate-range make-hash-table nil gethash mh-thread-print-scan-lines mh-thread-generate mh-notate-user-sequences mh-index-insert-folder-headers mh-thread-scan-line-map #2=#:v mh-scan-valid-regexp #3=#:v #4=#:v mh-current-folder #5=#:seq-hash-table #6=#:msgs --dolist-tail-- #7=#:v #8=#:v v #9=#:v #10=#:v mh-index-data] 5 (#$ . 19473)])
#@89 Check if the view change operation can be performed.
OP is one of 'widen and 'unthread.
(defalias 'mh-valid-view-change-operation-p #[(op) "@	=\203
\211A@\207\302\207" [mh-view-ops op nil] 2 (#$ . 20791)])
(defvar mh-range-history nil)
(defvar mh-range-completion-map (copy-keymap minibuffer-local-completion-map))
(define-key mh-range-completion-map " " 'self-insert-command)
#@713 Return interactive specification for message, sequence, range or region.
By convention, the name of this argument is RANGE.

If variable `transient-mark-mode' is non-nil and the mark is active,
then this function returns a cons-cell of the region.

If optional prefix argument is provided, then prompt for message range
with RANGE-PROMPT. A list of messages in that range is returned.

If a MH range is given, say something like last:20, then a list
containing the messages in that range is returned.

If DEFAULT non-nil then it is returned.

Otherwise, the message number at point is returned.

This function is usually used with `mh-iterate-on-range' in order to
provide a uniform interface to MH-E functions.
(defalias 'mh-interactive-range #[(range-prompt &optional default) "\305\300!\203\203\305\301!\203	\203\306 \307 B\207\n\203&\310\311\211\312\211%\207\f\203,\f\207\313\312!\207" [transient-mark-mode mark-active current-prefix-arg range-prompt default boundp region-beginning region-end mh-read-range nil t mh-get-msg-num] 6 (#$ . 21179)])
#@1645 Read a message range with PROMPT.

If FOLDER is non-nil then a range is read from that folder, otherwise
use `mh-current-folder'.

If DEFAULT is a string then use that as default range to return. If
DEFAULT is nil then ask user with default answer a range based on the
sequences that seem relevant. Finally if DEFAULT is t, try to avoid
prompting the user. Unseen messages, if present, are returned. If the
folder has fewer than `mh-large-folder' messages then "all" messages
are returned. Finally as a last resort prompt the user.

If EXPAND-FLAG is non-nil then a list of message numbers corresponding
to the input is returned. If this list is empty then an error is
raised. If EXPAND-FLAG is nil just return the input string. In this
case we don't check if the range is empty.

If ASK-FLAG is non-nil, then the user is always queried for a range of
messages. If ASK-FLAG is nil, then the function checks if the unseen
sequence is non-empty. If that is the case, `mh-unseen-seq', or the
list of messages in it depending on the value of EXPAND, is returned.
Otherwise if the folder has fewer than `mh-large-folder' messages then
the list of messages corresponding to "all" is returned. If neither
of the above holds then as a last resort the user is queried for a
range of messages.

If NUMBER-AS-RANGE-FLAG is non-nil, then if a number, N is read as
input, it is interpreted as the range "last:N".

This function replaces the existing function `mh-read-msg-range'.
Calls to:

  (mh-read-msg-range folder flag)

should be replaced with:

  (mh-read-range "Suitable prompt" folder t nil flag
                 mh-interpret-number-as-range-flag)
(defalias 'mh-read-range #[(prompt &optional folder default expand-flag ask-flag number-as-range-flag) "\206	\206\306\307\310!\311\"@\312\313\n\"\206\f\311=\211\205&\314!\211&\2056&\211'A@)\315V(&\205H)\205H&@)V*
\203[*\203[\312\316)\"\202y
\203h*\204h\317\202y;\203q\202y9\205y\320!
\203\222*\203\222\203\222\312\321\n&@$\202\256
\203\245*\203\245\312\322\n&@#\202\256\205\256\312\323\n#+,\f=\203\276-\202\302\324\310\".\325\326\327.!\"/0\204\336(\203\336\3201!\202\3710\204\354*\204\354\317\202\371\330\312\331\n\"\332\310\211\211\333&2\31034\203\334\3352\"\203\336\337\3402\"P25\2042\202J\341\3422!.\"\2035\341\3422!.\"A\202J\3432\"\2113\203E3\202J\344\3452\".\f\207" [default mh-last-seq-used prompt folder mh-current-folder guess mh-seq-containing-msg mh-get-msg-num nil t format "%s range" mh-folder-size 0 "last:%s" "all" symbol-name "%s (folder has %s messages, default %s)" "%s (folder has %s messages)" "%s (default %s)" mh-read-folder-sequences append (("first") ("last") ("all") ("prev") ("next")) mh-seq-names completing-read "%s: " mh-range-completion-function mh-range-history string-match "^[ 	]*\\([0-9]+\\)[ 	]*$" "last:" match-string 1 assoc intern mh-translate-range error "No messages in range %s" counts x unseen mh-large-folder large mh-range-completion-map minibuffer-local-completion-map mh-seq-list seq-list mh-range-seq-names ask-flag mh-unseen-seq input msg-list number-as-range-flag expand-flag] 9 (#$ . 22250)])
#@134 Return a list of messages for RANGE.

Check the documentation of `mh-interactive-range' to see how
RANGE is read in interactive use.
(defalias 'mh-range-to-msg-list #[(range) "\306	\247\203\307	\310\211#\203\321	\211B)\202\321	:\203V	@\247\203V	A\247\203V\212	@b\210\311 \210`	AX\203Rm\204R\312!\203L\313\310!\211B)\314y\210\2022)\202\321	\203e	9\203e\315	!\202r	;\203q\316\f	\"\202r	\317 \211\306\211\203\234@\211
\320\310#\210*A\211\204\200*\212eb\210\311 \210`dX\203\320m\204\320\312!\203\312\313\310!\321
\"\203\311\211B))\314y\210\202\244+\237)\207" [msg-list range msg mh-scan-valid-regexp mh-current-folder #1=#:seq-hash-table nil mh-goto-msg t beginning-of-line looking-at mh-get-msg-num 1 mh-seq-to-msgs mh-translate-range make-hash-table puthash gethash #2=#:msgs --dolist-tail-- #3=#:v #4=#:v v] 5 (#$ . 25455)])
#@69 In FOLDER, translate the string EXPR to a list of messages numbers.
(defalias 'mh-translate-range #[(folder expr) "\212\303\304\305\306\"\"\307\307\310\311\217+\207" [expr result strings delete "" split-string "[ 	\n]" nil (byte-code "\304\305\306\307	%\210\nq\210eb\210\310\311\306\312#\203!\313\314\315!!B\202\237\207" [folder strings mh-temp-buffer result apply mh-exec-cmd-quiet nil "mhpath" re-search-forward "/\\([0-9]*\\)$" t string-to-number match-string 1] 6) ((error))] 5 (#$ . 26349)])
#@217 Programmable completion of message ranges.
STRING is the user input that is to be completed. PREDICATE if non-nil is a
function used to filter the possible choices and FLAG determines whether the
completion is over.
(defalias 'mh-range-completion-function #[(string predicate flag) "\n\306\232?\205\n\211GSH\211\204\306\202(\307>\203!\306\202(\310\311\n\312\"!@\n\313\nG\fGZO\314=\203\\\315\f	#\211\204I\314\202X\316=\203T\316\202X
P)\202\260\316=\203l\317\f	#\202\260\320=\205\260	\314\316\314:\203\247@\211\f\232\203\232\316\314\211\202\233\316\203\247A\211\202\201?\205\257,,\207" [mh-range-seq-names candidates string last-char last-word prefix "" (32 45 58) last split-string "[ -:]+" 0 nil try-completion t all-completions lambda flag predicate res #1=#:--cl-var-- x #2=#:--cl-var-- #3=#:--cl-var--] 5 (#$ . 26863)])
#@55 Return an alist containing the names of the SEQ-LIST.
(defalias 'mh-seq-names #[(seq-list) "\301\302\"\207" [seq-list mapcar #[(entry) "\302\211@)!C\207" [entry sequence symbol-name] 3]] 3 (#$ . 27762)])
#@22 Find size of FOLDER.
(defalias 'mh-folder-size #[(folder) "\203\302	!\207\303	!\207" [mh-flists-present-flag folder mh-folder-size-flist mh-folder-size-folder] 2 (#$ . 27975)])
#@36 Find size of FOLDER using "flist".
(defalias 'mh-folder-size-flist #[(folder) "\306\307!rq\210\310\216\311\312\313	\"\314\315\314\316\317\n\320\321!&	\210eb\210\322`\323 {!\211@\fA@\324\f8\211
\nE.\207" [#1=#:temp-buffer mh-progs folder mh-unseen-seq #2=#:--cl-var-- unseen generate-new-buffer " *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#1# buffer-name kill-buffer] 2)) call-process expand-file-name "flist" nil t "-showzero" "-norecurse" "-sequence" symbol-name mh-parse-flist-output-line mh-line-end-position 2 total] 12 (#$ . 28161)])
#@37 Find size of FOLDER using "folder".
(defalias 'mh-folder-size-folder #[(folder) "\305\306!rq\210\307\216\310	\311\n\312\"\"AG\313\314\315\f\"\312\316\312\317\n&\210eb\210\320\321\312\316#\2037\322\323\324!!\nE\202;\325\nE,\207" [#1=#:temp-buffer mh-unseen-seq folder u mh-progs generate-new-buffer " *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#1# buffer-name kill-buffer] 2)) assoc mh-read-folder-sequences nil call-process expand-file-name "folder" t "-norecurse" re-search-forward " has \\([0-9]+\\) " string-to-number match-string 1 0] 7 (#$ . 28728)])
#@248 Parse LINE to generate folder name, unseen messages and total messages.
If CURRENT-FOLDER is non-nil then it contains the current folder
name and it is used to avoid problems in corner cases involving
folders whose names end with a '+' character.
(defalias 'mh-parse-flist-output-line #[(line &optional current-folder) "\306\307!rq\210\310\216	c\210db\210\311\211\211\211\312\313e\314#\205u\315\316\317\225\320 \"!\312\321e\314#\205u`\312\322e\314#\205u\315\316\317\225\n\"!\311f\323=\203P\324u\210\202C\316e`T\"\211\211GSH\325\232\203n
\232\203n
\317
GSO\326\327
\"\fE.\207" [#1=#:temp-buffer line p total unseen folder generate-new-buffer " *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#1# buffer-name kill-buffer] 2)) nil search-backward " out of " t string-to-number buffer-substring-no-properties 0 mh-line-end-position " in sequence " " has " 32 -1 43 format "+%s" current-folder] 5 (#$ . 29311)])
#@142 Read and return the predefined sequences for a FOLDER.
If SAVE-REFILES is non-nil, then keep the sequences
that note messages to be refiled.
(defalias 'mh-read-folder-sequences #[(folder save-refiles) "\306	\203\307\310\n\"\210\212\311\306\312\313$\314=\2038\315\316\306\317#\2034\320\314\224\314\225{!\321 \211\f*BB\202e`|\210))\207" [seqs save-refiles mh-seq-list folder msgs name nil mh-mapc #[(seq) "\303\211@)!\205\nB\211\207" [seq sequence seqs mh-folder-name-p] 3] mh-exec-cmd-quiet "mark" "-list" 0 re-search-forward "^[^: ]+" t intern mh-read-msg-list] 6 (#$ . 30254)])
#@116 Return a list of message numbers from point to the end of the line.
Expands ranges into set of individual numbers.
(defalias 'mh-read-msg-list #[nil "\304\305 \304\306\307	\310#\203\\\311\312\224\312\225{!\313\314!\203O\315u\210\306\307	\310#\210\311\312\224\312\225{!\211W\203:\316\317#\210X\203K\nBT\211\202;)\202\320!\204\nB\202\n+\207" [num end-of-line msgs num2 nil point-at-eol re-search-forward "[0-9]+" t string-to-number 0 looking-at "-" 1 error "Bad message range: %d-%d" zerop] 5 (#$ . 30859)])
#@152 Mark MSG with the character NOTATION at position OFFSET.
Null MSG means the message at cursor.
If NOTATION is nil then no change in the buffer occurs.
(defalias 'mh-notate #[(msg notation offset) "\212\203
\306\307\211#\205\205\310 \311\211\312 \210\fu\210\f
\\\232\205)=?\211\2056\2066\313\311!\211\205@\314\"\206I\311f\203l\315\316\316!AB!#\210*\202t\317\320!\210c\210\205\321\f#,\322!\210+)\207" [msg buffer-file-name buffer-read-only mh-folder-updating-mod-flag offset mh-cmd-note mh-goto-msg t buffer-modified-p nil beginning-of-line mh-get-msg-num gethash puthash reverse delete-char 1 mh-thread-update-scan-line-map mh-set-folder-modified-p mh-scan-field-destination-offset notation mh-note-seq change-stack-flag mh-sequence-notation-history stack #1=#:v #2=#:v] 7 (#$ . 31400)])
#@164 Mark the MH sequence cur.
In addition to notating the current message with `mh-note-cur'
the function uses `overlay-arrow-position' to put a marker in the
fringe.
(defalias 'mh-notate-cur #[nil "\306\300!@\211\205(\307\310\211#\205(\311 \210\312	!\203 \313\314\n#\210\f`\314\223\211\211)\207" [cur mh-scan-good-msg-regexp mh-note-cur mh-cmd-note mh-arrow-marker overlay-arrow-position mh-seq-to-msgs mh-goto-msg t beginning-of-line looking-at mh-notate nil] 5 (#$ . 32254)])
#@26 Remove old cur notation.
(defalias 'mh-remove-cur-notation #[nil "\304\305!@\212\205!\306\307\211#\205!\310	!\205!\311\312\313\n#\210\312\211*\207" [cur-msg mh-scan-cur-msg-number-regexp mh-cmd-note overlay-arrow-position mh-seq-to-msgs cur mh-goto-msg t looking-at mh-notate nil 32] 4 (#$ . 32743)])
#@165 Notate messages marked for deletion or refiling.
Messages to be deleted are given by `mh-delete-list' while
messages to be refiled are present in `mh-refile-list'.
(defalias 'mh-notate-deleted-and-refiled #[nil "\306 \306 \n\307\211\203%\f@\211\310
\311#\210*\fA\211\204*\307\211\203^\f@\211A\307\211\203V\f@\211	\310\311#\210*\fA\211\204=*\fA\211\2040*\212eb\210\312 \210`dX\205\244m?\205\244\313!\203\236\314\311!\315	\"\203\216\316\307#\210\202\235\315\"\203\235\316\307#\210)\317y\210\202f+\207" [deleted-hash refiled-hash mh-delete-list msg --dolist-tail-- #1=#:v make-hash-table nil puthash t beginning-of-line looking-at mh-get-msg-num gethash mh-notate 1 #2=#:v mh-refile-list dest-msg-list #3=#:v #4=#:v mh-scan-valid-regexp mh-note-refiled mh-cmd-note mh-note-deleted] 5 (#$ . 33058)])
#@168 Mark user-defined sequences in RANGE.

Check the documentation of `mh-interactive-range' to see how
RANGE is read in interactive use; if nil all messages are
notated.
(defalias 'mh-notate-user-sequences #[(&optional range) "\204edB	\306 \211\307\211\203U
@\211\211A)\307\211\203M
@\f@\n\310\311\"B#\210+
A\211\204&*
A\211\204*\247\203\217\312\313\211#\205\217\311\n\"\307:\203\212@\314\315\f!\"\210A\211\202q+\307\202\217:\203\357@\247\203\357A\247\203\357\212@b\210\316 \210`AX\205\353m?\205\353\317!\203\345\320\313!\311\n\"\307:\203\344@\314\315\f!\"\210A\211\202\313+\321y\210\202\250)\202\217\203\3769\203\376\322!\202\f;\203\323\"\202\f\306 \211\307\211\2036
@\211 \310\313 #\210*
A\211\204*\212eb\210\316 \210`dX\205\216m?\205\216\317!\203\210\320\313!!\311!\"\203\207!\311\n\"\"\307\":\203\206\"@\314\315\f!\"\210\"A\211\"\202m+)\321y\210\202>+*\207" [range mh-seq-list msg-hash seqs seq --dolist-tail-- make-hash-table nil puthash gethash mh-goto-msg t mh-add-sequence-notation mh-internal-seq beginning-of-line looking-at mh-get-msg-num 1 mh-seq-to-msgs mh-translate-range sequence msg #1=#:v #2=#:v #3=#:v #4=#:--cl-var-- mh-scan-valid-regexp #5=#:--cl-var-- mh-current-folder #6=#:seq-hash-table #7=#:msgs #8=#:v #9=#:v v #10=#:--cl-var--] 7 (#$ . 33921)])
#@144 Add sequence notation to the MSG on the current line.
If INTERNAL-SEQ-FLAG is non-nil, then refontify the scan line if
font-lock is turned on.
(defalias 'mh-add-sequence-notation #[(msg internal-seq-flag) "\306 \307\211\212\310 \210\203!\311\307\211\f#\210
\205M\312`\313 \"\202M\f\\u\210\314\"\315\307fB#\210+\311\307\f\\#)\316\n!\210+\207" [buffer-file-name buffer-read-only mh-folder-updating-mod-flag internal-seq-flag mh-cmd-note font-lock-mode buffer-modified-p nil beginning-of-line mh-notate font-lock-fontify-region mh-line-end-position gethash puthash mh-set-folder-modified-p mh-scan-field-destination-offset msg mh-sequence-notation-history stack #1=#:v #2=#:v mh-note-seq] 5 (#$ . 35361)])
#@336 Remove sequence notation from the MSG on the current line.
If INTERNAL-SEQ-FLAG is non-nil, then `font-lock' was used to
highlight the sequence. In that case, no notation needs to be removed.
Otherwise the effect of inserting `mh-note-seq' needs to be reversed.
If ALL is non-nil, then all sequence marks on the scan line are
removed.
(defalias 'mh-remove-sequence-notation #[(msg internal-seq-flag &optional all) "\306 \307\211\310\307\211#\210\f?\205V\311
\"\203,A\203,A\202\203E\212\312 \210\\u\210\313\314!\210@c\210)
\315A#+\316\n!\210+\207" [buffer-file-name buffer-read-only mh-folder-updating-mod-flag mh-cmd-note internal-seq-flag msg buffer-modified-p nil mh-notate gethash beginning-of-line delete-char 1 puthash mh-set-folder-modified-p mh-sequence-notation-history stack all mh-scan-field-destination-offset #1=#:v #2=#:v] 4 (#$ . 36104)])
#@62 Remove all notations on all scan lines that MH-E introduces.
(defalias 'mh-remove-all-notation #[nil "\212\306eb\210edB\247\203+\307edB\310\211#\203	edB\311\306\312\n#\210\313	\306\310#\210)\202	edB:\203zedB@\247\203zedBA\247\203z\212edB@b\210\314 \210`edBAX\203vm\204v\315!\203p\316\310!\311\306\312\n#\210\313	\306\310#\210)\317y\210\202L)\202	edB\203\217edB9\203\217\320edB!\202\242edB;\203\237\321\fedB\"\202\242edB\322 \211\306\211\203\314@\211
\323\310#\210*A\211\204\260*\212eb\210\314 \210`dX\203m\204\315!\203\316\310!\324
\"\203\311\306\312\n#\210\313	\306\310#\210))\317y\210\202\324+\325!)\207" [overlay-arrow-position msg mh-cmd-note mh-scan-valid-regexp mh-current-folder #1=#:seq-hash-table nil mh-goto-msg t mh-notate 32 mh-remove-sequence-notation beginning-of-line looking-at mh-get-msg-num 1 mh-seq-to-msgs mh-translate-range make-hash-table puthash gethash clrhash #2=#:msgs --dolist-tail-- #3=#:v #4=#:v v mh-sequence-notation-history] 5 (#$ . 37004)])
#@35 Rename SEQUENCE to have NEW-NAME.
(defalias 'mh-rename-seq #[(sequence new-name) "\303!\211\204
\304\305\"\210\306\n	\211A)\"\210\307	\211A)\"\210	\n\240)\207" [sequence old-seq new-name mh-find-seq error "Sequence %s does not exist" mh-define-sequence mh-undefine-sequence] 4 (#$ . 38046) (list (mh-read-seq "Old" t) (intern (read-string "New sequence name: ")))])
(provide 'mh-seq)

MMCT - 2023