Mercurial > emacs
annotate lisp/mh-e/mh-seq.el @ 107521:54f3a4d055ee
Document font-use-system-font.
* cmdargs.texi (Font X): Move most content to Fonts.
* frames.texi (Fonts): New node. Document font-use-system-font.
* emacs.texi (Top):
* xresources.texi (Table of Resources):
* mule.texi (Defining Fontsets, Charsets): Update xrefs.
| author | Chong Yidong <cyd@stupidchicken.com> |
|---|---|
| date | Sat, 20 Mar 2010 13:24:06 -0400 |
| parents | 1d1d5d9bd884 |
| children | 05dc9dca8729 376148b31b5e |
| rev | line source |
|---|---|
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1 ;;; mh-seq.el --- MH-E sequences support |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
2 |
|
101481
4a9c45f9e914
Follow Glenn's lead and update format of Copyright.
Bill Wohler <wohler@newt.com>
parents:
100908
diff
changeset
|
3 ;; Copyright (C) 1993, 1995, |
| 106815 | 4 ;; 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 |
|
101481
4a9c45f9e914
Follow Glenn's lead and update format of Copyright.
Bill Wohler <wohler@newt.com>
parents:
100908
diff
changeset
|
5 ;; Free Software Foundation, Inc. |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
6 |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
7 ;; Author: Bill Wohler <wohler@newt.com> |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
8 ;; Maintainer: Bill Wohler <wohler@newt.com> |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
9 ;; Keywords: mail |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
10 ;; See: mh-e.el |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
11 |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
12 ;; This file is part of GNU Emacs. |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
13 |
|
94663
90c9ebd43589
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
80068
diff
changeset
|
14 ;; GNU Emacs is free software: you can redistribute it and/or modify |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
15 ;; it under the terms of the GNU General Public License as published by |
|
94663
90c9ebd43589
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
80068
diff
changeset
|
16 ;; the Free Software Foundation, either version 3 of the License, or |
|
90c9ebd43589
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
80068
diff
changeset
|
17 ;; (at your option) any later version. |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
18 |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
19 ;; GNU Emacs is distributed in the hope that it will be useful, |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
20 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
21 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
22 ;; GNU General Public License for more details. |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
23 |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
24 ;; You should have received a copy of the GNU General Public License |
|
94663
90c9ebd43589
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
80068
diff
changeset
|
25 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
26 |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
27 ;;; Commentary: |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
28 |
| 68465 | 29 ;; Sequences are stored in the alist `mh-seq-list' in the form: |
| 30 ;; ((seq-name msgs ...) (seq-name msgs ...) ...) | |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
31 |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
32 ;;; Change Log: |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
33 |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
34 ;;; Code: |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
35 |
| 68465 | 36 (require 'mh-e) |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
37 (mh-require-cl) |
| 68465 | 38 (require 'mh-scan) |
| 67681 | 39 |
| 68465 | 40 (require 'font-lock) |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
41 |
| 68465 | 42 ;;; Variables |
| 67681 | 43 |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
44 (defvar mh-last-seq-used nil |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
45 "Name of seq to which a msg was last added.") |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
46 |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
47 (defvar mh-non-seq-mode-line-annotation nil |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
48 "Saved value of `mh-mode-line-annotation' when narrowed to a seq.") |
| 68465 | 49 (make-variable-buffer-local 'mh-non-seq-mode-line-annotation) |
| 50 | |
| 51 (defvar mh-internal-seqs '(answered cur deleted forwarded printed)) | |
| 52 | |
| 53 ;;; Macros | |
| 54 | |
|
80068
c2b53430fd48
(mh-make-seq, mh-seq-name): Use defsubst.
Richard M. Stallman <rms@gnu.org>
parents:
79713
diff
changeset
|
55 (defsubst mh-make-seq (name msgs) |
| 68465 | 56 "Create sequence NAME with the given MSGS." |
|
80068
c2b53430fd48
(mh-make-seq, mh-seq-name): Use defsubst.
Richard M. Stallman <rms@gnu.org>
parents:
79713
diff
changeset
|
57 (cons name msgs)) |
| 68465 | 58 |
|
80068
c2b53430fd48
(mh-make-seq, mh-seq-name): Use defsubst.
Richard M. Stallman <rms@gnu.org>
parents:
79713
diff
changeset
|
59 (defsubst mh-seq-name (sequence) |
| 68465 | 60 "Extract sequence name from the given SEQUENCE." |
|
80068
c2b53430fd48
(mh-make-seq, mh-seq-name): Use defsubst.
Richard M. Stallman <rms@gnu.org>
parents:
79713
diff
changeset
|
61 (car sequence)) |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
62 |
| 67681 | 63 |
| 64 | |
| 68465 | 65 ;;; MH-Folder Commands |
| 66 | |
| 67 ;; Alphabetical. | |
| 68 | |
| 69 ;;;###mh-autoload | |
| 70 (defun mh-catchup (range) | |
| 71 "Delete RANGE from the \"unseen\" sequence. | |
| 72 | |
| 73 Check the documentation of `mh-interactive-range' to see how | |
| 74 RANGE is read in interactive use." | |
| 75 (interactive (list (mh-interactive-range "Catchup" | |
| 76 (cons (point-min) (point-max))))) | |
| 77 (mh-delete-msg-from-seq range mh-unseen-seq)) | |
| 78 | |
| 79 ;;;###mh-autoload | |
| 80 (defun mh-delete-msg-from-seq (range sequence &optional internal-flag) | |
| 81 "Delete RANGE from SEQUENCE. | |
| 82 | |
| 83 Check the documentation of `mh-interactive-range' to see how | |
| 84 RANGE is read in interactive use. | |
| 67681 | 85 |
| 68465 | 86 In a program, non-nil INTERNAL-FLAG means do not inform MH of the |
| 87 change." | |
| 88 (interactive (list (mh-interactive-range "Delete") | |
| 89 (mh-read-seq-default "Delete from" t) | |
| 90 nil)) | |
| 91 (let ((entry (mh-find-seq sequence)) | |
| 92 (user-sequence-flag (not (mh-internal-seq sequence))) | |
| 93 (folders-changed (list mh-current-folder)) | |
| 94 (msg-list ())) | |
| 95 (when entry | |
| 96 (mh-iterate-on-range msg range | |
| 97 (push msg msg-list) | |
| 98 ;; Calling "mark" repeatedly takes too long. So we will pretend here | |
| 99 ;; that we are just modifying an internal sequence... | |
| 100 (when (memq msg (cdr entry)) | |
| 101 (mh-remove-sequence-notation msg (not user-sequence-flag))) | |
| 102 (mh-delete-a-msg-from-seq msg sequence t)) | |
| 103 ;; ... and here we will "mark" all the messages at one go. | |
| 104 (unless internal-flag (mh-undefine-sequence sequence msg-list)) | |
| 105 (when (and mh-index-data (not internal-flag)) | |
| 106 (setq folders-changed | |
| 107 (append folders-changed | |
| 108 (mh-index-delete-from-sequence sequence msg-list)))) | |
| 109 (when (and (eq sequence mh-unseen-seq) (mh-speed-flists-active-p)) | |
| 110 (apply #'mh-speed-flists t folders-changed))))) | |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
111 |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
112 ;;;###mh-autoload |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
113 (defun mh-delete-seq (sequence) |
|
66661
f7b261d0f8e8
* mh-customize.el (mh-refile-preserves-sequences-flag)
Bill Wohler <wohler@newt.com>
parents:
66087
diff
changeset
|
114 "Delete SEQUENCE. |
|
f7b261d0f8e8
* mh-customize.el (mh-refile-preserves-sequences-flag)
Bill Wohler <wohler@newt.com>
parents:
66087
diff
changeset
|
115 |
|
67758
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
116 You are prompted for the sequence to delete. Note that this |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
117 deletes only the sequence, not the messages in the sequence. If |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
118 you want to delete the messages, use \"\\[universal-argument] |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
119 \\[mh-delete-msg]\"." |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
120 (interactive (list (mh-read-seq-default "Delete" t))) |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
121 (let ((msg-list (mh-seq-to-msgs sequence)) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
122 (internal-flag (mh-internal-seq sequence)) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
123 (folders-changed (list mh-current-folder))) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
124 (mh-iterate-on-range msg sequence |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
125 (mh-remove-sequence-notation msg internal-flag)) |
|
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
126 (mh-undefine-sequence sequence '("all")) |
|
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
127 (mh-delete-seq-locally sequence) |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
128 (when mh-index-data |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
129 (setq folders-changed |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
130 (append folders-changed |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
131 (mh-index-delete-from-sequence sequence msg-list)))) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
132 (when (and (eq sequence mh-unseen-seq) (mh-speed-flists-active-p)) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
133 (apply #'mh-speed-flists t folders-changed)))) |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
134 |
| 68105 | 135 ;; Shush compiler. |
|
70027
0e0916499a15
* mh-funcs.el (view-exit-action): No need to wrap defvar with
Bill Wohler <wohler@newt.com>
parents:
68529
diff
changeset
|
136 (defvar view-exit-action) |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
137 |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
138 ;;;###mh-autoload |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
139 (defun mh-list-sequences () |
|
66661
f7b261d0f8e8
* mh-customize.el (mh-refile-preserves-sequences-flag)
Bill Wohler <wohler@newt.com>
parents:
66087
diff
changeset
|
140 "List all sequences in folder. |
|
67988
7882fc7df359
* mh-alias.el (mh-alias-grab-from-field): Remove leading * from
Bill Wohler <wohler@newt.com>
parents:
67760
diff
changeset
|
141 |
|
66661
f7b261d0f8e8
* mh-customize.el (mh-refile-preserves-sequences-flag)
Bill Wohler <wohler@newt.com>
parents:
66087
diff
changeset
|
142 The list appears in a buffer named \"*MH-E Sequences*\"." |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
143 (interactive) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
144 (let ((folder mh-current-folder) |
|
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
145 (temp-buffer mh-sequences-buffer) |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
146 (seq-list mh-seq-list) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
147 (max-len 0)) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
148 (with-output-to-temp-buffer temp-buffer |
|
105867
00c0adbb54a9
* mh-thread.el (mh-thread-set-tables):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103409
diff
changeset
|
149 (with-current-buffer temp-buffer |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
150 (erase-buffer) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
151 (message "Listing sequences ...") |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
152 (insert "Sequences in folder " folder ":\n") |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
153 (let ((seq-list seq-list)) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
154 (while seq-list |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
155 (setq max-len |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
156 (max (length (symbol-name (mh-seq-name (pop seq-list)))) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
157 max-len))) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
158 (setq max-len (+ 2 max-len))) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
159 (while seq-list |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
160 (let ((name (mh-seq-name (car seq-list))) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
161 (sorted-seq-msgs |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
162 (mh-coalesce-msg-list |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
163 (sort (copy-sequence (mh-seq-msgs (car seq-list))) '<))) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
164 name-spec) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
165 (insert (setq name-spec (format (format "%%%ss:" max-len) name))) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
166 (while sorted-seq-msgs |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
167 (let ((next-element (format " %s" (pop sorted-seq-msgs)))) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
168 (when (>= (+ (current-column) (length next-element)) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
169 (window-width)) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
170 (insert "\n") |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
171 (insert (format (format "%%%ss" (length name-spec)) ""))) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
172 (insert next-element))) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
173 (insert "\n")) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
174 (setq seq-list (cdr seq-list))) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
175 (goto-char (point-min)) |
|
68529
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68465
diff
changeset
|
176 (mh-view-mode-enter) |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
177 (setq view-exit-action 'kill-buffer) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
178 (message "Listing sequences...done"))))) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
179 |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
180 ;;;###mh-autoload |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
181 (defun mh-msg-is-in-seq (message) |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
182 "Display the sequences in which the current message appears. |
|
67988
7882fc7df359
* mh-alias.el (mh-alias-grab-from-field): Remove leading * from
Bill Wohler <wohler@newt.com>
parents:
67760
diff
changeset
|
183 |
|
67758
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
184 Use a prefix argument to display the sequences in which another |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
185 MESSAGE appears." |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
186 (interactive "P") |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
187 (if (not message) |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
188 (setq message (mh-get-msg-num t))) |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
189 (let* ((dest-folder (loop for seq in mh-refile-list |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
190 when (member message (cdr seq)) return (car seq) |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
191 finally return nil)) |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
192 (deleted-flag (unless dest-folder (member message mh-delete-list)))) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
193 (message "Message %d%s is in sequences: %s" |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
194 message |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
195 (cond (dest-folder (format " (to be refiled to %s)" dest-folder)) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
196 (deleted-flag (format " (to be deleted)")) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
197 (t "")) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
198 (mapconcat 'concat |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
199 (mh-list-to-string (mh-seq-containing-msg message t)) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
200 " ")))) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
201 |
| 68465 | 202 ;; Shush compiler. |
|
70028
d81780942bb8
* mh-acros.el (struct, x, y): No need to wrap defvar with
Bill Wohler <wohler@newt.com>
parents:
70027
diff
changeset
|
203 (defvar tool-bar-mode) ; XEmacs |
|
95842
fbeceb242efd
(tool-bar-map): Define for compiler.
Glenn Morris <rgm@gnu.org>
parents:
94663
diff
changeset
|
204 (defvar tool-bar-map) |
|
66086
1d0956c24eb7
* mh-seq.el (mh-non-seq-mode-line-annotation): Moved
Bill Wohler <wohler@newt.com>
parents:
64085
diff
changeset
|
205 |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
206 ;;;###mh-autoload |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
207 (defun mh-narrow-to-seq (sequence) |
|
66661
f7b261d0f8e8
* mh-customize.el (mh-refile-preserves-sequences-flag)
Bill Wohler <wohler@newt.com>
parents:
66087
diff
changeset
|
208 "Restrict display to messages in SEQUENCE. |
|
f7b261d0f8e8
* mh-customize.el (mh-refile-preserves-sequences-flag)
Bill Wohler <wohler@newt.com>
parents:
66087
diff
changeset
|
209 |
|
67758
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
210 You are prompted for the name of the sequence. What this command |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
211 does is show only those messages that are in the selected |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
212 sequence in the MH-Folder buffer. In addition, it limits further |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
213 MH-E searches to just those messages. |
|
66661
f7b261d0f8e8
* mh-customize.el (mh-refile-preserves-sequences-flag)
Bill Wohler <wohler@newt.com>
parents:
66087
diff
changeset
|
214 |
|
67758
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
215 When you want to widen the view to all your messages again, use |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
216 \\[mh-widen]." |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
217 (interactive (list (mh-read-seq "Narrow to" t))) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
218 (with-mh-folder-updating (t) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
219 (cond ((mh-seq-to-msgs sequence) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
220 (mh-remove-all-notation) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
221 (let ((eob (point-max)) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
222 (msg-at-cursor (mh-get-msg-num nil))) |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
223 (push mh-thread-scan-line-map mh-thread-scan-line-map-stack) |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
224 (setq mh-thread-scan-line-map (make-hash-table :test #'eql)) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
225 (mh-copy-seq-to-eob sequence) |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
226 (push (buffer-substring-no-properties (point-min) eob) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
227 mh-folder-view-stack) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
228 (delete-region (point-min) eob) |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
229 (mh-notate-deleted-and-refiled) |
|
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
230 (mh-notate-cur) |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
231 (when msg-at-cursor (mh-goto-msg msg-at-cursor t t)) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
232 (setq mh-non-seq-mode-line-annotation mh-mode-line-annotation) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
233 (setq mh-mode-line-annotation (symbol-name sequence)) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
234 (mh-make-folder-mode-line) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
235 (mh-recenter nil) |
|
50702
7dd3d5eae9c7
Upgraded to MH-E version 7.3.
Bill Wohler <wohler@newt.com>
parents:
49578
diff
changeset
|
236 (when (and (boundp 'tool-bar-mode) tool-bar-mode) |
|
7dd3d5eae9c7
Upgraded to MH-E version 7.3.
Bill Wohler <wohler@newt.com>
parents:
49578
diff
changeset
|
237 (set (make-local-variable 'tool-bar-map) |
|
7dd3d5eae9c7
Upgraded to MH-E version 7.3.
Bill Wohler <wohler@newt.com>
parents:
49578
diff
changeset
|
238 mh-folder-seq-tool-bar-map) |
|
7dd3d5eae9c7
Upgraded to MH-E version 7.3.
Bill Wohler <wohler@newt.com>
parents:
49578
diff
changeset
|
239 (when (buffer-live-p (get-buffer mh-show-buffer)) |
|
70145
00cb3fe5fed5
* mh-tool-bar.el (image-load-path): Define to shush compiler.
Bill Wohler <wohler@newt.com>
parents:
70028
diff
changeset
|
240 (with-current-buffer mh-show-buffer |
|
50702
7dd3d5eae9c7
Upgraded to MH-E version 7.3.
Bill Wohler <wohler@newt.com>
parents:
49578
diff
changeset
|
241 (set (make-local-variable 'tool-bar-map) |
|
7dd3d5eae9c7
Upgraded to MH-E version 7.3.
Bill Wohler <wohler@newt.com>
parents:
49578
diff
changeset
|
242 mh-show-seq-tool-bar-map)))) |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
243 (push 'widen mh-view-ops))) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
244 (t |
|
68013
bbc0e52abce5
* mh-alias.el (mh-alias-add-alias): Grand message and error string
Bill Wohler <wohler@newt.com>
parents:
68012
diff
changeset
|
245 (error "No messages in sequence %s" (symbol-name sequence)))))) |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
246 |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
247 ;;;###mh-autoload |
| 68465 | 248 (defun mh-narrow-to-tick () |
| 249 "Limit to ticked messages. | |
| 250 | |
| 251 What this command does is show only those messages that are in | |
| 252 the \"tick\" sequence (which you can customize via the | |
| 253 `mh-tick-seq' option) in the MH-Folder buffer. In addition, it | |
| 254 limits further MH-E searches to just those messages. When you | |
| 255 want to widen the view to all your messages again, use | |
| 256 \\[mh-widen]." | |
| 257 (interactive) | |
| 258 (cond ((not mh-tick-seq) | |
| 259 (error "Enable ticking by customizing `mh-tick-seq'")) | |
| 260 ((null (mh-seq-msgs (mh-find-seq mh-tick-seq))) | |
| 261 (message "No messages in %s sequence" mh-tick-seq)) | |
| 262 (t (mh-narrow-to-seq mh-tick-seq)))) | |
| 263 | |
| 264 ;;;###mh-autoload | |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
265 (defun mh-put-msg-in-seq (range sequence) |
|
67313
2ae99b10dd40
* mh-comp.el (mh-forward): Went over all uses of the word "RANGE" in
Bill Wohler <wohler@newt.com>
parents:
66661
diff
changeset
|
266 "Add RANGE to SEQUENCE\\<mh-folder-mode-map>. |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
267 |
|
67758
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
268 Give this command a RANGE and you can add all the messages in a |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
269 sequence to another sequence (for example, |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
270 \"\\[universal-argument] \\[mh-put-msg-in-seq] SourceSequence RET |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
271 DestSequence RET\"). Check the documentation of |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
272 `mh-interactive-range' to see how RANGE is read in interactive |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
273 use." |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
274 (interactive (list (mh-interactive-range "Add messages from") |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
275 (mh-read-seq-default "Add to" nil))) |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
276 (unless (mh-valid-seq-p sequence) |
|
68013
bbc0e52abce5
* mh-alias.el (mh-alias-add-alias): Grand message and error string
Bill Wohler <wohler@newt.com>
parents:
68012
diff
changeset
|
277 (error "Can't put message in invalid sequence %s" sequence)) |
|
50702
7dd3d5eae9c7
Upgraded to MH-E version 7.3.
Bill Wohler <wohler@newt.com>
parents:
49578
diff
changeset
|
278 (let* ((internal-seq-flag (mh-internal-seq sequence)) |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
279 (original-msgs (mh-seq-msgs (mh-find-seq sequence))) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
280 (folders (list mh-current-folder)) |
|
56673
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
281 (msg-list (mh-range-to-msg-list range))) |
|
e9a6cbc8ca5e
Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
56406
diff
changeset
|
282 (mh-add-msgs-to-seq msg-list sequence nil t) |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
283 (mh-iterate-on-range m range |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
284 (unless (memq m original-msgs) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
285 (mh-add-sequence-notation m internal-seq-flag))) |
|
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
286 (if (not internal-seq-flag) |
|
50702
7dd3d5eae9c7
Upgraded to MH-E version 7.3.
Bill Wohler <wohler@newt.com>
parents:
49578
diff
changeset
|
287 (setq mh-last-seq-used sequence)) |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
288 (when mh-index-data |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
289 (setq folders |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
290 (append folders (mh-index-add-to-sequence sequence msg-list)))) |
|
50702
7dd3d5eae9c7
Upgraded to MH-E version 7.3.
Bill Wohler <wohler@newt.com>
parents:
49578
diff
changeset
|
291 (when (and (eq sequence mh-unseen-seq) (mh-speed-flists-active-p)) |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
292 (apply #'mh-speed-flists t folders)))) |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
293 |
| 68465 | 294 ;;;###mh-autoload |
| 295 (defun mh-toggle-tick (range) | |
| 296 "Toggle tick mark of RANGE. | |
| 297 | |
| 298 This command adds messages to the \"tick\" sequence (which you can customize | |
| 299 via the option `mh-tick-seq'). This sequence can be viewed later with the | |
| 300 \\[mh-index-ticked-messages] command. | |
| 301 | |
| 302 Check the documentation of `mh-interactive-range' to see how RANGE is read in | |
| 303 interactive use." | |
| 304 (interactive (list (mh-interactive-range "Tick"))) | |
| 305 (unless mh-tick-seq | |
| 306 (error "Enable ticking by customizing `mh-tick-seq'")) | |
| 307 (let* ((tick-seq (mh-find-seq mh-tick-seq)) | |
| 308 (tick-seq-msgs (mh-seq-msgs tick-seq)) | |
| 309 (ticked ()) | |
| 310 (unticked ())) | |
| 311 (mh-iterate-on-range msg range | |
| 312 (cond ((member msg tick-seq-msgs) | |
| 313 (push msg unticked) | |
| 314 (setcdr tick-seq (delq msg (cdr tick-seq))) | |
| 315 (when (null (cdr tick-seq)) (setq mh-last-seq-used nil)) | |
| 316 (mh-remove-sequence-notation msg (mh-colors-in-use-p))) | |
| 317 (t | |
| 318 (push msg ticked) | |
| 319 (setq mh-last-seq-used mh-tick-seq) | |
| 320 (let ((mh-seq-list (cons `(,mh-tick-seq ,msg) mh-seq-list))) | |
| 321 (mh-add-sequence-notation msg (mh-colors-in-use-p)))))) | |
| 322 (mh-add-msgs-to-seq ticked mh-tick-seq nil t) | |
| 323 (mh-undefine-sequence mh-tick-seq unticked) | |
| 324 (when mh-index-data | |
| 325 (mh-index-add-to-sequence mh-tick-seq ticked) | |
| 326 (mh-index-delete-from-sequence mh-tick-seq unticked)))) | |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
327 |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
328 ;;;###mh-autoload |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
329 (defun mh-widen (&optional all-flag) |
|
66661
f7b261d0f8e8
* mh-customize.el (mh-refile-preserves-sequences-flag)
Bill Wohler <wohler@newt.com>
parents:
66087
diff
changeset
|
330 "Remove last restriction. |
|
67988
7882fc7df359
* mh-alias.el (mh-alias-grab-from-field): Remove leading * from
Bill Wohler <wohler@newt.com>
parents:
67760
diff
changeset
|
331 |
|
7882fc7df359
* mh-alias.el (mh-alias-grab-from-field): Remove leading * from
Bill Wohler <wohler@newt.com>
parents:
67760
diff
changeset
|
332 Each limit or sequence restriction can be undone in turn with |
|
7882fc7df359
* mh-alias.el (mh-alias-grab-from-field): Remove leading * from
Bill Wohler <wohler@newt.com>
parents:
67760
diff
changeset
|
333 this command. Give this command a prefix argument ALL-FLAG to |
|
7882fc7df359
* mh-alias.el (mh-alias-grab-from-field): Remove leading * from
Bill Wohler <wohler@newt.com>
parents:
67760
diff
changeset
|
334 remove all limits and sequence restrictions." |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
335 (interactive "P") |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
336 (let ((msg (mh-get-msg-num nil))) |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
337 (when mh-folder-view-stack |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
338 (cond (all-flag |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
339 (while (cdr mh-view-ops) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
340 (setq mh-view-ops (cdr mh-view-ops))) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
341 (when (eq (car mh-view-ops) 'widen) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
342 (setq mh-view-ops (cdr mh-view-ops)))) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
343 ((mh-valid-view-change-operation-p 'widen) nil) |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
344 ((memq 'widen mh-view-ops) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
345 (while (not (eq (car mh-view-ops) 'widen)) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
346 (setq mh-view-ops (cdr mh-view-ops))) |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
347 (setq mh-view-ops (cdr mh-view-ops))) |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
348 (t (error "Widening is not applicable"))) |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
349 ;; If ALL-FLAG is non-nil then rewind stacks |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
350 (when all-flag |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
351 (while (cdr mh-thread-scan-line-map-stack) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
352 (setq mh-thread-scan-line-map-stack |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
353 (cdr mh-thread-scan-line-map-stack))) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
354 (while (cdr mh-folder-view-stack) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
355 (setq mh-folder-view-stack (cdr mh-folder-view-stack)))) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
356 (setq mh-thread-scan-line-map (pop mh-thread-scan-line-map-stack)) |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
357 (with-mh-folder-updating (t) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
358 (delete-region (point-min) (point-max)) |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
359 (insert (pop mh-folder-view-stack)) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
360 (mh-remove-all-notation) |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
361 (setq mh-mode-line-annotation mh-non-seq-mode-line-annotation) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
362 (mh-make-folder-mode-line)) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
363 (if msg |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
364 (mh-goto-msg msg t t)) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
365 (mh-notate-deleted-and-refiled) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
366 (mh-notate-user-sequences) |
|
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
367 (mh-notate-cur) |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
368 (mh-recenter nil))) |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
369 (when (and (null mh-folder-view-stack) (boundp 'tool-bar-mode) tool-bar-mode) |
|
50702
7dd3d5eae9c7
Upgraded to MH-E version 7.3.
Bill Wohler <wohler@newt.com>
parents:
49578
diff
changeset
|
370 (set (make-local-variable 'tool-bar-map) mh-folder-tool-bar-map) |
|
7dd3d5eae9c7
Upgraded to MH-E version 7.3.
Bill Wohler <wohler@newt.com>
parents:
49578
diff
changeset
|
371 (when (buffer-live-p (get-buffer mh-show-buffer)) |
|
70145
00cb3fe5fed5
* mh-tool-bar.el (image-load-path): Define to shush compiler.
Bill Wohler <wohler@newt.com>
parents:
70028
diff
changeset
|
372 (with-current-buffer mh-show-buffer |
|
50702
7dd3d5eae9c7
Upgraded to MH-E version 7.3.
Bill Wohler <wohler@newt.com>
parents:
49578
diff
changeset
|
373 (set (make-local-variable 'tool-bar-map) mh-show-tool-bar-map))))) |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
374 |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
375 |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
376 |
| 68465 | 377 ;;; Support Routines |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
378 |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
379 (defvar mh-sequence-history ()) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
380 |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
381 ;;;###mh-autoload |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
382 (defun mh-read-seq-default (prompt not-empty) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
383 "Read and return sequence name with default narrowed or previous sequence. |
|
67758
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
384 PROMPT is the prompt to use when reading. If NOT-EMPTY is non-nil |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
385 then a non-empty sequence is read." |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
386 (mh-read-seq prompt not-empty |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
387 (or mh-last-seq-used |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
388 (car (mh-seq-containing-msg (mh-get-msg-num nil) nil))))) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
389 |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
390 (defun mh-read-seq (prompt not-empty &optional default) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
391 "Read and return a sequence name. |
|
67758
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
392 Prompt with PROMPT, raise an error if the sequence is empty and |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
393 the NOT-EMPTY flag is non-nil, and supply an optional DEFAULT |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
394 sequence. A reply of '%' defaults to the first sequence |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
395 containing the current message." |
|
68012
256cc87e0619
* mh-comp.el (mh-reply): Use standard default notation in prompts
Bill Wohler <wohler@newt.com>
parents:
67988
diff
changeset
|
396 (let* ((input (completing-read (format "%s sequence%s: " prompt |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
397 (if default |
|
68012
256cc87e0619
* mh-comp.el (mh-reply): Use standard default notation in prompts
Bill Wohler <wohler@newt.com>
parents:
67988
diff
changeset
|
398 (format " (default %s)" default) |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
399 "")) |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
400 (mh-seq-names mh-seq-list) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
401 nil nil nil 'mh-sequence-history)) |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
402 (seq (cond ((equal input "%") |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
403 (car (mh-seq-containing-msg (mh-get-msg-num t) nil))) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
404 ((equal input "") default) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
405 (t (intern input)))) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
406 (msgs (mh-seq-to-msgs seq))) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
407 (if (and (null msgs) not-empty) |
|
68013
bbc0e52abce5
* mh-alias.el (mh-alias-add-alias): Grand message and error string
Bill Wohler <wohler@newt.com>
parents:
68012
diff
changeset
|
408 (error "No messages in sequence %s" seq)) |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
409 seq)) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
410 |
| 68465 | 411 (defun mh-internal-seq (name) |
| 412 "Return non-nil if NAME is the name of an internal MH-E sequence." | |
| 413 (or (memq name mh-internal-seqs) | |
| 414 (eq name mh-unseen-seq) | |
| 415 (and (mh-colors-in-use-p) mh-tick-seq (eq name mh-tick-seq)) | |
| 416 (eq name mh-previous-seq) | |
| 417 (mh-folder-name-p name))) | |
| 418 | |
| 419 ;;;###mh-autoload | |
| 420 (defun mh-valid-seq-p (name) | |
| 421 "Return non-nil if NAME is a valid MH sequence name." | |
| 422 (and (symbolp name) | |
| 423 (string-match "^[a-zA-Z][a-zA-Z0-9]*$" (symbol-name name)))) | |
| 424 | |
| 425 ;;;###mh-autoload | |
| 426 (defun mh-find-seq (name) | |
| 427 "Return sequence NAME." | |
| 428 (assoc name mh-seq-list)) | |
| 429 | |
| 430 ;;;###mh-autoload | |
| 431 (defun mh-seq-to-msgs (seq) | |
| 432 "Return a list of the messages in SEQ." | |
| 433 (mh-seq-msgs (mh-find-seq seq))) | |
| 434 | |
| 435 (defun mh-seq-containing-msg (msg &optional include-internal-flag) | |
| 436 "Return a list of the sequences containing MSG. | |
| 437 If INCLUDE-INTERNAL-FLAG non-nil, include MH-E internal sequences | |
| 438 in list." | |
| 439 (let ((l mh-seq-list) | |
| 440 (seqs ())) | |
| 441 (while l | |
| 442 (and (memq msg (mh-seq-msgs (car l))) | |
| 443 (or include-internal-flag | |
| 444 (not (mh-internal-seq (mh-seq-name (car l))))) | |
| 445 (setq seqs (cons (mh-seq-name (car l)) seqs))) | |
| 446 (setq l (cdr l))) | |
| 447 seqs)) | |
| 448 | |
| 449 ;;;###mh-autoload | |
| 450 (defun mh-define-sequence (seq msgs) | |
| 451 "Define the SEQ to contain the list of MSGS. | |
| 452 Do not mark pseudo-sequences or empty sequences. | |
| 453 Signals an error if SEQ is an invalid name." | |
| 454 (if (and msgs | |
| 455 (mh-valid-seq-p seq) | |
| 456 (not (mh-folder-name-p seq))) | |
| 457 (save-excursion | |
| 458 (mh-exec-cmd-error nil "mark" mh-current-folder "-add" "-zero" | |
| 459 "-sequence" (symbol-name seq) | |
| 460 (mh-coalesce-msg-list msgs))))) | |
| 461 | |
| 462 ;;;###mh-autoload | |
| 463 (defun mh-undefine-sequence (seq msgs) | |
| 464 "Remove from the SEQ the list of MSGS." | |
| 465 (when (and (mh-valid-seq-p seq) msgs) | |
| 466 (apply #'mh-exec-cmd "mark" mh-current-folder "-delete" | |
| 467 "-sequence" (symbol-name seq) (mh-coalesce-msg-list msgs)))) | |
| 468 | |
| 469 ;;;###mh-autoload | |
| 470 (defun mh-add-msgs-to-seq (msgs seq &optional internal-flag dont-annotate-flag) | |
| 471 "Add MSGS to SEQ. | |
| 472 | |
| 473 Remove duplicates and keep sequence sorted. If optional | |
| 474 INTERNAL-FLAG is non-nil, do not mark the message in the scan | |
| 475 listing or inform MH of the addition. | |
| 476 | |
| 477 If DONT-ANNOTATE-FLAG is non-nil then the annotations in the | |
| 478 folder buffer are not updated." | |
| 479 (let ((entry (mh-find-seq seq)) | |
| 480 (internal-seq-flag (mh-internal-seq seq))) | |
| 481 (if (and msgs (atom msgs)) (setq msgs (list msgs))) | |
| 482 (if (null entry) | |
| 483 (setq mh-seq-list | |
| 484 (cons (mh-make-seq seq (mh-canonicalize-sequence msgs)) | |
| 485 mh-seq-list)) | |
| 486 (if msgs (setcdr entry (mh-canonicalize-sequence | |
| 487 (append msgs (mh-seq-msgs entry)))))) | |
| 488 (unless internal-flag | |
| 489 (mh-add-to-sequence seq msgs) | |
| 490 (when (not dont-annotate-flag) | |
| 491 (mh-iterate-on-range msg msgs | |
| 492 (unless (memq msg (cdr entry)) | |
| 493 (mh-add-sequence-notation msg internal-seq-flag))))))) | |
| 494 | |
| 495 (defun mh-add-to-sequence (seq msgs) | |
| 496 "The sequence SEQ is augmented with the messages in MSGS." | |
| 497 ;; Add to a SEQUENCE each message the list of MSGS. | |
| 498 (if (and (mh-valid-seq-p seq) (not (mh-folder-name-p seq))) | |
| 499 (if msgs | |
| 500 (apply 'mh-exec-cmd "mark" mh-current-folder "-add" | |
| 501 "-sequence" (symbol-name seq) | |
| 502 (mh-coalesce-msg-list msgs))))) | |
| 503 | |
| 504 (defun mh-canonicalize-sequence (msgs) | |
| 505 "Sort MSGS in decreasing order and remove duplicates." | |
| 506 (let* ((sorted-msgs (sort (copy-sequence msgs) '>)) | |
| 507 (head sorted-msgs)) | |
| 508 (while (cdr head) | |
| 509 (if (= (car head) (cadr head)) | |
| 510 (setcdr head (cddr head)) | |
| 511 (setq head (cdr head)))) | |
| 512 sorted-msgs)) | |
| 513 | |
| 514 (defun mh-delete-a-msg-from-seq (msg sequence internal-flag) | |
| 515 "Delete MSG from SEQUENCE. | |
| 516 If INTERNAL-FLAG is non-nil, then do not inform MH of the | |
| 517 change." | |
| 518 (let ((entry (mh-find-seq sequence))) | |
| 519 (when (and entry (memq msg (mh-seq-msgs entry))) | |
| 520 (if (not internal-flag) | |
| 521 (mh-undefine-sequence sequence (list msg))) | |
| 522 (setcdr entry (delq msg (mh-seq-msgs entry)))))) | |
| 523 | |
| 524 (defun mh-delete-seq-locally (seq) | |
| 525 "Remove MH-E's record of SEQ." | |
| 526 (let ((entry (mh-find-seq seq))) | |
| 527 (setq mh-seq-list (delq entry mh-seq-list)))) | |
| 528 | |
| 529 (defun mh-copy-seq-to-eob (seq) | |
| 530 "Copy SEQ to the end of the buffer." | |
| 531 ;; It is quite involved to write something which will work at any place in | |
| 532 ;; the buffer, so we will write something which works only at the end of | |
| 533 ;; the buffer. If we ever need to insert sequences in the middle of the | |
| 534 ;; buffer, this will need to be fixed. | |
| 535 (save-excursion | |
| 536 (let* ((msgs (mh-seq-to-msgs seq)) | |
| 537 (coalesced-msgs (mh-coalesce-msg-list msgs))) | |
| 538 (goto-char (point-max)) | |
| 539 (save-restriction | |
| 540 (narrow-to-region (point) (point)) | |
| 541 (mh-regenerate-headers coalesced-msgs t) | |
| 542 (cond ((memq 'unthread mh-view-ops) | |
| 543 ;; Populate restricted scan-line map | |
| 544 (mh-remove-all-notation) | |
| 545 (mh-iterate-on-range msg (cons (point-min) (point-max)) | |
| 546 (setf (gethash msg mh-thread-scan-line-map) | |
| 547 (mh-thread-parse-scan-line))) | |
| 548 ;; Remove scan lines and read results from pre-computed tree | |
| 549 (delete-region (point-min) (point-max)) | |
| 550 (mh-thread-print-scan-lines | |
| 551 (mh-thread-generate mh-current-folder ())) | |
| 552 (mh-notate-user-sequences)) | |
| 553 (mh-index-data | |
| 554 (mh-index-insert-folder-headers))))))) | |
| 555 | |
| 556 ;;;###mh-autoload | |
| 557 (defun mh-valid-view-change-operation-p (op) | |
| 558 "Check if the view change operation can be performed. | |
| 559 OP is one of 'widen and 'unthread." | |
| 560 (cond ((eq (car mh-view-ops) op) | |
| 561 (pop mh-view-ops)) | |
| 562 (t nil))) | |
| 563 | |
| 67681 | 564 |
| 565 | |
| 68465 | 566 ;;; Ranges |
| 67681 | 567 |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
568 (defvar mh-range-seq-names) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
569 (defvar mh-range-history ()) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
570 (defvar mh-range-completion-map (copy-keymap minibuffer-local-completion-map)) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
571 (define-key mh-range-completion-map " " 'self-insert-command) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
572 |
| 68465 | 573 ;;;###mh-autoload |
| 574 (defun mh-interactive-range (range-prompt &optional default) | |
| 575 "Return interactive specification for message, sequence, range or region. | |
| 576 By convention, the name of this argument is RANGE. | |
| 577 | |
| 578 If variable `transient-mark-mode' is non-nil and the mark is active, | |
| 579 then this function returns a cons-cell of the region. | |
| 580 | |
| 581 If optional prefix argument is provided, then prompt for message range | |
| 582 with RANGE-PROMPT. A list of messages in that range is returned. | |
| 583 | |
| 584 If a MH range is given, say something like last:20, then a list | |
| 585 containing the messages in that range is returned. | |
| 586 | |
| 587 If DEFAULT non-nil then it is returned. | |
| 588 | |
| 589 Otherwise, the message number at point is returned. | |
| 590 | |
| 591 This function is usually used with `mh-iterate-on-range' in order to | |
| 592 provide a uniform interface to MH-E functions." | |
| 593 (cond ((mh-mark-active-p t) (cons (region-beginning) (region-end))) | |
| 594 (current-prefix-arg (mh-read-range range-prompt nil nil t t)) | |
| 595 (default default) | |
| 596 (t (mh-get-msg-num t)))) | |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
597 |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
598 ;;;###mh-autoload |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
599 (defun mh-read-range (prompt &optional folder default |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
600 expand-flag ask-flag number-as-range-flag) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
601 "Read a message range with PROMPT. |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
602 |
|
67758
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
603 If FOLDER is non-nil then a range is read from that folder, otherwise |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
604 use `mh-current-folder'. |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
605 |
|
67758
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
606 If DEFAULT is a string then use that as default range to return. If |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
607 DEFAULT is nil then ask user with default answer a range based on the |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
608 sequences that seem relevant. Finally if DEFAULT is t, try to avoid |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
609 prompting the user. Unseen messages, if present, are returned. If the |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
610 folder has fewer than `mh-large-folder' messages then \"all\" messages |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
611 are returned. Finally as a last resort prompt the user. |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
612 |
|
67758
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
613 If EXPAND-FLAG is non-nil then a list of message numbers corresponding |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
614 to the input is returned. If this list is empty then an error is |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
615 raised. If EXPAND-FLAG is nil just return the input string. In this |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
616 case we don't check if the range is empty. |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
617 |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
618 If ASK-FLAG is non-nil, then the user is always queried for a range of |
|
67758
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
619 messages. If ASK-FLAG is nil, then the function checks if the unseen |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
620 sequence is non-empty. If that is the case, `mh-unseen-seq', or the |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
621 list of messages in it depending on the value of EXPAND, is returned. |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
622 Otherwise if the folder has fewer than `mh-large-folder' messages then |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
623 the list of messages corresponding to \"all\" is returned. If neither |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
624 of the above holds then as a last resort the user is queried for a |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
625 range of messages. |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
626 |
|
67758
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
627 If NUMBER-AS-RANGE-FLAG is non-nil, then if a number, N is read as |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
628 input, it is interpreted as the range \"last:N\". |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
629 |
|
67758
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
630 This function replaces the existing function `mh-read-msg-range'. |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
631 Calls to: |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
632 |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
633 (mh-read-msg-range folder flag) |
|
67758
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
634 |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
635 should be replaced with: |
|
67758
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
636 |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
637 (mh-read-range \"Suitable prompt\" folder t nil flag |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
638 mh-interpret-number-as-range-flag)" |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
639 (setq default (or default mh-last-seq-used |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
640 (car (mh-seq-containing-msg (mh-get-msg-num nil) t))) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
641 prompt (format "%s range" prompt)) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
642 (let* ((folder (or folder mh-current-folder)) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
643 (guess (eq default t)) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
644 (counts (and guess (mh-folder-size folder))) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
645 (unseen (and counts (> (cadr counts) 0))) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
646 (large (and counts mh-large-folder (> (car counts) mh-large-folder))) |
|
68012
256cc87e0619
* mh-comp.el (mh-reply): Use standard default notation in prompts
Bill Wohler <wohler@newt.com>
parents:
67988
diff
changeset
|
647 (default (cond ((and guess large) (format "last:%s" mh-large-folder)) |
|
256cc87e0619
* mh-comp.el (mh-reply): Use standard default notation in prompts
Bill Wohler <wohler@newt.com>
parents:
67988
diff
changeset
|
648 ((and guess (not large)) "all") |
|
256cc87e0619
* mh-comp.el (mh-reply): Use standard default notation in prompts
Bill Wohler <wohler@newt.com>
parents:
67988
diff
changeset
|
649 ((stringp default) default) |
|
256cc87e0619
* mh-comp.el (mh-reply): Use standard default notation in prompts
Bill Wohler <wohler@newt.com>
parents:
67988
diff
changeset
|
650 ((symbolp default) (symbol-name default)))) |
|
256cc87e0619
* mh-comp.el (mh-reply): Use standard default notation in prompts
Bill Wohler <wohler@newt.com>
parents:
67988
diff
changeset
|
651 (prompt (cond ((and guess large default) |
|
256cc87e0619
* mh-comp.el (mh-reply): Use standard default notation in prompts
Bill Wohler <wohler@newt.com>
parents:
67988
diff
changeset
|
652 (format "%s (folder has %s messages, default %s)" |
|
256cc87e0619
* mh-comp.el (mh-reply): Use standard default notation in prompts
Bill Wohler <wohler@newt.com>
parents:
67988
diff
changeset
|
653 prompt (car counts) default)) |
|
256cc87e0619
* mh-comp.el (mh-reply): Use standard default notation in prompts
Bill Wohler <wohler@newt.com>
parents:
67988
diff
changeset
|
654 ((and guess large) |
|
256cc87e0619
* mh-comp.el (mh-reply): Use standard default notation in prompts
Bill Wohler <wohler@newt.com>
parents:
67988
diff
changeset
|
655 (format "%s (folder has %s messages)" |
|
256cc87e0619
* mh-comp.el (mh-reply): Use standard default notation in prompts
Bill Wohler <wohler@newt.com>
parents:
67988
diff
changeset
|
656 prompt (car counts))) |
|
256cc87e0619
* mh-comp.el (mh-reply): Use standard default notation in prompts
Bill Wohler <wohler@newt.com>
parents:
67988
diff
changeset
|
657 (default |
|
256cc87e0619
* mh-comp.el (mh-reply): Use standard default notation in prompts
Bill Wohler <wohler@newt.com>
parents:
67988
diff
changeset
|
658 (format "%s (default %s)" prompt default)))) |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
659 (minibuffer-local-completion-map mh-range-completion-map) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
660 (seq-list (if (eq folder mh-current-folder) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
661 mh-seq-list |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
662 (mh-read-folder-sequences folder nil))) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
663 (mh-range-seq-names |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
664 (append '(("first") ("last") ("all") ("prev") ("next")) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
665 (mh-seq-names seq-list))) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
666 (input (cond ((and (not ask-flag) unseen) (symbol-name mh-unseen-seq)) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
667 ((and (not ask-flag) (not large)) "all") |
|
68012
256cc87e0619
* mh-comp.el (mh-reply): Use standard default notation in prompts
Bill Wohler <wohler@newt.com>
parents:
67988
diff
changeset
|
668 (t (completing-read (format "%s: " prompt) |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
669 'mh-range-completion-function nil nil |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
670 nil 'mh-range-history default)))) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
671 msg-list) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
672 (when (and number-as-range-flag |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
673 (string-match "^[ \t]*\\([0-9]+\\)[ \t]*$" input)) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
674 (setq input (concat "last:" (match-string 1 input)))) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
675 (cond ((not expand-flag) input) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
676 ((assoc (intern input) seq-list) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
677 (cdr (assoc (intern input) seq-list))) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
678 ((setq msg-list (mh-translate-range folder input)) msg-list) |
|
68013
bbc0e52abce5
* mh-alias.el (mh-alias-add-alias): Grand message and error string
Bill Wohler <wohler@newt.com>
parents:
68012
diff
changeset
|
679 (t (error "No messages in range %s" input))))) |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
680 |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
681 ;;;###mh-autoload |
| 68465 | 682 (defun mh-range-to-msg-list (range) |
| 683 "Return a list of messages for RANGE. | |
| 684 | |
| 685 Check the documentation of `mh-interactive-range' to see how | |
| 686 RANGE is read in interactive use." | |
| 687 (let (msg-list) | |
| 688 (mh-iterate-on-range msg range | |
| 689 (push msg msg-list)) | |
| 690 (nreverse msg-list))) | |
| 691 | |
| 692 ;;;###mh-autoload | |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
693 (defun mh-translate-range (folder expr) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
694 "In FOLDER, translate the string EXPR to a list of messages numbers." |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
695 (save-excursion |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
696 (let ((strings (delete "" (split-string expr "[ \t\n]"))) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
697 (result ())) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
698 (ignore-errors |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
699 (apply #'mh-exec-cmd-quiet nil "mhpath" folder strings) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
700 (set-buffer mh-temp-buffer) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
701 (goto-char (point-min)) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
702 (while (re-search-forward "/\\([0-9]*\\)$" nil t) |
|
68212
0c77c0b9a620
* mh-comp.el (mh-show-buffer-message-number): Replace (car
Bill Wohler <wohler@newt.com>
parents:
68199
diff
changeset
|
703 (push (string-to-number (match-string 1)) result)) |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
704 (nreverse result))))) |
|
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
705 |
| 68465 | 706 (defun mh-range-completion-function (string predicate flag) |
| 707 "Programmable completion of message ranges. | |
| 708 STRING is the user input that is to be completed. PREDICATE if non-nil is a | |
| 709 function used to filter the possible choices and FLAG determines whether the | |
| 710 completion is over." | |
| 711 (let* ((candidates mh-range-seq-names) | |
| 712 (last-char (and (not (equal string "")) | |
| 713 (aref string (1- (length string))))) | |
| 714 (last-word (cond ((null last-char) "") | |
| 715 ((memq last-char '(? ?- ?:)) "") | |
| 716 (t (car (last (split-string string "[ -:]+")))))) | |
| 717 (prefix (substring string 0 (- (length string) (length last-word))))) | |
| 718 (cond ((eq flag nil) | |
| 719 (let ((res (try-completion last-word candidates predicate))) | |
| 720 (cond ((null res) nil) | |
| 721 ((eq res t) t) | |
| 722 (t (concat prefix res))))) | |
| 723 ((eq flag t) | |
| 724 (all-completions last-word candidates predicate)) | |
| 725 ((eq flag 'lambda) | |
| 726 (loop for x in candidates | |
| 727 when (equal x last-word) return t | |
| 728 finally return nil))))) | |
| 729 | |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
730 (defun mh-seq-names (seq-list) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
731 "Return an alist containing the names of the SEQ-LIST." |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
732 (mapcar (lambda (entry) (list (symbol-name (mh-seq-name entry)))) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
733 seq-list)) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
734 |
| 68465 | 735 (defun mh-folder-size (folder) |
| 736 "Find size of FOLDER." | |
| 737 (if mh-flists-present-flag | |
| 738 (mh-folder-size-flist folder) | |
| 739 (mh-folder-size-folder folder))) | |
| 740 | |
| 741 (defun mh-folder-size-flist (folder) | |
| 742 "Find size of FOLDER using \"flist\"." | |
| 743 (with-temp-buffer | |
| 744 (call-process (expand-file-name "flist" mh-progs) nil t nil "-showzero" | |
| 745 "-norecurse" folder "-sequence" (symbol-name mh-unseen-seq)) | |
| 746 (goto-char (point-min)) | |
| 747 (multiple-value-bind (folder unseen total) | |
| 103409 | 748 (values-list |
|
102537
6837adfb2772
m-v: use lists to pass things around rather than values.
Deepak Goel <deego@gnufans.org>
parents:
101481
diff
changeset
|
749 (mh-parse-flist-output-line |
|
6837adfb2772
m-v: use lists to pass things around rather than values.
Deepak Goel <deego@gnufans.org>
parents:
101481
diff
changeset
|
750 (buffer-substring (point) (mh-line-end-position)))) |
|
6837adfb2772
m-v: use lists to pass things around rather than values.
Deepak Goel <deego@gnufans.org>
parents:
101481
diff
changeset
|
751 (list total unseen folder)))) |
| 68465 | 752 |
| 753 (defun mh-folder-size-folder (folder) | |
| 754 "Find size of FOLDER using \"folder\"." | |
| 755 (with-temp-buffer | |
| 756 (let ((u (length (cdr (assoc mh-unseen-seq | |
| 757 (mh-read-folder-sequences folder nil)))))) | |
| 758 (call-process (expand-file-name "folder" mh-progs) nil t nil | |
| 759 "-norecurse" folder) | |
| 760 (goto-char (point-min)) | |
| 761 (if (re-search-forward " has \\([0-9]+\\) " nil t) | |
|
102537
6837adfb2772
m-v: use lists to pass things around rather than values.
Deepak Goel <deego@gnufans.org>
parents:
101481
diff
changeset
|
762 (list (string-to-number (match-string 1)) u folder) |
|
6837adfb2772
m-v: use lists to pass things around rather than values.
Deepak Goel <deego@gnufans.org>
parents:
101481
diff
changeset
|
763 (list 0 u folder))))) |
| 68465 | 764 |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
765 ;;;###mh-autoload |
| 68465 | 766 (defun mh-parse-flist-output-line (line &optional current-folder) |
| 767 "Parse LINE to generate folder name, unseen messages and total messages. | |
| 768 If CURRENT-FOLDER is non-nil then it contains the current folder | |
| 769 name and it is used to avoid problems in corner cases involving | |
| 770 folders whose names end with a '+' character." | |
| 771 (with-temp-buffer | |
| 772 (insert line) | |
| 773 (goto-char (point-max)) | |
| 774 (let (folder unseen total p) | |
| 775 (when (search-backward " out of " (point-min) t) | |
| 776 (setq total (string-to-number | |
| 777 (buffer-substring-no-properties | |
|
68529
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68465
diff
changeset
|
778 (match-end 0) (mh-line-end-position)))) |
| 68465 | 779 (when (search-backward " in sequence " (point-min) t) |
| 780 (setq p (point)) | |
| 781 (when (search-backward " has " (point-min) t) | |
| 782 (setq unseen (string-to-number (buffer-substring-no-properties | |
| 783 (match-end 0) p))) | |
| 784 (while (eq (char-after) ? ) | |
| 785 (backward-char)) | |
| 786 (setq folder (buffer-substring-no-properties | |
| 787 (point-min) (1+ (point)))) | |
| 788 (when (and (equal (aref folder (1- (length folder))) ?+) | |
| 789 (equal current-folder folder)) | |
| 790 (setq folder (substring folder 0 (1- (length folder))))) | |
|
102537
6837adfb2772
m-v: use lists to pass things around rather than values.
Deepak Goel <deego@gnufans.org>
parents:
101481
diff
changeset
|
791 (list (format "+%s" folder) unseen total))))))) |
| 68465 | 792 |
| 793 ;;;###mh-autoload | |
| 794 (defun mh-read-folder-sequences (folder save-refiles) | |
| 795 "Read and return the predefined sequences for a FOLDER. | |
| 796 If SAVE-REFILES is non-nil, then keep the sequences | |
| 797 that note messages to be refiled." | |
| 798 (let ((seqs ())) | |
| 799 (cond (save-refiles | |
| 800 (mh-mapc (function (lambda (seq) ; Save the refiling sequences | |
| 801 (if (mh-folder-name-p (mh-seq-name seq)) | |
| 802 (setq seqs (cons seq seqs))))) | |
| 803 mh-seq-list))) | |
| 804 (save-excursion | |
| 805 (if (eq 0 (mh-exec-cmd-quiet nil "mark" folder "-list")) | |
| 806 (progn | |
| 807 ;; look for name in line of form "cur: 4" or "myseq (private): 23" | |
| 808 (while (re-search-forward "^[^: ]+" nil t) | |
| 809 (setq seqs (cons (mh-make-seq (intern (buffer-substring | |
| 810 (match-beginning 0) | |
| 811 (match-end 0))) | |
| 812 (mh-read-msg-list)) | |
| 813 seqs))) | |
| 814 (delete-region (point-min) (point))))) ; avoid race with | |
| 815 ; mh-process-daemon | |
| 816 seqs)) | |
| 817 | |
| 818 (defun mh-read-msg-list () | |
| 819 "Return a list of message numbers from point to the end of the line. | |
| 820 Expands ranges into set of individual numbers." | |
| 821 (let ((msgs ()) | |
| 822 (end-of-line (save-excursion (end-of-line) (point))) | |
| 823 num) | |
| 824 (while (re-search-forward "[0-9]+" end-of-line t) | |
| 825 (setq num (string-to-number (buffer-substring (match-beginning 0) | |
| 826 (match-end 0)))) | |
| 827 (cond ((looking-at "-") ; Message range | |
| 828 (forward-char 1) | |
| 829 (re-search-forward "[0-9]+" end-of-line t) | |
| 830 (let ((num2 (string-to-number | |
| 831 (buffer-substring (match-beginning 0) | |
| 832 (match-end 0))))) | |
| 833 (if (< num2 num) | |
| 834 (error "Bad message range: %d-%d" num num2)) | |
| 835 (while (<= num num2) | |
| 836 (setq msgs (cons num msgs)) | |
| 837 (setq num (1+ num))))) | |
| 838 ((not (zerop num)) ;"pick" outputs "0" to mean no match | |
| 839 (setq msgs (cons num msgs))))) | |
| 840 msgs)) | |
| 841 | |
| 842 | |
| 843 | |
| 844 ;;; Notation | |
| 845 | |
| 846 ;;;###mh-autoload | |
| 847 (defun mh-notate (msg notation offset) | |
| 848 "Mark MSG with the character NOTATION at position OFFSET. | |
| 849 Null MSG means the message at cursor. | |
| 850 If NOTATION is nil then no change in the buffer occurs." | |
| 851 (save-excursion | |
| 852 (if (or (null msg) | |
| 853 (mh-goto-msg msg t t)) | |
| 854 (with-mh-folder-updating (t) | |
| 855 (beginning-of-line) | |
| 856 (forward-char offset) | |
| 857 (let* ((change-stack-flag | |
| 858 (and (equal offset | |
| 859 (+ mh-cmd-note mh-scan-field-destination-offset)) | |
| 860 (not (eq notation mh-note-seq)))) | |
| 861 (msg (and change-stack-flag (or msg (mh-get-msg-num nil)))) | |
| 862 (stack (and msg (gethash msg mh-sequence-notation-history))) | |
| 863 (notation (or notation (char-after)))) | |
| 864 (if stack | |
| 865 ;; The presence of the stack tells us that we don't need to | |
| 866 ;; notate the message, since the notation would be replaced | |
| 867 ;; by a sequence notation. So we will just put the notation | |
| 868 ;; at the bottom of the stack. If the sequence is deleted, | |
| 869 ;; the correct notation will be shown. | |
| 870 (setf (gethash msg mh-sequence-notation-history) | |
| 871 (reverse (cons notation (cdr (reverse stack))))) | |
| 872 ;; Since we don't have any sequence notations in the way, just | |
| 873 ;; notate the scan line. | |
| 874 (delete-char 1) | |
| 875 (insert notation)) | |
| 876 (when change-stack-flag | |
| 877 (mh-thread-update-scan-line-map msg notation offset))))))) | |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
878 |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
879 ;;;###mh-autoload |
|
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
880 (defun mh-notate-cur () |
|
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
881 "Mark the MH sequence cur. |
|
67758
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
882 In addition to notating the current message with `mh-note-cur' |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
883 the function uses `overlay-arrow-position' to put a marker in the |
|
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
884 fringe." |
|
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
885 (let ((cur (car (mh-seq-to-msgs 'cur)))) |
|
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
886 (when (and cur (mh-goto-msg cur t t)) |
|
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
887 (beginning-of-line) |
|
50702
7dd3d5eae9c7
Upgraded to MH-E version 7.3.
Bill Wohler <wohler@newt.com>
parents:
49578
diff
changeset
|
888 (when (looking-at mh-scan-good-msg-regexp) |
|
7dd3d5eae9c7
Upgraded to MH-E version 7.3.
Bill Wohler <wohler@newt.com>
parents:
49578
diff
changeset
|
889 (mh-notate nil mh-note-cur mh-cmd-note)) |
|
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
890 (setq mh-arrow-marker (set-marker mh-arrow-marker (point))) |
|
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
891 (setq overlay-arrow-position mh-arrow-marker)))) |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
892 |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
893 ;;;###mh-autoload |
| 68465 | 894 (defun mh-remove-cur-notation () |
| 895 "Remove old cur notation." | |
| 896 (let ((cur-msg (car (mh-seq-to-msgs 'cur)))) | |
| 897 (save-excursion | |
| 898 (when (and cur-msg | |
| 899 (mh-goto-msg cur-msg t t) | |
| 900 (looking-at mh-scan-cur-msg-number-regexp)) | |
| 901 (mh-notate nil ? mh-cmd-note) | |
| 902 (setq overlay-arrow-position nil))))) | |
|
49578
b35587af8747
Upgraded to MH-E version 7.2.
Bill Wohler <wohler@newt.com>
parents:
49459
diff
changeset
|
903 |
| 68465 | 904 ;; FIXME? We may want to clear all notations and add one for current-message |
| 905 ;; and process user sequences. | |
|
50702
7dd3d5eae9c7
Upgraded to MH-E version 7.3.
Bill Wohler <wohler@newt.com>
parents:
49578
diff
changeset
|
906 ;;;###mh-autoload |
| 68465 | 907 (defun mh-notate-deleted-and-refiled () |
| 908 "Notate messages marked for deletion or refiling. | |
| 909 Messages to be deleted are given by `mh-delete-list' while | |
| 910 messages to be refiled are present in `mh-refile-list'." | |
| 911 (let ((refiled-hash (make-hash-table)) | |
| 912 (deleted-hash (make-hash-table))) | |
| 913 (dolist (msg mh-delete-list) | |
| 914 (setf (gethash msg deleted-hash) t)) | |
| 915 (dolist (dest-msg-list mh-refile-list) | |
| 916 (dolist (msg (cdr dest-msg-list)) | |
| 917 (setf (gethash msg refiled-hash) t))) | |
| 918 (mh-iterate-on-messages-in-region msg (point-min) (point-max) | |
| 919 (cond ((gethash msg refiled-hash) | |
| 920 (mh-notate nil mh-note-refiled mh-cmd-note)) | |
| 921 ((gethash msg deleted-hash) | |
| 922 (mh-notate nil mh-note-deleted mh-cmd-note)))))) | |
|
50702
7dd3d5eae9c7
Upgraded to MH-E version 7.3.
Bill Wohler <wohler@newt.com>
parents:
49578
diff
changeset
|
923 |
|
7dd3d5eae9c7
Upgraded to MH-E version 7.3.
Bill Wohler <wohler@newt.com>
parents:
49578
diff
changeset
|
924 ;;;###mh-autoload |
| 68465 | 925 (defun mh-notate-user-sequences (&optional range) |
| 926 "Mark user-defined sequences in RANGE. | |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
927 |
| 68465 | 928 Check the documentation of `mh-interactive-range' to see how |
| 929 RANGE is read in interactive use; if nil all messages are | |
| 930 notated." | |
| 931 (unless range | |
| 932 (setq range (cons (point-min) (point-max)))) | |
| 933 (let ((seqs mh-seq-list) | |
| 934 (msg-hash (make-hash-table))) | |
| 935 (dolist (seq seqs) | |
| 936 (dolist (msg (mh-seq-msgs seq)) | |
| 937 (push (car seq) (gethash msg msg-hash)))) | |
| 938 (mh-iterate-on-range msg range | |
| 939 (loop for seq in (gethash msg msg-hash) | |
| 940 do (mh-add-sequence-notation msg (mh-internal-seq seq)))))) | |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
941 |
| 68465 | 942 (defun mh-add-sequence-notation (msg internal-seq-flag) |
| 943 "Add sequence notation to the MSG on the current line. | |
| 944 If INTERNAL-SEQ-FLAG is non-nil, then refontify the scan line if | |
| 945 font-lock is turned on." | |
| 946 (with-mh-folder-updating (t) | |
| 947 (save-excursion | |
| 948 (beginning-of-line) | |
| 949 (if internal-seq-flag | |
| 950 (progn | |
| 951 ;; Change the buffer so that if transient-mark-mode is active | |
| 952 ;; and there is an active region it will get deactivated as in | |
| 953 ;; the case of user sequences. | |
| 954 (mh-notate nil nil mh-cmd-note) | |
| 955 (when font-lock-mode | |
|
68529
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68465
diff
changeset
|
956 (font-lock-fontify-region (point) (mh-line-end-position)))) |
| 68465 | 957 (forward-char (+ mh-cmd-note mh-scan-field-destination-offset)) |
| 958 (let ((stack (gethash msg mh-sequence-notation-history))) | |
| 959 (setf (gethash msg mh-sequence-notation-history) | |
| 960 (cons (char-after) stack))) | |
| 961 (mh-notate nil mh-note-seq | |
| 962 (+ mh-cmd-note mh-scan-field-destination-offset)))))) | |
|
67758
6b063593fdad
Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents:
67681
diff
changeset
|
963 |
| 68465 | 964 (defun mh-remove-sequence-notation (msg internal-seq-flag &optional all) |
| 965 "Remove sequence notation from the MSG on the current line. | |
| 966 If INTERNAL-SEQ-FLAG is non-nil, then `font-lock' was used to | |
| 967 highlight the sequence. In that case, no notation needs to be removed. | |
| 968 Otherwise the effect of inserting `mh-note-seq' needs to be reversed. | |
| 969 If ALL is non-nil, then all sequence marks on the scan line are | |
| 970 removed." | |
| 971 (with-mh-folder-updating (t) | |
| 972 ;; This takes care of internal sequences... | |
| 973 (mh-notate nil nil mh-cmd-note) | |
| 974 (unless internal-seq-flag | |
| 975 ;; ... and this takes care of user sequences. | |
| 976 (let ((stack (gethash msg mh-sequence-notation-history))) | |
| 977 (while (and all (cdr stack)) | |
| 978 (setq stack (cdr stack))) | |
| 979 (when stack | |
| 980 (save-excursion | |
| 981 (beginning-of-line) | |
| 982 (forward-char (+ mh-cmd-note mh-scan-field-destination-offset)) | |
| 983 (delete-char 1) | |
| 984 (insert (car stack)))) | |
| 985 (setf (gethash msg mh-sequence-notation-history) (cdr stack)))))) | |
|
62847
aa8c2e12ee24
Upgraded to MH-E version 7.84.
Bill Wohler <wohler@newt.com>
parents:
62465
diff
changeset
|
986 |
|
56406
d36b00b98db0
Upgraded to MH-E version 7.4.4.
Bill Wohler <wohler@newt.com>
parents:
52401
diff
changeset
|
987 ;;;###mh-autoload |
| 68465 | 988 (defun mh-remove-all-notation () |
| 989 "Remove all notations on all scan lines that MH-E introduces." | |
| 990 (save-excursion | |
| 991 (setq overlay-arrow-position nil) | |
| 992 (goto-char (point-min)) | |
| 993 (mh-iterate-on-range msg (cons (point-min) (point-max)) | |
| 994 (mh-notate nil ? mh-cmd-note) | |
| 995 (mh-remove-sequence-notation msg nil t)) | |
| 996 (clrhash mh-sequence-notation-history))) | |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
997 |
| 67681 | 998 |
| 999 | |
| 68465 | 1000 ;; XXX Unused, delete, or create bind key? |
| 1001 (defun mh-rename-seq (sequence new-name) | |
| 1002 "Rename SEQUENCE to have NEW-NAME." | |
| 1003 (interactive (list (mh-read-seq "Old" t) | |
| 1004 (intern (read-string "New sequence name: ")))) | |
| 1005 (let ((old-seq (mh-find-seq sequence))) | |
| 1006 (or old-seq | |
| 1007 (error "Sequence %s does not exist" sequence)) | |
| 1008 ;; Create new sequence first, since it might raise an error. | |
| 1009 (mh-define-sequence new-name (mh-seq-msgs old-seq)) | |
| 1010 (mh-undefine-sequence sequence (mh-seq-msgs old-seq)) | |
| 1011 (rplaca old-seq new-name))) | |
|
50702
7dd3d5eae9c7
Upgraded to MH-E version 7.3.
Bill Wohler <wohler@newt.com>
parents:
49578
diff
changeset
|
1012 |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1013 (provide 'mh-seq) |
|
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1014 |
| 67681 | 1015 ;; Local Variables: |
| 1016 ;; indent-tabs-mode: nil | |
| 1017 ;; sentence-end-double-space: nil | |
| 1018 ;; End: | |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1019 |
| 67681 | 1020 ;; arch-tag: 8e952711-01a2-485b-bf21-c9e3ad4de942 |
|
49459
06b77df47802
* mh-e: Created directory. ChangeLog will appear in a week when we
Bill Wohler <wohler@newt.com>
parents:
diff
changeset
|
1021 ;;; mh-seq.el ends here |
