annotate man/mh-e.texi @ 38212:6b14cc47a4f2

Major rewrite. Sections Tags, Emerge, Change Log and Authors moved to maintaining.texi. Some sections reordered. Node Misc for Programs moved to just before the language-specific sections. New node Defuns contains an intro plus the old Defuns node (now renamed Moving by Defuns) as well as Imenu, Which Function, and a node Left Margin Paren to explain the convention about this. New node Parentheses now documents M-x check-parens. It contains subnodes Expressions, Moving by Parens, and Matching. Expressions and Moving by Parens contain the material formerly in Lists and List Commands, but divided up differently. The section Balanced Editing has been deleted. Most of the C indentation customization (all except c-set-style), has been replaced with a reference to the C Modes manual. Documentation now is divided into three subsections. Some rewrites in the Program Indent section about C-u TAB and C-M-q.
author Richard M. Stallman <rms@gnu.org>
date Tue, 26 Jun 2001 13:43:32 +0000
parents 1a52bb462cc9
children 5a3dae2132b4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1 \input texinfo @c -*-texinfo-*-
37822
1a52bb462cc9 Fix a typo in the last change.
Eli Zaretskii <eliz@gnu.org>
parents: 37802
diff changeset
2 @c $Id: mh-e.texi,v 1.10 2001/05/18 11:26:06 eliz Exp $
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
3 @c %**start of header
Dave Love <fx@gnu.org>
parents:
diff changeset
4 @setfilename ../info/mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
5 @settitle mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
6 @c %**end of header
Dave Love <fx@gnu.org>
parents:
diff changeset
7
Dave Love <fx@gnu.org>
parents:
diff changeset
8 @setchapternewpage odd
Dave Love <fx@gnu.org>
parents:
diff changeset
9
30009
95bdbefcdac6 Use dircategory `Emacs'.
Gerd Moellmann <gerd@gnu.org>
parents: 28343
diff changeset
10 @dircategory Emacs
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
11 @direntry
Dave Love <fx@gnu.org>
parents:
diff changeset
12 * MH-E: (mh-e). Emacs interface to the MH mail system.
Dave Love <fx@gnu.org>
parents:
diff changeset
13 @end direntry
Dave Love <fx@gnu.org>
parents:
diff changeset
14
Dave Love <fx@gnu.org>
parents:
diff changeset
15 @c Version variables.
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
16 @set EDITION 1.3
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
17 @set VERSION 5.0.2
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
18 @set UPDATED 18 February 2001
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
19 @set UPDATE-MONTH February 2001
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
20
Dave Love <fx@gnu.org>
parents:
diff changeset
21 @ifinfo
Dave Love <fx@gnu.org>
parents:
diff changeset
22 This is Edition @value{EDITION}, last updated @value{UPDATED}, of
Dave Love <fx@gnu.org>
parents:
diff changeset
23 @cite{mh-e, The Emacs Interface to MH}, for mh-e, Version
Dave Love <fx@gnu.org>
parents:
diff changeset
24 @value{VERSION}.
Dave Love <fx@gnu.org>
parents:
diff changeset
25
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
26 Copyright 1995, 2001 Free Software Foundation, Inc.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
27
32315
0da9507401c4 Convert to GFDL.
Dave Love <fx@gnu.org>
parents: 32112
diff changeset
28 Permission is granted to copy, distribute and/or modify this document
0da9507401c4 Convert to GFDL.
Dave Love <fx@gnu.org>
parents: 32112
diff changeset
29 under the terms of the GNU Free Documentation License, Version 1.1 or
0da9507401c4 Convert to GFDL.
Dave Love <fx@gnu.org>
parents: 32112
diff changeset
30 any later version published by the Free Software Foundation; with no
0da9507401c4 Convert to GFDL.
Dave Love <fx@gnu.org>
parents: 32112
diff changeset
31 Invariant Sections, with the Front-Cover texts being ``A GNU
0da9507401c4 Convert to GFDL.
Dave Love <fx@gnu.org>
parents: 32112
diff changeset
32 Manual'', and with the Back-Cover Texts as in (a) below. A copy of the
0da9507401c4 Convert to GFDL.
Dave Love <fx@gnu.org>
parents: 32112
diff changeset
33 license is included in the section entitled ``GNU Free Documentation
0da9507401c4 Convert to GFDL.
Dave Love <fx@gnu.org>
parents: 32112
diff changeset
34 License'' in the Emacs manual.
0da9507401c4 Convert to GFDL.
Dave Love <fx@gnu.org>
parents: 32112
diff changeset
35
0da9507401c4 Convert to GFDL.
Dave Love <fx@gnu.org>
parents: 32112
diff changeset
36 (a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
0da9507401c4 Convert to GFDL.
Dave Love <fx@gnu.org>
parents: 32112
diff changeset
37 this GNU Manual, like GNU software. Copies published by the Free
0da9507401c4 Convert to GFDL.
Dave Love <fx@gnu.org>
parents: 32112
diff changeset
38 Software Foundation raise funds for GNU development.''
0da9507401c4 Convert to GFDL.
Dave Love <fx@gnu.org>
parents: 32112
diff changeset
39
0da9507401c4 Convert to GFDL.
Dave Love <fx@gnu.org>
parents: 32112
diff changeset
40 This document is part of a collection distributed under the GNU Free
0da9507401c4 Convert to GFDL.
Dave Love <fx@gnu.org>
parents: 32112
diff changeset
41 Documentation License. If you want to distribute this document
0da9507401c4 Convert to GFDL.
Dave Love <fx@gnu.org>
parents: 32112
diff changeset
42 separately from the collection, you can do so by adding a copy of the
0da9507401c4 Convert to GFDL.
Dave Love <fx@gnu.org>
parents: 32112
diff changeset
43 license to the document, as described in section 6 of the license.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
44 @end ifinfo
Dave Love <fx@gnu.org>
parents:
diff changeset
45
Dave Love <fx@gnu.org>
parents:
diff changeset
46 @titlepage
Dave Love <fx@gnu.org>
parents:
diff changeset
47 @sp 10
Dave Love <fx@gnu.org>
parents:
diff changeset
48 @center @titlefont{mh-e}
Dave Love <fx@gnu.org>
parents:
diff changeset
49 @sp 2
Dave Love <fx@gnu.org>
parents:
diff changeset
50 @center The Emacs Interface to MH
Dave Love <fx@gnu.org>
parents:
diff changeset
51 @sp 2
Dave Love <fx@gnu.org>
parents:
diff changeset
52 @center by Bill Wohler
Dave Love <fx@gnu.org>
parents:
diff changeset
53 @sp 2
Dave Love <fx@gnu.org>
parents:
diff changeset
54 @center Edition @value{EDITION} for mh-e Version @value{VERSION}
Dave Love <fx@gnu.org>
parents:
diff changeset
55 @sp 2
Dave Love <fx@gnu.org>
parents:
diff changeset
56 @center @value{UPDATE-MONTH}
Dave Love <fx@gnu.org>
parents:
diff changeset
57
Dave Love <fx@gnu.org>
parents:
diff changeset
58 @page
Dave Love <fx@gnu.org>
parents:
diff changeset
59 @vskip 0pt plus 1filll
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
60 Copyright @copyright{} 1995, 2001 Free Software Foundation, Inc.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
61
32315
0da9507401c4 Convert to GFDL.
Dave Love <fx@gnu.org>
parents: 32112
diff changeset
62 Permission is granted to copy, distribute and/or modify this document
0da9507401c4 Convert to GFDL.
Dave Love <fx@gnu.org>
parents: 32112
diff changeset
63 under the terms of the GNU Free Documentation License, Version 1.1 or
0da9507401c4 Convert to GFDL.
Dave Love <fx@gnu.org>
parents: 32112
diff changeset
64 any later version published by the Free Software Foundation; with no
0da9507401c4 Convert to GFDL.
Dave Love <fx@gnu.org>
parents: 32112
diff changeset
65 Invariant Sections, with the Front-Cover texts being ``A GNU
0da9507401c4 Convert to GFDL.
Dave Love <fx@gnu.org>
parents: 32112
diff changeset
66 Manual'', and with the Back-Cover Texts as in (a) below. A copy of the
0da9507401c4 Convert to GFDL.
Dave Love <fx@gnu.org>
parents: 32112
diff changeset
67 license is included in the section entitled ``GNU Free Documentation
0da9507401c4 Convert to GFDL.
Dave Love <fx@gnu.org>
parents: 32112
diff changeset
68 License'' in the Emacs manual.
0da9507401c4 Convert to GFDL.
Dave Love <fx@gnu.org>
parents: 32112
diff changeset
69
0da9507401c4 Convert to GFDL.
Dave Love <fx@gnu.org>
parents: 32112
diff changeset
70 (a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
0da9507401c4 Convert to GFDL.
Dave Love <fx@gnu.org>
parents: 32112
diff changeset
71 this GNU Manual, like GNU software. Copies published by the Free
0da9507401c4 Convert to GFDL.
Dave Love <fx@gnu.org>
parents: 32112
diff changeset
72 Software Foundation raise funds for GNU development.''
0da9507401c4 Convert to GFDL.
Dave Love <fx@gnu.org>
parents: 32112
diff changeset
73
0da9507401c4 Convert to GFDL.
Dave Love <fx@gnu.org>
parents: 32112
diff changeset
74 This document is part of a collection distributed under the GNU Free
0da9507401c4 Convert to GFDL.
Dave Love <fx@gnu.org>
parents: 32112
diff changeset
75 Documentation License. If you want to distribute this document
0da9507401c4 Convert to GFDL.
Dave Love <fx@gnu.org>
parents: 32112
diff changeset
76 separately from the collection, you can do so by adding a copy of the
0da9507401c4 Convert to GFDL.
Dave Love <fx@gnu.org>
parents: 32112
diff changeset
77 license to the document, as described in section 6 of the license.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
78 @end titlepage
Dave Love <fx@gnu.org>
parents:
diff changeset
79
Dave Love <fx@gnu.org>
parents:
diff changeset
80 @ifinfo
Dave Love <fx@gnu.org>
parents:
diff changeset
81 @node Top, Preface, (dir), (dir)
Dave Love <fx@gnu.org>
parents:
diff changeset
82 @top MH and Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
83 This is Edition @value{EDITION} of @cite{mh-e, The Emacs Interface to
Dave Love <fx@gnu.org>
parents:
diff changeset
84 MH}, last updated @value{UPDATED} for mh-e Version @value{VERSION}.
Dave Love <fx@gnu.org>
parents:
diff changeset
85
Dave Love <fx@gnu.org>
parents:
diff changeset
86 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
87 * Preface:: Introduction to mh-e.
Dave Love <fx@gnu.org>
parents:
diff changeset
88 * Tour Through mh-e:: Use mh-e quickly!
Dave Love <fx@gnu.org>
parents:
diff changeset
89 * Using mh-e:: Documentation for all commands.
Dave Love <fx@gnu.org>
parents:
diff changeset
90 * Customizing mh-e:: Documentation for all variables.
Dave Love <fx@gnu.org>
parents:
diff changeset
91 * Odds and Ends:: Getting mh-e, reporting bugs, mailing
Dave Love <fx@gnu.org>
parents:
diff changeset
92 list and FAQ.
Dave Love <fx@gnu.org>
parents:
diff changeset
93 * History:: The authors speak up!
Dave Love <fx@gnu.org>
parents:
diff changeset
94 * Copying:: The GNU General Public License
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
95 * Command Index::
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
96 * Variable Index::
Dave Love <fx@gnu.org>
parents:
diff changeset
97 * Concept Index::
Dave Love <fx@gnu.org>
parents:
diff changeset
98 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
99 @end ifinfo
Dave Love <fx@gnu.org>
parents:
diff changeset
100
Dave Love <fx@gnu.org>
parents:
diff changeset
101 @node Preface, Tour Through mh-e, Top, Top
Dave Love <fx@gnu.org>
parents:
diff changeset
102 @unnumbered Preface
Dave Love <fx@gnu.org>
parents:
diff changeset
103
Dave Love <fx@gnu.org>
parents:
diff changeset
104 @cindex Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
105 @cindex Unix commands, Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
106
Dave Love <fx@gnu.org>
parents:
diff changeset
107 These chapters introduce another interface to MH that is accessible
Dave Love <fx@gnu.org>
parents:
diff changeset
108 through the GNU Emacs editor, namely, @emph{mh-e}. mh-e is easy to use.
Dave Love <fx@gnu.org>
parents:
diff changeset
109 I don't assume that you know GNU Emacs or even MH at this point, since I
Dave Love <fx@gnu.org>
parents:
diff changeset
110 didn't know either of them when I discovered mh-e. However, mh-e was
Dave Love <fx@gnu.org>
parents:
diff changeset
111 the tip of the iceberg, and I discovered more and more niceties about
Dave Love <fx@gnu.org>
parents:
diff changeset
112 GNU Emacs and MH@. Now I'm fully hooked on both of them.
Dave Love <fx@gnu.org>
parents:
diff changeset
113
Dave Love <fx@gnu.org>
parents:
diff changeset
114 @cindex history
Dave Love <fx@gnu.org>
parents:
diff changeset
115
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
116 The mh-e package is distributed with GNU Emacs, @footnote{Note that
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
117 mh-e is supported with MH 6 and @w{Emacs 18} through @w{Emacs 21}.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
118 Reportedly, large parts of it work with @w{MH 5} and also with
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
119 Lucid/XEmacs and Epoch, but there are no guarantees. It is also
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
120 distributed with Lucid/XEmacs, as well as with MH itself.} so you
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
121 shouldn't have to do anything special to use it. But it's important to
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
122 note a brief history of mh-e. @w{Version 3} was prevalent through the
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
123 @w{Emacs 18} and early @w{Emacs 19} years. Then @w{Version 4} came out
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
124 (@w{Emacs 19.23}), which introduced several new and changed commands.
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
125 Finally, @w{Version 5.0} was released, which fixed some bugs and
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
126 incompatibilities, and was incorporated into @w{Emacs 19.29}. This is
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
127 the version covered by this manual. @ref{Getting Started} will help
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
128 you decide which version you have.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
129
Dave Love <fx@gnu.org>
parents:
diff changeset
130 If you don't already use GNU Emacs but want to learn more, you can read
Dave Love <fx@gnu.org>
parents:
diff changeset
131 an online tutorial by starting GNU Emacs and typing @kbd{C-h t}
Dave Love <fx@gnu.org>
parents:
diff changeset
132 (@code{help-with-tutorial}). (This notation is described in
Dave Love <fx@gnu.org>
parents:
diff changeset
133 @ref{Conventions}.) If you want to take the plunge, consult the
Dave Love <fx@gnu.org>
parents:
diff changeset
134 @iftex
Dave Love <fx@gnu.org>
parents:
diff changeset
135 @cite{GNU Emacs Manual},
Dave Love <fx@gnu.org>
parents:
diff changeset
136 @end iftex
Dave Love <fx@gnu.org>
parents:
diff changeset
137 @ifinfo
Dave Love <fx@gnu.org>
parents:
diff changeset
138 @ref{top, , GNU Emacs Manual, emacs, The GNU Emacs Manual},
Dave Love <fx@gnu.org>
parents:
diff changeset
139 @end ifinfo
Dave Love <fx@gnu.org>
parents:
diff changeset
140 from the Free Software Foundation.
Dave Love <fx@gnu.org>
parents:
diff changeset
141
Dave Love <fx@gnu.org>
parents:
diff changeset
142 If more information is needed, you can go to the Unix manual pages of
Dave Love <fx@gnu.org>
parents:
diff changeset
143 the individual MH commands. When the name is not obvious, I'll guide
Dave Love <fx@gnu.org>
parents:
diff changeset
144 you to a relevant MH manual page that describes the action more fully.
Dave Love <fx@gnu.org>
parents:
diff changeset
145
Dave Love <fx@gnu.org>
parents:
diff changeset
146 I hope you enjoy these chapters! If you have any comments, or
Dave Love <fx@gnu.org>
parents:
diff changeset
147 suggestions for this document, please let me know.
Dave Love <fx@gnu.org>
parents:
diff changeset
148
Dave Love <fx@gnu.org>
parents:
diff changeset
149 @noindent
Dave Love <fx@gnu.org>
parents:
diff changeset
150 Bill Wohler <@i{wohler@@newt.com}>@*
Dave Love <fx@gnu.org>
parents:
diff changeset
151 8 February 1995
Dave Love <fx@gnu.org>
parents:
diff changeset
152
Dave Love <fx@gnu.org>
parents:
diff changeset
153 @node Tour Through mh-e, Using mh-e, Preface, Top
Dave Love <fx@gnu.org>
parents:
diff changeset
154 @chapter Tour Through mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
155
Dave Love <fx@gnu.org>
parents:
diff changeset
156 This chapter introduces some of the terms you'll need to know and then
Dave Love <fx@gnu.org>
parents:
diff changeset
157 takes you on a tour of mh-e. @footnote{The keys mentioned in these
Dave Love <fx@gnu.org>
parents:
diff changeset
158 chapters refer to the default key bindings. If you've changed the
Dave Love <fx@gnu.org>
parents:
diff changeset
159 bindings, refer to the command summaries at the beginning of each major
Dave Love <fx@gnu.org>
parents:
diff changeset
160 section in @ref{Using mh-e}, for a mapping between default key bindings
Dave Love <fx@gnu.org>
parents:
diff changeset
161 and function names.} When you're done, you'll be able to send, read,
Dave Love <fx@gnu.org>
parents:
diff changeset
162 and file mail, which is all that a lot of people ever do. But if you're
Dave Love <fx@gnu.org>
parents:
diff changeset
163 the curious type, you'll read @ref{Using mh-e} to be able to use all
Dave Love <fx@gnu.org>
parents:
diff changeset
164 the features of mh-e. If you're the adventurous type, you'll read
Dave Love <fx@gnu.org>
parents:
diff changeset
165 @ref{Customizing mh-e} to make mh-e do what you want. I suggest you
Dave Love <fx@gnu.org>
parents:
diff changeset
166 read this chapter first to get the big picture, and then you can read
Dave Love <fx@gnu.org>
parents:
diff changeset
167 the other two as you wish.
Dave Love <fx@gnu.org>
parents:
diff changeset
168
Dave Love <fx@gnu.org>
parents:
diff changeset
169 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
170 * Conventions:: GNU Emacs Terms and Conventions
Dave Love <fx@gnu.org>
parents:
diff changeset
171 * Getting Started::
Dave Love <fx@gnu.org>
parents:
diff changeset
172 * Sending Mail Tour::
Dave Love <fx@gnu.org>
parents:
diff changeset
173 * Reading Mail Tour::
Dave Love <fx@gnu.org>
parents:
diff changeset
174 * Processing Mail Tour::
Dave Love <fx@gnu.org>
parents:
diff changeset
175 * Leaving mh-e::
Dave Love <fx@gnu.org>
parents:
diff changeset
176 * More About mh-e::
Dave Love <fx@gnu.org>
parents:
diff changeset
177 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
178
Dave Love <fx@gnu.org>
parents:
diff changeset
179 @node Conventions, Getting Started, Tour Through mh-e, Tour Through mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
180 @section GNU Emacs Terms and Conventions
Dave Love <fx@gnu.org>
parents:
diff changeset
181
Dave Love <fx@gnu.org>
parents:
diff changeset
182 @cindex Emacs, terms and conventions
Dave Love <fx@gnu.org>
parents:
diff changeset
183
Dave Love <fx@gnu.org>
parents:
diff changeset
184 @cindex Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
185 @cindex Unix commands, Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
186
Dave Love <fx@gnu.org>
parents:
diff changeset
187 If you're an experienced Emacs user, you can skip the following
Dave Love <fx@gnu.org>
parents:
diff changeset
188 conventions and definition of terms and go directly to @ref{Getting
Dave Love <fx@gnu.org>
parents:
diff changeset
189 Started} below. The conventions are as follows:
Dave Love <fx@gnu.org>
parents:
diff changeset
190
Dave Love <fx@gnu.org>
parents:
diff changeset
191 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
192 @item C-x
Dave Love <fx@gnu.org>
parents:
diff changeset
193 Hold down the @key{CTRL} (Control) key and press the @kbd{x} key.
Dave Love <fx@gnu.org>
parents:
diff changeset
194 @item M-x
Dave Love <fx@gnu.org>
parents:
diff changeset
195 Hold down the @key{META} or @key{ALT} key and press the @kbd{x} key.
Dave Love <fx@gnu.org>
parents:
diff changeset
196
Dave Love <fx@gnu.org>
parents:
diff changeset
197 Since some keyboards don't have a @key{META} key, you can generate
Dave Love <fx@gnu.org>
parents:
diff changeset
198 @kbd{M-x}, for example, by pressing @key{ESC} (Escape), @emph{releasing
Dave Love <fx@gnu.org>
parents:
diff changeset
199 it}, @footnote{This is emphasized because pressing ESC twice or holding
Dave Love <fx@gnu.org>
parents:
diff changeset
200 it down a second too long so that it repeats gives you an error message.}
Dave Love <fx@gnu.org>
parents:
diff changeset
201 and then pressing the @kbd{x} key.
Dave Love <fx@gnu.org>
parents:
diff changeset
202 @item RET
Dave Love <fx@gnu.org>
parents:
diff changeset
203 Press the @key{RETURN} or @key{ENTER} key. This is normally used to
Dave Love <fx@gnu.org>
parents:
diff changeset
204 complete a command.
Dave Love <fx@gnu.org>
parents:
diff changeset
205 @item SPC
Dave Love <fx@gnu.org>
parents:
diff changeset
206 Press the space bar.
Dave Love <fx@gnu.org>
parents:
diff changeset
207 @item TAB
Dave Love <fx@gnu.org>
parents:
diff changeset
208 Press the @key{TAB} key.
Dave Love <fx@gnu.org>
parents:
diff changeset
209 @item DEL
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
210 Press the @key{DELETE} key.
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
211 @item BS
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
212 Press the @key{BACKSPACE} key. @footnote{If you are using Version 20
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
213 or earlier of Emacs, you will need to use the @key{DEL} key.}
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
214 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
215
Dave Love <fx@gnu.org>
parents:
diff changeset
216 @cindex Emacs, prefix argument
Dave Love <fx@gnu.org>
parents:
diff changeset
217 @cindex prefix argument
Dave Love <fx@gnu.org>
parents:
diff changeset
218
Dave Love <fx@gnu.org>
parents:
diff changeset
219 A @dfn{prefix argument} allows you to pass an argument to any Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
220 function. To pass an argument, type @kbd{C-u} before the Emacs command
Dave Love <fx@gnu.org>
parents:
diff changeset
221 or keystroke. Numeric arguments can be passed as well. For example, to
Dave Love <fx@gnu.org>
parents:
diff changeset
222 insert five f's, use @kbd{C-u 5 f}. There is a default of four when
Dave Love <fx@gnu.org>
parents:
diff changeset
223 using @kbd{C-u}, and you can use multiple prefix arguments to provide
Dave Love <fx@gnu.org>
parents:
diff changeset
224 arguments of powers of four. To continue our example, you could insert
Dave Love <fx@gnu.org>
parents:
diff changeset
225 four f's with @kbd{C-u f}, 16 f's with @kbd{C-u C-u f}, 64 f's with
Dave Love <fx@gnu.org>
parents:
diff changeset
226 @kbd{C-u C-u C-u f}, and so on. Numeric and valueless negative
Dave Love <fx@gnu.org>
parents:
diff changeset
227 arguments can also be inserted with the @key{META} key. Examples
Dave Love <fx@gnu.org>
parents:
diff changeset
228 include @kbd{M-5} to specify an argument of 5, or @kbd{M--} which
Dave Love <fx@gnu.org>
parents:
diff changeset
229 specifies a negative argument with no particular value.
Dave Love <fx@gnu.org>
parents:
diff changeset
230
Dave Love <fx@gnu.org>
parents:
diff changeset
231 @sp 2
Dave Love <fx@gnu.org>
parents:
diff changeset
232 @need 1000
Dave Love <fx@gnu.org>
parents:
diff changeset
233 @center @strong{NOTE}
Dave Love <fx@gnu.org>
parents:
diff changeset
234
Dave Love <fx@gnu.org>
parents:
diff changeset
235 @quotation
Dave Love <fx@gnu.org>
parents:
diff changeset
236 The prefix @kbd{C-u} or @kbd{M-} is not necessary in mh-e's MH-Folder
Dave Love <fx@gnu.org>
parents:
diff changeset
237 modes (@pxref{Reading Mail Tour}). In these modes, simply enter the
Dave Love <fx@gnu.org>
parents:
diff changeset
238 numerical argument before entering the command.
Dave Love <fx@gnu.org>
parents:
diff changeset
239 @end quotation
Dave Love <fx@gnu.org>
parents:
diff changeset
240
Dave Love <fx@gnu.org>
parents:
diff changeset
241 @cindex point
Dave Love <fx@gnu.org>
parents:
diff changeset
242 @cindex Emacs, point
Dave Love <fx@gnu.org>
parents:
diff changeset
243 @cindex mark
Dave Love <fx@gnu.org>
parents:
diff changeset
244 @cindex Emacs, mark
Dave Love <fx@gnu.org>
parents:
diff changeset
245 @cindex region
Dave Love <fx@gnu.org>
parents:
diff changeset
246 @cindex Emacs, region
Dave Love <fx@gnu.org>
parents:
diff changeset
247
Dave Love <fx@gnu.org>
parents:
diff changeset
248 There are several other terms that are used in Emacs that you should
Dave Love <fx@gnu.org>
parents:
diff changeset
249 know. The @dfn{point} is where the cursor currently is. You can save
Dave Love <fx@gnu.org>
parents:
diff changeset
250 your current place in the file by setting a @dfn{mark}. This operation
Dave Love <fx@gnu.org>
parents:
diff changeset
251 is useful in several ways. The mark can be later used when defining a
Dave Love <fx@gnu.org>
parents:
diff changeset
252 @dfn{region}, which is the text between the point and mark. Many
Dave Love <fx@gnu.org>
parents:
diff changeset
253 commands operate on regions, such as those for deleting text or filling
Dave Love <fx@gnu.org>
parents:
diff changeset
254 paragraphs. A mark can be set with @kbd{C-@@} (or @kbd{C-SPC}).
Dave Love <fx@gnu.org>
parents:
diff changeset
255
Dave Love <fx@gnu.org>
parents:
diff changeset
256 @cindex minibuffer
Dave Love <fx@gnu.org>
parents:
diff changeset
257 @cindex Emacs, minibuffer
Dave Love <fx@gnu.org>
parents:
diff changeset
258 @cindex file completion
Dave Love <fx@gnu.org>
parents:
diff changeset
259 @cindex Emacs, file completion
Dave Love <fx@gnu.org>
parents:
diff changeset
260
Dave Love <fx@gnu.org>
parents:
diff changeset
261 The @dfn{minibuffer} is the bottom line of the Emacs window, where all
Dave Love <fx@gnu.org>
parents:
diff changeset
262 prompting and multiple-character input is directed. If you are prompted
Dave Love <fx@gnu.org>
parents:
diff changeset
263 for information in the minibuffer, such as a filename, Emacs can help
Dave Love <fx@gnu.org>
parents:
diff changeset
264 you complete your answer if you type @key{SPC} or @key{TAB}. A second
Dave Love <fx@gnu.org>
parents:
diff changeset
265 @key{SPC} or @key{TAB} will list all possibilities at that point. The
Dave Love <fx@gnu.org>
parents:
diff changeset
266 minibuffer is also where you enter Emacs function names after typing
Dave Love <fx@gnu.org>
parents:
diff changeset
267 @kbd{M-x}. For example, in the first paragraph, I mentioned that you
Dave Love <fx@gnu.org>
parents:
diff changeset
268 could obtain help with @kbd{C-h t} (@code{help-with-tutorial}). What
Dave Love <fx@gnu.org>
parents:
diff changeset
269 this means is that you can get a tutorial by typing either @kbd{C-h t}
Dave Love <fx@gnu.org>
parents:
diff changeset
270 or @kbd{M-x help-with-tutorial}. In the latter case, you are prompted
Dave Love <fx@gnu.org>
parents:
diff changeset
271 for @samp{help-with-tutorial} in the minibuffer after typing @kbd{M-x}.
Dave Love <fx@gnu.org>
parents:
diff changeset
272
Dave Love <fx@gnu.org>
parents:
diff changeset
273 @cindex interrupting
Dave Love <fx@gnu.org>
parents:
diff changeset
274 @cindex Emacs, interrupting
Dave Love <fx@gnu.org>
parents:
diff changeset
275 @cindex quitting
Dave Love <fx@gnu.org>
parents:
diff changeset
276 @cindex Emacs, quitting
Dave Love <fx@gnu.org>
parents:
diff changeset
277
Dave Love <fx@gnu.org>
parents:
diff changeset
278 @i{In case of trouble:} Emacs can be interrupted at any time with
Dave Love <fx@gnu.org>
parents:
diff changeset
279 @kbd{C-g}. For example, if you've started a command that requests that
Dave Love <fx@gnu.org>
parents:
diff changeset
280 you enter something in the minibuffer, but then you change your mind,
Dave Love <fx@gnu.org>
parents:
diff changeset
281 type @kbd{C-g} and you'll be back where you started. If you want to
Dave Love <fx@gnu.org>
parents:
diff changeset
282 exit Emacs entirely, use @kbd{C-x C-c}.
Dave Love <fx@gnu.org>
parents:
diff changeset
283
Dave Love <fx@gnu.org>
parents:
diff changeset
284 @node Getting Started, Sending Mail Tour, Conventions, Tour Through mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
285 @section Getting Started
Dave Love <fx@gnu.org>
parents:
diff changeset
286
Dave Love <fx@gnu.org>
parents:
diff changeset
287 Because there are many old versions of mh-e out there, it is important to
Dave Love <fx@gnu.org>
parents:
diff changeset
288 know which version you have. I'll be talking about @w{Version 5} which
Dave Love <fx@gnu.org>
parents:
diff changeset
289 is similar to @w{Version 4} and vastly different from @w{Version 3}.
Dave Love <fx@gnu.org>
parents:
diff changeset
290
Dave Love <fx@gnu.org>
parents:
diff changeset
291 First, enter @kbd{M-x load-library @key{RET} mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
292 @key{RET}}. @footnote{You wouldn't ordinarily do this.} The message,
Dave Love <fx@gnu.org>
parents:
diff changeset
293 @samp{Loading mh-e...done}, should be displayed in the minibuffer. If
Dave Love <fx@gnu.org>
parents:
diff changeset
294 you get @samp{Cannot open load file: mh-e}, then your Emacs is very
Dave Love <fx@gnu.org>
parents:
diff changeset
295 badly configured, or mh-e is missing. You may wish to have your system
Dave Love <fx@gnu.org>
parents:
diff changeset
296 administrator install a new Emacs or at least the latest mh-e files.
Dave Love <fx@gnu.org>
parents:
diff changeset
297
Dave Love <fx@gnu.org>
parents:
diff changeset
298 Having loaded mh-e successfully, enter @kbd{M-x mh-version @key{RET}}.
Dave Love <fx@gnu.org>
parents:
diff changeset
299 The version of mh-e should be displayed. Hopefully it says that you're
Dave Love <fx@gnu.org>
parents:
diff changeset
300 running @w{Version @value{VERSION}} which is the latest version as of
Dave Love <fx@gnu.org>
parents:
diff changeset
301 this printing. If instead Emacs beeps and says @samp{[No match]}, then
Dave Love <fx@gnu.org>
parents:
diff changeset
302 you're running an old version of mh-e.
Dave Love <fx@gnu.org>
parents:
diff changeset
303
Dave Love <fx@gnu.org>
parents:
diff changeset
304 If these tests reveal a non-existent or old version of mh-e, please
Dave Love <fx@gnu.org>
parents:
diff changeset
305 consider obtaining a new version. You can have your system
Dave Love <fx@gnu.org>
parents:
diff changeset
306 administrator upgrade the system-wide version, or you can install your
Dave Love <fx@gnu.org>
parents:
diff changeset
307 own personal version. It's really quite easy; instructions for getting
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
308 and installing mh-e are in @ref{Getting mh-e}.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
309
Dave Love <fx@gnu.org>
parents:
diff changeset
310 @cindex @code{install-mh}
Dave Love <fx@gnu.org>
parents:
diff changeset
311 @cindex MH commands, @code{install-mh}
Dave Love <fx@gnu.org>
parents:
diff changeset
312
Dave Love <fx@gnu.org>
parents:
diff changeset
313 Also, older versions of mh-e assumed that you had already set up your MH
Dave Love <fx@gnu.org>
parents:
diff changeset
314 environment. Newer versions set up a new MH environment for you by
Dave Love <fx@gnu.org>
parents:
diff changeset
315 running @code{install-mh} and notifying you of this fact with the
Dave Love <fx@gnu.org>
parents:
diff changeset
316 message in a temporary buffer:
Dave Love <fx@gnu.org>
parents:
diff changeset
317
Dave Love <fx@gnu.org>
parents:
diff changeset
318 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
319 I'm going to create the standard MH path for you.
Dave Love <fx@gnu.org>
parents:
diff changeset
320 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
321
Dave Love <fx@gnu.org>
parents:
diff changeset
322 Therefore, if you've never run MH before and you're using an old version
Dave Love <fx@gnu.org>
parents:
diff changeset
323 of mh-e, you need to run @code{install-mh} from the shell before you
Dave Love <fx@gnu.org>
parents:
diff changeset
324 continue the tour. If you don't, you'll be greeted with the error
Dave Love <fx@gnu.org>
parents:
diff changeset
325 message: @samp{Can't find MH profile}.
Dave Love <fx@gnu.org>
parents:
diff changeset
326
Dave Love <fx@gnu.org>
parents:
diff changeset
327 @cindex @file{.emacs}
Dave Love <fx@gnu.org>
parents:
diff changeset
328 @cindex files, @file{.emacs}
Dave Love <fx@gnu.org>
parents:
diff changeset
329
Dave Love <fx@gnu.org>
parents:
diff changeset
330 If, during the tour described in this chapter, you see a message like:
Dave Love <fx@gnu.org>
parents:
diff changeset
331 @samp{Searching for program: no such file or directory,
Dave Love <fx@gnu.org>
parents:
diff changeset
332 /usr/local/bin/mhpath}, it means that the MH programs and files are kept
Dave Love <fx@gnu.org>
parents:
diff changeset
333 in a nonstandard directory. In this case, simply add the following to
Dave Love <fx@gnu.org>
parents:
diff changeset
334 @file{~/.emacs} and restart @code{emacs}.
Dave Love <fx@gnu.org>
parents:
diff changeset
335
Dave Love <fx@gnu.org>
parents:
diff changeset
336 @vindex @code{mh-progs}, example
Dave Love <fx@gnu.org>
parents:
diff changeset
337 @vindex @code{mh-lib}, example
Dave Love <fx@gnu.org>
parents:
diff changeset
338
Dave Love <fx@gnu.org>
parents:
diff changeset
339 @c XXX Real example for really naive user?
Dave Love <fx@gnu.org>
parents:
diff changeset
340 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
341 @group
Dave Love <fx@gnu.org>
parents:
diff changeset
342 (setq mh-progs "@var{/path/to/MH/binary/directory/}")
Dave Love <fx@gnu.org>
parents:
diff changeset
343 (setq mh-lib "@var{/path/to/MH/library/directory/}")
Dave Love <fx@gnu.org>
parents:
diff changeset
344 @end group
Dave Love <fx@gnu.org>
parents:
diff changeset
345 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
346
Dave Love <fx@gnu.org>
parents:
diff changeset
347 @cindex ~
Dave Love <fx@gnu.org>
parents:
diff changeset
348
Dave Love <fx@gnu.org>
parents:
diff changeset
349 The @samp{~} notation used by @file{~/.emacs} above represents your home
Dave Love <fx@gnu.org>
parents:
diff changeset
350 directory. This is used by the @code{bash} and @code{csh} shells. If
Dave Love <fx@gnu.org>
parents:
diff changeset
351 your shell does not support this feature, you could use the environment
Dave Love <fx@gnu.org>
parents:
diff changeset
352 variable @samp{$HOME} (such as @file{$HOME/.emacs}) or the absolute path
Dave Love <fx@gnu.org>
parents:
diff changeset
353 (as in @file{/home/wohler/.emacs}) instead.
Dave Love <fx@gnu.org>
parents:
diff changeset
354
Dave Love <fx@gnu.org>
parents:
diff changeset
355 At this point, you should see something like the screen in the
Dave Love <fx@gnu.org>
parents:
diff changeset
356 figure in @ref{Reading Mail Tour}. We're now ready to move on.
Dave Love <fx@gnu.org>
parents:
diff changeset
357
Dave Love <fx@gnu.org>
parents:
diff changeset
358 @node Sending Mail Tour, Reading Mail Tour, Getting Started, Tour Through mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
359 @section Sending Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
360
Dave Love <fx@gnu.org>
parents:
diff changeset
361 @cindex sending mail
Dave Love <fx@gnu.org>
parents:
diff changeset
362 @findex @code{mh-smail}
Dave Love <fx@gnu.org>
parents:
diff changeset
363
Dave Love <fx@gnu.org>
parents:
diff changeset
364 Let's start our tour by sending ourselves a message which we can later
Dave Love <fx@gnu.org>
parents:
diff changeset
365 read and process. Enter @kbd{M-x mh-smail} to invoke the mh-e program
Dave Love <fx@gnu.org>
parents:
diff changeset
366 to send messages. You will be prompted in the minibuffer by @samp{To:}.
Dave Love <fx@gnu.org>
parents:
diff changeset
367 Enter your login name. The next prompt is @samp{cc:}. Hit @key{RET} to
Dave Love <fx@gnu.org>
parents:
diff changeset
368 indicate that no carbon copies are to be sent. At the @samp{Subject:}
Dave Love <fx@gnu.org>
parents:
diff changeset
369 prompt, enter @kbd{Test} or anything else that comes to mind.
Dave Love <fx@gnu.org>
parents:
diff changeset
370
Dave Love <fx@gnu.org>
parents:
diff changeset
371 @cindex MH-Letter mode
Dave Love <fx@gnu.org>
parents:
diff changeset
372 @cindex modes, MH-Letter
Dave Love <fx@gnu.org>
parents:
diff changeset
373 @cindex mode
Dave Love <fx@gnu.org>
parents:
diff changeset
374
Dave Love <fx@gnu.org>
parents:
diff changeset
375 Once you've specified the recipients and subject, your message appears
Dave Love <fx@gnu.org>
parents:
diff changeset
376 in an Emacs buffer whose mode @footnote{A @dfn{mode} changes Emacs to
Dave Love <fx@gnu.org>
parents:
diff changeset
377 make it easier to edit a particular type of text.} is MH-Letter.
Dave Love <fx@gnu.org>
parents:
diff changeset
378 Enter some text in the body of the message, using normal Emacs commands.
Dave Love <fx@gnu.org>
parents:
diff changeset
379 You should now have something like this: @footnote{If you're running Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
380 under the X Window System, then you would also see a menubar. I've left
Dave Love <fx@gnu.org>
parents:
diff changeset
381 out the menubar in all of the example screens.}
Dave Love <fx@gnu.org>
parents:
diff changeset
382
Dave Love <fx@gnu.org>
parents:
diff changeset
383 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
384 @group
Dave Love <fx@gnu.org>
parents:
diff changeset
385 @cartouche
Dave Love <fx@gnu.org>
parents:
diff changeset
386
Dave Love <fx@gnu.org>
parents:
diff changeset
387
Dave Love <fx@gnu.org>
parents:
diff changeset
388
Dave Love <fx@gnu.org>
parents:
diff changeset
389
Dave Love <fx@gnu.org>
parents:
diff changeset
390
Dave Love <fx@gnu.org>
parents:
diff changeset
391
37802
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
392 -----Emacs: *scratch* (Lisp Interaction)--All-------------------
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
393 To: wohler
Dave Love <fx@gnu.org>
parents:
diff changeset
394 cc:
Dave Love <fx@gnu.org>
parents:
diff changeset
395 Subject: Test
Dave Love <fx@gnu.org>
parents:
diff changeset
396 --------
Dave Love <fx@gnu.org>
parents:
diff changeset
397 This is a test message to get the wheels churning...#
Dave Love <fx@gnu.org>
parents:
diff changeset
398
Dave Love <fx@gnu.org>
parents:
diff changeset
399
37802
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
400 --**-@{draft@} (MH-Letter)--All-------------------------------------
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
401
Dave Love <fx@gnu.org>
parents:
diff changeset
402 @end cartouche
Dave Love <fx@gnu.org>
parents:
diff changeset
403 @i{mh-e message composition window}
Dave Love <fx@gnu.org>
parents:
diff changeset
404 @end group
Dave Love <fx@gnu.org>
parents:
diff changeset
405 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
406
Dave Love <fx@gnu.org>
parents:
diff changeset
407 @cindex MH-Letter mode
Dave Love <fx@gnu.org>
parents:
diff changeset
408 @cindex modes, MH-Letter
Dave Love <fx@gnu.org>
parents:
diff changeset
409
Dave Love <fx@gnu.org>
parents:
diff changeset
410 Note the line of dashes that separates the header and the body of the
Dave Love <fx@gnu.org>
parents:
diff changeset
411 message. It is essential that these dashes (or a blank line) are
Dave Love <fx@gnu.org>
parents:
diff changeset
412 present or the body of your message will be considered to be part of
Dave Love <fx@gnu.org>
parents:
diff changeset
413 the header.
Dave Love <fx@gnu.org>
parents:
diff changeset
414
Dave Love <fx@gnu.org>
parents:
diff changeset
415 There are several commands specific to MH-Letter mode, but at
Dave Love <fx@gnu.org>
parents:
diff changeset
416 this time we'll only use @kbd{C-c C-c} to send your message. Type
Dave Love <fx@gnu.org>
parents:
diff changeset
417 @kbd{C-c C-c} now. That's all there is to it!
Dave Love <fx@gnu.org>
parents:
diff changeset
418
Dave Love <fx@gnu.org>
parents:
diff changeset
419 @node Reading Mail Tour, Processing Mail Tour, Sending Mail Tour, Tour Through mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
420 @section Receiving Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
421
Dave Love <fx@gnu.org>
parents:
diff changeset
422 @cindex reading mail
Dave Love <fx@gnu.org>
parents:
diff changeset
423 @findex @code{mh-rmail}
Dave Love <fx@gnu.org>
parents:
diff changeset
424 @cindex @code{inc}
Dave Love <fx@gnu.org>
parents:
diff changeset
425 @cindex MH commands, @code{inc}
Dave Love <fx@gnu.org>
parents:
diff changeset
426 @cindex @code{scan}
Dave Love <fx@gnu.org>
parents:
diff changeset
427 @cindex MH commands, @code{scan}
Dave Love <fx@gnu.org>
parents:
diff changeset
428 @cindex MH-Folder mode
Dave Love <fx@gnu.org>
parents:
diff changeset
429 @cindex modes, MH-Folder
Dave Love <fx@gnu.org>
parents:
diff changeset
430
Dave Love <fx@gnu.org>
parents:
diff changeset
431 To read the mail you've just sent yourself, enter @kbd{M-x mh-rmail}.
Dave Love <fx@gnu.org>
parents:
diff changeset
432 This incorporates the new mail and put the output from @code{inc}
Dave Love <fx@gnu.org>
parents:
diff changeset
433 (called @dfn{scan lines} after the MH program @code{scan} which prints a
Dave Love <fx@gnu.org>
parents:
diff changeset
434 one-line summary of each message) into a buffer called @samp{+inbox}
Dave Love <fx@gnu.org>
parents:
diff changeset
435 whose major mode is MH-Folder.
Dave Love <fx@gnu.org>
parents:
diff changeset
436
Dave Love <fx@gnu.org>
parents:
diff changeset
437 @sp 2
Dave Love <fx@gnu.org>
parents:
diff changeset
438 @need 1000
Dave Love <fx@gnu.org>
parents:
diff changeset
439 @center @strong{NOTE}
Dave Love <fx@gnu.org>
parents:
diff changeset
440
Dave Love <fx@gnu.org>
parents:
diff changeset
441 @quotation
Dave Love <fx@gnu.org>
parents:
diff changeset
442 The @kbd{M-x mh-rmail} command will show you only new mail, not old
Dave Love <fx@gnu.org>
parents:
diff changeset
443 mail. If you were to run this tour again, you would use @kbd{M-r} to
Dave Love <fx@gnu.org>
parents:
diff changeset
444 pull all your messages into mh-e.
Dave Love <fx@gnu.org>
parents:
diff changeset
445 @end quotation
Dave Love <fx@gnu.org>
parents:
diff changeset
446
Dave Love <fx@gnu.org>
parents:
diff changeset
447 You should see the scan line for your message, and perhaps others. Use
Dave Love <fx@gnu.org>
parents:
diff changeset
448 @kbd{n} or @kbd{p} to move the cursor to your test message and type
Dave Love <fx@gnu.org>
parents:
diff changeset
449 @key{RET} to read your message. You should see something like:
Dave Love <fx@gnu.org>
parents:
diff changeset
450
Dave Love <fx@gnu.org>
parents:
diff changeset
451 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
452 @group
Dave Love <fx@gnu.org>
parents:
diff changeset
453 @cartouche
37802
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
454 3 24Aug root received fax files on Wed Aug 24 11:00:13 PDT 1994
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
455 # 4+ 24Aug To:wohler Test<<This is a test message to get the wheels chu
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
456
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
457 --%%-@{+inbox@} 4 msgs (1-4) (MH-Folder Show)--Bot------------------
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
458 To: wohler
Dave Love <fx@gnu.org>
parents:
diff changeset
459 Subject: Test
Dave Love <fx@gnu.org>
parents:
diff changeset
460 Date: Wed, 24 Aug 1994 13:01:13 -0700
Dave Love <fx@gnu.org>
parents:
diff changeset
461 From: Bill Wohler <wohler@@newt.com>
Dave Love <fx@gnu.org>
parents:
diff changeset
462
Dave Love <fx@gnu.org>
parents:
diff changeset
463 This is a test message to get the wheels churning...
Dave Love <fx@gnu.org>
parents:
diff changeset
464
Dave Love <fx@gnu.org>
parents:
diff changeset
465
Dave Love <fx@gnu.org>
parents:
diff changeset
466
Dave Love <fx@gnu.org>
parents:
diff changeset
467
Dave Love <fx@gnu.org>
parents:
diff changeset
468
37802
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
469 -----@{show-+inbox@} 4 (MH-Show)--Bot-------------------------------
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
470
Dave Love <fx@gnu.org>
parents:
diff changeset
471 @end cartouche
Dave Love <fx@gnu.org>
parents:
diff changeset
472 @i{After incorporating new messages}
Dave Love <fx@gnu.org>
parents:
diff changeset
473 @end group
Dave Love <fx@gnu.org>
parents:
diff changeset
474 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
475
Dave Love <fx@gnu.org>
parents:
diff changeset
476 If you typed a long message, you can view subsequent pages with @key{SPC}
Dave Love <fx@gnu.org>
parents:
diff changeset
477 and previous pages with @key{DEL}.
Dave Love <fx@gnu.org>
parents:
diff changeset
478
Dave Love <fx@gnu.org>
parents:
diff changeset
479 @node Processing Mail Tour, Leaving mh-e, Reading Mail Tour, Tour Through mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
480 @section Processing Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
481
Dave Love <fx@gnu.org>
parents:
diff changeset
482 @cindex processing mail
Dave Love <fx@gnu.org>
parents:
diff changeset
483
Dave Love <fx@gnu.org>
parents:
diff changeset
484 The first thing we want to do is reply to the message that we sent
Dave Love <fx@gnu.org>
parents:
diff changeset
485 ourselves. Ensure that the cursor is still on the same line as your
Dave Love <fx@gnu.org>
parents:
diff changeset
486 test message and type @kbd{r}. You are prompted in the minibuffer with
Dave Love <fx@gnu.org>
parents:
diff changeset
487 @samp{Reply to whom:}. Here mh-e is asking whether you'd like to reply
Dave Love <fx@gnu.org>
parents:
diff changeset
488 to the original sender only, to the sender and primary recipients, or to
Dave Love <fx@gnu.org>
parents:
diff changeset
489 the sender and all recipients. If you simply hit @key{RET}, you'll
Dave Love <fx@gnu.org>
parents:
diff changeset
490 reply only to the sender. Hit @key{RET} now.
Dave Love <fx@gnu.org>
parents:
diff changeset
491
Dave Love <fx@gnu.org>
parents:
diff changeset
492 You'll find yourself in an Emacs buffer similar to that when you were
Dave Love <fx@gnu.org>
parents:
diff changeset
493 sending the original message, like this:
Dave Love <fx@gnu.org>
parents:
diff changeset
494
Dave Love <fx@gnu.org>
parents:
diff changeset
495 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
496 @group
Dave Love <fx@gnu.org>
parents:
diff changeset
497 @cartouche
Dave Love <fx@gnu.org>
parents:
diff changeset
498 To: wohler
Dave Love <fx@gnu.org>
parents:
diff changeset
499 Subject: Re: Test
Dave Love <fx@gnu.org>
parents:
diff changeset
500 In-reply-to: Bill Wohler's message of Wed, 24 Aug 1994 13:01:13 -0700
Dave Love <fx@gnu.org>
parents:
diff changeset
501 <199408242001.NAA00505@@newt.com>
Dave Love <fx@gnu.org>
parents:
diff changeset
502 --------
Dave Love <fx@gnu.org>
parents:
diff changeset
503 #
Dave Love <fx@gnu.org>
parents:
diff changeset
504
37802
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
505 --**-@{draft@} (MH-Letter)--All-------------------------------------
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
506 To: wohler
Dave Love <fx@gnu.org>
parents:
diff changeset
507 Subject: Test
Dave Love <fx@gnu.org>
parents:
diff changeset
508 Date: Wed, 24 Aug 1994 13:01:13 -0700
Dave Love <fx@gnu.org>
parents:
diff changeset
509 From: Bill Wohler <wohler@@newt.com>
Dave Love <fx@gnu.org>
parents:
diff changeset
510
Dave Love <fx@gnu.org>
parents:
diff changeset
511 This is a test message to get the wheels churning...
Dave Love <fx@gnu.org>
parents:
diff changeset
512
37802
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
513 -----@{show-+inbox@} 4 (MH-Show)--Bot-------------------------------
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
514 Composing a reply...done
Dave Love <fx@gnu.org>
parents:
diff changeset
515 @end cartouche
Dave Love <fx@gnu.org>
parents:
diff changeset
516 @i{Composition window during reply}
Dave Love <fx@gnu.org>
parents:
diff changeset
517 @end group
Dave Love <fx@gnu.org>
parents:
diff changeset
518 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
519
Dave Love <fx@gnu.org>
parents:
diff changeset
520 By default, MH will not add you to the address list of your replies, so
Dave Love <fx@gnu.org>
parents:
diff changeset
521 if you find that the @samp{To:} header field is missing, don't worry.
Dave Love <fx@gnu.org>
parents:
diff changeset
522 In this case, type @kbd{C-c C-f C-t} to create and go to the @samp{To:}
Dave Love <fx@gnu.org>
parents:
diff changeset
523 field, where you can type your login name again. You can move around
Dave Love <fx@gnu.org>
parents:
diff changeset
524 with the arrow keys or with @kbd{C-p} (@code{previous-line}), @kbd{C-n}
Dave Love <fx@gnu.org>
parents:
diff changeset
525 (@code{next-line}), @kbd{C-b} (@code{backward-char}), and @kbd{C-f}
Dave Love <fx@gnu.org>
parents:
diff changeset
526 (@code{forward-char}) and can delete the previous character with
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
527 @key{BS}. When you're finished editing your message, send it with
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
528 @kbd{C-c C-c} as before.
Dave Love <fx@gnu.org>
parents:
diff changeset
529
Dave Love <fx@gnu.org>
parents:
diff changeset
530 @cindex folder
Dave Love <fx@gnu.org>
parents:
diff changeset
531
Dave Love <fx@gnu.org>
parents:
diff changeset
532 You'll often want to save messages that were sent to you in an organized
Dave Love <fx@gnu.org>
parents:
diff changeset
533 fashion. This is done with @dfn{folders}. You can use folders to keep
Dave Love <fx@gnu.org>
parents:
diff changeset
534 messages from your friends, or messages related to a particular topic.
Dave Love <fx@gnu.org>
parents:
diff changeset
535 With your cursor in the MH-Folder buffer and positioned on the message
Dave Love <fx@gnu.org>
parents:
diff changeset
536 you sent to yourself, type @kbd{o} to output (@code{refile} in MH
Dave Love <fx@gnu.org>
parents:
diff changeset
537 parlance) that message to a folder. Enter @kbd{test} at the
Dave Love <fx@gnu.org>
parents:
diff changeset
538 @samp{Destination:} prompt and type @kbd{y} (or @key{SPC}) when mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
539 asks to create the folder @samp{+test}. Note that a @samp{^} (caret)
Dave Love <fx@gnu.org>
parents:
diff changeset
540 appears next to the message number, which means that the message has
Dave Love <fx@gnu.org>
parents:
diff changeset
541 been marked for refiling but has not yet been refiled. We'll talk about
Dave Love <fx@gnu.org>
parents:
diff changeset
542 how the refile is actually carried out in a moment.
Dave Love <fx@gnu.org>
parents:
diff changeset
543
Dave Love <fx@gnu.org>
parents:
diff changeset
544 @cindex MH-Folder mode
Dave Love <fx@gnu.org>
parents:
diff changeset
545 @cindex modes, MH-Folder
Dave Love <fx@gnu.org>
parents:
diff changeset
546
Dave Love <fx@gnu.org>
parents:
diff changeset
547 Your previous reply is now waiting in the system mailbox. You
Dave Love <fx@gnu.org>
parents:
diff changeset
548 incorporate this mail into your MH-Folder buffer named @samp{+inbox}
Dave Love <fx@gnu.org>
parents:
diff changeset
549 with the @kbd{i} command. Do this now. After the mail is incorporated,
Dave Love <fx@gnu.org>
parents:
diff changeset
550 use @kbd{n} or @kbd{p} to move the cursor to the new message, and read
Dave Love <fx@gnu.org>
parents:
diff changeset
551 it with @key{RET}. Let's delete this message by typing @kbd{d}. Note
Dave Love <fx@gnu.org>
parents:
diff changeset
552 that a @samp{D} appears next to the message number. This means that the
Dave Love <fx@gnu.org>
parents:
diff changeset
553 message is marked for deletion but is not yet deleted. To perform the
Dave Love <fx@gnu.org>
parents:
diff changeset
554 deletion (and the refile we did previously), use the @kbd{x} command.
Dave Love <fx@gnu.org>
parents:
diff changeset
555
Dave Love <fx@gnu.org>
parents:
diff changeset
556 @findex @code{mh-smail}
Dave Love <fx@gnu.org>
parents:
diff changeset
557
Dave Love <fx@gnu.org>
parents:
diff changeset
558 If you want to send another message you can use @kbd{m} instead of
Dave Love <fx@gnu.org>
parents:
diff changeset
559 @kbd{M-x mh-smail}. So go ahead, send some mail to your friends!
Dave Love <fx@gnu.org>
parents:
diff changeset
560
Dave Love <fx@gnu.org>
parents:
diff changeset
561 @node Leaving mh-e, More About mh-e, Processing Mail Tour, Tour Through mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
562 @section Leaving mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
563
Dave Love <fx@gnu.org>
parents:
diff changeset
564 @cindex Emacs, quitting
Dave Love <fx@gnu.org>
parents:
diff changeset
565 @cindex quitting
Dave Love <fx@gnu.org>
parents:
diff changeset
566
Dave Love <fx@gnu.org>
parents:
diff changeset
567 You may now wish to exit @code{emacs} entirely. Use @kbd{C-x C-c} to
Dave Love <fx@gnu.org>
parents:
diff changeset
568 exit @code{emacs}. If you exited without running @kbd{x} in the
Dave Love <fx@gnu.org>
parents:
diff changeset
569 @samp{+inbox} buffer, Emacs will offer to save it for you. Type @kbd{y}
Dave Love <fx@gnu.org>
parents:
diff changeset
570 or @key{SPC} to save @samp{+inbox} changes, which means to perform any refiles
Dave Love <fx@gnu.org>
parents:
diff changeset
571 and deletes that you did there.
Dave Love <fx@gnu.org>
parents:
diff changeset
572
Dave Love <fx@gnu.org>
parents:
diff changeset
573 If you don't want to leave Emacs, you can type @kbd{q} to bury (hide)
Dave Love <fx@gnu.org>
parents:
diff changeset
574 the mh-e folder or delete them entirely with @kbd{C-x k}. You can then
Dave Love <fx@gnu.org>
parents:
diff changeset
575 later recall them with @kbd{C-x b} or @kbd{M-x mh-rmail}.
Dave Love <fx@gnu.org>
parents:
diff changeset
576
Dave Love <fx@gnu.org>
parents:
diff changeset
577 @node More About mh-e, , Leaving mh-e, Tour Through mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
578 @section More About mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
579
Dave Love <fx@gnu.org>
parents:
diff changeset
580 These are the basic commands to get you going, but there are plenty
Dave Love <fx@gnu.org>
parents:
diff changeset
581 more. If you think that mh-e is for you, read @ref{Using mh-e} and
Dave Love <fx@gnu.org>
parents:
diff changeset
582 @ref{Customizing mh-e} to find out how you can:
Dave Love <fx@gnu.org>
parents:
diff changeset
583
Dave Love <fx@gnu.org>
parents:
diff changeset
584 @itemize @bullet
Dave Love <fx@gnu.org>
parents:
diff changeset
585 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
586 Print your messages. (@ref{Printing} and @ref{Customizing Printing}.)
Dave Love <fx@gnu.org>
parents:
diff changeset
587 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
588 Edit messages and include your signature. (@ref{Draft Editing}
Dave Love <fx@gnu.org>
parents:
diff changeset
589 and @ref{Customizing Draft Editing}.)
Dave Love <fx@gnu.org>
parents:
diff changeset
590 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
591 Forward messages. (@ref{Forwarding} and @ref{Customizing Forwarding}.)
Dave Love <fx@gnu.org>
parents:
diff changeset
592 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
593 Read digests. (@ref{Viewing}.)
Dave Love <fx@gnu.org>
parents:
diff changeset
594 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
595 Edit bounced messages. (@ref{Old Drafts} and @ref{Customizing Old Drafts}.)
Dave Love <fx@gnu.org>
parents:
diff changeset
596 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
597 Send multimedia messages. (@ref{Editing MIME} and @ref{Customizing Editing MIME}.)
Dave Love <fx@gnu.org>
parents:
diff changeset
598 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
599 Process mail that was sent with @code{shar} or @code{uuencode}.
Dave Love <fx@gnu.org>
parents:
diff changeset
600 (@ref{Files and Pipes}.)
Dave Love <fx@gnu.org>
parents:
diff changeset
601 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
602 Use sequences conveniently. (@ref{Sequences}.)
Dave Love <fx@gnu.org>
parents:
diff changeset
603 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
604 Show header fields in different fonts. (@ref{Customizing Viewing}.)
Dave Love <fx@gnu.org>
parents:
diff changeset
605 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
606 Find previously refiled messages. (@ref{Searching}.)
Dave Love <fx@gnu.org>
parents:
diff changeset
607 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
608 Place messages in a file. (@ref{Files and Pipes}.)
Dave Love <fx@gnu.org>
parents:
diff changeset
609 @end itemize
Dave Love <fx@gnu.org>
parents:
diff changeset
610
Dave Love <fx@gnu.org>
parents:
diff changeset
611 Remember that you can also use MH commands when you're not running mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
612 (and when you are!).
Dave Love <fx@gnu.org>
parents:
diff changeset
613
Dave Love <fx@gnu.org>
parents:
diff changeset
614 @node Using mh-e, Customizing mh-e, Tour Through mh-e, Top
Dave Love <fx@gnu.org>
parents:
diff changeset
615 @chapter Using mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
616
Dave Love <fx@gnu.org>
parents:
diff changeset
617 This chapter leaves the tutorial style and goes into more detail about
Dave Love <fx@gnu.org>
parents:
diff changeset
618 every mh-e command. The default, or "out of the box," behavior is
Dave Love <fx@gnu.org>
parents:
diff changeset
619 documented. If this is not to your liking (for instance, you print with
Dave Love <fx@gnu.org>
parents:
diff changeset
620 something other than @code{lpr)}, see the associated section in
Dave Love <fx@gnu.org>
parents:
diff changeset
621 @ref{Customizing mh-e} which is organized exactly like this chapter.
Dave Love <fx@gnu.org>
parents:
diff changeset
622
Dave Love <fx@gnu.org>
parents:
diff changeset
623 @cindex Emacs, functions; describe-mode
Dave Love <fx@gnu.org>
parents:
diff changeset
624 @cindex Emacs, online help
Dave Love <fx@gnu.org>
parents:
diff changeset
625 @cindex online help
Dave Love <fx@gnu.org>
parents:
diff changeset
626
Dave Love <fx@gnu.org>
parents:
diff changeset
627 There are many commands, but don't get intimidated. There are command
Dave Love <fx@gnu.org>
parents:
diff changeset
628 summaries at the beginning of each section. In case you have or would
Dave Love <fx@gnu.org>
parents:
diff changeset
629 like to rebind the keys, the command summaries also list the associated
Dave Love <fx@gnu.org>
parents:
diff changeset
630 Emacs Lisp function. Furthermore, even if you're stranded on a desert
Dave Love <fx@gnu.org>
parents:
diff changeset
631 island with a laptop and are without your manuals, you can get a summary
Dave Love <fx@gnu.org>
parents:
diff changeset
632 of all these commands with GNU Emacs online help: use @kbd{C-h m}
Dave Love <fx@gnu.org>
parents:
diff changeset
633 (@code{describe-mode}) for a brief summary of commands or @kbd{C-h i} to
Dave Love <fx@gnu.org>
parents:
diff changeset
634 read this manual via Info. The online help is quite good; try running
Dave Love <fx@gnu.org>
parents:
diff changeset
635 @kbd{C-h C-h C-h}. This brings up a list of available help topics, one
Dave Love <fx@gnu.org>
parents:
diff changeset
636 of which displays the documentation for a given key (like @kbd{C-h k
Dave Love <fx@gnu.org>
parents:
diff changeset
637 C-n}). In addition, review @ref{Conventions}, if any of the GNU Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
638 conventions are strange to you.
Dave Love <fx@gnu.org>
parents:
diff changeset
639
Dave Love <fx@gnu.org>
parents:
diff changeset
640 Let's get started!
Dave Love <fx@gnu.org>
parents:
diff changeset
641
Dave Love <fx@gnu.org>
parents:
diff changeset
642 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
643 * Reading Mail::
Dave Love <fx@gnu.org>
parents:
diff changeset
644 * Sending Mail::
Dave Love <fx@gnu.org>
parents:
diff changeset
645 * Draft Editing::
Dave Love <fx@gnu.org>
parents:
diff changeset
646 * Moving Mail::
Dave Love <fx@gnu.org>
parents:
diff changeset
647 * Searching::
Dave Love <fx@gnu.org>
parents:
diff changeset
648 * Sequences::
Dave Love <fx@gnu.org>
parents:
diff changeset
649 * Miscellaneous::
Dave Love <fx@gnu.org>
parents:
diff changeset
650 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
651
Dave Love <fx@gnu.org>
parents:
diff changeset
652 @node Reading Mail, Sending Mail, Using mh-e, Using mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
653 @section Reading Your Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
654
Dave Love <fx@gnu.org>
parents:
diff changeset
655 @cindex reading mail
Dave Love <fx@gnu.org>
parents:
diff changeset
656 @findex @code{mh-rmail}
Dave Love <fx@gnu.org>
parents:
diff changeset
657 @cindex MH-Folder mode
Dave Love <fx@gnu.org>
parents:
diff changeset
658 @cindex modes, MH-Folder
Dave Love <fx@gnu.org>
parents:
diff changeset
659
Dave Love <fx@gnu.org>
parents:
diff changeset
660 The mh-e entry point for reading mail is @kbd{M-x mh-rmail}. This
Dave Love <fx@gnu.org>
parents:
diff changeset
661 command incorporates your mail and creates a buffer called @samp{+inbox}
Dave Love <fx@gnu.org>
parents:
diff changeset
662 in MH-Folder mode. The @kbd{M-x mh-rmail} command shows you only new
Dave Love <fx@gnu.org>
parents:
diff changeset
663 mail, not old mail. @footnote{If you want to see your old mail as well,
Dave Love <fx@gnu.org>
parents:
diff changeset
664 use @kbd{M-r} to pull all your messages into mh-e. Or, give a prefix
Dave Love <fx@gnu.org>
parents:
diff changeset
665 argument to @code{mh-rmail} so it will prompt you for folder to visit
Dave Love <fx@gnu.org>
parents:
diff changeset
666 like @kbd{M-f} (for example, @kbd{C-u M-x mh-rmail @key{RET} bob
Dave Love <fx@gnu.org>
parents:
diff changeset
667 @key{RET}}). Both @kbd{M-r} and @kbd{M-f} are described in
Dave Love <fx@gnu.org>
parents:
diff changeset
668 @ref{Organizing}.} The @samp{+inbox} buffer contains @dfn{scan lines},
Dave Love <fx@gnu.org>
parents:
diff changeset
669 which are one-line summaries of each incorporated message. You can
Dave Love <fx@gnu.org>
parents:
diff changeset
670 perform most MH commands on these messages via one-letter commands
Dave Love <fx@gnu.org>
parents:
diff changeset
671 discussed in this chapter. See @code{scan}(1) for a description of the
Dave Love <fx@gnu.org>
parents:
diff changeset
672 contents of the scan lines, and see the Figure in @ref{Reading Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
673 Tour}, for an example.
Dave Love <fx@gnu.org>
parents:
diff changeset
674
Dave Love <fx@gnu.org>
parents:
diff changeset
675 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
676 @item RET
Dave Love <fx@gnu.org>
parents:
diff changeset
677 Display a message (@code{mh-show}).
Dave Love <fx@gnu.org>
parents:
diff changeset
678
Dave Love <fx@gnu.org>
parents:
diff changeset
679 @item SPC
Dave Love <fx@gnu.org>
parents:
diff changeset
680 Go to next page in message (@code{mh-page-msg}).
Dave Love <fx@gnu.org>
parents:
diff changeset
681
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
682 @item BS
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
683 Go to previous page in message (@code{mh-previous-page}).
Dave Love <fx@gnu.org>
parents:
diff changeset
684
Dave Love <fx@gnu.org>
parents:
diff changeset
685 @item , (comma)
Dave Love <fx@gnu.org>
parents:
diff changeset
686 Display a message with all header fields (@code{mh-header-display}).
Dave Love <fx@gnu.org>
parents:
diff changeset
687
Dave Love <fx@gnu.org>
parents:
diff changeset
688 @item M-SPC
Dave Love <fx@gnu.org>
parents:
diff changeset
689 Go to next message in digest (@code{mh-page-digest}).
Dave Love <fx@gnu.org>
parents:
diff changeset
690
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
691 @item M-BS
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
692 Go to previous message in digest (@code{mh-page-digest-backwards}).
Dave Love <fx@gnu.org>
parents:
diff changeset
693
Dave Love <fx@gnu.org>
parents:
diff changeset
694 @item M-b
Dave Love <fx@gnu.org>
parents:
diff changeset
695 Break up digest into separate messages (@code{mh-burst-digest}).
Dave Love <fx@gnu.org>
parents:
diff changeset
696
Dave Love <fx@gnu.org>
parents:
diff changeset
697 @item n
Dave Love <fx@gnu.org>
parents:
diff changeset
698 Display next message (@code{mh-next-undeleted-msg}).
Dave Love <fx@gnu.org>
parents:
diff changeset
699
Dave Love <fx@gnu.org>
parents:
diff changeset
700 @item p
Dave Love <fx@gnu.org>
parents:
diff changeset
701 Display previous message (@code{mh-previous-undeleted-msg}).
Dave Love <fx@gnu.org>
parents:
diff changeset
702
Dave Love <fx@gnu.org>
parents:
diff changeset
703 @item g
Dave Love <fx@gnu.org>
parents:
diff changeset
704 Go to a message (@code{mh-goto-msg}).
Dave Love <fx@gnu.org>
parents:
diff changeset
705
Dave Love <fx@gnu.org>
parents:
diff changeset
706 @item M-<
Dave Love <fx@gnu.org>
parents:
diff changeset
707 Go to first message (@code{mh-first-msg}).
Dave Love <fx@gnu.org>
parents:
diff changeset
708
Dave Love <fx@gnu.org>
parents:
diff changeset
709 @item M->
Dave Love <fx@gnu.org>
parents:
diff changeset
710 Go to last message (@code{mh-last-msg}).
Dave Love <fx@gnu.org>
parents:
diff changeset
711
Dave Love <fx@gnu.org>
parents:
diff changeset
712 @item t
Dave Love <fx@gnu.org>
parents:
diff changeset
713 Toggle between MH-Folder and MH-Folder Show modes (@code{mh-toggle-showing}).
Dave Love <fx@gnu.org>
parents:
diff changeset
714 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
715
Dave Love <fx@gnu.org>
parents:
diff changeset
716 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
717 * Viewing::
Dave Love <fx@gnu.org>
parents:
diff changeset
718 * Moving Around::
Dave Love <fx@gnu.org>
parents:
diff changeset
719 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
720
Dave Love <fx@gnu.org>
parents:
diff changeset
721 @node Viewing, Moving Around, Reading Mail, Reading Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
722 @subsection Viewing Your Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
723
Dave Love <fx@gnu.org>
parents:
diff changeset
724 @findex @code{mh-show}
Dave Love <fx@gnu.org>
parents:
diff changeset
725 @findex @code{mh-page-msg}
Dave Love <fx@gnu.org>
parents:
diff changeset
726 @findex @code{mh-previous-page}
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
727 @findex @code{mh-header-display}
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
728
Dave Love <fx@gnu.org>
parents:
diff changeset
729 The @kbd{RET} (@code{mh-show}) command displays the message that the
Dave Love <fx@gnu.org>
parents:
diff changeset
730 cursor is on. If the message is already displayed, it scrolls to the
Dave Love <fx@gnu.org>
parents:
diff changeset
731 beginning of the message. Use @key{SPC} (@code{mh-page-msg}) and
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
732 @key{BS} (@code{mh-previous-page}) to move forwards and backwards one
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
733 page at a time through the message. You can give either of these
Dave Love <fx@gnu.org>
parents:
diff changeset
734 commands a prefix argument that specifies the number of lines to scroll
Dave Love <fx@gnu.org>
parents:
diff changeset
735 (such as @kbd{10 SPC}). mh-e normally hides a lot of the
Dave Love <fx@gnu.org>
parents:
diff changeset
736 superfluous header fields that mailers add to a message, but if you wish
Dave Love <fx@gnu.org>
parents:
diff changeset
737 to see all of them, use the @kbd{,} (comma; @code{mh-header-display})
Dave Love <fx@gnu.org>
parents:
diff changeset
738 command.
Dave Love <fx@gnu.org>
parents:
diff changeset
739
Dave Love <fx@gnu.org>
parents:
diff changeset
740 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
741 * Reading Digests::
Dave Love <fx@gnu.org>
parents:
diff changeset
742 * Reading MIME::
Dave Love <fx@gnu.org>
parents:
diff changeset
743 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
744
Dave Love <fx@gnu.org>
parents:
diff changeset
745 @node Reading Digests, Reading MIME, Viewing, Viewing
Dave Love <fx@gnu.org>
parents:
diff changeset
746 @subsubsection Reading Digests
Dave Love <fx@gnu.org>
parents:
diff changeset
747
Dave Love <fx@gnu.org>
parents:
diff changeset
748 @cindex digests
Dave Love <fx@gnu.org>
parents:
diff changeset
749 @findex @code{mh-page-digest}
Dave Love <fx@gnu.org>
parents:
diff changeset
750 @findex @code{mh-page-digest-backwards}
Dave Love <fx@gnu.org>
parents:
diff changeset
751
Dave Love <fx@gnu.org>
parents:
diff changeset
752 A digest is a message that contains other messages. Special mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
753 commands let you read digests conveniently. You can use @key{SPC} and
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
754 @key{BS} to page through the digest as if it were a normal message, but
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
755 if you wish to skip to the next message in the digest, use @kbd{M-SPC}
Dave Love <fx@gnu.org>
parents:
diff changeset
756 (@code{mh-page-digest}). To return to a previous message, use
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
757 @kbd{M-BS} (@code{mh-page-digest-backwards}).
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
758
Dave Love <fx@gnu.org>
parents:
diff changeset
759 @cindex @code{burst}
Dave Love <fx@gnu.org>
parents:
diff changeset
760 @cindex MH commands, @code{burst}
Dave Love <fx@gnu.org>
parents:
diff changeset
761 @cindex MH-Folder Show mode
Dave Love <fx@gnu.org>
parents:
diff changeset
762 @cindex modes, MH-Folder Show
Dave Love <fx@gnu.org>
parents:
diff changeset
763 @findex @code{mh-burst-digest}
Dave Love <fx@gnu.org>
parents:
diff changeset
764
Dave Love <fx@gnu.org>
parents:
diff changeset
765 @c There was a page break at the colon in the following paragraph which
Dave Love <fx@gnu.org>
parents:
diff changeset
766 @c broke the transition to the example.
Dave Love <fx@gnu.org>
parents:
diff changeset
767 @need 2000
Dave Love <fx@gnu.org>
parents:
diff changeset
768
Dave Love <fx@gnu.org>
parents:
diff changeset
769 Another handy command is @kbd{M-b} (@code{mh-burst-digest}). This
Dave Love <fx@gnu.org>
parents:
diff changeset
770 command uses the MH command @code{burst} to break out each message in
Dave Love <fx@gnu.org>
parents:
diff changeset
771 the digest into its own message. Using this command, you can quickly
Dave Love <fx@gnu.org>
parents:
diff changeset
772 delete unwanted messages, like this: Once the digest is split up, toggle
Dave Love <fx@gnu.org>
parents:
diff changeset
773 out of MH-Folder Show mode with @kbd{t} (@pxref{Moving Around}) so that
Dave Love <fx@gnu.org>
parents:
diff changeset
774 the scan lines fill the screen and messages aren't displayed. Then use
Dave Love <fx@gnu.org>
parents:
diff changeset
775 @kbd{d} (@pxref{Deleting}) to quickly delete messages that you don't
Dave Love <fx@gnu.org>
parents:
diff changeset
776 want to read (based on the @samp{Subject:} header field). You can also
Dave Love <fx@gnu.org>
parents:
diff changeset
777 burst the digest to reply directly to the people who posted the messages
Dave Love <fx@gnu.org>
parents:
diff changeset
778 in the digest. One problem you may encounter is that the @samp{From:}
Dave Love <fx@gnu.org>
parents:
diff changeset
779 header fields are preceded with a @samp{>} so that your reply can't
Dave Love <fx@gnu.org>
parents:
diff changeset
780 create the @samp{To:} field correctly. In this case, you must correct
Dave Love <fx@gnu.org>
parents:
diff changeset
781 the @samp{To:} field yourself. This is described later in @ref{Editing
Dave Love <fx@gnu.org>
parents:
diff changeset
782 Textual}.
Dave Love <fx@gnu.org>
parents:
diff changeset
783
Dave Love <fx@gnu.org>
parents:
diff changeset
784 @node Reading MIME, , Reading Digests, Viewing
Dave Love <fx@gnu.org>
parents:
diff changeset
785 @subsubsection Reading Multimedia Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
786
Dave Love <fx@gnu.org>
parents:
diff changeset
787 @cindex multimedia mail
Dave Love <fx@gnu.org>
parents:
diff changeset
788 @cindex MIME
Dave Love <fx@gnu.org>
parents:
diff changeset
789 @cindex @code{show}
Dave Love <fx@gnu.org>
parents:
diff changeset
790 @cindex MH commands, @code{show}
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
791 @cindex @code{mhshow}
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
792 @cindex MH commands, @code{mhshow}
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
793
Dave Love <fx@gnu.org>
parents:
diff changeset
794 MH has the ability to read @dfn{@sc{mime}} (Multipurpose Internet Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
795 Extensions) messages. Unfortunately, mh-e does not yet have this
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
796 ability, so you have to use the MH commands @code{show} or @code{mhshow}
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
797 from the shell to read @sc{mime} messages. @footnote{You can call them
Dave Love <fx@gnu.org>
parents:
diff changeset
798 directly from Emacs if you're running the X Window System: type @kbd{M-!
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
799 xterm -e mhshow @var{message-number}}. You can leave out the @code{xterm
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
800 -e} if you use @code{mhlist} or @code{mhstore}.}
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
801
Dave Love <fx@gnu.org>
parents:
diff changeset
802 @node Moving Around, , Viewing, Reading Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
803 @subsection Moving Around
Dave Love <fx@gnu.org>
parents:
diff changeset
804
Dave Love <fx@gnu.org>
parents:
diff changeset
805 @cindex moving between messages
Dave Love <fx@gnu.org>
parents:
diff changeset
806 @findex @code{mh-next-undeleted-msg}
Dave Love <fx@gnu.org>
parents:
diff changeset
807 @findex @code{mh-previous-undeleted-msg}
Dave Love <fx@gnu.org>
parents:
diff changeset
808 @findex @code{mh-goto-msg}
Dave Love <fx@gnu.org>
parents:
diff changeset
809 @findex @code{mh-last-msg}
Dave Love <fx@gnu.org>
parents:
diff changeset
810 @findex @code{mh-first-msg}
Dave Love <fx@gnu.org>
parents:
diff changeset
811
Dave Love <fx@gnu.org>
parents:
diff changeset
812 To move on to the next message, use the @kbd{n}
Dave Love <fx@gnu.org>
parents:
diff changeset
813 (@code{mh-next-undeleted-msg}) command; use the @kbd{p}
Dave Love <fx@gnu.org>
parents:
diff changeset
814 (@code{mh-previous-undeleted-msg}) command to read the previous message.
Dave Love <fx@gnu.org>
parents:
diff changeset
815 Both of these commands can be given a prefix argument to specify how
Dave Love <fx@gnu.org>
parents:
diff changeset
816 many messages to skip (for example, @kbd{5 n}). You can also move to a
Dave Love <fx@gnu.org>
parents:
diff changeset
817 specific message with @kbd{g} (@code{mh-goto-msg}). You can enter the
Dave Love <fx@gnu.org>
parents:
diff changeset
818 message number either before or after typing @kbd{g}. In the latter
Dave Love <fx@gnu.org>
parents:
diff changeset
819 case, Emacs prompts you. Finally, you can go to the first or last
Dave Love <fx@gnu.org>
parents:
diff changeset
820 message with @kbd{M-<} (@code{mh-first-msg}) and @kbd{M->}
Dave Love <fx@gnu.org>
parents:
diff changeset
821 (@code{mh-last-msg}) respectively.
Dave Love <fx@gnu.org>
parents:
diff changeset
822
Dave Love <fx@gnu.org>
parents:
diff changeset
823 @cindex MH-Folder mode
Dave Love <fx@gnu.org>
parents:
diff changeset
824 @cindex modes, MH-Folder
Dave Love <fx@gnu.org>
parents:
diff changeset
825
Dave Love <fx@gnu.org>
parents:
diff changeset
826 You can also use the Emacs commands @kbd{C-p} (@code{previous-line}) and
Dave Love <fx@gnu.org>
parents:
diff changeset
827 @kbd{C-n} (@code{next-line}) to move up and down the scan lines in the
Dave Love <fx@gnu.org>
parents:
diff changeset
828 MH-Folder window. These commands can be used in conjunction with
Dave Love <fx@gnu.org>
parents:
diff changeset
829 @kbd{RET} to look at deleted or refiled messages.
Dave Love <fx@gnu.org>
parents:
diff changeset
830
Dave Love <fx@gnu.org>
parents:
diff changeset
831 @cindex MH-Folder mode
Dave Love <fx@gnu.org>
parents:
diff changeset
832 @cindex modes, MH-Folder
Dave Love <fx@gnu.org>
parents:
diff changeset
833 @cindex MH-Folder Show mode
Dave Love <fx@gnu.org>
parents:
diff changeset
834 @cindex modes, MH-Folder Show
Dave Love <fx@gnu.org>
parents:
diff changeset
835 @cindex junk mail
Dave Love <fx@gnu.org>
parents:
diff changeset
836 @findex @code{mh-toggle-showing}
Dave Love <fx@gnu.org>
parents:
diff changeset
837
Dave Love <fx@gnu.org>
parents:
diff changeset
838 The command @kbd{t} (@code{mh-toggle-showing}) switches between
Dave Love <fx@gnu.org>
parents:
diff changeset
839 MH-Folder mode and MH-Folder Show mode. @footnote{For you Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
840 wizards, this is implemented as an Emacs minor mode.} MH-Folder mode
Dave Love <fx@gnu.org>
parents:
diff changeset
841 turns off the associated show buffer so that you can perform operations
Dave Love <fx@gnu.org>
parents:
diff changeset
842 on the messages quickly without reading them. This is an excellent way
Dave Love <fx@gnu.org>
parents:
diff changeset
843 to prune out your junk mail or to refile a group of messages to another
Dave Love <fx@gnu.org>
parents:
diff changeset
844 folder for later examination.
Dave Love <fx@gnu.org>
parents:
diff changeset
845
Dave Love <fx@gnu.org>
parents:
diff changeset
846 @node Sending Mail, Draft Editing, Reading Mail, Using mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
847 @section Sending Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
848
Dave Love <fx@gnu.org>
parents:
diff changeset
849 @cindex sending mail
Dave Love <fx@gnu.org>
parents:
diff changeset
850 @findex @code{mh-smail}
Dave Love <fx@gnu.org>
parents:
diff changeset
851
Dave Love <fx@gnu.org>
parents:
diff changeset
852 You can send a mail message in several ways. You can call @kbd{M-x
Dave Love <fx@gnu.org>
parents:
diff changeset
853 mh-smail} directly, or from the command line like this:
Dave Love <fx@gnu.org>
parents:
diff changeset
854
Dave Love <fx@gnu.org>
parents:
diff changeset
855 @cindex starting from command line
Dave Love <fx@gnu.org>
parents:
diff changeset
856
Dave Love <fx@gnu.org>
parents:
diff changeset
857 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
858 % @kbd{emacs -f mh-smail}
Dave Love <fx@gnu.org>
parents:
diff changeset
859 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
860
Dave Love <fx@gnu.org>
parents:
diff changeset
861 From within mh-e's MH-Folder mode, other methods of sending mail
Dave Love <fx@gnu.org>
parents:
diff changeset
862 are available as well:
Dave Love <fx@gnu.org>
parents:
diff changeset
863
Dave Love <fx@gnu.org>
parents:
diff changeset
864 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
865 @item m
Dave Love <fx@gnu.org>
parents:
diff changeset
866 Compose a message (@code{mh-send}).
Dave Love <fx@gnu.org>
parents:
diff changeset
867
Dave Love <fx@gnu.org>
parents:
diff changeset
868 @item r
Dave Love <fx@gnu.org>
parents:
diff changeset
869 Reply to a message (@code{mh-reply}).
Dave Love <fx@gnu.org>
parents:
diff changeset
870
Dave Love <fx@gnu.org>
parents:
diff changeset
871 @item f
Dave Love <fx@gnu.org>
parents:
diff changeset
872 Forward message(s) (@code{mh-forward}).
Dave Love <fx@gnu.org>
parents:
diff changeset
873
Dave Love <fx@gnu.org>
parents:
diff changeset
874 @item M-d
Dave Love <fx@gnu.org>
parents:
diff changeset
875 Redistribute a message (@code{mh-redistribute}).
Dave Love <fx@gnu.org>
parents:
diff changeset
876
Dave Love <fx@gnu.org>
parents:
diff changeset
877 @item M-e
Dave Love <fx@gnu.org>
parents:
diff changeset
878 Edit a message that was bounced by mailer (@code{mh-extract-rejected-mail}).
Dave Love <fx@gnu.org>
parents:
diff changeset
879
Dave Love <fx@gnu.org>
parents:
diff changeset
880 @item M-a
Dave Love <fx@gnu.org>
parents:
diff changeset
881 Edit a message to send it again (@code{mh-edit-again}).
Dave Love <fx@gnu.org>
parents:
diff changeset
882 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
883
Dave Love <fx@gnu.org>
parents:
diff changeset
884 @cindex MH-Folder mode
Dave Love <fx@gnu.org>
parents:
diff changeset
885 @cindex modes, MH-Folder
Dave Love <fx@gnu.org>
parents:
diff changeset
886 @cindex MH-Letter mode
Dave Love <fx@gnu.org>
parents:
diff changeset
887 @cindex modes, MH-Letter
Dave Love <fx@gnu.org>
parents:
diff changeset
888 @findex @code{mh-send}
Dave Love <fx@gnu.org>
parents:
diff changeset
889
Dave Love <fx@gnu.org>
parents:
diff changeset
890 From within a MH-Folder buffer, you can simply use the command @kbd{m}
Dave Love <fx@gnu.org>
parents:
diff changeset
891 (@code{mh-send}). However you invoke @code{mh-send}, you are prompted
Dave Love <fx@gnu.org>
parents:
diff changeset
892 for the @samp{To:}, @samp{cc:}, and @samp{Subject:} header fields. Once
Dave Love <fx@gnu.org>
parents:
diff changeset
893 you've specified the recipients and subject, your message appears in an
Dave Love <fx@gnu.org>
parents:
diff changeset
894 Emacs buffer whose mode is MH-Letter (see the Figure in @ref{Sending
Dave Love <fx@gnu.org>
parents:
diff changeset
895 Mail} to see what the buffer looks like). MH-Letter mode allows you to
Dave Love <fx@gnu.org>
parents:
diff changeset
896 edit your message, to check the validity of the recipients, to insert
Dave Love <fx@gnu.org>
parents:
diff changeset
897 other messages into your message, and to send the message. We'll go
Dave Love <fx@gnu.org>
parents:
diff changeset
898 more into depth about editing a @dfn{draft} @footnote{I highly recommend
Dave Love <fx@gnu.org>
parents:
diff changeset
899 that you use a @dfn{draft folder} so that you can edit several drafts in
Dave Love <fx@gnu.org>
parents:
diff changeset
900 parallel. To do so, create a folder (e.g., @file{+drafts}), and add a
Dave Love <fx@gnu.org>
parents:
diff changeset
901 profile component called @samp{Draft-Folder:} which contains
Dave Love <fx@gnu.org>
parents:
diff changeset
902 @file{+drafts} (see @code{mh-profile}(5)).} (a message you're composing)
Dave Love <fx@gnu.org>
parents:
diff changeset
903 in just a moment.
Dave Love <fx@gnu.org>
parents:
diff changeset
904
Dave Love <fx@gnu.org>
parents:
diff changeset
905 @findex @code{mh-smail}
Dave Love <fx@gnu.org>
parents:
diff changeset
906 @findex @code{mh-smail-other-window}
Dave Love <fx@gnu.org>
parents:
diff changeset
907
Dave Love <fx@gnu.org>
parents:
diff changeset
908 @code{mh-smail} always creates a two-window layout with the current
Dave Love <fx@gnu.org>
parents:
diff changeset
909 buffer on top and the draft on the bottom. If you would rather preserve
Dave Love <fx@gnu.org>
parents:
diff changeset
910 the window layout, use @kbd{M-x mh-smail-other-window}.
Dave Love <fx@gnu.org>
parents:
diff changeset
911
Dave Love <fx@gnu.org>
parents:
diff changeset
912 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
913 * Replying::
Dave Love <fx@gnu.org>
parents:
diff changeset
914 * Forwarding::
Dave Love <fx@gnu.org>
parents:
diff changeset
915 * Redistributing::
Dave Love <fx@gnu.org>
parents:
diff changeset
916 * Old Drafts::
Dave Love <fx@gnu.org>
parents:
diff changeset
917 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
918
Dave Love <fx@gnu.org>
parents:
diff changeset
919 @node Replying, Forwarding, Sending Mail, Sending Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
920 @subsection Replying to Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
921
Dave Love <fx@gnu.org>
parents:
diff changeset
922 @cindex replying
Dave Love <fx@gnu.org>
parents:
diff changeset
923 @cindex @code{mhl}
Dave Love <fx@gnu.org>
parents:
diff changeset
924 @cindex MH commands, @code{mhl}
Dave Love <fx@gnu.org>
parents:
diff changeset
925 @cindex @file{mhl.reply}
Dave Love <fx@gnu.org>
parents:
diff changeset
926 @cindex files, @file{mhl.reply}
Dave Love <fx@gnu.org>
parents:
diff changeset
927 @findex @code{mh-reply}
Dave Love <fx@gnu.org>
parents:
diff changeset
928
Dave Love <fx@gnu.org>
parents:
diff changeset
929 To compose a reply to a message, use the @kbd{r} (@code{mh-reply})
Dave Love <fx@gnu.org>
parents:
diff changeset
930 command. If you supply a prefix argument (as in @kbd{C-u r}), the
Dave Love <fx@gnu.org>
parents:
diff changeset
931 message you are replying to is inserted in your reply after having first
Dave Love <fx@gnu.org>
parents:
diff changeset
932 been run through @code{mhl} with the format file @file{mhl.reply}. See
Dave Love <fx@gnu.org>
parents:
diff changeset
933 @code{mhl}(1) to see how you can modify the default @file{mhl.reply}
Dave Love <fx@gnu.org>
parents:
diff changeset
934 file.
Dave Love <fx@gnu.org>
parents:
diff changeset
935
Dave Love <fx@gnu.org>
parents:
diff changeset
936 When you reply to a message, you are first prompted with @samp{Reply to
Dave Love <fx@gnu.org>
parents:
diff changeset
937 whom?}. You have several choices here.
Dave Love <fx@gnu.org>
parents:
diff changeset
938
Dave Love <fx@gnu.org>
parents:
diff changeset
939 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
940 @group
Dave Love <fx@gnu.org>
parents:
diff changeset
941 @b{Response} @b{Reply Goes To}
Dave Love <fx@gnu.org>
parents:
diff changeset
942
Dave Love <fx@gnu.org>
parents:
diff changeset
943 @kbd{from} @r{The person who sent the message. This is the default,}
Dave Love <fx@gnu.org>
parents:
diff changeset
944 @r{so @key{RET} is sufficient.}
Dave Love <fx@gnu.org>
parents:
diff changeset
945
Dave Love <fx@gnu.org>
parents:
diff changeset
946 @kbd{to} @r{Replies to the sender, plus all recipients in the}
Dave Love <fx@gnu.org>
parents:
diff changeset
947 @r{@samp{To:} header field.}
Dave Love <fx@gnu.org>
parents:
diff changeset
948
Dave Love <fx@gnu.org>
parents:
diff changeset
949 @kbd{all}
Dave Love <fx@gnu.org>
parents:
diff changeset
950 @kbd{cc} @r{Forms a reply to the sender, plus all recipients.}
Dave Love <fx@gnu.org>
parents:
diff changeset
951 @end group
Dave Love <fx@gnu.org>
parents:
diff changeset
952 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
953
Dave Love <fx@gnu.org>
parents:
diff changeset
954 @cindex @code{repl}
Dave Love <fx@gnu.org>
parents:
diff changeset
955 @cindex MH commands, @code{repl}
Dave Love <fx@gnu.org>
parents:
diff changeset
956
Dave Love <fx@gnu.org>
parents:
diff changeset
957 Depending on your answer, @code{repl} is given a different argument to
Dave Love <fx@gnu.org>
parents:
diff changeset
958 form your reply. Specifically, a choice of @kbd{from} or none at all
Dave Love <fx@gnu.org>
parents:
diff changeset
959 runs @code{repl -nocc all}, and a choice of @kbd{to} runs @code{repl -cc
Dave Love <fx@gnu.org>
parents:
diff changeset
960 to}. Finally, either @kbd{cc} or @kbd{all} runs @code{repl -cc all
Dave Love <fx@gnu.org>
parents:
diff changeset
961 -nocc me}.
Dave Love <fx@gnu.org>
parents:
diff changeset
962
Dave Love <fx@gnu.org>
parents:
diff changeset
963 @cindex MH-Letter mode
Dave Love <fx@gnu.org>
parents:
diff changeset
964 @cindex modes, MH-Letter
Dave Love <fx@gnu.org>
parents:
diff changeset
965
Dave Love <fx@gnu.org>
parents:
diff changeset
966 Two windows are then created. One window contains the message to which
Dave Love <fx@gnu.org>
parents:
diff changeset
967 you are replying. Your draft, in MH-Letter mode (described in
Dave Love <fx@gnu.org>
parents:
diff changeset
968 @ref{Draft Editing}), is in the other window.
Dave Love <fx@gnu.org>
parents:
diff changeset
969
Dave Love <fx@gnu.org>
parents:
diff changeset
970 If you wish to customize the header or other parts of the reply draft,
Dave Love <fx@gnu.org>
parents:
diff changeset
971 please see @code{repl}(1) and @code{mh-format}(5).
Dave Love <fx@gnu.org>
parents:
diff changeset
972
Dave Love <fx@gnu.org>
parents:
diff changeset
973 @node Forwarding, Redistributing, Replying, Sending Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
974 @subsection Forwarding Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
975
Dave Love <fx@gnu.org>
parents:
diff changeset
976 @cindex forwarding
Dave Love <fx@gnu.org>
parents:
diff changeset
977 @cindex @code{forw}
Dave Love <fx@gnu.org>
parents:
diff changeset
978 @cindex MH commands, @code{forw}
Dave Love <fx@gnu.org>
parents:
diff changeset
979 @findex @code{mh-forward}
Dave Love <fx@gnu.org>
parents:
diff changeset
980
Dave Love <fx@gnu.org>
parents:
diff changeset
981 To forward a message, use the @kbd{f} (@code{mh-forward}) command. You
Dave Love <fx@gnu.org>
parents:
diff changeset
982 are given a draft to edit that looks like it would if you had run the MH
Dave Love <fx@gnu.org>
parents:
diff changeset
983 command @code{forw}. You are given a chance to add some text (see
Dave Love <fx@gnu.org>
parents:
diff changeset
984 @ref{Draft Editing}).
Dave Love <fx@gnu.org>
parents:
diff changeset
985
Dave Love <fx@gnu.org>
parents:
diff changeset
986 You can forward several messages by using a prefix argument; in this
Dave Love <fx@gnu.org>
parents:
diff changeset
987 case, you are prompted for the name of a @dfn{sequence}, a symbolic name
Dave Love <fx@gnu.org>
parents:
diff changeset
988 that represents a list or range of message numbers (for example,
Dave Love <fx@gnu.org>
parents:
diff changeset
989 @kbd{C-u f forbob @key{RET}}). All of the messages in the sequence are
Dave Love <fx@gnu.org>
parents:
diff changeset
990 inserted into your draft. By the way, although sequences are often
Dave Love <fx@gnu.org>
parents:
diff changeset
991 mentioned in this chapter, you don't have to worry about them for now;
Dave Love <fx@gnu.org>
parents:
diff changeset
992 the full description of sequences in mh-e is at the end in
Dave Love <fx@gnu.org>
parents:
diff changeset
993 @ref{Sequences}. To learn more about sequences in general, please see
Dave Love <fx@gnu.org>
parents:
diff changeset
994 @code{mh-sequence}(5).
Dave Love <fx@gnu.org>
parents:
diff changeset
995
Dave Love <fx@gnu.org>
parents:
diff changeset
996 @node Redistributing, Old Drafts, Forwarding, Sending Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
997 @subsection Redistributing Your Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
998
Dave Love <fx@gnu.org>
parents:
diff changeset
999 @cindex redistributing
Dave Love <fx@gnu.org>
parents:
diff changeset
1000 @findex @code{mh-redistribute}
Dave Love <fx@gnu.org>
parents:
diff changeset
1001
Dave Love <fx@gnu.org>
parents:
diff changeset
1002 The command @kbd{M-d} (@code{mh-redistribute}) is similar in function to
Dave Love <fx@gnu.org>
parents:
diff changeset
1003 forwarding mail, but it does not allow you to edit the message, nor does
Dave Love <fx@gnu.org>
parents:
diff changeset
1004 it add your name to the @samp{From:} header field. It appears to the
Dave Love <fx@gnu.org>
parents:
diff changeset
1005 recipient as if the message had come from the original sender. For more
Dave Love <fx@gnu.org>
parents:
diff changeset
1006 information on redistributing messages, see @code{dist}(1). Also
Dave Love <fx@gnu.org>
parents:
diff changeset
1007 investigate the @kbd{M-a} (@code{mh-edit-again}) command in @ref{Old
Dave Love <fx@gnu.org>
parents:
diff changeset
1008 Drafts}, for another way to redistribute messages.
Dave Love <fx@gnu.org>
parents:
diff changeset
1009
Dave Love <fx@gnu.org>
parents:
diff changeset
1010 @node Old Drafts, , Redistributing, Sending Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
1011 @subsection Editing Old Drafts and Bounced Messages
Dave Love <fx@gnu.org>
parents:
diff changeset
1012
Dave Love <fx@gnu.org>
parents:
diff changeset
1013 @cindex re-editing drafts
Dave Love <fx@gnu.org>
parents:
diff changeset
1014 @cindex @file{draft}
Dave Love <fx@gnu.org>
parents:
diff changeset
1015 @cindex files, @file{draft}
Dave Love <fx@gnu.org>
parents:
diff changeset
1016 @findex @code{mh-edit-again}
Dave Love <fx@gnu.org>
parents:
diff changeset
1017
Dave Love <fx@gnu.org>
parents:
diff changeset
1018 If you don't complete a draft for one reason or another, and if the
Dave Love <fx@gnu.org>
parents:
diff changeset
1019 draft buffer is no longer available, you can pick your draft up again
Dave Love <fx@gnu.org>
parents:
diff changeset
1020 with @kbd{M-a} (@code{mh-edit-again}). If you don't use a draft folder,
Dave Love <fx@gnu.org>
parents:
diff changeset
1021 your last @file{draft} file will be used. If you use draft folders,
Dave Love <fx@gnu.org>
parents:
diff changeset
1022 you'll need to visit the draft folder with @kbd{M-f drafts @key{RET}},
Dave Love <fx@gnu.org>
parents:
diff changeset
1023 use @kbd{n} to move to the appropriate message, and then use @kbd{M-a}
Dave Love <fx@gnu.org>
parents:
diff changeset
1024 to prepare the message for editing.
Dave Love <fx@gnu.org>
parents:
diff changeset
1025
Dave Love <fx@gnu.org>
parents:
diff changeset
1026 The @kbd{M-a} command can also be used to take messages that were sent
Dave Love <fx@gnu.org>
parents:
diff changeset
1027 to you and to send them to more people.
Dave Love <fx@gnu.org>
parents:
diff changeset
1028
Dave Love <fx@gnu.org>
parents:
diff changeset
1029 @cindex Mailer-Daemon
Dave Love <fx@gnu.org>
parents:
diff changeset
1030 @findex @code{mh-extract-rejected-mail}
Dave Love <fx@gnu.org>
parents:
diff changeset
1031
Dave Love <fx@gnu.org>
parents:
diff changeset
1032 Don't use @kbd{M-a} to re-edit a message from a @i{Mailer-Daemon} who
Dave Love <fx@gnu.org>
parents:
diff changeset
1033 complained that your mail wasn't posted for some reason or another. In
Dave Love <fx@gnu.org>
parents:
diff changeset
1034 this case, use @kbd{M-e} (@code{mh-extract-rejected-mail}) to prepare
Dave Love <fx@gnu.org>
parents:
diff changeset
1035 the message for editing by removing the @i{Mailer-Daemon} envelope and
Dave Love <fx@gnu.org>
parents:
diff changeset
1036 unneeded header fields. Fix whatever addressing problem you had, and
Dave Love <fx@gnu.org>
parents:
diff changeset
1037 send the message again with @kbd{C-c C-c}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1038
Dave Love <fx@gnu.org>
parents:
diff changeset
1039 @node Draft Editing, Moving Mail, Sending Mail, Using mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
1040 @section Editing a Draft
Dave Love <fx@gnu.org>
parents:
diff changeset
1041
Dave Love <fx@gnu.org>
parents:
diff changeset
1042 @cindex editing draft
Dave Love <fx@gnu.org>
parents:
diff changeset
1043 @cindex MH-Letter mode
Dave Love <fx@gnu.org>
parents:
diff changeset
1044 @cindex modes, MH-Letter
Dave Love <fx@gnu.org>
parents:
diff changeset
1045
Dave Love <fx@gnu.org>
parents:
diff changeset
1046 When you edit a message that you want to send (called a @dfn{draft} in
Dave Love <fx@gnu.org>
parents:
diff changeset
1047 this case), the mode used is MH-Letter. This mode provides
Dave Love <fx@gnu.org>
parents:
diff changeset
1048 several commands in addition to the normal Emacs editing commands to
Dave Love <fx@gnu.org>
parents:
diff changeset
1049 help you edit your draft.
Dave Love <fx@gnu.org>
parents:
diff changeset
1050
Dave Love <fx@gnu.org>
parents:
diff changeset
1051 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
1052 @item C-c C-y
Dave Love <fx@gnu.org>
parents:
diff changeset
1053 Insert contents of message to which you're replying (@code{mh-yank-cur-msg}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1054
Dave Love <fx@gnu.org>
parents:
diff changeset
1055 @item C-c C-i
Dave Love <fx@gnu.org>
parents:
diff changeset
1056 Insert a message from a folder (@code{mh-insert-letter}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1057
Dave Love <fx@gnu.org>
parents:
diff changeset
1058 @item C-c C-f C-t
Dave Love <fx@gnu.org>
parents:
diff changeset
1059 Move to @samp{To:} header field (@code{mh-to-field}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1060
Dave Love <fx@gnu.org>
parents:
diff changeset
1061 @item C-c C-f C-c
Dave Love <fx@gnu.org>
parents:
diff changeset
1062 Move to @samp{cc:} header field (@code{mh-to-field}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1063
Dave Love <fx@gnu.org>
parents:
diff changeset
1064 @item C-c C-f C-s
Dave Love <fx@gnu.org>
parents:
diff changeset
1065 Move to @samp{Subject:} header field (@code{mh-to-field}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1066
Dave Love <fx@gnu.org>
parents:
diff changeset
1067 @item C-c C-f C-f
Dave Love <fx@gnu.org>
parents:
diff changeset
1068 Move to @samp{From:} header field (@code{mh-to-field}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1069
Dave Love <fx@gnu.org>
parents:
diff changeset
1070 @item C-c C-f C-b
Dave Love <fx@gnu.org>
parents:
diff changeset
1071 Move to @samp{Bcc:} header field (@code{mh-to-field}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1072
Dave Love <fx@gnu.org>
parents:
diff changeset
1073 @item C-c C-f C-f
Dave Love <fx@gnu.org>
parents:
diff changeset
1074 Move to @samp{Fcc:} header field (@code{mh-to-fcc}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1075
Dave Love <fx@gnu.org>
parents:
diff changeset
1076 @item C-c C-f C-d
Dave Love <fx@gnu.org>
parents:
diff changeset
1077 Move to @samp{Dcc:} header field (@code{mh-to-field}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1078
Dave Love <fx@gnu.org>
parents:
diff changeset
1079 @item C-c C-w
Dave Love <fx@gnu.org>
parents:
diff changeset
1080 Display expanded recipient list (@code{mh-check-whom}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1081
Dave Love <fx@gnu.org>
parents:
diff changeset
1082 @item C-c C-s
Dave Love <fx@gnu.org>
parents:
diff changeset
1083 Insert signature in message (@code{mh-insert-signature}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1084
Dave Love <fx@gnu.org>
parents:
diff changeset
1085 @item C-c C-m C-f
Dave Love <fx@gnu.org>
parents:
diff changeset
1086 Include forwarded message (@sc{mime}) (@code{mh-mhn-compose-forw}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1087
Dave Love <fx@gnu.org>
parents:
diff changeset
1088 @item C-c C-m C-e
Dave Love <fx@gnu.org>
parents:
diff changeset
1089 Include anonymous ftp reference (@sc{mime}) (@code{mh-mhn-compose-anon-ftp}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1090
Dave Love <fx@gnu.org>
parents:
diff changeset
1091 @item C-c C-m C-t
Dave Love <fx@gnu.org>
parents:
diff changeset
1092 Include anonymous ftp reference to compressed tar file (@sc{mime})
Dave Love <fx@gnu.org>
parents:
diff changeset
1093 (@code{mh-mhn-compose-external-compressed-tar}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1094
Dave Love <fx@gnu.org>
parents:
diff changeset
1095 @item C-c C-m C-i
Dave Love <fx@gnu.org>
parents:
diff changeset
1096 Include binary, image, sound, etc. (@sc{mime})
Dave Love <fx@gnu.org>
parents:
diff changeset
1097 (@code{mh-mhn-compose-insertion}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1098
Dave Love <fx@gnu.org>
parents:
diff changeset
1099 @item C-c C-e
Dave Love <fx@gnu.org>
parents:
diff changeset
1100 Run through @code{mhn} before sending (@code{mh-edit-mhn}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1101
Dave Love <fx@gnu.org>
parents:
diff changeset
1102 @item C-c C-m C-u
Dave Love <fx@gnu.org>
parents:
diff changeset
1103 Undo effects of @code{mhn} (@code{mh-revert-mhn-edit}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1104
Dave Love <fx@gnu.org>
parents:
diff changeset
1105 @item C-c C-c
Dave Love <fx@gnu.org>
parents:
diff changeset
1106 Save draft and send message (@code{mh-send-letter}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1107
Dave Love <fx@gnu.org>
parents:
diff changeset
1108 @item C-c C-q
Dave Love <fx@gnu.org>
parents:
diff changeset
1109 Quit editing and delete draft message (@code{mh-fully-kill-draft}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1110 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
1111
Dave Love <fx@gnu.org>
parents:
diff changeset
1112 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
1113 * Editing Textual::
Dave Love <fx@gnu.org>
parents:
diff changeset
1114 * Editing MIME::
Dave Love <fx@gnu.org>
parents:
diff changeset
1115 * Sending Message::
Dave Love <fx@gnu.org>
parents:
diff changeset
1116 * Killing Draft::
Dave Love <fx@gnu.org>
parents:
diff changeset
1117 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
1118
Dave Love <fx@gnu.org>
parents:
diff changeset
1119 @node Editing Textual, Editing MIME, Draft Editing, Draft Editing
Dave Love <fx@gnu.org>
parents:
diff changeset
1120 @subsection Editing Textual Messages
Dave Love <fx@gnu.org>
parents:
diff changeset
1121
Dave Love <fx@gnu.org>
parents:
diff changeset
1122 The following sections show you how to edit a draft.
Dave Love <fx@gnu.org>
parents:
diff changeset
1123 The commands described here are also applicable to messages that have
Dave Love <fx@gnu.org>
parents:
diff changeset
1124 multimedia components.
Dave Love <fx@gnu.org>
parents:
diff changeset
1125
Dave Love <fx@gnu.org>
parents:
diff changeset
1126 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
1127 * Inserting Letter::
Dave Love <fx@gnu.org>
parents:
diff changeset
1128 * Inserting Messages::
Dave Love <fx@gnu.org>
parents:
diff changeset
1129 * Header::
Dave Love <fx@gnu.org>
parents:
diff changeset
1130 * Recipients::
Dave Love <fx@gnu.org>
parents:
diff changeset
1131 * Signature::
Dave Love <fx@gnu.org>
parents:
diff changeset
1132 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
1133
Dave Love <fx@gnu.org>
parents:
diff changeset
1134 @node Inserting Letter, Inserting Messages, Editing Textual, Editing Textual
Dave Love <fx@gnu.org>
parents:
diff changeset
1135 @subsubsection Inserting letter to which you're replying
Dave Love <fx@gnu.org>
parents:
diff changeset
1136
Dave Love <fx@gnu.org>
parents:
diff changeset
1137 @cindex inserting messages
Dave Love <fx@gnu.org>
parents:
diff changeset
1138 @findex @code{mh-yank-cur-msg}
Dave Love <fx@gnu.org>
parents:
diff changeset
1139
Dave Love <fx@gnu.org>
parents:
diff changeset
1140 It is often useful to insert a snippet of text from a letter that
Dave Love <fx@gnu.org>
parents:
diff changeset
1141 someone mailed to provide some context for your reply. The command
Dave Love <fx@gnu.org>
parents:
diff changeset
1142 @kbd{C-c C-y} (@code{mh-yank-cur-msg}) does this by yanking a portion of
Dave Love <fx@gnu.org>
parents:
diff changeset
1143 text from the message to which you're replying and inserting @samp{> }
Dave Love <fx@gnu.org>
parents:
diff changeset
1144 before each line.
Dave Love <fx@gnu.org>
parents:
diff changeset
1145
Dave Love <fx@gnu.org>
parents:
diff changeset
1146 @cindex mark
Dave Love <fx@gnu.org>
parents:
diff changeset
1147 @cindex Emacs, mark
Dave Love <fx@gnu.org>
parents:
diff changeset
1148 @cindex point
Dave Love <fx@gnu.org>
parents:
diff changeset
1149 @cindex Emacs, point
Dave Love <fx@gnu.org>
parents:
diff changeset
1150 @cindex region
Dave Love <fx@gnu.org>
parents:
diff changeset
1151 @cindex Emacs, region
Dave Love <fx@gnu.org>
parents:
diff changeset
1152
Dave Love <fx@gnu.org>
parents:
diff changeset
1153 You can control how much text is included when you run this command. If
Dave Love <fx@gnu.org>
parents:
diff changeset
1154 you run this command right away, without entering the buffer containing
Dave Love <fx@gnu.org>
parents:
diff changeset
1155 the message to you, this command will yank the entire message, as is,
Dave Love <fx@gnu.org>
parents:
diff changeset
1156 into your reply. @footnote{If you'd rather have the header cleaned up,
Dave Love <fx@gnu.org>
parents:
diff changeset
1157 use @kbd{C-u r} instead of @kbd{r} when replying (see @ref{Replying}).}
Dave Love <fx@gnu.org>
parents:
diff changeset
1158 If you enter the buffer containing the message sent to you and move the
Dave Love <fx@gnu.org>
parents:
diff changeset
1159 cursor to a certain point and return to your reply and run @kbd{C-c
Dave Love <fx@gnu.org>
parents:
diff changeset
1160 C-y}, then the text yanked will range from that point to the end of the
Dave Love <fx@gnu.org>
parents:
diff changeset
1161 message. Finally, the most common action you'll perform is to enter the
Dave Love <fx@gnu.org>
parents:
diff changeset
1162 message sent to you, move the cursor to the beginning of a paragraph or
Dave Love <fx@gnu.org>
parents:
diff changeset
1163 phrase, set the @dfn{mark} with @kbd{C-SPC} or @kbd{C-@@}, and move the
Dave Love <fx@gnu.org>
parents:
diff changeset
1164 cursor to the end of the paragraph or phrase. The cursor position is
Dave Love <fx@gnu.org>
parents:
diff changeset
1165 called the @dfn{point}, and the space between the mark and point is
Dave Love <fx@gnu.org>
parents:
diff changeset
1166 called the @dfn{region}. Having done that, @kbd{C-c C-y} will insert
Dave Love <fx@gnu.org>
parents:
diff changeset
1167 the region you selected.
Dave Love <fx@gnu.org>
parents:
diff changeset
1168
Dave Love <fx@gnu.org>
parents:
diff changeset
1169 @node Inserting Messages, Header, Inserting Letter, Editing Textual
Dave Love <fx@gnu.org>
parents:
diff changeset
1170 @subsubsection Inserting messages
Dave Love <fx@gnu.org>
parents:
diff changeset
1171
Dave Love <fx@gnu.org>
parents:
diff changeset
1172 @cindex inserting messages
Dave Love <fx@gnu.org>
parents:
diff changeset
1173 @findex @code{mh-insert-letter}
Dave Love <fx@gnu.org>
parents:
diff changeset
1174
Dave Love <fx@gnu.org>
parents:
diff changeset
1175 Messages can be inserted with @kbd{C-c C-i} (@code{mh-insert-letter}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1176 This command prompts you for the folder and message number and inserts
Dave Love <fx@gnu.org>
parents:
diff changeset
1177 the message, indented by @samp{> }. Certain undesirable header fields
Dave Love <fx@gnu.org>
parents:
diff changeset
1178 are removed before insertion. If given a prefix argument (like @kbd{C-u
Dave Love <fx@gnu.org>
parents:
diff changeset
1179 C-c C-i}), the header is left intact, the message is not indented, and
Dave Love <fx@gnu.org>
parents:
diff changeset
1180 @samp{> } is not inserted before each line.
Dave Love <fx@gnu.org>
parents:
diff changeset
1181
Dave Love <fx@gnu.org>
parents:
diff changeset
1182 @node Header, Recipients, Inserting Messages, Editing Textual
Dave Love <fx@gnu.org>
parents:
diff changeset
1183 @subsubsection Editing the header
Dave Love <fx@gnu.org>
parents:
diff changeset
1184
Dave Love <fx@gnu.org>
parents:
diff changeset
1185 @cindex editing header
Dave Love <fx@gnu.org>
parents:
diff changeset
1186 @findex @code{mh-to-field}
Dave Love <fx@gnu.org>
parents:
diff changeset
1187
Dave Love <fx@gnu.org>
parents:
diff changeset
1188 Because the header is part of the message, you can edit the header
Dave Love <fx@gnu.org>
parents:
diff changeset
1189 fields as you wish. However, several convenience functions exist to
Dave Love <fx@gnu.org>
parents:
diff changeset
1190 help you create and edit them. For example, the command @kbd{C-c C-f
Dave Love <fx@gnu.org>
parents:
diff changeset
1191 C-t} (@code{mh-to-field}; alternatively, @kbd{C-c C-f t}) moves the
Dave Love <fx@gnu.org>
parents:
diff changeset
1192 cursor to the @samp{To:} header field, creating it if necessary. The
Dave Love <fx@gnu.org>
parents:
diff changeset
1193 functions to move to the @samp{cc:}, @samp{Subject:}, @samp{From:},
Dave Love <fx@gnu.org>
parents:
diff changeset
1194 @samp{Bcc:}, and @samp{Dcc:} header fields are similar.
Dave Love <fx@gnu.org>
parents:
diff changeset
1195
Dave Love <fx@gnu.org>
parents:
diff changeset
1196 @findex @code{mh-to-fcc}
Dave Love <fx@gnu.org>
parents:
diff changeset
1197
Dave Love <fx@gnu.org>
parents:
diff changeset
1198 One function behaves differently from the others, namely, @kbd{C-c C-f
Dave Love <fx@gnu.org>
parents:
diff changeset
1199 C-f} (@code{mh-to-fcc}; alternatively, @kbd{C-c C-f f}). This function
Dave Love <fx@gnu.org>
parents:
diff changeset
1200 will prompt you for the folder name in which to file a copy of the draft.
Dave Love <fx@gnu.org>
parents:
diff changeset
1201
Dave Love <fx@gnu.org>
parents:
diff changeset
1202 Be sure to leave a row of dashes or a blank line between the header and
Dave Love <fx@gnu.org>
parents:
diff changeset
1203 the body of the message.
Dave Love <fx@gnu.org>
parents:
diff changeset
1204
Dave Love <fx@gnu.org>
parents:
diff changeset
1205 @node Recipients, Signature, Header, Editing Textual
Dave Love <fx@gnu.org>
parents:
diff changeset
1206 @subsubsection Checking recipients
Dave Love <fx@gnu.org>
parents:
diff changeset
1207
Dave Love <fx@gnu.org>
parents:
diff changeset
1208 @cindex checking recipients
Dave Love <fx@gnu.org>
parents:
diff changeset
1209 @cindex @code{whom}
Dave Love <fx@gnu.org>
parents:
diff changeset
1210 @cindex MH commands, @code{whom}
Dave Love <fx@gnu.org>
parents:
diff changeset
1211 @findex @code{mh-check-whom}
Dave Love <fx@gnu.org>
parents:
diff changeset
1212
Dave Love <fx@gnu.org>
parents:
diff changeset
1213 The @kbd{C-c C-w} (@code{mh-check-whom}) command expands aliases so you
Dave Love <fx@gnu.org>
parents:
diff changeset
1214 can check the actual address(es) in the alias. A new buffer is created
Dave Love <fx@gnu.org>
parents:
diff changeset
1215 with the output of @code{whom}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1216
Dave Love <fx@gnu.org>
parents:
diff changeset
1217 @node Signature, , Recipients, Editing Textual
Dave Love <fx@gnu.org>
parents:
diff changeset
1218 @subsubsection Inserting your signature
Dave Love <fx@gnu.org>
parents:
diff changeset
1219
Dave Love <fx@gnu.org>
parents:
diff changeset
1220 @cindex inserting signature
Dave Love <fx@gnu.org>
parents:
diff changeset
1221 @cindex signature
Dave Love <fx@gnu.org>
parents:
diff changeset
1222 @cindex @file{.signature}
Dave Love <fx@gnu.org>
parents:
diff changeset
1223 @cindex files, @file{.signature}
Dave Love <fx@gnu.org>
parents:
diff changeset
1224 @findex @code{mh-insert-signature}
Dave Love <fx@gnu.org>
parents:
diff changeset
1225
Dave Love <fx@gnu.org>
parents:
diff changeset
1226 You can insert your signature at the current cursor location with the
Dave Love <fx@gnu.org>
parents:
diff changeset
1227 @kbd{C-c C-s} (@code{mh-insert-signature}) command. The text of your
Dave Love <fx@gnu.org>
parents:
diff changeset
1228 signature is taken from the file @file{~/.signature}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1229
Dave Love <fx@gnu.org>
parents:
diff changeset
1230 @node Editing MIME, Sending Message, Editing Textual, Draft Editing
Dave Love <fx@gnu.org>
parents:
diff changeset
1231 @subsection Editing Multimedia Messages
Dave Love <fx@gnu.org>
parents:
diff changeset
1232
Dave Love <fx@gnu.org>
parents:
diff changeset
1233 @cindex MIME
Dave Love <fx@gnu.org>
parents:
diff changeset
1234 @cindex multimedia mail
Dave Love <fx@gnu.org>
parents:
diff changeset
1235 @cindex @code{mhn}
Dave Love <fx@gnu.org>
parents:
diff changeset
1236 @cindex MH commands, @code{mhn}
Dave Love <fx@gnu.org>
parents:
diff changeset
1237
Dave Love <fx@gnu.org>
parents:
diff changeset
1238 mh-e has the capability to create multimedia messages. It uses the
Dave Love <fx@gnu.org>
parents:
diff changeset
1239 @sc{mime} (Multipurpose Internet Mail Extensions) protocol. The
Dave Love <fx@gnu.org>
parents:
diff changeset
1240 @sc{mime} protocol allows you to incorporate images, sound, video,
Dave Love <fx@gnu.org>
parents:
diff changeset
1241 binary files, and even commands that fetch a file with @samp{ftp} when
Dave Love <fx@gnu.org>
parents:
diff changeset
1242 your recipient reads the message! If you were to create a multimedia
Dave Love <fx@gnu.org>
parents:
diff changeset
1243 message with plain MH commands, you would use @code{mhn}. Indeed, the
Dave Love <fx@gnu.org>
parents:
diff changeset
1244 mh-e @sc{mime} commands merely insert @code{mhn} directives which are
Dave Love <fx@gnu.org>
parents:
diff changeset
1245 later expanded by @code{mhn}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1246
Dave Love <fx@gnu.org>
parents:
diff changeset
1247 Each of the mh-e commands for editing multimedia messages or for
Dave Love <fx@gnu.org>
parents:
diff changeset
1248 incorporating multimedia objects is prefixed with @kbd{C-c C-m} .
Dave Love <fx@gnu.org>
parents:
diff changeset
1249
Dave Love <fx@gnu.org>
parents:
diff changeset
1250 @cindex content types
Dave Love <fx@gnu.org>
parents:
diff changeset
1251 @cindex MIME, content types
Dave Love <fx@gnu.org>
parents:
diff changeset
1252
Dave Love <fx@gnu.org>
parents:
diff changeset
1253 Several @sc{mime} objects are defined. They are called @dfn{content
Dave Love <fx@gnu.org>
parents:
diff changeset
1254 types}. The table in @ref{Customizing Draft Editing} contains a list of
Dave Love <fx@gnu.org>
parents:
diff changeset
1255 the content types that mh-e currently knows about. Several of the mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
1256 commands fill in the content type for you, whereas others require you to
Dave Love <fx@gnu.org>
parents:
diff changeset
1257 enter one. Most of the time, it should be obvious which one to use
Dave Love <fx@gnu.org>
parents:
diff changeset
1258 (e.g., use @kbd{image/jpeg} to include a @sc{jpeg} image). If not, you
Dave Love <fx@gnu.org>
parents:
diff changeset
1259 can refer to @sc{rfc} 1521,
Dave Love <fx@gnu.org>
parents:
diff changeset
1260 @c Footnotes are very fragile. Hence the duplication.
Dave Love <fx@gnu.org>
parents:
diff changeset
1261 @c The line break in the footnote was necessary since TeX wasn't creating one.
Dave Love <fx@gnu.org>
parents:
diff changeset
1262 @ifclear html
Dave Love <fx@gnu.org>
parents:
diff changeset
1263 @footnote{This @sc{rfc} (Request For Comments) is
Dave Love <fx@gnu.org>
parents:
diff changeset
1264 available via the @sc{url} @*
Dave Love <fx@gnu.org>
parents:
diff changeset
1265 @file{ftp://ds.internic.net/rfc/rfc1521.txt}.}
Dave Love <fx@gnu.org>
parents:
diff changeset
1266 @end ifclear
Dave Love <fx@gnu.org>
parents:
diff changeset
1267 @ifset html
Dave Love <fx@gnu.org>
parents:
diff changeset
1268 @footnote{This @sc{rfc} (Request For Comments) is
Dave Love <fx@gnu.org>
parents:
diff changeset
1269 available via the @sc{url} @*
Dave Love <fx@gnu.org>
parents:
diff changeset
1270 @file{<A HREF="ftp://ds.internic.net/rfc/rfc1521.txt">ftp://ds.internic.net/rfc/rfc1521.txt</A>}.}
Dave Love <fx@gnu.org>
parents:
diff changeset
1271 @end ifset
Dave Love <fx@gnu.org>
parents:
diff changeset
1272 which defines the @sc{mime} protocol, for a list of valid content types.
Dave Love <fx@gnu.org>
parents:
diff changeset
1273
Dave Love <fx@gnu.org>
parents:
diff changeset
1274 @cindex content description
Dave Love <fx@gnu.org>
parents:
diff changeset
1275 @cindex MIME, content description
Dave Love <fx@gnu.org>
parents:
diff changeset
1276
Dave Love <fx@gnu.org>
parents:
diff changeset
1277 You are also sometimes asked for a @dfn{content description}. This is
Dave Love <fx@gnu.org>
parents:
diff changeset
1278 simply an optional brief phrase, in your own words, that describes the
Dave Love <fx@gnu.org>
parents:
diff changeset
1279 object. If you don't care to enter a content description, just press
Dave Love <fx@gnu.org>
parents:
diff changeset
1280 return and none will be included; however, a reader may skip over
Dave Love <fx@gnu.org>
parents:
diff changeset
1281 multimedia fields unless the content description is compelling.
Dave Love <fx@gnu.org>
parents:
diff changeset
1282
Dave Love <fx@gnu.org>
parents:
diff changeset
1283 Remember: you can always add @code{mhn} directives by hand.
Dave Love <fx@gnu.org>
parents:
diff changeset
1284
Dave Love <fx@gnu.org>
parents:
diff changeset
1285 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
1286 * Forwarding MIME::
Dave Love <fx@gnu.org>
parents:
diff changeset
1287 * FTP::
Dave Love <fx@gnu.org>
parents:
diff changeset
1288 * Tar::
Dave Love <fx@gnu.org>
parents:
diff changeset
1289 * Other MIME Objects::
Dave Love <fx@gnu.org>
parents:
diff changeset
1290 * Sending MIME::
Dave Love <fx@gnu.org>
parents:
diff changeset
1291 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
1292
Dave Love <fx@gnu.org>
parents:
diff changeset
1293 @node Forwarding MIME, FTP, Editing MIME, Editing MIME
Dave Love <fx@gnu.org>
parents:
diff changeset
1294 @subsubsection Forwarding multimedia messages
Dave Love <fx@gnu.org>
parents:
diff changeset
1295
Dave Love <fx@gnu.org>
parents:
diff changeset
1296 @findex @code{mh-mhn-compose-forw}
Dave Love <fx@gnu.org>
parents:
diff changeset
1297
Dave Love <fx@gnu.org>
parents:
diff changeset
1298 Mail may be forwarded with @sc{mime} using the command @kbd{C-c C-m C-f}
Dave Love <fx@gnu.org>
parents:
diff changeset
1299 (@code{mh-mhn-compose-forw}). You are prompted for a content
Dave Love <fx@gnu.org>
parents:
diff changeset
1300 description, the name of the folder in which the messages to forward are
Dave Love <fx@gnu.org>
parents:
diff changeset
1301 located, and the messages' numbers.
Dave Love <fx@gnu.org>
parents:
diff changeset
1302
Dave Love <fx@gnu.org>
parents:
diff changeset
1303 @node FTP, Tar, Forwarding MIME, Editing MIME
Dave Love <fx@gnu.org>
parents:
diff changeset
1304 @subsubsection Including an ftp reference
Dave Love <fx@gnu.org>
parents:
diff changeset
1305
Dave Love <fx@gnu.org>
parents:
diff changeset
1306 @cindex @code{ftp}
Dave Love <fx@gnu.org>
parents:
diff changeset
1307 @cindex Unix commands, @code{ftp}
Dave Love <fx@gnu.org>
parents:
diff changeset
1308 @cindex MIME, @code{ftp}
Dave Love <fx@gnu.org>
parents:
diff changeset
1309 @findex @code{mh-mhn-compose-anon-ftp}
Dave Love <fx@gnu.org>
parents:
diff changeset
1310
Dave Love <fx@gnu.org>
parents:
diff changeset
1311 You can even have your message initiate an @code{ftp} transfer when the
Dave Love <fx@gnu.org>
parents:
diff changeset
1312 recipient reads the message. To do this, use the @kbd{C-c C-m C-e}
Dave Love <fx@gnu.org>
parents:
diff changeset
1313 (@code{mh-mhn-compose-anon-ftp}) command. You are prompted for the
Dave Love <fx@gnu.org>
parents:
diff changeset
1314 remote host and pathname, the content type, and the content description.
Dave Love <fx@gnu.org>
parents:
diff changeset
1315
Dave Love <fx@gnu.org>
parents:
diff changeset
1316 @node Tar, Other MIME Objects, FTP, Editing MIME
Dave Love <fx@gnu.org>
parents:
diff changeset
1317 @subsubsection Including tar files
Dave Love <fx@gnu.org>
parents:
diff changeset
1318
Dave Love <fx@gnu.org>
parents:
diff changeset
1319 @cindex @code{tar}
Dave Love <fx@gnu.org>
parents:
diff changeset
1320 @cindex Unix commands, @code{tar}
Dave Love <fx@gnu.org>
parents:
diff changeset
1321 @cindex MIME, @code{tar}
Dave Love <fx@gnu.org>
parents:
diff changeset
1322 @cindex @code{ftp}
Dave Love <fx@gnu.org>
parents:
diff changeset
1323 @cindex Unix commands, @code{ftp}
Dave Love <fx@gnu.org>
parents:
diff changeset
1324 @cindex MIME, @code{ftp}
Dave Love <fx@gnu.org>
parents:
diff changeset
1325 @findex @code{mh-mhn-compose-external-compressed-tar}
Dave Love <fx@gnu.org>
parents:
diff changeset
1326
Dave Love <fx@gnu.org>
parents:
diff changeset
1327 If the remote file (@pxref{FTP}) is a compressed tar file, you can use
Dave Love <fx@gnu.org>
parents:
diff changeset
1328 @kbd{C-c C-m C-t} (@code{mh-mhn-compose-external-compressed-tar}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1329 Then, in addition to retrieving the file via anonymous @emph{ftp}, the
Dave Love <fx@gnu.org>
parents:
diff changeset
1330 file will also be uncompressed and untarred. You are prompted for the
Dave Love <fx@gnu.org>
parents:
diff changeset
1331 remote host and pathname and the content description. The pathname
Dave Love <fx@gnu.org>
parents:
diff changeset
1332 should contain at least one @samp{/} (slash), because the pathname is
Dave Love <fx@gnu.org>
parents:
diff changeset
1333 broken up into directory and name components.
Dave Love <fx@gnu.org>
parents:
diff changeset
1334
Dave Love <fx@gnu.org>
parents:
diff changeset
1335 @node Other MIME Objects, Sending MIME, Tar, Editing MIME
Dave Love <fx@gnu.org>
parents:
diff changeset
1336 @subsubsection Including other multimedia objects
Dave Love <fx@gnu.org>
parents:
diff changeset
1337
Dave Love <fx@gnu.org>
parents:
diff changeset
1338 @cindex images
Dave Love <fx@gnu.org>
parents:
diff changeset
1339 @cindex MIME, images
Dave Love <fx@gnu.org>
parents:
diff changeset
1340 @cindex sound
Dave Love <fx@gnu.org>
parents:
diff changeset
1341 @cindex MIME, sound
Dave Love <fx@gnu.org>
parents:
diff changeset
1342 @cindex video
Dave Love <fx@gnu.org>
parents:
diff changeset
1343 @cindex MIME, video
Dave Love <fx@gnu.org>
parents:
diff changeset
1344 @findex @code{mh-mhn-compose-insertion}
Dave Love <fx@gnu.org>
parents:
diff changeset
1345
Dave Love <fx@gnu.org>
parents:
diff changeset
1346 Images, sound, and video can be inserted in your message with the
Dave Love <fx@gnu.org>
parents:
diff changeset
1347 @kbd{C-c C-m C-i} (@code{mh-mhn-compose-insertion}) command. You are
Dave Love <fx@gnu.org>
parents:
diff changeset
1348 prompted for the filename containing the object, the content type, and a
Dave Love <fx@gnu.org>
parents:
diff changeset
1349 content description of the object.
Dave Love <fx@gnu.org>
parents:
diff changeset
1350
Dave Love <fx@gnu.org>
parents:
diff changeset
1351 @node Sending MIME, , Other MIME Objects, Editing MIME
Dave Love <fx@gnu.org>
parents:
diff changeset
1352 @subsubsection Readying multimedia messages for sending
Dave Love <fx@gnu.org>
parents:
diff changeset
1353
Dave Love <fx@gnu.org>
parents:
diff changeset
1354 When you are finished editing a @sc{mime} message, it might look like this:
Dave Love <fx@gnu.org>
parents:
diff changeset
1355
Dave Love <fx@gnu.org>
parents:
diff changeset
1356 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
1357 @group
Dave Love <fx@gnu.org>
parents:
diff changeset
1358 @cartouche
Dave Love <fx@gnu.org>
parents:
diff changeset
1359 3 24Aug root received fax files on Wed Aug 24 11:00:13
Dave Love <fx@gnu.org>
parents:
diff changeset
1360 4+ 24Aug To:wohler Test<<This is a test message to get the wh
Dave Love <fx@gnu.org>
parents:
diff changeset
1361
Dave Love <fx@gnu.org>
parents:
diff changeset
1362
Dave Love <fx@gnu.org>
parents:
diff changeset
1363
Dave Love <fx@gnu.org>
parents:
diff changeset
1364
Dave Love <fx@gnu.org>
parents:
diff changeset
1365
Dave Love <fx@gnu.org>
parents:
diff changeset
1366 --%%-@{+inbox@} 4 msgs (1-4) (MH-Folder Show)--Bot-------------------
Dave Love <fx@gnu.org>
parents:
diff changeset
1367 To: wohler
Dave Love <fx@gnu.org>
parents:
diff changeset
1368 cc:
Dave Love <fx@gnu.org>
parents:
diff changeset
1369 Subject: Test of MIME
Dave Love <fx@gnu.org>
parents:
diff changeset
1370 --------
Dave Love <fx@gnu.org>
parents:
diff changeset
1371 #@@application/octet-stream [Nonexistent ftp test file] \
Dave Love <fx@gnu.org>
parents:
diff changeset
1372 access-type=anon-ftp; site=berzerk.com; name=panacea.tar.gz; \
Dave Love <fx@gnu.org>
parents:
diff changeset
1373 directory="/pub/"
Dave Love <fx@gnu.org>
parents:
diff changeset
1374 #audio/basic [Test sound bite] /tmp/noise.au
Dave Love <fx@gnu.org>
parents:
diff changeset
1375 --**-@{draft@} (MH-Letter)--All--------------------------------------
Dave Love <fx@gnu.org>
parents:
diff changeset
1376
Dave Love <fx@gnu.org>
parents:
diff changeset
1377 @end cartouche
Dave Love <fx@gnu.org>
parents:
diff changeset
1378 @i{mh-e @sc{mime} draft}
Dave Love <fx@gnu.org>
parents:
diff changeset
1379 @end group
Dave Love <fx@gnu.org>
parents:
diff changeset
1380 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
1381
Dave Love <fx@gnu.org>
parents:
diff changeset
1382 @cindex @code{mhn}
Dave Love <fx@gnu.org>
parents:
diff changeset
1383 @cindex MH commands, @code{mhn}
Dave Love <fx@gnu.org>
parents:
diff changeset
1384 @findex @code{mh-edit-mhn}
Dave Love <fx@gnu.org>
parents:
diff changeset
1385
Dave Love <fx@gnu.org>
parents:
diff changeset
1386 The lines added by the previous commands are @code{mhn} directives and
Dave Love <fx@gnu.org>
parents:
diff changeset
1387 need to be converted to @sc{mime} directives before sending. This is
Dave Love <fx@gnu.org>
parents:
diff changeset
1388 accomplished by the command @kbd{C-c C-e} (@code{mh-edit-mhn}), which
Dave Love <fx@gnu.org>
parents:
diff changeset
1389 runs @code{mhn} on the message. The following screen shows what those
Dave Love <fx@gnu.org>
parents:
diff changeset
1390 commands look like in full @sc{mime} format. You can see why mail user
Dave Love <fx@gnu.org>
parents:
diff changeset
1391 agents are usually built to hide these details from the user.
Dave Love <fx@gnu.org>
parents:
diff changeset
1392
Dave Love <fx@gnu.org>
parents:
diff changeset
1393 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
1394 @group
Dave Love <fx@gnu.org>
parents:
diff changeset
1395 @cartouche
Dave Love <fx@gnu.org>
parents:
diff changeset
1396 To: wohler
Dave Love <fx@gnu.org>
parents:
diff changeset
1397 cc:
Dave Love <fx@gnu.org>
parents:
diff changeset
1398 Subject: Test of MIME
Dave Love <fx@gnu.org>
parents:
diff changeset
1399 MIME-Version: 1.0
Dave Love <fx@gnu.org>
parents:
diff changeset
1400 Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa0"
Dave Love <fx@gnu.org>
parents:
diff changeset
1401 Content-ID: <1623.777796162.0@@newt.com>
Dave Love <fx@gnu.org>
parents:
diff changeset
1402
Dave Love <fx@gnu.org>
parents:
diff changeset
1403 ------- =_aaaaaaaaaa0
Dave Love <fx@gnu.org>
parents:
diff changeset
1404 Content-Type: message/external-body; access-type="anon-ftp";
Dave Love <fx@gnu.org>
parents:
diff changeset
1405 site="berzerk.com"; name="panacea.tar.gz"; directory="/pub/"
Dave Love <fx@gnu.org>
parents:
diff changeset
1406
Dave Love <fx@gnu.org>
parents:
diff changeset
1407 Content-Type: application/octet-stream
Dave Love <fx@gnu.org>
parents:
diff changeset
1408 Content-ID: <1623.777796162.1@@newt.com>
Dave Love <fx@gnu.org>
parents:
diff changeset
1409 Content-Description: Nonexistent ftp test file
Dave Love <fx@gnu.org>
parents:
diff changeset
1410
Dave Love <fx@gnu.org>
parents:
diff changeset
1411 ------- =_aaaaaaaaaa0
Dave Love <fx@gnu.org>
parents:
diff changeset
1412 Content-Type: audio/basic
Dave Love <fx@gnu.org>
parents:
diff changeset
1413 Content-ID: <1623.777796162.2@@newt.com>
Dave Love <fx@gnu.org>
parents:
diff changeset
1414 Content-Description: Test sound bite
Dave Love <fx@gnu.org>
parents:
diff changeset
1415 Content-Transfer-Encoding: base64
Dave Love <fx@gnu.org>
parents:
diff changeset
1416
Dave Love <fx@gnu.org>
parents:
diff changeset
1417 Q3JlYXRpdmUgVm9pY2UgRmlsZRoaAAoBKREBQh8AgwCAgH9/f35+fn59fX5+fn5+f39/f39/f3
Dave Love <fx@gnu.org>
parents:
diff changeset
1418 f4B/f39/f39/f39/f39/f39+f39+f39/f39/f4B/f39/fn5/f39/f3+Af39/f39/gH9/f39/fn
Dave Love <fx@gnu.org>
parents:
diff changeset
1419 -----@{draft@} (MH-Letter)--Top--------------------------------------
Dave Love <fx@gnu.org>
parents:
diff changeset
1420
Dave Love <fx@gnu.org>
parents:
diff changeset
1421 @end cartouche
Dave Love <fx@gnu.org>
parents:
diff changeset
1422 @i{mh-e @sc{mime} draft ready to send}
Dave Love <fx@gnu.org>
parents:
diff changeset
1423 @end group
Dave Love <fx@gnu.org>
parents:
diff changeset
1424 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
1425
Dave Love <fx@gnu.org>
parents:
diff changeset
1426 @findex @code{mh-revert-mhn-edit}
Dave Love <fx@gnu.org>
parents:
diff changeset
1427
Dave Love <fx@gnu.org>
parents:
diff changeset
1428 This action can be undone by running @kbd{C-c C-m C-u}
Dave Love <fx@gnu.org>
parents:
diff changeset
1429 (@code{mh-revert-mhn-edit}). It does this by reverting to a backup
Dave Love <fx@gnu.org>
parents:
diff changeset
1430 file. You are prompted to confirm this action, but you can avoid the
Dave Love <fx@gnu.org>
parents:
diff changeset
1431 confirmation by adding an argument (for example, @kbd{C-u C-c C-m C-u}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1432
Dave Love <fx@gnu.org>
parents:
diff changeset
1433 @node Sending Message, Killing Draft, Editing MIME, Draft Editing
Dave Love <fx@gnu.org>
parents:
diff changeset
1434 @subsection Sending a Message
Dave Love <fx@gnu.org>
parents:
diff changeset
1435
Dave Love <fx@gnu.org>
parents:
diff changeset
1436 @cindex sending mail
Dave Love <fx@gnu.org>
parents:
diff changeset
1437 @findex @code{mh-send-letter}
Dave Love <fx@gnu.org>
parents:
diff changeset
1438
Dave Love <fx@gnu.org>
parents:
diff changeset
1439 When you are all through editing a message, you send it with the
Dave Love <fx@gnu.org>
parents:
diff changeset
1440 @kbd{C-c C-c} (@code{mh-send-letter}) command. You can give an argument
Dave Love <fx@gnu.org>
parents:
diff changeset
1441 (as in @kbd{C-u C-c C-c}) to monitor the first stage of the delivery.
Dave Love <fx@gnu.org>
parents:
diff changeset
1442
Dave Love <fx@gnu.org>
parents:
diff changeset
1443 @node Killing Draft, , Sending Message, Draft Editing
Dave Love <fx@gnu.org>
parents:
diff changeset
1444 @subsection Killing the Draft
Dave Love <fx@gnu.org>
parents:
diff changeset
1445
Dave Love <fx@gnu.org>
parents:
diff changeset
1446 @cindex killing draft
Dave Love <fx@gnu.org>
parents:
diff changeset
1447 @findex @code{mh-fully-kill-draft}
Dave Love <fx@gnu.org>
parents:
diff changeset
1448
Dave Love <fx@gnu.org>
parents:
diff changeset
1449 If for some reason you are not happy with the draft, you can kill it
Dave Love <fx@gnu.org>
parents:
diff changeset
1450 instead with @kbd{C-c C-q} (@code{mh-fully-kill-draft}). Emacs then
Dave Love <fx@gnu.org>
parents:
diff changeset
1451 kills the draft buffer and deletes the draft message.
Dave Love <fx@gnu.org>
parents:
diff changeset
1452
Dave Love <fx@gnu.org>
parents:
diff changeset
1453 @node Moving Mail, Searching, Draft Editing, Using mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
1454 @section Moving Your Mail Around
Dave Love <fx@gnu.org>
parents:
diff changeset
1455
Dave Love <fx@gnu.org>
parents:
diff changeset
1456 @cindex processing mail
Dave Love <fx@gnu.org>
parents:
diff changeset
1457
Dave Love <fx@gnu.org>
parents:
diff changeset
1458 This section covers how messages and folders can be moved about or
Dave Love <fx@gnu.org>
parents:
diff changeset
1459 manipulated. Messages may be incorporated into your @file{+inbox},
Dave Love <fx@gnu.org>
parents:
diff changeset
1460 deleted, and refiled. Messages containing @code{shar} or
Dave Love <fx@gnu.org>
parents:
diff changeset
1461 @code{uuencode} output can be stored. Folders can be visited, sorted,
Dave Love <fx@gnu.org>
parents:
diff changeset
1462 packed, or deleted. Here's a list of the available commands to do these
Dave Love <fx@gnu.org>
parents:
diff changeset
1463 things:
Dave Love <fx@gnu.org>
parents:
diff changeset
1464
Dave Love <fx@gnu.org>
parents:
diff changeset
1465 @c Stephen thinks that ? should be documented here, since it also shows
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
1466 @c which folders a message will be refiled to. XXX
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1467
Dave Love <fx@gnu.org>
parents:
diff changeset
1468 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
1469 @item i
Dave Love <fx@gnu.org>
parents:
diff changeset
1470 Incorporate new mail into folder (@code{mh-inc-folder}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1471
Dave Love <fx@gnu.org>
parents:
diff changeset
1472 @item d
Dave Love <fx@gnu.org>
parents:
diff changeset
1473 Delete message (@code{mh-delete-msg}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1474
Dave Love <fx@gnu.org>
parents:
diff changeset
1475 @item C-d
Dave Love <fx@gnu.org>
parents:
diff changeset
1476 Delete message, don't move to next message (@code{mh-delete-msg-no-motion}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1477
Dave Love <fx@gnu.org>
parents:
diff changeset
1478 @item M-s
Dave Love <fx@gnu.org>
parents:
diff changeset
1479 Find messages that meet search criteria (@code{mh-search-folder}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1480
Dave Love <fx@gnu.org>
parents:
diff changeset
1481 @item o
Dave Love <fx@gnu.org>
parents:
diff changeset
1482 Output (refile) message to folder (@code{mh-refile-msg}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1483
Dave Love <fx@gnu.org>
parents:
diff changeset
1484 @item c
Dave Love <fx@gnu.org>
parents:
diff changeset
1485 Copy message to folder (@code{mh-copy-msg}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1486
Dave Love <fx@gnu.org>
parents:
diff changeset
1487 @item C-o
Dave Love <fx@gnu.org>
parents:
diff changeset
1488 Output (write) message to file (@code{mh-write-msg-to-file}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1489
Dave Love <fx@gnu.org>
parents:
diff changeset
1490 @item !
Dave Love <fx@gnu.org>
parents:
diff changeset
1491 Repeat last output command (@code{mh-refile-or-write-again}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1492
Dave Love <fx@gnu.org>
parents:
diff changeset
1493 @item l
Dave Love <fx@gnu.org>
parents:
diff changeset
1494 Print message with @code{lpr} (@code{mh-print-msg}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1495
Dave Love <fx@gnu.org>
parents:
diff changeset
1496 @item |
Dave Love <fx@gnu.org>
parents:
diff changeset
1497 Pipe message through shell command (@code{mh-pipe-msg}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1498
Dave Love <fx@gnu.org>
parents:
diff changeset
1499 @item M-n
Dave Love <fx@gnu.org>
parents:
diff changeset
1500 Unpack message created with @code{uudecode} or @code{shar}
Dave Love <fx@gnu.org>
parents:
diff changeset
1501 (@code{mh-store-msg}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1502
Dave Love <fx@gnu.org>
parents:
diff changeset
1503 @item M-l
Dave Love <fx@gnu.org>
parents:
diff changeset
1504 List all folders (@code{mh-list-folders}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1505
Dave Love <fx@gnu.org>
parents:
diff changeset
1506 @item M-f
Dave Love <fx@gnu.org>
parents:
diff changeset
1507 Visit folder (@code{mh-visit-folder}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1508
Dave Love <fx@gnu.org>
parents:
diff changeset
1509 @item M-r
Dave Love <fx@gnu.org>
parents:
diff changeset
1510 Regenerate scan lines (@code{mh-rescan-folder}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1511
Dave Love <fx@gnu.org>
parents:
diff changeset
1512 @item M-x mh-sort-folder
Dave Love <fx@gnu.org>
parents:
diff changeset
1513 Sort folder.
Dave Love <fx@gnu.org>
parents:
diff changeset
1514
Dave Love <fx@gnu.org>
parents:
diff changeset
1515 @item M-p
Dave Love <fx@gnu.org>
parents:
diff changeset
1516 Pack folder (@code{mh-pack-folder}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1517
Dave Love <fx@gnu.org>
parents:
diff changeset
1518 @item M-k
Dave Love <fx@gnu.org>
parents:
diff changeset
1519 Remove folder (@code{mh-kill-folder}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1520
Dave Love <fx@gnu.org>
parents:
diff changeset
1521 @item x
Dave Love <fx@gnu.org>
parents:
diff changeset
1522 Execute pending refiles and deletes (@code{mh-execute-commands}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1523
Dave Love <fx@gnu.org>
parents:
diff changeset
1524 @item u
Dave Love <fx@gnu.org>
parents:
diff changeset
1525 Undo pending refile or delete (@code{mh-undo}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1526
Dave Love <fx@gnu.org>
parents:
diff changeset
1527 @item M-u
Dave Love <fx@gnu.org>
parents:
diff changeset
1528 Undo all pending refiles and deletes (@code{mh-undo-folder}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1529
Dave Love <fx@gnu.org>
parents:
diff changeset
1530 @item q
Dave Love <fx@gnu.org>
parents:
diff changeset
1531 Quit (@code{mh-quit}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1532 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
1533
Dave Love <fx@gnu.org>
parents:
diff changeset
1534 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
1535 * Incorporating::
Dave Love <fx@gnu.org>
parents:
diff changeset
1536 * Deleting::
Dave Love <fx@gnu.org>
parents:
diff changeset
1537 * Organizing::
Dave Love <fx@gnu.org>
parents:
diff changeset
1538 * Printing::
Dave Love <fx@gnu.org>
parents:
diff changeset
1539 * Files and Pipes::
Dave Love <fx@gnu.org>
parents:
diff changeset
1540 * Finishing Up::
Dave Love <fx@gnu.org>
parents:
diff changeset
1541 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
1542
Dave Love <fx@gnu.org>
parents:
diff changeset
1543 @node Incorporating, Deleting, Moving Mail, Moving Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
1544 @subsection Incorporating Your Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
1545
Dave Love <fx@gnu.org>
parents:
diff changeset
1546 @cindex incorporating
Dave Love <fx@gnu.org>
parents:
diff changeset
1547 @findex @code{mh-inc-folder}
Dave Love <fx@gnu.org>
parents:
diff changeset
1548
Dave Love <fx@gnu.org>
parents:
diff changeset
1549 If at any time you receive new mail, incorporate the new mail into your
Dave Love <fx@gnu.org>
parents:
diff changeset
1550 @samp{+inbox} buffer with @kbd{i} (@code{mh-inc-folder}). Note that
Dave Love <fx@gnu.org>
parents:
diff changeset
1551 @kbd{i} will display the @samp{+inbox} buffer, even if there isn't any
Dave Love <fx@gnu.org>
parents:
diff changeset
1552 new mail. You can incorporate mail from any file into the current
Dave Love <fx@gnu.org>
parents:
diff changeset
1553 folder by specifying a prefix argument; you'll be prompted for the name
Dave Love <fx@gnu.org>
parents:
diff changeset
1554 of the file to use (for example, @kbd{C-u i ~/mbox @key{RET}}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1555
Dave Love <fx@gnu.org>
parents:
diff changeset
1556 @cindex Emacs, notification of new mail
Dave Love <fx@gnu.org>
parents:
diff changeset
1557 @cindex notification of new mail
Dave Love <fx@gnu.org>
parents:
diff changeset
1558 @cindex new mail
Dave Love <fx@gnu.org>
parents:
diff changeset
1559 @cindex @file{.emacs}
Dave Love <fx@gnu.org>
parents:
diff changeset
1560 @cindex files, @file{.emacs}
Dave Love <fx@gnu.org>
parents:
diff changeset
1561
Dave Love <fx@gnu.org>
parents:
diff changeset
1562 Emacs can notify you when you have new mail by displaying @samp{Mail} in
Dave Love <fx@gnu.org>
parents:
diff changeset
1563 the mode line. To enable this behavior, and to have a clock in the mode
Dave Love <fx@gnu.org>
parents:
diff changeset
1564 line besides, add the following to @file{~/.emacs}:
Dave Love <fx@gnu.org>
parents:
diff changeset
1565
Dave Love <fx@gnu.org>
parents:
diff changeset
1566 @findex @code{display-time}
Dave Love <fx@gnu.org>
parents:
diff changeset
1567
Dave Love <fx@gnu.org>
parents:
diff changeset
1568 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
1569 (display-time)
Dave Love <fx@gnu.org>
parents:
diff changeset
1570 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
1571
Dave Love <fx@gnu.org>
parents:
diff changeset
1572 @node Deleting, Organizing, Incorporating, Moving Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
1573 @subsection Deleting Your Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
1574
Dave Love <fx@gnu.org>
parents:
diff changeset
1575 @cindex deleting
Dave Love <fx@gnu.org>
parents:
diff changeset
1576 @findex @code{mh-delete-msg}
Dave Love <fx@gnu.org>
parents:
diff changeset
1577 @findex @code{mh-delete-msg-no-motion}
Dave Love <fx@gnu.org>
parents:
diff changeset
1578
Dave Love <fx@gnu.org>
parents:
diff changeset
1579 To mark a message for deletion, use the @kbd{d} (@code{mh-delete-msg})
Dave Love <fx@gnu.org>
parents:
diff changeset
1580 command. A @samp{D} is placed by the message in the scan window, and
Dave Love <fx@gnu.org>
parents:
diff changeset
1581 the next message is displayed. If the previous command had been
Dave Love <fx@gnu.org>
parents:
diff changeset
1582 @kbd{p}, then the next message displayed is the message previous to the
Dave Love <fx@gnu.org>
parents:
diff changeset
1583 message just deleted. If you specify a prefix argument, you will be
Dave Love <fx@gnu.org>
parents:
diff changeset
1584 prompted for a sequence (@pxref{Sequences}) to delete (for example,
Dave Love <fx@gnu.org>
parents:
diff changeset
1585 @kbd{C-u d frombob RET}). The @kbd{x} command actually carries out the
Dave Love <fx@gnu.org>
parents:
diff changeset
1586 deletion (@pxref{Finishing Up}). @kbd{C-d}
Dave Love <fx@gnu.org>
parents:
diff changeset
1587 (@code{mh-delete-msg-no-motion}) marks the message for deletion but
Dave Love <fx@gnu.org>
parents:
diff changeset
1588 leaves the cursor at the current message in case you wish to perform
Dave Love <fx@gnu.org>
parents:
diff changeset
1589 other operations on the message.
Dave Love <fx@gnu.org>
parents:
diff changeset
1590
Dave Love <fx@gnu.org>
parents:
diff changeset
1591 @node Organizing, Printing, Deleting, Moving Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
1592 @subsection Organizing Your Mail with Folders
Dave Love <fx@gnu.org>
parents:
diff changeset
1593
Dave Love <fx@gnu.org>
parents:
diff changeset
1594 @cindex using folders
Dave Love <fx@gnu.org>
parents:
diff changeset
1595 @cindex @code{folder}
Dave Love <fx@gnu.org>
parents:
diff changeset
1596 @cindex MH commands, @code{folder}
Dave Love <fx@gnu.org>
parents:
diff changeset
1597 @cindex @code{refile}
Dave Love <fx@gnu.org>
parents:
diff changeset
1598 @cindex MH commands, @code{refile}
Dave Love <fx@gnu.org>
parents:
diff changeset
1599 @findex @code{mh-refile-msg}
Dave Love <fx@gnu.org>
parents:
diff changeset
1600
Dave Love <fx@gnu.org>
parents:
diff changeset
1601 mh-e has analogies for each of the MH @code{folder} and @code{refile}
Dave Love <fx@gnu.org>
parents:
diff changeset
1602 commands. To refile a message in another folder, use the @kbd{o}
Dave Love <fx@gnu.org>
parents:
diff changeset
1603 (@code{mh-refile-msg}) (mnemonic: ``output'') command. You are prompted
Dave Love <fx@gnu.org>
parents:
diff changeset
1604 for the folder name.
Dave Love <fx@gnu.org>
parents:
diff changeset
1605
Dave Love <fx@gnu.org>
parents:
diff changeset
1606 @findex @code{mh-refile-or-write-again}
Dave Love <fx@gnu.org>
parents:
diff changeset
1607
Dave Love <fx@gnu.org>
parents:
diff changeset
1608 If you are refiling several messages into the same folder, you can use
Dave Love <fx@gnu.org>
parents:
diff changeset
1609 the @kbd{!} (@code{mh-refile-or-write-again}) command to repeat the last
Dave Love <fx@gnu.org>
parents:
diff changeset
1610 refile or write (see the description of @kbd{C-o} in @ref{Files and
Dave Love <fx@gnu.org>
parents:
diff changeset
1611 Pipes}). Or, place the messages into a sequence (@ref{Sequences}) and
Dave Love <fx@gnu.org>
parents:
diff changeset
1612 specify a prefix argument to @kbd{o}, in which case you'll be prompted
Dave Love <fx@gnu.org>
parents:
diff changeset
1613 for the name of the sequence (for example, @kbd{C-u o search RET}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1614
Dave Love <fx@gnu.org>
parents:
diff changeset
1615 @findex @code{mh-copy-msg}
Dave Love <fx@gnu.org>
parents:
diff changeset
1616
Dave Love <fx@gnu.org>
parents:
diff changeset
1617 If you wish to copy a message to another folder, you can use the @kbd{c}
Dave Love <fx@gnu.org>
parents:
diff changeset
1618 (@code{mh-copy-msg}) command (see the @code{-link} argument to
Dave Love <fx@gnu.org>
parents:
diff changeset
1619 @code{refile}(1)). You are prompted for a folder, and you can specify a
Dave Love <fx@gnu.org>
parents:
diff changeset
1620 prefix argument if you want to copy a sequence into another folder. In
Dave Love <fx@gnu.org>
parents:
diff changeset
1621 this case, you are then prompted for the sequence. Note that unlike the
Dave Love <fx@gnu.org>
parents:
diff changeset
1622 @kbd{o} command, the copy takes place immediately. The original copy
Dave Love <fx@gnu.org>
parents:
diff changeset
1623 remains in the current folder.
Dave Love <fx@gnu.org>
parents:
diff changeset
1624
Dave Love <fx@gnu.org>
parents:
diff changeset
1625 @findex @code{mh-visit-folder}
Dave Love <fx@gnu.org>
parents:
diff changeset
1626
Dave Love <fx@gnu.org>
parents:
diff changeset
1627 When you want to read the messages that you have refiled into folders,
Dave Love <fx@gnu.org>
parents:
diff changeset
1628 use the @kbd{M-f} (@code{mh-visit-folder}) command to visit the folder.
Dave Love <fx@gnu.org>
parents:
diff changeset
1629 You are prompted for the folder name.
Dave Love <fx@gnu.org>
parents:
diff changeset
1630
Dave Love <fx@gnu.org>
parents:
diff changeset
1631 @findex @code{mh-list-folders}
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
1632 @findex @code{mh-kill-folder}
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1633 @findex @code{mh-visit-folder}
Dave Love <fx@gnu.org>
parents:
diff changeset
1634 @findex @code{mh-sort-folder}
Dave Love <fx@gnu.org>
parents:
diff changeset
1635 @findex @code{mh-pack-folder}
Dave Love <fx@gnu.org>
parents:
diff changeset
1636 @findex @code{mh-rescan-folder}
Dave Love <fx@gnu.org>
parents:
diff changeset
1637
Dave Love <fx@gnu.org>
parents:
diff changeset
1638 Other commands you can perform on folders include: @kbd{M-l}
Dave Love <fx@gnu.org>
parents:
diff changeset
1639 (@code{mh-list-folders}), to list all the folders in your mail
Dave Love <fx@gnu.org>
parents:
diff changeset
1640 directory; @kbd{M-k} (@code{mh-kill-folder}), to remove a folder;
Dave Love <fx@gnu.org>
parents:
diff changeset
1641 @kbd{M-x mh-sort-folder}, to sort the messages by date (see
Dave Love <fx@gnu.org>
parents:
diff changeset
1642 @code{sortm}(1) to see how to sort by other criteria); @kbd{M-p}
Dave Love <fx@gnu.org>
parents:
diff changeset
1643 (@code{mh-pack-folder}), to pack a folder, removing gaps from the
Dave Love <fx@gnu.org>
parents:
diff changeset
1644 numbering sequence; and @kbd{M-r} (@code{mh-rescan-folder}), to rescan
Dave Love <fx@gnu.org>
parents:
diff changeset
1645 the folder, which is useful to grab all messages in your @file{+inbox}
Dave Love <fx@gnu.org>
parents:
diff changeset
1646 after processing your new mail for the first time. If you don't want to
Dave Love <fx@gnu.org>
parents:
diff changeset
1647 rescan the entire folder, give @kbd{M-r} or @kbd{M-p} a prefix argument
Dave Love <fx@gnu.org>
parents:
diff changeset
1648 and you'll be prompted for a range of messages to display (for instance,
Dave Love <fx@gnu.org>
parents:
diff changeset
1649 @kbd{C-u M-r last:50 RET}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1650
Dave Love <fx@gnu.org>
parents:
diff changeset
1651 @node Printing, Files and Pipes, Organizing, Moving Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
1652 @subsection Printing Your Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
1653
Dave Love <fx@gnu.org>
parents:
diff changeset
1654 @cindex printing
Dave Love <fx@gnu.org>
parents:
diff changeset
1655 @cindex @code{mhl}
Dave Love <fx@gnu.org>
parents:
diff changeset
1656 @cindex MH commands, @code{mhl}
Dave Love <fx@gnu.org>
parents:
diff changeset
1657 @cindex @code{lpr}
Dave Love <fx@gnu.org>
parents:
diff changeset
1658 @cindex Unix commands, @code{lpr}
Dave Love <fx@gnu.org>
parents:
diff changeset
1659 @findex @code{mh-print-msg}
Dave Love <fx@gnu.org>
parents:
diff changeset
1660
Dave Love <fx@gnu.org>
parents:
diff changeset
1661 Printing mail is simple. Enter @kbd{l} (@code{mh-print-msg}) (for
Dave Love <fx@gnu.org>
parents:
diff changeset
1662 @i{l}ine printer or @i{l}pr). The message is formatted with @code{mhl}
Dave Love <fx@gnu.org>
parents:
diff changeset
1663 and printed with the @code{lpr} command. You can print all the messages
Dave Love <fx@gnu.org>
parents:
diff changeset
1664 in a sequence by specifying a prefix argument, in which case you are
Dave Love <fx@gnu.org>
parents:
diff changeset
1665 prompted for the name of the sequence (as in @kbd{C-u l frombob RET}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1666
Dave Love <fx@gnu.org>
parents:
diff changeset
1667 @node Files and Pipes, Finishing Up, Printing, Moving Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
1668 @subsection Files and Pipes
Dave Love <fx@gnu.org>
parents:
diff changeset
1669
Dave Love <fx@gnu.org>
parents:
diff changeset
1670 @cindex using files
Dave Love <fx@gnu.org>
parents:
diff changeset
1671 @cindex using pipes
Dave Love <fx@gnu.org>
parents:
diff changeset
1672 @findex @code{mh-write-msg-to-file}
Dave Love <fx@gnu.org>
parents:
diff changeset
1673
Dave Love <fx@gnu.org>
parents:
diff changeset
1674 mh-e does offer a couple of commands that are not a part of MH@. The
Dave Love <fx@gnu.org>
parents:
diff changeset
1675 first one, @kbd{C-o} (@code{mh-write-msg-to-file}), writes a message to
Dave Love <fx@gnu.org>
parents:
diff changeset
1676 a file (think of the @kbd{o} as in "output"). You are prompted for the
Dave Love <fx@gnu.org>
parents:
diff changeset
1677 filename. If the file already exists, the message is appended to it.
Dave Love <fx@gnu.org>
parents:
diff changeset
1678 You can also write the message to the file without the header by
Dave Love <fx@gnu.org>
parents:
diff changeset
1679 specifying a prefix argument (such as @kbd{C-u C-o /tmp/foobar RET}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1680 Subsequent writes to the same file can be made with the @kbd{!}
Dave Love <fx@gnu.org>
parents:
diff changeset
1681 command.
Dave Love <fx@gnu.org>
parents:
diff changeset
1682
Dave Love <fx@gnu.org>
parents:
diff changeset
1683 @findex @code{mh-pipe-msg}
Dave Love <fx@gnu.org>
parents:
diff changeset
1684
Dave Love <fx@gnu.org>
parents:
diff changeset
1685 You can also pipe the message through a Unix shell command with the
Dave Love <fx@gnu.org>
parents:
diff changeset
1686 @kbd{|} (@code{mh-pipe-msg}) command. You are prompted for the
Dave Love <fx@gnu.org>
parents:
diff changeset
1687 Unix command through which you wish to run your message. If you
Dave Love <fx@gnu.org>
parents:
diff changeset
1688 give an argument to this command, the message header is included in the
Dave Love <fx@gnu.org>
parents:
diff changeset
1689 text passed to the command (the contrived example @kbd{C-u | lpr}
Dave Love <fx@gnu.org>
parents:
diff changeset
1690 would be done with the @kbd{l} command instead).
Dave Love <fx@gnu.org>
parents:
diff changeset
1691
Dave Love <fx@gnu.org>
parents:
diff changeset
1692 @cindex @code{shar}
Dave Love <fx@gnu.org>
parents:
diff changeset
1693 @cindex Unix commands, @code{shar}
Dave Love <fx@gnu.org>
parents:
diff changeset
1694 @cindex @code{uuencode}
Dave Love <fx@gnu.org>
parents:
diff changeset
1695 @cindex Unix commands, @code{uuencode}
Dave Love <fx@gnu.org>
parents:
diff changeset
1696 @findex @code{mh-store-msg}
Dave Love <fx@gnu.org>
parents:
diff changeset
1697
Dave Love <fx@gnu.org>
parents:
diff changeset
1698 If the message is a shell archive @code{shar} or has been run through
Dave Love <fx@gnu.org>
parents:
diff changeset
1699 @code{uuencode} use @kbd{M-n} (@code{mh-store-msg}) to extract the body
Dave Love <fx@gnu.org>
parents:
diff changeset
1700 of the message. The default directory for extraction is the current
Dave Love <fx@gnu.org>
parents:
diff changeset
1701 directory, and you have a chance to specify a different extraction
Dave Love <fx@gnu.org>
parents:
diff changeset
1702 directory. The next time you use this command, the default directory is
Dave Love <fx@gnu.org>
parents:
diff changeset
1703 the last directory you used.
Dave Love <fx@gnu.org>
parents:
diff changeset
1704
Dave Love <fx@gnu.org>
parents:
diff changeset
1705 @node Finishing Up, , Files and Pipes, Moving Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
1706 @subsection Finishing Up
Dave Love <fx@gnu.org>
parents:
diff changeset
1707
Dave Love <fx@gnu.org>
parents:
diff changeset
1708 @cindex expunging refiles and deletes
Dave Love <fx@gnu.org>
parents:
diff changeset
1709 @findex @code{mh-undo}
Dave Love <fx@gnu.org>
parents:
diff changeset
1710 @findex @code{mh-undo-folder}
Dave Love <fx@gnu.org>
parents:
diff changeset
1711
Dave Love <fx@gnu.org>
parents:
diff changeset
1712 If you've deleted a message or refiled it, but changed your mind, you
Dave Love <fx@gnu.org>
parents:
diff changeset
1713 can cancel the action before you've executed it. Use @kbd{u}
Dave Love <fx@gnu.org>
parents:
diff changeset
1714 (@code{mh-undo}) to undo a refile on or deletion of a single message.
Dave Love <fx@gnu.org>
parents:
diff changeset
1715 You can also undo refiles and deletes for messages that belong to a
Dave Love <fx@gnu.org>
parents:
diff changeset
1716 given sequence by specifying a prefix argument. You'll be prompted for
Dave Love <fx@gnu.org>
parents:
diff changeset
1717 the name of the sequence (as in @kbd{C-u u frombob RET}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1718 Alternatively, you can use @kbd{M-u} (@code{mh-undo-folder}) to undo all
Dave Love <fx@gnu.org>
parents:
diff changeset
1719 refiles or deletes in the current folder.
Dave Love <fx@gnu.org>
parents:
diff changeset
1720
Dave Love <fx@gnu.org>
parents:
diff changeset
1721 @findex @code{mh-execute-commands}
Dave Love <fx@gnu.org>
parents:
diff changeset
1722
Dave Love <fx@gnu.org>
parents:
diff changeset
1723 If you've marked messages to be deleted or refiled and you want to go
Dave Love <fx@gnu.org>
parents:
diff changeset
1724 ahead and delete or refile the messages, use @kbd{x}
Dave Love <fx@gnu.org>
parents:
diff changeset
1725 (@code{mh-execute-commands}). Many mh-e commands that may affect the
Dave Love <fx@gnu.org>
parents:
diff changeset
1726 numbering of the messages (such as @kbd{M-r} or @kbd{M-p}) will ask if you
Dave Love <fx@gnu.org>
parents:
diff changeset
1727 want to process refiles or deletes first and then either run @kbd{x} for
Dave Love <fx@gnu.org>
parents:
diff changeset
1728 you or undo the pending refiles and deletes, which are lost.
Dave Love <fx@gnu.org>
parents:
diff changeset
1729
Dave Love <fx@gnu.org>
parents:
diff changeset
1730 @findex @code{mh-rmail}
Dave Love <fx@gnu.org>
parents:
diff changeset
1731 @findex @code{mh-quit}
Dave Love <fx@gnu.org>
parents:
diff changeset
1732
Dave Love <fx@gnu.org>
parents:
diff changeset
1733 When you want to quit using mh-e and go back to editing, you can use the
Dave Love <fx@gnu.org>
parents:
diff changeset
1734 @kbd{q} (@code{mh-quit}) command. This buries the buffers of the
Dave Love <fx@gnu.org>
parents:
diff changeset
1735 current mh-e folder and restores the buffers that were present when you
Dave Love <fx@gnu.org>
parents:
diff changeset
1736 first ran @kbd{M-x mh-rmail}. You can later restore your mh-e session
Dave Love <fx@gnu.org>
parents:
diff changeset
1737 by selecting the @samp{+inbox} buffer or by running @kbd{M-x mh-rmail}
Dave Love <fx@gnu.org>
parents:
diff changeset
1738 again.
Dave Love <fx@gnu.org>
parents:
diff changeset
1739
Dave Love <fx@gnu.org>
parents:
diff changeset
1740 @node Searching, Sequences, Moving Mail, Using mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
1741 @section Searching Through Messages
Dave Love <fx@gnu.org>
parents:
diff changeset
1742
Dave Love <fx@gnu.org>
parents:
diff changeset
1743 @cindex searching
Dave Love <fx@gnu.org>
parents:
diff changeset
1744 @findex @code{mh-search-folder}
Dave Love <fx@gnu.org>
parents:
diff changeset
1745
Dave Love <fx@gnu.org>
parents:
diff changeset
1746 You can search a folder for messages to or from a particular person or
Dave Love <fx@gnu.org>
parents:
diff changeset
1747 about a particular subject. In fact, you can also search for messages
Dave Love <fx@gnu.org>
parents:
diff changeset
1748 containing selected strings in any arbitrary header field or any string
Dave Love <fx@gnu.org>
parents:
diff changeset
1749 found within the messages. Use the @kbd{M-s} (@code{mh-search-folder})
Dave Love <fx@gnu.org>
parents:
diff changeset
1750 command. You are first prompted for the name of the folder to search
Dave Love <fx@gnu.org>
parents:
diff changeset
1751 and then placed in the following buffer in MH-Pick mode:
Dave Love <fx@gnu.org>
parents:
diff changeset
1752
Dave Love <fx@gnu.org>
parents:
diff changeset
1753 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
1754 @group
Dave Love <fx@gnu.org>
parents:
diff changeset
1755 @cartouche
Dave Love <fx@gnu.org>
parents:
diff changeset
1756 From: #
Dave Love <fx@gnu.org>
parents:
diff changeset
1757 To:
Dave Love <fx@gnu.org>
parents:
diff changeset
1758 Cc:
Dave Love <fx@gnu.org>
parents:
diff changeset
1759 Date:
Dave Love <fx@gnu.org>
parents:
diff changeset
1760 Subject:
Dave Love <fx@gnu.org>
parents:
diff changeset
1761 --------
Dave Love <fx@gnu.org>
parents:
diff changeset
1762
Dave Love <fx@gnu.org>
parents:
diff changeset
1763
Dave Love <fx@gnu.org>
parents:
diff changeset
1764
Dave Love <fx@gnu.org>
parents:
diff changeset
1765
Dave Love <fx@gnu.org>
parents:
diff changeset
1766
Dave Love <fx@gnu.org>
parents:
diff changeset
1767
Dave Love <fx@gnu.org>
parents:
diff changeset
1768
Dave Love <fx@gnu.org>
parents:
diff changeset
1769
Dave Love <fx@gnu.org>
parents:
diff changeset
1770
37802
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
1771 --**-Emacs: pick-pattern (MH-Pick)------All--------------------------
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1772
Dave Love <fx@gnu.org>
parents:
diff changeset
1773 @end cartouche
Dave Love <fx@gnu.org>
parents:
diff changeset
1774 @i{Pick window}
Dave Love <fx@gnu.org>
parents:
diff changeset
1775 @end group
Dave Love <fx@gnu.org>
parents:
diff changeset
1776 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
1777
Dave Love <fx@gnu.org>
parents:
diff changeset
1778 @cindex @code{pick}
Dave Love <fx@gnu.org>
parents:
diff changeset
1779 @cindex MH commands, @code{pick}
Dave Love <fx@gnu.org>
parents:
diff changeset
1780
Dave Love <fx@gnu.org>
parents:
diff changeset
1781 Edit this template by entering your search criteria in an appropriate
Dave Love <fx@gnu.org>
parents:
diff changeset
1782 header field that is already there, or create a new field yourself. If
Dave Love <fx@gnu.org>
parents:
diff changeset
1783 the string you're looking for could be anywhere in a message, then place
Dave Love <fx@gnu.org>
parents:
diff changeset
1784 the string underneath the row of dashes. The @kbd{M-s} command uses the
Dave Love <fx@gnu.org>
parents:
diff changeset
1785 MH command @code{pick} to do the real work, so read @code{pick}(1) to
Dave Love <fx@gnu.org>
parents:
diff changeset
1786 find out more about how to enter the criteria.
Dave Love <fx@gnu.org>
parents:
diff changeset
1787
Dave Love <fx@gnu.org>
parents:
diff changeset
1788 There are no semantics associated with the search criteria---they are
Dave Love <fx@gnu.org>
parents:
diff changeset
1789 simply treated as strings. Case is ignored when all lowercase is used,
Dave Love <fx@gnu.org>
parents:
diff changeset
1790 and regular expressions (a la @code{ed}) are available. It is all right
Dave Love <fx@gnu.org>
parents:
diff changeset
1791 to specify several search criteria. What happens then is that a logical
Dave Love <fx@gnu.org>
parents:
diff changeset
1792 @emph{and} of the various fields is performed. If you prefer a logical
Dave Love <fx@gnu.org>
parents:
diff changeset
1793 @emph{or} operation, run @kbd{M-s} multiple times.
Dave Love <fx@gnu.org>
parents:
diff changeset
1794
Dave Love <fx@gnu.org>
parents:
diff changeset
1795 As an example, let's say that we want to find messages from Ginnean
Dave Love <fx@gnu.org>
parents:
diff changeset
1796 about horseback riding in the Kosciusko National Park (Australia) during
Dave Love <fx@gnu.org>
parents:
diff changeset
1797 January, 1994. Normally we would start with a broad search and narrow
Dave Love <fx@gnu.org>
parents:
diff changeset
1798 it down if necessary to produce a manageable amount of data, but we'll
Dave Love <fx@gnu.org>
parents:
diff changeset
1799 cut to the chase and create a fairly restrictive set of criteria as
Dave Love <fx@gnu.org>
parents:
diff changeset
1800 follows:
Dave Love <fx@gnu.org>
parents:
diff changeset
1801
Dave Love <fx@gnu.org>
parents:
diff changeset
1802 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
1803 @group
Dave Love <fx@gnu.org>
parents:
diff changeset
1804 From: ginnean
Dave Love <fx@gnu.org>
parents:
diff changeset
1805 To:
Dave Love <fx@gnu.org>
parents:
diff changeset
1806 Cc:
Dave Love <fx@gnu.org>
parents:
diff changeset
1807 Date: Jan 1994
Dave Love <fx@gnu.org>
parents:
diff changeset
1808 Subject: horse.*kosciusko
Dave Love <fx@gnu.org>
parents:
diff changeset
1809 --------
Dave Love <fx@gnu.org>
parents:
diff changeset
1810 @end group
Dave Love <fx@gnu.org>
parents:
diff changeset
1811 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
1812
Dave Love <fx@gnu.org>
parents:
diff changeset
1813 @findex @code{mh-to-field}
Dave Love <fx@gnu.org>
parents:
diff changeset
1814
Dave Love <fx@gnu.org>
parents:
diff changeset
1815 As with MH-Letter mode, MH-Pick provides commands like
Dave Love <fx@gnu.org>
parents:
diff changeset
1816 @kbd{C-c C-f C-t} to help you fill in the blanks.
Dave Love <fx@gnu.org>
parents:
diff changeset
1817
Dave Love <fx@gnu.org>
parents:
diff changeset
1818 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
1819 @item C-c C-f C-t
Dave Love <fx@gnu.org>
parents:
diff changeset
1820 Move to @samp{To:} header field (@code{mh-to-field}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1821
Dave Love <fx@gnu.org>
parents:
diff changeset
1822 @item C-c C-f C-c
Dave Love <fx@gnu.org>
parents:
diff changeset
1823 Move to @samp{cc:} header field (@code{mh-to-field}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1824
Dave Love <fx@gnu.org>
parents:
diff changeset
1825 @item C-c C-f C-s
Dave Love <fx@gnu.org>
parents:
diff changeset
1826 Move to @samp{Subject:} header field (@code{mh-to-field}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1827
Dave Love <fx@gnu.org>
parents:
diff changeset
1828 @item C-c C-f C-f
Dave Love <fx@gnu.org>
parents:
diff changeset
1829 Move to @samp{From:} header field (@code{mh-to-field}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1830
Dave Love <fx@gnu.org>
parents:
diff changeset
1831 @item C-c C-f C-b
Dave Love <fx@gnu.org>
parents:
diff changeset
1832 Move to @samp{Bcc:} header field (@code{mh-to-field}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1833
Dave Love <fx@gnu.org>
parents:
diff changeset
1834 @item C-c C-f C-f
Dave Love <fx@gnu.org>
parents:
diff changeset
1835 Move to @samp{Fcc:} header field (@code{mh-to-field}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1836
Dave Love <fx@gnu.org>
parents:
diff changeset
1837 @item C-c C-f C-d
Dave Love <fx@gnu.org>
parents:
diff changeset
1838 Move to @samp{Dcc:} header field (@code{mh-to-field}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1839
Dave Love <fx@gnu.org>
parents:
diff changeset
1840 @item C-c C-c
Dave Love <fx@gnu.org>
parents:
diff changeset
1841 Execute the search (@code{mh-do-pick-search}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1842 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
1843
Dave Love <fx@gnu.org>
parents:
diff changeset
1844 @findex @code{mh-do-pick-search}
Dave Love <fx@gnu.org>
parents:
diff changeset
1845
Dave Love <fx@gnu.org>
parents:
diff changeset
1846 To perform the search, type @kbd{C-c C-c} (@code{mh-do-pick-search}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1847 The selected messages are placed in the @i{search} sequence, which you
Dave Love <fx@gnu.org>
parents:
diff changeset
1848 can use later in forwarding (@pxref{Forwarding}), printing
Dave Love <fx@gnu.org>
parents:
diff changeset
1849 (@pxref{Printing}), or narrowing your field of view (@pxref{Sequences}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1850 Subsequent searches are appended to the @i{search} sequence. If,
Dave Love <fx@gnu.org>
parents:
diff changeset
1851 however, you wish to start with a clean slate, first delete the
Dave Love <fx@gnu.org>
parents:
diff changeset
1852 @i{search} sequence (how to do this is discussed in @ref{Sequences}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1853
Dave Love <fx@gnu.org>
parents:
diff changeset
1854 @cindex MH-Folder mode
Dave Love <fx@gnu.org>
parents:
diff changeset
1855 @cindex modes, MH-Folder
Dave Love <fx@gnu.org>
parents:
diff changeset
1856
Dave Love <fx@gnu.org>
parents:
diff changeset
1857 If you're searching in a folder that is already displayed in a
Dave Love <fx@gnu.org>
parents:
diff changeset
1858 MH-Folder buffer, only those messages contained in the buffer are
Dave Love <fx@gnu.org>
parents:
diff changeset
1859 used for the search. Therefore, if you want to search in all messages,
Dave Love <fx@gnu.org>
parents:
diff changeset
1860 first kill the folder's buffer with @kbd{C-x k} or scan the entire
Dave Love <fx@gnu.org>
parents:
diff changeset
1861 folder with @kbd{M-r}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1862
Dave Love <fx@gnu.org>
parents:
diff changeset
1863 @node Sequences, Miscellaneous, Searching, Using mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
1864 @section Using Sequences
Dave Love <fx@gnu.org>
parents:
diff changeset
1865
Dave Love <fx@gnu.org>
parents:
diff changeset
1866 @cindex sequences
Dave Love <fx@gnu.org>
parents:
diff changeset
1867
Dave Love <fx@gnu.org>
parents:
diff changeset
1868 For the whole scoop on MH sequences, refer to @code{mh-sequence}(5). As
Dave Love <fx@gnu.org>
parents:
diff changeset
1869 you've read, several of the mh-e commands can operate on a sequence,
Dave Love <fx@gnu.org>
parents:
diff changeset
1870 which is a shorthand for a range or group of messages. For example, you
Dave Love <fx@gnu.org>
parents:
diff changeset
1871 might want to forward several messages to a friend or colleague. Here's
Dave Love <fx@gnu.org>
parents:
diff changeset
1872 how to manipulate sequences.
Dave Love <fx@gnu.org>
parents:
diff changeset
1873
Dave Love <fx@gnu.org>
parents:
diff changeset
1874 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
1875 @item %
Dave Love <fx@gnu.org>
parents:
diff changeset
1876 Put message in a sequence (@code{mh-put-msg-in-seq}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1877
Dave Love <fx@gnu.org>
parents:
diff changeset
1878 @item ?
Dave Love <fx@gnu.org>
parents:
diff changeset
1879 Display sequences that message belongs to (@code{mh-msg-is-in-seq}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1880
Dave Love <fx@gnu.org>
parents:
diff changeset
1881 @item M-q
Dave Love <fx@gnu.org>
parents:
diff changeset
1882 List all sequences in folder (@code{mh-list-sequences}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1883
Dave Love <fx@gnu.org>
parents:
diff changeset
1884 @item M-%
Dave Love <fx@gnu.org>
parents:
diff changeset
1885 Remove message from sequence (@code{mh-delete-msg-from-seq}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1886
Dave Love <fx@gnu.org>
parents:
diff changeset
1887 @item M-#
Dave Love <fx@gnu.org>
parents:
diff changeset
1888 Delete sequence (@code{mh-delete-seq}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1889
Dave Love <fx@gnu.org>
parents:
diff changeset
1890 @item C-x n
Dave Love <fx@gnu.org>
parents:
diff changeset
1891 Restrict display to messages in sequence (@code{mh-narrow-to-seq}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1892
Dave Love <fx@gnu.org>
parents:
diff changeset
1893 @item C-x w
Dave Love <fx@gnu.org>
parents:
diff changeset
1894 Remove restriction; display all messages (@code{mh-widen}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1895
Dave Love <fx@gnu.org>
parents:
diff changeset
1896 @item M-x mh-update-sequences
Dave Love <fx@gnu.org>
parents:
diff changeset
1897 Push mh-e's state out to MH@.
Dave Love <fx@gnu.org>
parents:
diff changeset
1898 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
1899
Dave Love <fx@gnu.org>
parents:
diff changeset
1900 @cindex @code{pick}
Dave Love <fx@gnu.org>
parents:
diff changeset
1901 @cindex MH commands, @code{pick}
Dave Love <fx@gnu.org>
parents:
diff changeset
1902 @findex @code{mh-put-msg-in-seq}
Dave Love <fx@gnu.org>
parents:
diff changeset
1903
Dave Love <fx@gnu.org>
parents:
diff changeset
1904 To place a message in a sequence, use @kbd{%} (@code{mh-put-msg-in-seq})
Dave Love <fx@gnu.org>
parents:
diff changeset
1905 to do it manually, or use the MH command @code{pick} or the mh-e version
Dave Love <fx@gnu.org>
parents:
diff changeset
1906 of @code{pick} (@ref{Searching}) which create a sequence automatically.
Dave Love <fx@gnu.org>
parents:
diff changeset
1907 Give @kbd{%} a prefix argument and you can add all the messages in one
Dave Love <fx@gnu.org>
parents:
diff changeset
1908 sequence to another sequence (for example, @kbd{C-u % SourceSequence
Dave Love <fx@gnu.org>
parents:
diff changeset
1909 RET}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1910
Dave Love <fx@gnu.org>
parents:
diff changeset
1911 @cindex MH-Folder mode
Dave Love <fx@gnu.org>
parents:
diff changeset
1912 @cindex modes, MH-Folder
Dave Love <fx@gnu.org>
parents:
diff changeset
1913 @findex @code{mh-narrow-to-seq}
Dave Love <fx@gnu.org>
parents:
diff changeset
1914 @findex @code{mh-widen}
Dave Love <fx@gnu.org>
parents:
diff changeset
1915
Dave Love <fx@gnu.org>
parents:
diff changeset
1916 Once you've placed some messages in a sequence, you may wish to narrow
Dave Love <fx@gnu.org>
parents:
diff changeset
1917 the field of view to just those messages in the sequence you've created.
Dave Love <fx@gnu.org>
parents:
diff changeset
1918 To do this, use @kbd{C-x n} (@code{mh-narrow-to-seq}). You are prompted
Dave Love <fx@gnu.org>
parents:
diff changeset
1919 for the name of the sequence. What this does is show only those
Dave Love <fx@gnu.org>
parents:
diff changeset
1920 messages that are in the selected sequence in the MH-Folder buffer. In
Dave Love <fx@gnu.org>
parents:
diff changeset
1921 addition, it limits further mh-e searches to just those messages. When
Dave Love <fx@gnu.org>
parents:
diff changeset
1922 you want to widen the view to all your messages again, use @kbd{C-x w}
Dave Love <fx@gnu.org>
parents:
diff changeset
1923 (@code{mh-widen}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1924
Dave Love <fx@gnu.org>
parents:
diff changeset
1925 @findex @code{mh-msg-is-in-seq}
Dave Love <fx@gnu.org>
parents:
diff changeset
1926 @findex @code{mh-list-sequences}
Dave Love <fx@gnu.org>
parents:
diff changeset
1927
Dave Love <fx@gnu.org>
parents:
diff changeset
1928 You can see which sequences a message is in with the @kbd{?}
Dave Love <fx@gnu.org>
parents:
diff changeset
1929 (@code{mh-msg-is-in-seq}) command.
Dave Love <fx@gnu.org>
parents:
diff changeset
1930 @c Doesn't work:
Dave Love <fx@gnu.org>
parents:
diff changeset
1931 @c use a prefix argument to query a
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
1932 @c message other than the current one (as in @kbd{C-u ? 42 RET}). XXX
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1933 Or, you can list all sequences in a selected folder (default is current
Dave Love <fx@gnu.org>
parents:
diff changeset
1934 folder) with @kbd{M-q} (@code{mh-list-sequences}).
Dave Love <fx@gnu.org>
parents:
diff changeset
1935
Dave Love <fx@gnu.org>
parents:
diff changeset
1936 @findex @code{mh-delete-msg-from-seq}
Dave Love <fx@gnu.org>
parents:
diff changeset
1937 @findex @code{mh-delete-seq}
Dave Love <fx@gnu.org>
parents:
diff changeset
1938
Dave Love <fx@gnu.org>
parents:
diff changeset
1939 If you want to remove a message from a sequence, use @kbd{M-%}
Dave Love <fx@gnu.org>
parents:
diff changeset
1940 (@code{mh-delete-msg-from-seq}), and if you want to delete an entire
Dave Love <fx@gnu.org>
parents:
diff changeset
1941 sequence, use @kbd{M-#} (@code{mh-delete-seq}). In the latter case you
Dave Love <fx@gnu.org>
parents:
diff changeset
1942 are prompted for the sequence to delete. Note that this deletes only
Dave Love <fx@gnu.org>
parents:
diff changeset
1943 the sequence, not the messages in the sequence. If you want to delete
Dave Love <fx@gnu.org>
parents:
diff changeset
1944 the messages, use @kbd{C-u d} (see @ref{Deleting} above).
Dave Love <fx@gnu.org>
parents:
diff changeset
1945
Dave Love <fx@gnu.org>
parents:
diff changeset
1946 @cindex @code{mark}
Dave Love <fx@gnu.org>
parents:
diff changeset
1947 @cindex MH commands, @code{mark}
Dave Love <fx@gnu.org>
parents:
diff changeset
1948
Dave Love <fx@gnu.org>
parents:
diff changeset
1949 @findex @code{mh-update-sequences}
Dave Love <fx@gnu.org>
parents:
diff changeset
1950
Dave Love <fx@gnu.org>
parents:
diff changeset
1951 Two sequences are maintained internally by mh-e and pushed out to MH
Dave Love <fx@gnu.org>
parents:
diff changeset
1952 when you type either the @kbd{x} or @kbd{q} command. They are the
Dave Love <fx@gnu.org>
parents:
diff changeset
1953 sequence specified by your @samp{Unseen-Sequence:} profile entry and
Dave Love <fx@gnu.org>
parents:
diff changeset
1954 @i{cur}. However, you can also just update MH's state with the command
Dave Love <fx@gnu.org>
parents:
diff changeset
1955 @kbd{M-x mh-update-sequences}. See @ref{Customizing Viewing} for an
Dave Love <fx@gnu.org>
parents:
diff changeset
1956 example of how this command might be used.
Dave Love <fx@gnu.org>
parents:
diff changeset
1957
Dave Love <fx@gnu.org>
parents:
diff changeset
1958 With the exceptions of @kbd{C-x n} and @kbd{C-x w}, the underlying MH
Dave Love <fx@gnu.org>
parents:
diff changeset
1959 command dealing with sequences is @code{mark}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1960
Dave Love <fx@gnu.org>
parents:
diff changeset
1961 @node Miscellaneous, , Sequences, Using mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
1962 @section Miscellaneous Commands
Dave Love <fx@gnu.org>
parents:
diff changeset
1963
Dave Love <fx@gnu.org>
parents:
diff changeset
1964 @findex @code{mh-version}
Dave Love <fx@gnu.org>
parents:
diff changeset
1965
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
1966 One other command worth noting is @kbd{M-x mh-version}. You can
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
1967 compare the version this command prints to the latest release
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
1968 (@pxref{Getting mh-e}). The output of @kbd{M-x mh-version} should
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
1969 always be included with any bug report you submit (@pxref{Bug Reports}).
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1970
Dave Love <fx@gnu.org>
parents:
diff changeset
1971 @node Customizing mh-e, Odds and Ends, Using mh-e, Top
Dave Love <fx@gnu.org>
parents:
diff changeset
1972 @chapter Customizing mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
1973
Dave Love <fx@gnu.org>
parents:
diff changeset
1974 Until now, we've talked about the mh-e commands as they work ``out of the
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
1975 box.'' Of course, it is also possible to reconfigure mh-e
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
1976 to fit the needs of even the most demanding user.
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
1977 The following sections describe all of the
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1978 customization variables, show the defaults, and make recommendations for
Dave Love <fx@gnu.org>
parents:
diff changeset
1979 customization. The outline of this chapter is identical to that of
Dave Love <fx@gnu.org>
parents:
diff changeset
1980 @ref{Using mh-e}, to make it easier to find the variables you'd need to
Dave Love <fx@gnu.org>
parents:
diff changeset
1981 modify to affect a particular command.
Dave Love <fx@gnu.org>
parents:
diff changeset
1982
Dave Love <fx@gnu.org>
parents:
diff changeset
1983 However, when customizing your mail environment, first try to change
Dave Love <fx@gnu.org>
parents:
diff changeset
1984 what you want in MH, and only change mh-e if changing MH is not
Dave Love <fx@gnu.org>
parents:
diff changeset
1985 possible. That way you will get the same behavior inside and outside
Dave Love <fx@gnu.org>
parents:
diff changeset
1986 GNU Emacs. Note that mh-e does not provide hooks for customizations
Dave Love <fx@gnu.org>
parents:
diff changeset
1987 that can be done in MH; this omission is intentional.
Dave Love <fx@gnu.org>
parents:
diff changeset
1988
Dave Love <fx@gnu.org>
parents:
diff changeset
1989 @cindex @file{.emacs}
Dave Love <fx@gnu.org>
parents:
diff changeset
1990 @cindex files, @file{.emacs}
Dave Love <fx@gnu.org>
parents:
diff changeset
1991
Dave Love <fx@gnu.org>
parents:
diff changeset
1992 Many string or integer variables are easy enough to modify using Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
1993 Lisp. Any such modifications should be placed in a file called
Dave Love <fx@gnu.org>
parents:
diff changeset
1994 @file{.emacs} in your home directory (that is, @file{~/.emacs}). For
Dave Love <fx@gnu.org>
parents:
diff changeset
1995 example, to modify the variable that controls printing, you could add:
Dave Love <fx@gnu.org>
parents:
diff changeset
1996
Dave Love <fx@gnu.org>
parents:
diff changeset
1997 @vindex @code{mh-lpr-command-format}, example
Dave Love <fx@gnu.org>
parents:
diff changeset
1998
Dave Love <fx@gnu.org>
parents:
diff changeset
1999 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2000 (setq mh-lpr-command-format "nenscript -G -r -2 -i'%s'")
Dave Love <fx@gnu.org>
parents:
diff changeset
2001 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2002
Dave Love <fx@gnu.org>
parents:
diff changeset
2003 @ref{Customizing Printing} talks more about this variable.
Dave Love <fx@gnu.org>
parents:
diff changeset
2004
Dave Love <fx@gnu.org>
parents:
diff changeset
2005 @cindex setting variables
Dave Love <fx@gnu.org>
parents:
diff changeset
2006 @cindex Emacs, setting variables
Dave Love <fx@gnu.org>
parents:
diff changeset
2007
Dave Love <fx@gnu.org>
parents:
diff changeset
2008 Variables can also hold Boolean values. In Emacs Lisp, the Boolean
Dave Love <fx@gnu.org>
parents:
diff changeset
2009 values are @code{nil}, which means false, and @code{t}, which means true.
Dave Love <fx@gnu.org>
parents:
diff changeset
2010 Usually, variables are turned off by setting their value to @code{nil}, as
Dave Love <fx@gnu.org>
parents:
diff changeset
2011 in
Dave Love <fx@gnu.org>
parents:
diff changeset
2012
Dave Love <fx@gnu.org>
parents:
diff changeset
2013 @vindex @code{mh-bury-show-buffer}, example
Dave Love <fx@gnu.org>
parents:
diff changeset
2014
Dave Love <fx@gnu.org>
parents:
diff changeset
2015 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2016 (setq mh-bury-show-buffer nil)
Dave Love <fx@gnu.org>
parents:
diff changeset
2017 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2018
Dave Love <fx@gnu.org>
parents:
diff changeset
2019 which keeps the MH-Show buffer at the top of the buffer stack.
Dave Love <fx@gnu.org>
parents:
diff changeset
2020 To turn a variable on, you use
Dave Love <fx@gnu.org>
parents:
diff changeset
2021
Dave Love <fx@gnu.org>
parents:
diff changeset
2022 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2023 (setq mh-bury-show-buffer t)
Dave Love <fx@gnu.org>
parents:
diff changeset
2024 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2025
Dave Love <fx@gnu.org>
parents:
diff changeset
2026 which places the MH-Show buffer at the bottom of the buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
2027 stack. However, the text says to turn on a variable by setting it to a
Dave Love <fx@gnu.org>
parents:
diff changeset
2028 @emph{non-@code{nil}} value, because sometimes values other than @code{t} are
Dave Love <fx@gnu.org>
parents:
diff changeset
2029 meaningful (for example, see @code{mhl-formfile}, described in
Dave Love <fx@gnu.org>
parents:
diff changeset
2030 @ref{Customizing Viewing}). Other variables, such as hooks, involve a
Dave Love <fx@gnu.org>
parents:
diff changeset
2031 little more Emacs Lisp programming expertise.
Dave Love <fx@gnu.org>
parents:
diff changeset
2032
Dave Love <fx@gnu.org>
parents:
diff changeset
2033 You can also ``preview'' the effects of changing variables before
Dave Love <fx@gnu.org>
parents:
diff changeset
2034 committing the changes to @file{~/.emacs}. Variables can be changed in
Dave Love <fx@gnu.org>
parents:
diff changeset
2035 the current Emacs session by using @kbd{M-x set-variable}.
Dave Love <fx@gnu.org>
parents:
diff changeset
2036
Dave Love <fx@gnu.org>
parents:
diff changeset
2037 @c XXX Stephen says: would be easier to just call them functions, which
Dave Love <fx@gnu.org>
parents:
diff changeset
2038 @c you mostly do.
Dave Love <fx@gnu.org>
parents:
diff changeset
2039 In general, @dfn{commands} in this text refer to Emacs Lisp functions.
Dave Love <fx@gnu.org>
parents:
diff changeset
2040 Programs outside of Emacs are specifically called MH commands, shell
Dave Love <fx@gnu.org>
parents:
diff changeset
2041 commands, or Unix commands.
Dave Love <fx@gnu.org>
parents:
diff changeset
2042
Dave Love <fx@gnu.org>
parents:
diff changeset
2043 @cindex Emacs, Emacs Lisp manual
Dave Love <fx@gnu.org>
parents:
diff changeset
2044 @cindex Emacs, online help
Dave Love <fx@gnu.org>
parents:
diff changeset
2045 @cindex online help
Dave Love <fx@gnu.org>
parents:
diff changeset
2046 @cindex Emacs, info
Dave Love <fx@gnu.org>
parents:
diff changeset
2047 @cindex info
Dave Love <fx@gnu.org>
parents:
diff changeset
2048
Dave Love <fx@gnu.org>
parents:
diff changeset
2049 I hope I've included enough examples here to get you well on your way.
Dave Love <fx@gnu.org>
parents:
diff changeset
2050 If you want to explore Emacs Lisp further, a programming manual does
Dave Love <fx@gnu.org>
parents:
diff changeset
2051 exist,
Dave Love <fx@gnu.org>
parents:
diff changeset
2052 @c Yes, some of the stuff in the following sections is redundant, but
Dave Love <fx@gnu.org>
parents:
diff changeset
2053 @c TeX barfs if the @ifs are inside the @footnote.
Dave Love <fx@gnu.org>
parents:
diff changeset
2054 @iftex
Dave Love <fx@gnu.org>
parents:
diff changeset
2055 @footnote{The @cite{GNU Emacs Lisp Reference Manual} may be available
Dave Love <fx@gnu.org>
parents:
diff changeset
2056 online in the Info system by typing @kbd{C-h i m Emacs Lisp RET}. If
Dave Love <fx@gnu.org>
parents:
diff changeset
2057 not, you can order a printed manual, which has the desirable side-effect
Dave Love <fx@gnu.org>
parents:
diff changeset
2058 of helping to support the Free Software Foundation which made all this
Dave Love <fx@gnu.org>
parents:
diff changeset
2059 great software available. You can find an order form by running
Dave Love <fx@gnu.org>
parents:
diff changeset
2060 @kbd{C-h C-d}, or you can request an order form from
Dave Love <fx@gnu.org>
parents:
diff changeset
2061 @i{gnu@@gnu.org}.}
Dave Love <fx@gnu.org>
parents:
diff changeset
2062 @end iftex
Dave Love <fx@gnu.org>
parents:
diff changeset
2063 @ifinfo
Dave Love <fx@gnu.org>
parents:
diff changeset
2064 @footnote{Perhaps you can find the online version of @ref{Top, The GNU
Dave Love <fx@gnu.org>
parents:
diff changeset
2065 Emacs Lisp Reference Manual, , elisp, GNU Emacs Lisp Reference Manual}.
Dave Love <fx@gnu.org>
parents:
diff changeset
2066 If not, you can order a printed manual, which has the desirable
Dave Love <fx@gnu.org>
parents:
diff changeset
2067 side-effect of helping to support the Free Software Foundation which
Dave Love <fx@gnu.org>
parents:
diff changeset
2068 made all this great software available. You can find an order form by
Dave Love <fx@gnu.org>
parents:
diff changeset
2069 running @kbd{C-h C-d}, or you can request an order form from
Dave Love <fx@gnu.org>
parents:
diff changeset
2070 @i{gnu@@gnu.org}.}
Dave Love <fx@gnu.org>
parents:
diff changeset
2071 @end ifinfo
Dave Love <fx@gnu.org>
parents:
diff changeset
2072 and you can look at the code itself for examples. Look in the Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
2073 Lisp directory on your system (such as @file{/usr/local/lib/emacs/lisp})
Dave Love <fx@gnu.org>
parents:
diff changeset
2074 and find all the @file{mh-*.el} files there. When calling mh-e and
Dave Love <fx@gnu.org>
parents:
diff changeset
2075 other Emacs Lisp functions directly from Emacs Lisp code, you'll need to
Dave Love <fx@gnu.org>
parents:
diff changeset
2076 know the correct arguments. Use the online help for this. For example,
Dave Love <fx@gnu.org>
parents:
diff changeset
2077 try @kbd{C-h f mh-execute-commands RET}. If you write your own
Dave Love <fx@gnu.org>
parents:
diff changeset
2078 functions, please do not prefix your symbols (variables and functions)
Dave Love <fx@gnu.org>
parents:
diff changeset
2079 with @code{mh-}. This prefix is reserved for the mh-e package. To
Dave Love <fx@gnu.org>
parents:
diff changeset
2080 avoid conflicts with existing mh-e symbols, use a prefix like @code{my-}
Dave Love <fx@gnu.org>
parents:
diff changeset
2081 or your initials.
Dave Love <fx@gnu.org>
parents:
diff changeset
2082
Dave Love <fx@gnu.org>
parents:
diff changeset
2083 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
2084 * Customizing Reading::
Dave Love <fx@gnu.org>
parents:
diff changeset
2085 * Customizing Sending::
Dave Love <fx@gnu.org>
parents:
diff changeset
2086 * Customizing Draft Editing::
Dave Love <fx@gnu.org>
parents:
diff changeset
2087 * Customizing Moving Mail::
Dave Love <fx@gnu.org>
parents:
diff changeset
2088 * Customizing Searching::
Dave Love <fx@gnu.org>
parents:
diff changeset
2089 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
2090
Dave Love <fx@gnu.org>
parents:
diff changeset
2091 @node Customizing Reading, Customizing Sending, Customizing mh-e, Customizing mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
2092 @section Reading Your Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
2093
Dave Love <fx@gnu.org>
parents:
diff changeset
2094 @cindex reading mail
Dave Love <fx@gnu.org>
parents:
diff changeset
2095 @cindex @file{.emacs}
Dave Love <fx@gnu.org>
parents:
diff changeset
2096 @cindex files, @file{.emacs}
Dave Love <fx@gnu.org>
parents:
diff changeset
2097
Dave Love <fx@gnu.org>
parents:
diff changeset
2098 I'll start out by including a function that I use as a front end to
Dave Love <fx@gnu.org>
parents:
diff changeset
2099 mh-e. @footnote{Stephen Gildea's favorite binding is
Dave Love <fx@gnu.org>
parents:
diff changeset
2100 @kbd{(global-set-key "\C-cr" 'mh-rmail)}.} It toggles between your
Dave Love <fx@gnu.org>
parents:
diff changeset
2101 working window configuration, which may be quite involved---windows
Dave Love <fx@gnu.org>
parents:
diff changeset
2102 filled with source, compilation output, man pages, and other
Dave Love <fx@gnu.org>
parents:
diff changeset
2103 documentation---and your mh-e window configuration. Like the rest of
Dave Love <fx@gnu.org>
parents:
diff changeset
2104 the customization described in this chapter, simply add the following
Dave Love <fx@gnu.org>
parents:
diff changeset
2105 code to @file{~/.emacs}. Don't be intimidated by the size of this
Dave Love <fx@gnu.org>
parents:
diff changeset
2106 example; most customizations are only one line.
Dave Love <fx@gnu.org>
parents:
diff changeset
2107
Dave Love <fx@gnu.org>
parents:
diff changeset
2108 @iftex
Dave Love <fx@gnu.org>
parents:
diff changeset
2109 @filbreak
Dave Love <fx@gnu.org>
parents:
diff changeset
2110 @end iftex
Dave Love <fx@gnu.org>
parents:
diff changeset
2111
Dave Love <fx@gnu.org>
parents:
diff changeset
2112 @findex @code{mh-rmail}, example
Dave Love <fx@gnu.org>
parents:
diff changeset
2113
Dave Love <fx@gnu.org>
parents:
diff changeset
2114 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2115 @group
Dave Love <fx@gnu.org>
parents:
diff changeset
2116 @i{Starting mh-e}
Dave Love <fx@gnu.org>
parents:
diff changeset
2117
Dave Love <fx@gnu.org>
parents:
diff changeset
2118 (defvar my-mh-screen-saved nil
Dave Love <fx@gnu.org>
parents:
diff changeset
2119 "Set to non-@code{nil} when mh-e window configuration shown.")
Dave Love <fx@gnu.org>
parents:
diff changeset
2120 (defvar my-normal-screen nil "Normal window configuration.")
Dave Love <fx@gnu.org>
parents:
diff changeset
2121 (defvar my-mh-screen nil "mh-e window configuration.")
Dave Love <fx@gnu.org>
parents:
diff changeset
2122
Dave Love <fx@gnu.org>
parents:
diff changeset
2123 (defun my-mh-rmail (&optional arg)
Dave Love <fx@gnu.org>
parents:
diff changeset
2124 "Toggle between mh-e and normal screen configurations.
Dave Love <fx@gnu.org>
parents:
diff changeset
2125 With non-@code{nil} or prefix argument, @i{inc} mailbox as well
Dave Love <fx@gnu.org>
parents:
diff changeset
2126 when going into mail."
Dave Love <fx@gnu.org>
parents:
diff changeset
2127 (interactive "P") ; @r{user callable function, P=prefix arg}
Dave Love <fx@gnu.org>
parents:
diff changeset
2128 (setq my-mh-screen-saved ; @r{save state}
Dave Love <fx@gnu.org>
parents:
diff changeset
2129 (cond
Dave Love <fx@gnu.org>
parents:
diff changeset
2130 ;; @r{Bring up mh-e screen if arg or normal window configuration.}
Dave Love <fx@gnu.org>
parents:
diff changeset
2131 ;; @r{If arg or +inbox buffer doesn't exist, run mh-rmail.}
Dave Love <fx@gnu.org>
parents:
diff changeset
2132 ((or arg (null my-mh-screen-saved))
Dave Love <fx@gnu.org>
parents:
diff changeset
2133 (setq my-normal-screen (current-window-configuration))
Dave Love <fx@gnu.org>
parents:
diff changeset
2134 (if (or arg (null (get-buffer "+inbox")))
Dave Love <fx@gnu.org>
parents:
diff changeset
2135 (mh-rmail)
Dave Love <fx@gnu.org>
parents:
diff changeset
2136 (set-window-configuration my-mh-screen))
Dave Love <fx@gnu.org>
parents:
diff changeset
2137 t) ; @r{set my-mh-screen-saved to @code{t}}
Dave Love <fx@gnu.org>
parents:
diff changeset
2138 ;; @r{Otherwise, save mh-e screen and restore normal screen.}
Dave Love <fx@gnu.org>
parents:
diff changeset
2139 (t
Dave Love <fx@gnu.org>
parents:
diff changeset
2140 (setq my-mh-screen (current-window-configuration))
Dave Love <fx@gnu.org>
parents:
diff changeset
2141 (set-window-configuration my-normal-screen)
Dave Love <fx@gnu.org>
parents:
diff changeset
2142 nil)))) ; @r{set my-mh-screen-saved to nil}
Dave Love <fx@gnu.org>
parents:
diff changeset
2143
Dave Love <fx@gnu.org>
parents:
diff changeset
2144 (global-set-key "\C-x\r" 'my-mh-rmail) ;@r{ call with C-x RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
2145 @end group
Dave Love <fx@gnu.org>
parents:
diff changeset
2146 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2147
Dave Love <fx@gnu.org>
parents:
diff changeset
2148 If you type an argument (@kbd{C-u}) or if @code{my-mh-screen-saved}
Dave Love <fx@gnu.org>
parents:
diff changeset
2149 is @code{nil} (meaning a non-mh-e window configuration), the current window
Dave Love <fx@gnu.org>
parents:
diff changeset
2150 configuration is saved, either +inbox is displayed or @code{mh-rmail} is
Dave Love <fx@gnu.org>
parents:
diff changeset
2151 run, and the mh-e window configuration is shown. Otherwise, the mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
2152 window configuration is saved and the original configuration is
Dave Love <fx@gnu.org>
parents:
diff changeset
2153 displayed.
Dave Love <fx@gnu.org>
parents:
diff changeset
2154
Dave Love <fx@gnu.org>
parents:
diff changeset
2155 Now to configure mh-e. The following table lists general mh-e variables
Dave Love <fx@gnu.org>
parents:
diff changeset
2156 and variables that are used while reading mail.
Dave Love <fx@gnu.org>
parents:
diff changeset
2157 @c XXX Seth wishes the descriptions to be more parallel. That is,
Dave Love <fx@gnu.org>
parents:
diff changeset
2158 @c some are actions, and some are objects. Hmmm.
Dave Love <fx@gnu.org>
parents:
diff changeset
2159
Dave Love <fx@gnu.org>
parents:
diff changeset
2160 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
2161 @item mh-progs
Dave Love <fx@gnu.org>
parents:
diff changeset
2162 Directory containing MH programs (default: dynamic).
Dave Love <fx@gnu.org>
parents:
diff changeset
2163
Dave Love <fx@gnu.org>
parents:
diff changeset
2164 @item mh-lib
Dave Love <fx@gnu.org>
parents:
diff changeset
2165 Directory containing MH support files and programs (default: dynamic).
Dave Love <fx@gnu.org>
parents:
diff changeset
2166
Dave Love <fx@gnu.org>
parents:
diff changeset
2167 @item mh-do-not-confirm
Dave Love <fx@gnu.org>
parents:
diff changeset
2168 Don't confirm on non-reversible commands (default: @code{nil}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2169
Dave Love <fx@gnu.org>
parents:
diff changeset
2170 @item mh-summary-height
Dave Love <fx@gnu.org>
parents:
diff changeset
2171 Number of scan lines to show (includes mode line) (default: 4).
Dave Love <fx@gnu.org>
parents:
diff changeset
2172
Dave Love <fx@gnu.org>
parents:
diff changeset
2173 @item mh-folder-mode-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
2174 Functions to run in MH-Folder mode (default: @code{nil}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2175
Dave Love <fx@gnu.org>
parents:
diff changeset
2176 @item mh-clean-message-header
Dave Love <fx@gnu.org>
parents:
diff changeset
2177 Remove extraneous headers (default: @code{nil}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2178
Dave Love <fx@gnu.org>
parents:
diff changeset
2179 @item mh-invisible-headers
Dave Love <fx@gnu.org>
parents:
diff changeset
2180 Headers to hide (default: @samp{"^Received: \\| ^Message-Id: \\|
Dave Love <fx@gnu.org>
parents:
diff changeset
2181 ^Remailed-\\| ^Via: \\| ^Mail-from: \\| ^Return-Path: \\| ^In-Reply-To:
Dave Love <fx@gnu.org>
parents:
diff changeset
2182 \\| ^Resent-"}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2183
Dave Love <fx@gnu.org>
parents:
diff changeset
2184 @item mh-visible-headers
Dave Love <fx@gnu.org>
parents:
diff changeset
2185 Headers to display (default: @code{nil}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2186
Dave Love <fx@gnu.org>
parents:
diff changeset
2187 @item mhl-formfile
Dave Love <fx@gnu.org>
parents:
diff changeset
2188 Format file for @code{mhl} (default: @code{nil}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2189
Dave Love <fx@gnu.org>
parents:
diff changeset
2190 @item mh-show-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
2191 Functions to run when showing message (default: @code{nil}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2192
Dave Love <fx@gnu.org>
parents:
diff changeset
2193 @item mh-show-mode-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
2194 Functions to run when showing message (default: @code{nil}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2195
Dave Love <fx@gnu.org>
parents:
diff changeset
2196 @item mh-bury-show-buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
2197 Leave show buffer at bottom of stack (default: @code{t}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2198
Dave Love <fx@gnu.org>
parents:
diff changeset
2199 @item mh-show-buffer-mode-line-buffer-id
Dave Love <fx@gnu.org>
parents:
diff changeset
2200 Name of show buffer in mode line (default: @samp{"@{show-%s@} %d"}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2201 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
2202
Dave Love <fx@gnu.org>
parents:
diff changeset
2203 @vindex @code{mh-progs}
Dave Love <fx@gnu.org>
parents:
diff changeset
2204 @vindex @code{mh-lib}
Dave Love <fx@gnu.org>
parents:
diff changeset
2205
Dave Love <fx@gnu.org>
parents:
diff changeset
2206 The two variables @code{mh-progs} and @code{mh-lib} are used to tell
Dave Love <fx@gnu.org>
parents:
diff changeset
2207 mh-e where the MH programs and supporting files are kept, respectively.
Dave Love <fx@gnu.org>
parents:
diff changeset
2208 mh-e does try to figure out where they are kept for itself by looking in
Dave Love <fx@gnu.org>
parents:
diff changeset
2209 common places and in the user's @samp{PATH} environment variable, but if
Dave Love <fx@gnu.org>
parents:
diff changeset
2210 it cannot find the directories, or finds the wrong ones, you should set
Dave Love <fx@gnu.org>
parents:
diff changeset
2211 these variables. The name of the directory should be placed in double
Dave Love <fx@gnu.org>
parents:
diff changeset
2212 quotes, and there should be a
Dave Love <fx@gnu.org>
parents:
diff changeset
2213 trailing slash (@samp{/}). See the example in @ref{Getting Started}.
Dave Love <fx@gnu.org>
parents:
diff changeset
2214
Dave Love <fx@gnu.org>
parents:
diff changeset
2215 @vindex @code{mh-do-not-confirm}
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
2216 @findex @code{mh-kill-folder}
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
2217
Dave Love <fx@gnu.org>
parents:
diff changeset
2218 If you never make mistakes, and you do not like confirmations for your
Dave Love <fx@gnu.org>
parents:
diff changeset
2219 actions, you can set @code{mh-do-not-confirm} to a non-@code{nil} value to
Dave Love <fx@gnu.org>
parents:
diff changeset
2220 disable confirmation for unrecoverable commands such as @kbd{M-k}
Dave Love <fx@gnu.org>
parents:
diff changeset
2221 (@code{mh-kill-folder}) and @kbd{M-u} (@code{mh-undo-folder}). Here's
Dave Love <fx@gnu.org>
parents:
diff changeset
2222 how you set boolean values:
Dave Love <fx@gnu.org>
parents:
diff changeset
2223
Dave Love <fx@gnu.org>
parents:
diff changeset
2224 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2225 (setq mh-do-not-confirm t)
Dave Love <fx@gnu.org>
parents:
diff changeset
2226 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2227
Dave Love <fx@gnu.org>
parents:
diff changeset
2228 @vindex @code{mh-summary-height}
Dave Love <fx@gnu.org>
parents:
diff changeset
2229 @cindex MH-Folder mode
Dave Love <fx@gnu.org>
parents:
diff changeset
2230 @cindex modes, MH-Folder
Dave Love <fx@gnu.org>
parents:
diff changeset
2231
Dave Love <fx@gnu.org>
parents:
diff changeset
2232 @c Prevent page break between paragraph and example.
Dave Love <fx@gnu.org>
parents:
diff changeset
2233 @need 2000
Dave Love <fx@gnu.org>
parents:
diff changeset
2234 The variable @code{mh-summary-height} controls the number of scan lines
Dave Love <fx@gnu.org>
parents:
diff changeset
2235 displayed in the MH-Folder window, including the mode line. The
Dave Love <fx@gnu.org>
parents:
diff changeset
2236 default value of 4 means that 3 scan lines are displayed. Here's how
Dave Love <fx@gnu.org>
parents:
diff changeset
2237 you set numerical values:
Dave Love <fx@gnu.org>
parents:
diff changeset
2238
Dave Love <fx@gnu.org>
parents:
diff changeset
2239 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2240 (setq mh-summary-height 2) ; @r{only show the current scan line}
Dave Love <fx@gnu.org>
parents:
diff changeset
2241 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2242
Dave Love <fx@gnu.org>
parents:
diff changeset
2243 @vindex @code{mh-bury-show-buffer}
Dave Love <fx@gnu.org>
parents:
diff changeset
2244 @cindex MH-Folder mode
Dave Love <fx@gnu.org>
parents:
diff changeset
2245 @cindex modes, MH-Folder
Dave Love <fx@gnu.org>
parents:
diff changeset
2246
Dave Love <fx@gnu.org>
parents:
diff changeset
2247 Normally the buffer for displaying messages is buried at the bottom at
Dave Love <fx@gnu.org>
parents:
diff changeset
2248 the buffer stack. You may wish to disable this feature by setting
Dave Love <fx@gnu.org>
parents:
diff changeset
2249 @code{mh-bury-show-buffer} to @code{nil}. One advantage of not burying the
Dave Love <fx@gnu.org>
parents:
diff changeset
2250 show buffer is that one can delete the show buffer more easily in an
Dave Love <fx@gnu.org>
parents:
diff changeset
2251 electric buffer list because of its proximity to its associated
Dave Love <fx@gnu.org>
parents:
diff changeset
2252 MH-Folder buffer. Try running @kbd{M-x electric-buffer-list} to
Dave Love <fx@gnu.org>
parents:
diff changeset
2253 see what I mean.
Dave Love <fx@gnu.org>
parents:
diff changeset
2254
Dave Love <fx@gnu.org>
parents:
diff changeset
2255 @vindex @code{mh-folder-mode-hook}
Dave Love <fx@gnu.org>
parents:
diff changeset
2256 @cindex MH-Folder mode
Dave Love <fx@gnu.org>
parents:
diff changeset
2257 @cindex modes, MH-Folder
Dave Love <fx@gnu.org>
parents:
diff changeset
2258
Dave Love <fx@gnu.org>
parents:
diff changeset
2259 The hook @code{mh-folder-mode-hook} is called when a new folder is
Dave Love <fx@gnu.org>
parents:
diff changeset
2260 created with MH-Folder mode. This could be used to set your own
Dave Love <fx@gnu.org>
parents:
diff changeset
2261 key bindings, for example:
Dave Love <fx@gnu.org>
parents:
diff changeset
2262
Dave Love <fx@gnu.org>
parents:
diff changeset
2263 @vindex @code{mh-folder-mode-hook}, example
Dave Love <fx@gnu.org>
parents:
diff changeset
2264
Dave Love <fx@gnu.org>
parents:
diff changeset
2265 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2266 @group
Dave Love <fx@gnu.org>
parents:
diff changeset
2267 @i{Create additional key bindings via mh-folder-mode-hook}
Dave Love <fx@gnu.org>
parents:
diff changeset
2268
Dave Love <fx@gnu.org>
parents:
diff changeset
2269 (defvar my-mh-init-done nil "Non-@code{nil} when one-time mh-e settings made.")
Dave Love <fx@gnu.org>
parents:
diff changeset
2270
Dave Love <fx@gnu.org>
parents:
diff changeset
2271 (defun my-mh-folder-mode-hook ()
Dave Love <fx@gnu.org>
parents:
diff changeset
2272 "Hook to set key bindings in MH-Folder mode."
Dave Love <fx@gnu.org>
parents:
diff changeset
2273 (if (not my-mh-init-done) ; @r{only need to bind the keys once }
Dave Love <fx@gnu.org>
parents:
diff changeset
2274 (progn
Dave Love <fx@gnu.org>
parents:
diff changeset
2275 (local-set-key "/" 'search-msg)
Dave Love <fx@gnu.org>
parents:
diff changeset
2276 (local-set-key "b" 'mh-burst-digest) ; @r{better use of @kbd{b}}
Dave Love <fx@gnu.org>
parents:
diff changeset
2277 (setq my-mh-init-done t))))
Dave Love <fx@gnu.org>
parents:
diff changeset
2278
Dave Love <fx@gnu.org>
parents:
diff changeset
2279 ;;; @r{Emacs 19}
Dave Love <fx@gnu.org>
parents:
diff changeset
2280 (add-hook 'mh-folder-mode-hook 'my-mh-folder-mode-hook)
Dave Love <fx@gnu.org>
parents:
diff changeset
2281 ;;; @r{Emacs 18}
Dave Love <fx@gnu.org>
parents:
diff changeset
2282 ;;; @r{(setq mh-folder-mode-hook (cons 'my-mh-folder-mode-hook}
Dave Love <fx@gnu.org>
parents:
diff changeset
2283 ;;; @r{mh-folder-mode-hook))}
Dave Love <fx@gnu.org>
parents:
diff changeset
2284
Dave Love <fx@gnu.org>
parents:
diff changeset
2285 (defun search-msg ()
Dave Love <fx@gnu.org>
parents:
diff changeset
2286 "Search for a regexp in the current message."
Dave Love <fx@gnu.org>
parents:
diff changeset
2287 (interactive) ; @r{user function}
Dave Love <fx@gnu.org>
parents:
diff changeset
2288 (save-window-excursion
Dave Love <fx@gnu.org>
parents:
diff changeset
2289 (other-window 1) ; @r{go to next window}
Dave Love <fx@gnu.org>
parents:
diff changeset
2290 (isearch-forward-regexp))) ; @r{string search; hit return (ESC}
Dave Love <fx@gnu.org>
parents:
diff changeset
2291 ; @r{in Emacs 18) when done}
Dave Love <fx@gnu.org>
parents:
diff changeset
2292 @end group
Dave Love <fx@gnu.org>
parents:
diff changeset
2293 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2294
Dave Love <fx@gnu.org>
parents:
diff changeset
2295 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
2296 * Customizing Viewing::
Dave Love <fx@gnu.org>
parents:
diff changeset
2297 * Customizing Moving Around::
Dave Love <fx@gnu.org>
parents:
diff changeset
2298 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
2299
Dave Love <fx@gnu.org>
parents:
diff changeset
2300 @node Customizing Viewing, Customizing Moving Around, Customizing Reading, Customizing Reading
Dave Love <fx@gnu.org>
parents:
diff changeset
2301 @subsection Viewing Your Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
2302
Dave Love <fx@gnu.org>
parents:
diff changeset
2303 @vindex @code{mh-clean-message-header}
Dave Love <fx@gnu.org>
parents:
diff changeset
2304 @vindex @code{mh-invisible-headers}
Dave Love <fx@gnu.org>
parents:
diff changeset
2305 @vindex @code{mh-visible-headers}
Dave Love <fx@gnu.org>
parents:
diff changeset
2306
Dave Love <fx@gnu.org>
parents:
diff changeset
2307 Several variables control what displayed messages look like. Normally
Dave Love <fx@gnu.org>
parents:
diff changeset
2308 messages are delivered with a handful of uninteresting header fields.
Dave Love <fx@gnu.org>
parents:
diff changeset
2309 You can make them go away by setting @code{mh-clean-message-header} to a
Dave Love <fx@gnu.org>
parents:
diff changeset
2310 non-@code{nil} value. The header can then be cleaned up in two ways. By
Dave Love <fx@gnu.org>
parents:
diff changeset
2311 default, the header fields in @code{mh-invisible-headers} are removed.
Dave Love <fx@gnu.org>
parents:
diff changeset
2312 On the other hand, you could set @code{mh-visible-headers} to the fields
Dave Love <fx@gnu.org>
parents:
diff changeset
2313 that you would like to see. If this variable is set,
Dave Love <fx@gnu.org>
parents:
diff changeset
2314 @code{mh-invisible-headers} is ignored. I suggest that you not set
Dave Love <fx@gnu.org>
parents:
diff changeset
2315 @code{mh-visible-headers} since if you use this variable, you might miss
Dave Love <fx@gnu.org>
parents:
diff changeset
2316 a lot of header fields that you'd rather not miss. As an example of how
Dave Love <fx@gnu.org>
parents:
diff changeset
2317 to set a string variable, @code{mh-visible-headers} can be set to show a
Dave Love <fx@gnu.org>
parents:
diff changeset
2318 minimum set of header fields (see (@ref{Regexps, , Syntax of Regular
Dave Love <fx@gnu.org>
parents:
diff changeset
2319 Expressions, emacs, The GNU Emacs Manual}, for a description of the
Dave Love <fx@gnu.org>
parents:
diff changeset
2320 special characters in this string):
Dave Love <fx@gnu.org>
parents:
diff changeset
2321
Dave Love <fx@gnu.org>
parents:
diff changeset
2322 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2323 (setq mh-visible-headers "^From: \\|^Subject: \\|^Date: ")
Dave Love <fx@gnu.org>
parents:
diff changeset
2324 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2325
Dave Love <fx@gnu.org>
parents:
diff changeset
2326 @cindex @code{mhl}
Dave Love <fx@gnu.org>
parents:
diff changeset
2327 @cindex MH commands, @code{mhl}
Dave Love <fx@gnu.org>
parents:
diff changeset
2328 @vindex @code{mhl-formfile}
Dave Love <fx@gnu.org>
parents:
diff changeset
2329
Dave Love <fx@gnu.org>
parents:
diff changeset
2330 Normally mh-e takes care of displaying messages itself (rather than
Dave Love <fx@gnu.org>
parents:
diff changeset
2331 calling an MH program to do the work). If you'd rather have @code{mhl}
Dave Love <fx@gnu.org>
parents:
diff changeset
2332 display the message (within mh-e), set the variable @code{mhl-formfile}
Dave Love <fx@gnu.org>
parents:
diff changeset
2333 to a non-@code{nil} value. You can set this variable either to @code{t}
Dave Love <fx@gnu.org>
parents:
diff changeset
2334 to use the default format file or to a filename if you have your own
Dave Love <fx@gnu.org>
parents:
diff changeset
2335 format file (@code{mhl}(1) tells you how to write one). When writing
Dave Love <fx@gnu.org>
parents:
diff changeset
2336 your own format file, use a nonzero value for @code{overflowoffset} to
Dave Love <fx@gnu.org>
parents:
diff changeset
2337 ensure the header is RFC 822 compliant and parsable by mh-e.
Dave Love <fx@gnu.org>
parents:
diff changeset
2338 @code{mhl} is always used for printing and forwarding; in this case, the
Dave Love <fx@gnu.org>
parents:
diff changeset
2339 value of @code{mhl-formfile} is consulted if it is a filename.
Dave Love <fx@gnu.org>
parents:
diff changeset
2340
Dave Love <fx@gnu.org>
parents:
diff changeset
2341 @vindex @code{mh-show-mode-hook}
Dave Love <fx@gnu.org>
parents:
diff changeset
2342
Dave Love <fx@gnu.org>
parents:
diff changeset
2343 Two hooks can be used to control how messages are displayed. The first
Dave Love <fx@gnu.org>
parents:
diff changeset
2344 hook, @code{mh-show-mode-hook}, is called early on in the process of
Dave Love <fx@gnu.org>
parents:
diff changeset
2345 displaying of messages. It is used to perform some actions on the
Dave Love <fx@gnu.org>
parents:
diff changeset
2346 contents of messages, such as highlighting the header fields. If you're
Dave Love <fx@gnu.org>
parents:
diff changeset
2347 running Emacs 19 under the X Window System, the following example will
Dave Love <fx@gnu.org>
parents:
diff changeset
2348 highlight the @samp{From:} and @samp{Subject:} header fields. This is a
Dave Love <fx@gnu.org>
parents:
diff changeset
2349 very nice feature indeed.
Dave Love <fx@gnu.org>
parents:
diff changeset
2350
Dave Love <fx@gnu.org>
parents:
diff changeset
2351 @vindex @code{mh-show-mode-hook}, example
Dave Love <fx@gnu.org>
parents:
diff changeset
2352
Dave Love <fx@gnu.org>
parents:
diff changeset
2353 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2354 @group
Dave Love <fx@gnu.org>
parents:
diff changeset
2355 @i{Emphasize header fields in different fonts via mh-show-mode-hook}
Dave Love <fx@gnu.org>
parents:
diff changeset
2356
Dave Love <fx@gnu.org>
parents:
diff changeset
2357 (defvar my-mh-keywords
Dave Love <fx@gnu.org>
parents:
diff changeset
2358 '(("^From: \\(.*\\)" 1 'bold t)
Dave Love <fx@gnu.org>
parents:
diff changeset
2359 ("^Subject: \\(.*\\)" 1 'highlight t))
Dave Love <fx@gnu.org>
parents:
diff changeset
2360 "mh-e additions for font-lock-keywords.")
Dave Love <fx@gnu.org>
parents:
diff changeset
2361
Dave Love <fx@gnu.org>
parents:
diff changeset
2362 (defun my-mh-show-mode-hook ()
Dave Love <fx@gnu.org>
parents:
diff changeset
2363 "Hook to turn on and customize fonts."
28343
4ecf90324237 Update sample code for adding font-lock-keywords
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 26490
diff changeset
2364 (font-lock-add-keywords nil my-mh-keywords))
4ecf90324237 Update sample code for adding font-lock-keywords
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 26490
diff changeset
2365
4ecf90324237 Update sample code for adding font-lock-keywords
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 26490
diff changeset
2366 (add-hook 'mh-show-mode-hook 'my-mh-show-mode-hook))
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
2367 @end group
Dave Love <fx@gnu.org>
parents:
diff changeset
2368 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2369
Dave Love <fx@gnu.org>
parents:
diff changeset
2370 @vindex @code{mh-show-hook}
Dave Love <fx@gnu.org>
parents:
diff changeset
2371
Dave Love <fx@gnu.org>
parents:
diff changeset
2372 The second hook, @code{mh-show-hook}, is the last thing called after
Dave Love <fx@gnu.org>
parents:
diff changeset
2373 messages are displayed. It's used to affect the behavior of mh-e in
Dave Love <fx@gnu.org>
parents:
diff changeset
2374 general or when @code{mh-show-mode-hook} is too early. For example, if
Dave Love <fx@gnu.org>
parents:
diff changeset
2375 you wanted to keep mh-e in sync with MH, you could use
Dave Love <fx@gnu.org>
parents:
diff changeset
2376 @code{mh-show-hook} as follows:
Dave Love <fx@gnu.org>
parents:
diff changeset
2377
Dave Love <fx@gnu.org>
parents:
diff changeset
2378 @vindex @code{mh-show-hook}, example
Dave Love <fx@gnu.org>
parents:
diff changeset
2379
Dave Love <fx@gnu.org>
parents:
diff changeset
2380 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2381 (add-hook 'mh-show-hook 'mh-update-sequences)
Dave Love <fx@gnu.org>
parents:
diff changeset
2382 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2383
Dave Love <fx@gnu.org>
parents:
diff changeset
2384 @vindex @code{mh-show-buffer-mode-line-buffer-id}
Dave Love <fx@gnu.org>
parents:
diff changeset
2385 @cindex MH-Show mode
Dave Love <fx@gnu.org>
parents:
diff changeset
2386 @cindex modes, MH-Show
Dave Love <fx@gnu.org>
parents:
diff changeset
2387
Dave Love <fx@gnu.org>
parents:
diff changeset
2388 The function @code{mh-update-sequences} is documented in @ref{Finishing
Dave Love <fx@gnu.org>
parents:
diff changeset
2389 Up}. For those who like to modify their mode lines, use
Dave Love <fx@gnu.org>
parents:
diff changeset
2390 @code{mh-show-buffer-mode-line-buffer-id} to modify the mode line in the
Dave Love <fx@gnu.org>
parents:
diff changeset
2391 MH-Show buffers. Place the two escape strings @samp{%s} and @samp{%d},
Dave Love <fx@gnu.org>
parents:
diff changeset
2392 which will display the folder name and the message number, respectively,
Dave Love <fx@gnu.org>
parents:
diff changeset
2393 somewhere in the string in that order. The default value of
Dave Love <fx@gnu.org>
parents:
diff changeset
2394 @samp{"@{show-%s@} %d"} yields a mode line of
Dave Love <fx@gnu.org>
parents:
diff changeset
2395
Dave Love <fx@gnu.org>
parents:
diff changeset
2396 @example
37802
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
2397 -----@{show-+inbox@} 4 (MH-Show)--Bot--------------------------------
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
2398 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
2399
Dave Love <fx@gnu.org>
parents:
diff changeset
2400 @node Customizing Moving Around, , Customizing Viewing, Customizing Reading
Dave Love <fx@gnu.org>
parents:
diff changeset
2401 @subsection Moving Around
Dave Love <fx@gnu.org>
parents:
diff changeset
2402
Dave Love <fx@gnu.org>
parents:
diff changeset
2403 @cindex moving between messages
Dave Love <fx@gnu.org>
parents:
diff changeset
2404 @cindex MH-Show mode
Dave Love <fx@gnu.org>
parents:
diff changeset
2405 @cindex modes, MH-Show
Dave Love <fx@gnu.org>
parents:
diff changeset
2406 @cindex MH-Folder mode
Dave Love <fx@gnu.org>
parents:
diff changeset
2407 @cindex modes, MH-Folder
Dave Love <fx@gnu.org>
parents:
diff changeset
2408 @vindex @code{mh-recenter-summary-p}
Dave Love <fx@gnu.org>
parents:
diff changeset
2409
Dave Love <fx@gnu.org>
parents:
diff changeset
2410 When you use @kbd{t} (@code{mh-toggle-showing}) to toggle between show
Dave Love <fx@gnu.org>
parents:
diff changeset
2411 mode and scan mode, the MH-Show buffer is hidden and the
Dave Love <fx@gnu.org>
parents:
diff changeset
2412 MH-Folder buffer is left alone. Setting
Dave Love <fx@gnu.org>
parents:
diff changeset
2413 @code{mh-recenter-summary-p} to a non-@code{nil} value causes the toggle to
Dave Love <fx@gnu.org>
parents:
diff changeset
2414 display as many scan lines as possible, with the cursor at the middle.
Dave Love <fx@gnu.org>
parents:
diff changeset
2415 The effect of @code{mh-recenter-summary-p} is rather useful, but it can
Dave Love <fx@gnu.org>
parents:
diff changeset
2416 be annoying on a slow network connection.
Dave Love <fx@gnu.org>
parents:
diff changeset
2417
Dave Love <fx@gnu.org>
parents:
diff changeset
2418 @node Customizing Sending, Customizing Draft Editing, Customizing Reading, Customizing mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
2419 @section Sending Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
2420
Dave Love <fx@gnu.org>
parents:
diff changeset
2421 @cindex sending mail
Dave Love <fx@gnu.org>
parents:
diff changeset
2422
Dave Love <fx@gnu.org>
parents:
diff changeset
2423 You may wish to start off by adding the following useful key bindings to
Dave Love <fx@gnu.org>
parents:
diff changeset
2424 your @file{.emacs} file:
Dave Love <fx@gnu.org>
parents:
diff changeset
2425
Dave Love <fx@gnu.org>
parents:
diff changeset
2426 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2427 (global-set-key "\C-xm" 'mh-smail)
Dave Love <fx@gnu.org>
parents:
diff changeset
2428 (global-set-key "\C-x4m" 'mh-smail-other-window)
Dave Love <fx@gnu.org>
parents:
diff changeset
2429 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2430
Dave Love <fx@gnu.org>
parents:
diff changeset
2431 In addition, several variables are useful when sending mail or replying
Dave Love <fx@gnu.org>
parents:
diff changeset
2432 to mail. They are summarized in the following table.
Dave Love <fx@gnu.org>
parents:
diff changeset
2433
Dave Love <fx@gnu.org>
parents:
diff changeset
2434 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
2435 @item mh-comp-formfile
Dave Love <fx@gnu.org>
parents:
diff changeset
2436 Format file for drafts (default: @samp{"components"}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2437
Dave Love <fx@gnu.org>
parents:
diff changeset
2438 @item mh-repl-formfile
Dave Love <fx@gnu.org>
parents:
diff changeset
2439 Format file for replies (default: @samp{"replcomps"}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2440
Dave Love <fx@gnu.org>
parents:
diff changeset
2441 @item mh-letter-mode-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
2442 Functions to run in MH-Letter mode (default: @code{nil}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2443
Dave Love <fx@gnu.org>
parents:
diff changeset
2444 @item mh-compose-letter-function
Dave Love <fx@gnu.org>
parents:
diff changeset
2445 Functions to run when starting a new draft (default: @code{nil}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2446
Dave Love <fx@gnu.org>
parents:
diff changeset
2447 @item mh-reply-default-reply-to
Dave Love <fx@gnu.org>
parents:
diff changeset
2448 Whom reply goes to (default: @code{nil}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2449
Dave Love <fx@gnu.org>
parents:
diff changeset
2450 @item mh-forward-subject-format
Dave Love <fx@gnu.org>
parents:
diff changeset
2451 Format string for forwarded message subject (default: @samp{"%s: %s"}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2452
Dave Love <fx@gnu.org>
parents:
diff changeset
2453 @item mh-redist-full-contents
Dave Love <fx@gnu.org>
parents:
diff changeset
2454 @code{send} requires entire message (default: @code{nil}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2455
Dave Love <fx@gnu.org>
parents:
diff changeset
2456 @item mh-new-draft-cleaned-headers
37802
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
2457 Remove these header fields from re-edited draft. The default is:
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
2458 @example
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
2459 "^Date:\\| ^Received:\\| ^Message-Id:\\| ^From:\\|
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
2460 ^Sender:\\| ^Delivery-Date:\\| ^Return-Path:".
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
2461 @end example
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
2462 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
2463
Dave Love <fx@gnu.org>
parents:
diff changeset
2464 @cindex @code{comp}
Dave Love <fx@gnu.org>
parents:
diff changeset
2465 @cindex MH commands, @code{comp}
Dave Love <fx@gnu.org>
parents:
diff changeset
2466 @vindex @code{mh-comp-formfile}
Dave Love <fx@gnu.org>
parents:
diff changeset
2467 @cindex @file{components}
Dave Love <fx@gnu.org>
parents:
diff changeset
2468 @cindex files, @file{components}
Dave Love <fx@gnu.org>
parents:
diff changeset
2469 @cindex @code{repl}
Dave Love <fx@gnu.org>
parents:
diff changeset
2470 @cindex MH commands, @code{repl}
Dave Love <fx@gnu.org>
parents:
diff changeset
2471 @cindex @file{replcomps}
Dave Love <fx@gnu.org>
parents:
diff changeset
2472 @cindex files, @file{replcomps}
Dave Love <fx@gnu.org>
parents:
diff changeset
2473 @vindex @code{mh-repl-formfile}
Dave Love <fx@gnu.org>
parents:
diff changeset
2474
Dave Love <fx@gnu.org>
parents:
diff changeset
2475 Since mh-e does not use @code{comp} to create the initial draft, you
Dave Love <fx@gnu.org>
parents:
diff changeset
2476 need to set @code{mh-comp-formfile} to the name of your components file
Dave Love <fx@gnu.org>
parents:
diff changeset
2477 if it isn't @file{components}. This is the name of the file that
Dave Love <fx@gnu.org>
parents:
diff changeset
2478 contains the form for composing messages. If it does not contain an
Dave Love <fx@gnu.org>
parents:
diff changeset
2479 absolute pathname, mh-e searches for the file first in your MH directory
Dave Love <fx@gnu.org>
parents:
diff changeset
2480 and then in the system MH library directory (such as
Dave Love <fx@gnu.org>
parents:
diff changeset
2481 @file{/usr/local/lib/mh}). Replies, on the other hand, are built using
Dave Love <fx@gnu.org>
parents:
diff changeset
2482 @code{repl}. You can change the location of the field file from the
Dave Love <fx@gnu.org>
parents:
diff changeset
2483 default of @file{replcomps} by modifying @code{mh-repl-formfile}.
Dave Love <fx@gnu.org>
parents:
diff changeset
2484
Dave Love <fx@gnu.org>
parents:
diff changeset
2485 @vindex @code{mh-letter-mode-hook}
Dave Love <fx@gnu.org>
parents:
diff changeset
2486 @cindex @code{repl}
Dave Love <fx@gnu.org>
parents:
diff changeset
2487 @cindex MH commands, @code{repl}
Dave Love <fx@gnu.org>
parents:
diff changeset
2488 @cindex @file{components}
Dave Love <fx@gnu.org>
parents:
diff changeset
2489 @cindex files, @file{components}
Dave Love <fx@gnu.org>
parents:
diff changeset
2490
Dave Love <fx@gnu.org>
parents:
diff changeset
2491 Two hooks are provided to run commands on your freshly created draft.
Dave Love <fx@gnu.org>
parents:
diff changeset
2492 The first hook, @code{mh-letter-mode-hook}, allows you to do some
Dave Love <fx@gnu.org>
parents:
diff changeset
2493 processing before editing a letter. For example, you may wish to modify
Dave Love <fx@gnu.org>
parents:
diff changeset
2494 the header after @code{repl} has done its work, or you may have a
Dave Love <fx@gnu.org>
parents:
diff changeset
2495 complicated @file{components} file and need to tell mh-e where the
Dave Love <fx@gnu.org>
parents:
diff changeset
2496 cursor should go. Here's an example of how you would use this hook---all
Dave Love <fx@gnu.org>
parents:
diff changeset
2497 of the other hooks are set in this fashion as well.
Dave Love <fx@gnu.org>
parents:
diff changeset
2498
Dave Love <fx@gnu.org>
parents:
diff changeset
2499 @findex @code{mh-insert-signature}, example
Dave Love <fx@gnu.org>
parents:
diff changeset
2500
Dave Love <fx@gnu.org>
parents:
diff changeset
2501 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2502 @group
Dave Love <fx@gnu.org>
parents:
diff changeset
2503 @i{Prepare draft for editing via mh-letter-mode-hook}
Dave Love <fx@gnu.org>
parents:
diff changeset
2504
Dave Love <fx@gnu.org>
parents:
diff changeset
2505 (defvar letter-mode-init-done nil
Dave Love <fx@gnu.org>
parents:
diff changeset
2506 "Non-@code{nil} when one-time mh-e settings have made.")
Dave Love <fx@gnu.org>
parents:
diff changeset
2507
Dave Love <fx@gnu.org>
parents:
diff changeset
2508 (defun my-mh-letter-mode-hook ()
Dave Love <fx@gnu.org>
parents:
diff changeset
2509 "Hook to prepare letter for editing."
Dave Love <fx@gnu.org>
parents:
diff changeset
2510 (if (not letter-mode-init-done) ; @r{only need to bind the keys once}
Dave Love <fx@gnu.org>
parents:
diff changeset
2511 (progn
Dave Love <fx@gnu.org>
parents:
diff changeset
2512 (local-set-key "\C-ctb" 'add-enriched-text)
Dave Love <fx@gnu.org>
parents:
diff changeset
2513 (local-set-key "\C-cti" 'add-enriched-text)
Dave Love <fx@gnu.org>
parents:
diff changeset
2514 (local-set-key "\C-ctf" 'add-enriched-text)
Dave Love <fx@gnu.org>
parents:
diff changeset
2515 (local-set-key "\C-cts" 'add-enriched-text)
Dave Love <fx@gnu.org>
parents:
diff changeset
2516 (local-set-key "\C-ctB" 'add-enriched-text)
Dave Love <fx@gnu.org>
parents:
diff changeset
2517 (local-set-key "\C-ctu" 'add-enriched-text)
Dave Love <fx@gnu.org>
parents:
diff changeset
2518 (local-set-key "\C-ctc" 'add-enriched-text)
Dave Love <fx@gnu.org>
parents:
diff changeset
2519 (setq letter-mode-init-done t)))
Dave Love <fx@gnu.org>
parents:
diff changeset
2520 (setq fill-prefix " ") ; @r{I find indented text easier to read}
Dave Love <fx@gnu.org>
parents:
diff changeset
2521 (save-excursion
Dave Love <fx@gnu.org>
parents:
diff changeset
2522 (goto-char (point-max)) ; @r{go to end of message to}
Dave Love <fx@gnu.org>
parents:
diff changeset
2523 (mh-insert-signature))) ; @r{insert signature}
Dave Love <fx@gnu.org>
parents:
diff changeset
2524
Dave Love <fx@gnu.org>
parents:
diff changeset
2525 (add-hook 'mh-letter-mode-hook 'my-mh-letter-mode-hook)
Dave Love <fx@gnu.org>
parents:
diff changeset
2526 @end group
Dave Love <fx@gnu.org>
parents:
diff changeset
2527 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2528
Dave Love <fx@gnu.org>
parents:
diff changeset
2529 The function, @code{add-enriched-text} is defined in the example in
Dave Love <fx@gnu.org>
parents:
diff changeset
2530 @ref{Customizing Editing MIME}.
Dave Love <fx@gnu.org>
parents:
diff changeset
2531
Dave Love <fx@gnu.org>
parents:
diff changeset
2532 @vindex @code{mh-compose-letter-function}
Dave Love <fx@gnu.org>
parents:
diff changeset
2533
Dave Love <fx@gnu.org>
parents:
diff changeset
2534 The second hook, a function really, is
Dave Love <fx@gnu.org>
parents:
diff changeset
2535 @code{mh-compose-letter-function}. Like @code{mh-letter-mode-hook}, it
Dave Love <fx@gnu.org>
parents:
diff changeset
2536 is called just before editing a new message; however, it is the last
Dave Love <fx@gnu.org>
parents:
diff changeset
2537 function called before you edit your message. The consequence of this
Dave Love <fx@gnu.org>
parents:
diff changeset
2538 is that you can write a function to write and send the message for you.
Dave Love <fx@gnu.org>
parents:
diff changeset
2539 This function is passed three arguments: the contents of the @samp{To:},
Dave Love <fx@gnu.org>
parents:
diff changeset
2540 @samp{Subject:}, and @samp{cc:} header fields.
Dave Love <fx@gnu.org>
parents:
diff changeset
2541
Dave Love <fx@gnu.org>
parents:
diff changeset
2542 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
2543 * Customizing Replying::
Dave Love <fx@gnu.org>
parents:
diff changeset
2544 * Customizing Forwarding::
Dave Love <fx@gnu.org>
parents:
diff changeset
2545 * Customizing Redistributing::
Dave Love <fx@gnu.org>
parents:
diff changeset
2546 * Customizing Old Drafts::
Dave Love <fx@gnu.org>
parents:
diff changeset
2547 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
2548
Dave Love <fx@gnu.org>
parents:
diff changeset
2549 @node Customizing Replying, Customizing Forwarding, Customizing Sending, Customizing Sending
Dave Love <fx@gnu.org>
parents:
diff changeset
2550 @subsection Replying to Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
2551
Dave Love <fx@gnu.org>
parents:
diff changeset
2552 @cindex replying
Dave Love <fx@gnu.org>
parents:
diff changeset
2553 @vindex @code{mh-reply-default-reply-to}
Dave Love <fx@gnu.org>
parents:
diff changeset
2554
Dave Love <fx@gnu.org>
parents:
diff changeset
2555 If you find that most of the time that you specify @kbd{cc} when you
Dave Love <fx@gnu.org>
parents:
diff changeset
2556 reply to a message, set @code{mh-reply-default-reply-to} to @samp{cc}.
Dave Love <fx@gnu.org>
parents:
diff changeset
2557 This variable is normally set to @code{nil} so that you are prompted for
Dave Love <fx@gnu.org>
parents:
diff changeset
2558 the recipient of a reply. It can be set to one of @samp{from},
Dave Love <fx@gnu.org>
parents:
diff changeset
2559 @samp{to}, or @samp{cc}; you are then no longer prompted for the
Dave Love <fx@gnu.org>
parents:
diff changeset
2560 recipient(s) of your reply.
Dave Love <fx@gnu.org>
parents:
diff changeset
2561
Dave Love <fx@gnu.org>
parents:
diff changeset
2562 @node Customizing Forwarding, Customizing Redistributing, Customizing Replying, Customizing Sending
Dave Love <fx@gnu.org>
parents:
diff changeset
2563 @subsection Forwarding Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
2564
Dave Love <fx@gnu.org>
parents:
diff changeset
2565 @cindex forwarding
Dave Love <fx@gnu.org>
parents:
diff changeset
2566 @vindex @code{mh-forward-subject-format}
Dave Love <fx@gnu.org>
parents:
diff changeset
2567
Dave Love <fx@gnu.org>
parents:
diff changeset
2568 When forwarding a message, the format of the @samp{Subject:} header
Dave Love <fx@gnu.org>
parents:
diff changeset
2569 field can be modified by the variable @code{mh-forward-subject-format}.
Dave Love <fx@gnu.org>
parents:
diff changeset
2570 This variable is a string which includes two escapes (@samp{%s}). The
Dave Love <fx@gnu.org>
parents:
diff changeset
2571 first @samp{%s} is replaced with the sender of the original message, and
Dave Love <fx@gnu.org>
parents:
diff changeset
2572 the second one is replaced with the original @samp{Subject:}. The
Dave Love <fx@gnu.org>
parents:
diff changeset
2573 default value of @samp{"%s: %s"} takes a message with the header:
Dave Love <fx@gnu.org>
parents:
diff changeset
2574
Dave Love <fx@gnu.org>
parents:
diff changeset
2575 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
2576 @group
Dave Love <fx@gnu.org>
parents:
diff changeset
2577 To: Bill Wohler <wohler@@newt.com>
Dave Love <fx@gnu.org>
parents:
diff changeset
2578 Subject: Re: 49er football
Dave Love <fx@gnu.org>
parents:
diff changeset
2579 From: Greg DesBrisay <gd@@cellnet.com>
Dave Love <fx@gnu.org>
parents:
diff changeset
2580 @end group
Dave Love <fx@gnu.org>
parents:
diff changeset
2581 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
2582
Dave Love <fx@gnu.org>
parents:
diff changeset
2583 and creates a subject header field of:
Dave Love <fx@gnu.org>
parents:
diff changeset
2584
Dave Love <fx@gnu.org>
parents:
diff changeset
2585 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
2586 Subject: Greg DesBrisay: Re: 49er football
Dave Love <fx@gnu.org>
parents:
diff changeset
2587 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
2588
Dave Love <fx@gnu.org>
parents:
diff changeset
2589 @node Customizing Redistributing, Customizing Old Drafts, Customizing Forwarding, Customizing Sending
Dave Love <fx@gnu.org>
parents:
diff changeset
2590 @subsection Redistributing Your Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
2591
Dave Love <fx@gnu.org>
parents:
diff changeset
2592 @cindex redistributing
Dave Love <fx@gnu.org>
parents:
diff changeset
2593 @vindex @code{mh-redist-full-contents}
Dave Love <fx@gnu.org>
parents:
diff changeset
2594 @cindex @code{dist}
Dave Love <fx@gnu.org>
parents:
diff changeset
2595 @cindex MH commands, @code{dist}
Dave Love <fx@gnu.org>
parents:
diff changeset
2596 @cindex @code{send}
Dave Love <fx@gnu.org>
parents:
diff changeset
2597 @cindex MH commands, @code{send}
Dave Love <fx@gnu.org>
parents:
diff changeset
2598
Dave Love <fx@gnu.org>
parents:
diff changeset
2599 The variable @code{mh-redist-full-contents} must be set to non-@code{nil} if
Dave Love <fx@gnu.org>
parents:
diff changeset
2600 @code{dist} requires the whole letter for redistribution, which is the
Dave Love <fx@gnu.org>
parents:
diff changeset
2601 case if @code{send} is compiled with the @sc{berk} @footnote{To see which
Dave Love <fx@gnu.org>
parents:
diff changeset
2602 options your copy of MH was compiled with, use @kbd{M-x mh-version}
Dave Love <fx@gnu.org>
parents:
diff changeset
2603 (@ref{Miscellaneous}).} option (which many people abhor). If you find
Dave Love <fx@gnu.org>
parents:
diff changeset
2604 that MH will not allow you to redistribute a message that has been
Dave Love <fx@gnu.org>
parents:
diff changeset
2605 redistributed before, this variable should be set to @code{nil}.
Dave Love <fx@gnu.org>
parents:
diff changeset
2606
Dave Love <fx@gnu.org>
parents:
diff changeset
2607 @node Customizing Old Drafts, , Customizing Redistributing, Customizing Sending
Dave Love <fx@gnu.org>
parents:
diff changeset
2608 @subsection Editing Old Drafts and Bounced Messages
Dave Love <fx@gnu.org>
parents:
diff changeset
2609
Dave Love <fx@gnu.org>
parents:
diff changeset
2610 @cindex re-editing drafts
Dave Love <fx@gnu.org>
parents:
diff changeset
2611 @vindex @code{mh-new-draft-cleaned-headers}
Dave Love <fx@gnu.org>
parents:
diff changeset
2612
Dave Love <fx@gnu.org>
parents:
diff changeset
2613 The header fields specified by @code{mh-new-draft-cleaned-headers} are
Dave Love <fx@gnu.org>
parents:
diff changeset
2614 removed from an old draft that has been recreated with @kbd{M-e}
Dave Love <fx@gnu.org>
parents:
diff changeset
2615 (@code{mh-extract-rejected-mail}) or @kbd{M-a} (@code{mh-edit-again}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2616 If when you edit an old draft with these commands you find that there
Dave Love <fx@gnu.org>
parents:
diff changeset
2617 are header fields that you don't want included, you can append them to
Dave Love <fx@gnu.org>
parents:
diff changeset
2618 this variable. For example,
Dave Love <fx@gnu.org>
parents:
diff changeset
2619
Dave Love <fx@gnu.org>
parents:
diff changeset
2620 @vindex @code{mh-new-draft-cleaned-headers}, example
Dave Love <fx@gnu.org>
parents:
diff changeset
2621
Dave Love <fx@gnu.org>
parents:
diff changeset
2622 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2623 (setq mh-new-draft-cleaned-headers
Dave Love <fx@gnu.org>
parents:
diff changeset
2624 (concat mh-new-draft-cleaned-headers "\\|^Some-Field:"))
Dave Love <fx@gnu.org>
parents:
diff changeset
2625 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2626
Dave Love <fx@gnu.org>
parents:
diff changeset
2627 @cindex regular expressions
Dave Love <fx@gnu.org>
parents:
diff changeset
2628
Dave Love <fx@gnu.org>
parents:
diff changeset
2629 This appends the regular expression @samp{\\|^Some-Field:} to the
Dave Love <fx@gnu.org>
parents:
diff changeset
2630 variable (@pxref{Regexps, , Syntax of Regular Expressions, emacs, The
Dave Love <fx@gnu.org>
parents:
diff changeset
2631 GNU Emacs Manual}). The @samp{\\|} means @emph{or}, and the @samp{^}
Dave Love <fx@gnu.org>
parents:
diff changeset
2632 (caret) matches the beginning of the line. This is done to be very
Dave Love <fx@gnu.org>
parents:
diff changeset
2633 specific about which fields match. The literal @samp{:} is appended for
Dave Love <fx@gnu.org>
parents:
diff changeset
2634 the same reason.
Dave Love <fx@gnu.org>
parents:
diff changeset
2635
Dave Love <fx@gnu.org>
parents:
diff changeset
2636 @node Customizing Draft Editing, Customizing Moving Mail, Customizing Sending, Customizing mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
2637 @section Editing a Draft
Dave Love <fx@gnu.org>
parents:
diff changeset
2638
Dave Love <fx@gnu.org>
parents:
diff changeset
2639 @cindex editing draft
Dave Love <fx@gnu.org>
parents:
diff changeset
2640
Dave Love <fx@gnu.org>
parents:
diff changeset
2641 There are several variables used during the draft editing phase.
Dave Love <fx@gnu.org>
parents:
diff changeset
2642 Examples include changing the name of the file that holds your signature
Dave Love <fx@gnu.org>
parents:
diff changeset
2643 or telling mh-e about new multimedia types. They are:
Dave Love <fx@gnu.org>
parents:
diff changeset
2644
Dave Love <fx@gnu.org>
parents:
diff changeset
2645 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
2646 @item mh-yank-from-start-of-msg
Dave Love <fx@gnu.org>
parents:
diff changeset
2647 How to yank when region not set (default: @code{t}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2648
Dave Love <fx@gnu.org>
parents:
diff changeset
2649 @item mh-ins-buf-prefix
Dave Love <fx@gnu.org>
parents:
diff changeset
2650 Indent for yanked messages (default: @samp{"> "}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2651
Dave Love <fx@gnu.org>
parents:
diff changeset
2652 @item mail-citation-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
2653 Functions to run on yanked messages (default: @code{nil}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2654
Dave Love <fx@gnu.org>
parents:
diff changeset
2655 @item mh-delete-yanked-msg-window
Dave Love <fx@gnu.org>
parents:
diff changeset
2656 Delete message window on yank (default: @code{nil}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2657
Dave Love <fx@gnu.org>
parents:
diff changeset
2658 @c Need the @* because otherwise TeX fills it wrong and complains
Dave Love <fx@gnu.org>
parents:
diff changeset
2659 @c about overfull hbox.
Dave Love <fx@gnu.org>
parents:
diff changeset
2660 @item mh-mime-content-types
Dave Love <fx@gnu.org>
parents:
diff changeset
2661 List of valid content types (default: @samp{'(("text/plain")@*
Dave Love <fx@gnu.org>
parents:
diff changeset
2662 ("text/richtext") ("multipart/mixed") ("multipart/alternative")@*
Dave Love <fx@gnu.org>
parents:
diff changeset
2663 ("multipart/digest") ("multipart/parallel") ("message/rfc822")@*
Dave Love <fx@gnu.org>
parents:
diff changeset
2664 ("message/partial") ("message/external-body")@*
Dave Love <fx@gnu.org>
parents:
diff changeset
2665 ("application/octet-stream") ("application/postscript")@*
Dave Love <fx@gnu.org>
parents:
diff changeset
2666 ("image/jpeg") ("image/gif") ("audio/basic") ("video/mpeg"))}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2667
Dave Love <fx@gnu.org>
parents:
diff changeset
2668 @item mh-mhn-args
Dave Love <fx@gnu.org>
parents:
diff changeset
2669 Additional arguments for @code{mhn} (default: @code{nil}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2670
Dave Love <fx@gnu.org>
parents:
diff changeset
2671 @item mh-signature-file-name
Dave Love <fx@gnu.org>
parents:
diff changeset
2672 File containing signature (default: @samp{"~/.signature"}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2673
Dave Love <fx@gnu.org>
parents:
diff changeset
2674 @item mh-before-send-letter-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
2675 Functions to run before sending draft (default: @code{nil}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2676
Dave Love <fx@gnu.org>
parents:
diff changeset
2677 @item mh-send-prog
Dave Love <fx@gnu.org>
parents:
diff changeset
2678 MH program used to send messages (default: @samp{"send"}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2679 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
2680
Dave Love <fx@gnu.org>
parents:
diff changeset
2681 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
2682 * Customizing Editing Textual::
Dave Love <fx@gnu.org>
parents:
diff changeset
2683 * Customizing Editing MIME::
Dave Love <fx@gnu.org>
parents:
diff changeset
2684 * Customizing Sending Message::
Dave Love <fx@gnu.org>
parents:
diff changeset
2685 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
2686
Dave Love <fx@gnu.org>
parents:
diff changeset
2687 @node Customizing Editing Textual, Customizing Editing MIME, Customizing Draft Editing, Customizing Draft Editing
Dave Love <fx@gnu.org>
parents:
diff changeset
2688 @subsection Editing Textual Messages
Dave Love <fx@gnu.org>
parents:
diff changeset
2689
Dave Love <fx@gnu.org>
parents:
diff changeset
2690 The following two sections include variables that customize the way you
Dave Love <fx@gnu.org>
parents:
diff changeset
2691 edit a draft. The discussion here applies to editing multimedia
Dave Love <fx@gnu.org>
parents:
diff changeset
2692 messages as well.
Dave Love <fx@gnu.org>
parents:
diff changeset
2693
Dave Love <fx@gnu.org>
parents:
diff changeset
2694 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
2695 * Customizing Inserting Letter::
Dave Love <fx@gnu.org>
parents:
diff changeset
2696 * Customizing Signature::
Dave Love <fx@gnu.org>
parents:
diff changeset
2697 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
2698
Dave Love <fx@gnu.org>
parents:
diff changeset
2699 @node Customizing Inserting Letter, Customizing Signature, Customizing Editing Textual, Customizing Editing Textual
Dave Love <fx@gnu.org>
parents:
diff changeset
2700 @subsubsection Inserting letter to which you're replying
Dave Love <fx@gnu.org>
parents:
diff changeset
2701
Dave Love <fx@gnu.org>
parents:
diff changeset
2702 @cindex inserting messages
Dave Love <fx@gnu.org>
parents:
diff changeset
2703 @vindex @code{mh-yank-from-start-of-msg}
Dave Love <fx@gnu.org>
parents:
diff changeset
2704 @vindex @code{mh-ins-buf-prefix}
Dave Love <fx@gnu.org>
parents:
diff changeset
2705 @vindex @code{mail-citation-hook}
Dave Love <fx@gnu.org>
parents:
diff changeset
2706 @vindex @code{mh-ins-buf-prefix}
Dave Love <fx@gnu.org>
parents:
diff changeset
2707 @vindex @code{mh-delete-yanked-msg-window}
Dave Love <fx@gnu.org>
parents:
diff changeset
2708
Dave Love <fx@gnu.org>
parents:
diff changeset
2709 To control how much of the message to which you are replying is yanked
Dave Love <fx@gnu.org>
parents:
diff changeset
2710 by @kbd{C-c C-y} (@code{mh-yank-cur-msg}) into your reply, modify
Dave Love <fx@gnu.org>
parents:
diff changeset
2711 @code{mh-yank-from-start-of-msg}. The default value of @code{t} means
Dave Love <fx@gnu.org>
parents:
diff changeset
2712 that the entire message is copied. If it is set to @code{'body} (don't
Dave Love <fx@gnu.org>
parents:
diff changeset
2713 forget the apostrophe), then only the message body is copied. If it is
Dave Love <fx@gnu.org>
parents:
diff changeset
2714 set to @code{nil}, only the part of the message following point (the
Dave Love <fx@gnu.org>
parents:
diff changeset
2715 current cursor position in the message's buffer) is copied. In any
Dave Love <fx@gnu.org>
parents:
diff changeset
2716 case, this variable is ignored if a region is set in the message you are
Dave Love <fx@gnu.org>
parents:
diff changeset
2717 replying to. The string contained in @code{mh-ins-buf-prefix} is
Dave Love <fx@gnu.org>
parents:
diff changeset
2718 inserted before each line of a message that is inserted into a draft
Dave Love <fx@gnu.org>
parents:
diff changeset
2719 with @kbd{C-c C-y} (@code{mh-yank-cur-msg}). I suggest that you not
Dave Love <fx@gnu.org>
parents:
diff changeset
2720 modify this variable. The default value of @samp{"> "} is the default
Dave Love <fx@gnu.org>
parents:
diff changeset
2721 string for many mailers and news readers: messages are far easier to
Dave Love <fx@gnu.org>
parents:
diff changeset
2722 read if several included messages have all been indented by the same
Dave Love <fx@gnu.org>
parents:
diff changeset
2723 string. The variable @code{mail-citation-hook} is @code{nil} by
Dave Love <fx@gnu.org>
parents:
diff changeset
2724 default, which means that when a message is inserted into the letter,
Dave Love <fx@gnu.org>
parents:
diff changeset
2725 each line is prefixed by @code{mh-ins-buf-prefix}. Otherwise, it can be
Dave Love <fx@gnu.org>
parents:
diff changeset
2726 set to a function that modifies an included
Dave Love <fx@gnu.org>
parents:
diff changeset
2727 @cindex Emacs, packages, supercite
Dave Love <fx@gnu.org>
parents:
diff changeset
2728 citation.
Dave Love <fx@gnu.org>
parents:
diff changeset
2729 @c Footnotes are fragile; hence the redundancy.
Dave Love <fx@gnu.org>
parents:
diff changeset
2730 @c TeX not inserting a line break; hence the @*
Dave Love <fx@gnu.org>
parents:
diff changeset
2731 @ifclear html
Dave Love <fx@gnu.org>
parents:
diff changeset
2732 @footnote{@emph{Supercite} is an example of a full-bodied, full-featured
Dave Love <fx@gnu.org>
parents:
diff changeset
2733 citation package. It is in Emacs versions 19.15 and later, and can be
Dave Love <fx@gnu.org>
parents:
diff changeset
2734 found via anonymous @code{ftp} on @samp{archive.cis.ohio-state.edu} in
Dave Love <fx@gnu.org>
parents:
diff changeset
2735 @* @file{/pub/gnu/emacs/elisp-archive/packages/sc3.1.tar.Z}}
Dave Love <fx@gnu.org>
parents:
diff changeset
2736 @end ifclear
Dave Love <fx@gnu.org>
parents:
diff changeset
2737 @ifset html
Dave Love <fx@gnu.org>
parents:
diff changeset
2738 @footnote{@emph{Supercite} is an example of a full-bodied,
Dave Love <fx@gnu.org>
parents:
diff changeset
2739 full-featured citation package. It is in Emacs versions 19.15 and
Dave Love <fx@gnu.org>
parents:
diff changeset
2740 later, and its @sc{url} is @*
Dave Love <fx@gnu.org>
parents:
diff changeset
2741 @file{<A HREF="ftp://archive.cis.ohio-state.edu/pub/gnu/emacs/elisp-archive/packages/sc3.1.tar.Z">ftp://archive.cis.ohio-state.edu/pub/gnu/emacs/elisp-archive/packages/sc3.1.tar.Z</A>}}
Dave Love <fx@gnu.org>
parents:
diff changeset
2742 @end ifset
Dave Love <fx@gnu.org>
parents:
diff changeset
2743 If you like to yank all the text from the message you're replying to in
Dave Love <fx@gnu.org>
parents:
diff changeset
2744 one go, set @code{mh-delete-yanked-msg-window} to non-@code{nil} to delete
Dave Love <fx@gnu.org>
parents:
diff changeset
2745 the window containing the original message after yanking it to make more
Dave Love <fx@gnu.org>
parents:
diff changeset
2746 room on your screen for your reply.
Dave Love <fx@gnu.org>
parents:
diff changeset
2747
Dave Love <fx@gnu.org>
parents:
diff changeset
2748 @node Customizing Signature, , Customizing Inserting Letter, Customizing Editing Textual
Dave Love <fx@gnu.org>
parents:
diff changeset
2749 @subsubsection Inserting your signature
Dave Love <fx@gnu.org>
parents:
diff changeset
2750
Dave Love <fx@gnu.org>
parents:
diff changeset
2751 @cindex inserting signature
Dave Love <fx@gnu.org>
parents:
diff changeset
2752 @cindex signature
Dave Love <fx@gnu.org>
parents:
diff changeset
2753 @vindex @code{mh-signature-file-name}
Dave Love <fx@gnu.org>
parents:
diff changeset
2754 @cindex @file{.signature}
Dave Love <fx@gnu.org>
parents:
diff changeset
2755 @cindex files, @file{.signature}
Dave Love <fx@gnu.org>
parents:
diff changeset
2756
Dave Love <fx@gnu.org>
parents:
diff changeset
2757 You can change the name of the file inserted with @kbd{C-c C-s}
Dave Love <fx@gnu.org>
parents:
diff changeset
2758 (@code{mh-insert-signature}) by changing @code{mh-signature-file-name}
Dave Love <fx@gnu.org>
parents:
diff changeset
2759 (default: @file{"~/.signature"}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2760
Dave Love <fx@gnu.org>
parents:
diff changeset
2761 @node Customizing Editing MIME, Customizing Sending Message, Customizing Editing Textual, Customizing Draft Editing
Dave Love <fx@gnu.org>
parents:
diff changeset
2762 @subsection Editing Multimedia Messages
Dave Love <fx@gnu.org>
parents:
diff changeset
2763
Dave Love <fx@gnu.org>
parents:
diff changeset
2764 @cindex MIME
Dave Love <fx@gnu.org>
parents:
diff changeset
2765 @cindex multimedia mail
Dave Love <fx@gnu.org>
parents:
diff changeset
2766 @vindex @code{mh-mime-content-types}
Dave Love <fx@gnu.org>
parents:
diff changeset
2767
Dave Love <fx@gnu.org>
parents:
diff changeset
2768 The variable @code{mh-mime-content-types} contains a list of the
Dave Love <fx@gnu.org>
parents:
diff changeset
2769 currently valid content types. They are listed in the table in
Dave Love <fx@gnu.org>
parents:
diff changeset
2770 @ref{Customizing Draft Editing}. If you encounter a new content type,
Dave Love <fx@gnu.org>
parents:
diff changeset
2771 you can add it like this:
Dave Love <fx@gnu.org>
parents:
diff changeset
2772
Dave Love <fx@gnu.org>
parents:
diff changeset
2773 @vindex @code{mh-mime-content-types}, example
Dave Love <fx@gnu.org>
parents:
diff changeset
2774
Dave Love <fx@gnu.org>
parents:
diff changeset
2775 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2776 (setq mh-mime-content-types (append mh-mime-content-types
Dave Love <fx@gnu.org>
parents:
diff changeset
2777 '(("@var{new/type}"))))
Dave Love <fx@gnu.org>
parents:
diff changeset
2778 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2779
Dave Love <fx@gnu.org>
parents:
diff changeset
2780 Emacs macros can be used to insert enriched text directives like
Dave Love <fx@gnu.org>
parents:
diff changeset
2781 @samp{<bold>}. The following code will make, for example, @kbd{C-c t
Dave Love <fx@gnu.org>
parents:
diff changeset
2782 b} insert the @samp{<bold>} directive.
Dave Love <fx@gnu.org>
parents:
diff changeset
2783
37802
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
2784 @smallexample
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
2785 @group
Dave Love <fx@gnu.org>
parents:
diff changeset
2786 @i{Emacs macros for entering enriched text}
Dave Love <fx@gnu.org>
parents:
diff changeset
2787
37802
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
2788 (defvar enriched-text-types '(("b" . "bold") ("i" . "italic")
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
2789 ("f" . "fixed") ("s" . "smaller")
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
2790 ("B" . "bigger") ("u" . "underline")
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
2791 ("c" . "center"))
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
2792 "Alist of (final-character . directive) choices for add-enriched-text.
Dave Love <fx@gnu.org>
parents:
diff changeset
2793 Additional types can be found in RFC 1563.")
Dave Love <fx@gnu.org>
parents:
diff changeset
2794
Dave Love <fx@gnu.org>
parents:
diff changeset
2795 (defun add-enriched-text (begin end)
Dave Love <fx@gnu.org>
parents:
diff changeset
2796 "Add enriched text directives around region.
Dave Love <fx@gnu.org>
parents:
diff changeset
2797 The directive used comes from the list enriched-text-types and is
Dave Love <fx@gnu.org>
parents:
diff changeset
2798 specified by the last keystroke of the command. When called from Lisp,
Dave Love <fx@gnu.org>
parents:
diff changeset
2799 arguments are BEGIN and END@."
Dave Love <fx@gnu.org>
parents:
diff changeset
2800 (interactive "r")
Dave Love <fx@gnu.org>
parents:
diff changeset
2801 ;; @r{Set type to the directive indicated by the last keystroke.}
Dave Love <fx@gnu.org>
parents:
diff changeset
2802 (let ((type (cdr (assoc (char-to-string (logior last-input-char ?@w{`}))
Dave Love <fx@gnu.org>
parents:
diff changeset
2803 enriched-text-types))))
Dave Love <fx@gnu.org>
parents:
diff changeset
2804 (save-restriction ; @r{restores state from narrow-to-region}
Dave Love <fx@gnu.org>
parents:
diff changeset
2805 (narrow-to-region begin end) ; @r{narrow view to region}
Dave Love <fx@gnu.org>
parents:
diff changeset
2806 (goto-char (point-min)) ; @r{move to beginning of text}
Dave Love <fx@gnu.org>
parents:
diff changeset
2807 (insert "<" type ">") ; @r{insert beginning directive}
Dave Love <fx@gnu.org>
parents:
diff changeset
2808 (goto-char (point-max)) ; @r{move to end of text}
Dave Love <fx@gnu.org>
parents:
diff changeset
2809 (insert "</" type ">")))) ; @r{insert terminating directive}
Dave Love <fx@gnu.org>
parents:
diff changeset
2810 @end group
37802
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
2811 @end smallexample
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
2812
Dave Love <fx@gnu.org>
parents:
diff changeset
2813 To use the function @code{add-enriched-text}, first create keybindings
Dave Love <fx@gnu.org>
parents:
diff changeset
2814 for it (@pxref{Customizing Sending}). Then, set the mark with
Dave Love <fx@gnu.org>
parents:
diff changeset
2815 @kbd{C-@@} or @kbd{C-SPC}, type in the text to be highlighted, and type
Dave Love <fx@gnu.org>
parents:
diff changeset
2816 @kbd{C-c t b}. This adds @samp{<bold>} where you set the mark and
Dave Love <fx@gnu.org>
parents:
diff changeset
2817 adds @samp{</bold>} at the location of your cursor, giving you something
Dave Love <fx@gnu.org>
parents:
diff changeset
2818 like: @samp{You should be <bold>very</bold>}. You may also be
Dave Love <fx@gnu.org>
parents:
diff changeset
2819 interested in investigating @code{sgml-mode}.
Dave Love <fx@gnu.org>
parents:
diff changeset
2820
Dave Love <fx@gnu.org>
parents:
diff changeset
2821 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
2822 * Customizing Sending MIME::
Dave Love <fx@gnu.org>
parents:
diff changeset
2823 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
2824
Dave Love <fx@gnu.org>
parents:
diff changeset
2825 @node Customizing Sending MIME, , Customizing Editing MIME, Customizing Editing MIME
Dave Love <fx@gnu.org>
parents:
diff changeset
2826 @subsubsection Readying multimedia messages for sending
Dave Love <fx@gnu.org>
parents:
diff changeset
2827
Dave Love <fx@gnu.org>
parents:
diff changeset
2828 @vindex @code{mh-mhn-args}
Dave Love <fx@gnu.org>
parents:
diff changeset
2829
Dave Love <fx@gnu.org>
parents:
diff changeset
2830 If you wish to pass additional arguments to @code{mhn} to affect how it
Dave Love <fx@gnu.org>
parents:
diff changeset
2831 builds your message, use the variable @code{mh-mhn-args}. For example,
Dave Love <fx@gnu.org>
parents:
diff changeset
2832 you can build a consistency check into the message by setting
Dave Love <fx@gnu.org>
parents:
diff changeset
2833 @code{mh-mhn-args} to @code{-check}. The recipient of your message can
Dave Love <fx@gnu.org>
parents:
diff changeset
2834 then run @code{mhn -check} on the message---@code{mhn} will complain if
Dave Love <fx@gnu.org>
parents:
diff changeset
2835 the message has been corrupted on the way. The @kbd{C-c C-e}
Dave Love <fx@gnu.org>
parents:
diff changeset
2836 (@code{mh-mhn-edit}) command only consults this variable when given a
Dave Love <fx@gnu.org>
parents:
diff changeset
2837 prefix argument.
Dave Love <fx@gnu.org>
parents:
diff changeset
2838
Dave Love <fx@gnu.org>
parents:
diff changeset
2839 @node Customizing Sending Message, , Customizing Editing MIME, Customizing Draft Editing
Dave Love <fx@gnu.org>
parents:
diff changeset
2840 @subsection Sending a Message
Dave Love <fx@gnu.org>
parents:
diff changeset
2841
Dave Love <fx@gnu.org>
parents:
diff changeset
2842 @cindex sending mail
Dave Love <fx@gnu.org>
parents:
diff changeset
2843 @cindex spell check
Dave Love <fx@gnu.org>
parents:
diff changeset
2844 @vindex @code{mh-before-send-letter-hook}
Dave Love <fx@gnu.org>
parents:
diff changeset
2845
Dave Love <fx@gnu.org>
parents:
diff changeset
2846 If you want to check your spelling in your message before sending, use
Dave Love <fx@gnu.org>
parents:
diff changeset
2847 @code{mh-before-send-letter-hook} like this:
Dave Love <fx@gnu.org>
parents:
diff changeset
2848
Dave Love <fx@gnu.org>
parents:
diff changeset
2849 @i{Spell-check message via mh-before-send-letter-hook}
Dave Love <fx@gnu.org>
parents:
diff changeset
2850
Dave Love <fx@gnu.org>
parents:
diff changeset
2851 @vindex @code{mh-before-send-letter-hook}, example
Dave Love <fx@gnu.org>
parents:
diff changeset
2852
Dave Love <fx@gnu.org>
parents:
diff changeset
2853 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2854 (add-hook 'mh-before-send-letter-hook 'ispell-message)
Dave Love <fx@gnu.org>
parents:
diff changeset
2855 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2856
Dave Love <fx@gnu.org>
parents:
diff changeset
2857 @cindex @code{send}
Dave Love <fx@gnu.org>
parents:
diff changeset
2858 @cindex MH commands, @code{send}
Dave Love <fx@gnu.org>
parents:
diff changeset
2859 @vindex @code{mh-send-prog}
Dave Love <fx@gnu.org>
parents:
diff changeset
2860
Dave Love <fx@gnu.org>
parents:
diff changeset
2861 In case the MH @code{send} program is installed under a different name,
Dave Love <fx@gnu.org>
parents:
diff changeset
2862 use @code{mh-send-prog} to tell mh-e the name.
Dave Love <fx@gnu.org>
parents:
diff changeset
2863
Dave Love <fx@gnu.org>
parents:
diff changeset
2864 @node Customizing Moving Mail, Customizing Searching, Customizing Draft Editing, Customizing mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
2865 @section Moving Your Mail Around
Dave Love <fx@gnu.org>
parents:
diff changeset
2866
Dave Love <fx@gnu.org>
parents:
diff changeset
2867 @cindex processing mail
Dave Love <fx@gnu.org>
parents:
diff changeset
2868
Dave Love <fx@gnu.org>
parents:
diff changeset
2869 If you change the name of some of the MH programs or have your own
Dave Love <fx@gnu.org>
parents:
diff changeset
2870 printing programs, the following variables can help you.
Dave Love <fx@gnu.org>
parents:
diff changeset
2871 They are described in detail in the subsequent sections.
Dave Love <fx@gnu.org>
parents:
diff changeset
2872
Dave Love <fx@gnu.org>
parents:
diff changeset
2873 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
2874 @item mh-inc-prog
Dave Love <fx@gnu.org>
parents:
diff changeset
2875 Program to incorporate mail (default: @samp{"inc"}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2876
Dave Love <fx@gnu.org>
parents:
diff changeset
2877 @item mh-inc-folder-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
2878 Functions to run when incorporating mail (default: @code{nil}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2879
Dave Love <fx@gnu.org>
parents:
diff changeset
2880 @item mh-delete-msg-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
2881 Functions to run when deleting messages (default: @code{nil}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2882
Dave Love <fx@gnu.org>
parents:
diff changeset
2883 @item mh-print-background
Dave Love <fx@gnu.org>
parents:
diff changeset
2884 Print in foreground or background (default: @code{nil}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2885
Dave Love <fx@gnu.org>
parents:
diff changeset
2886 @item mh-lpr-command-format
Dave Love <fx@gnu.org>
parents:
diff changeset
2887 Command used to print (default: @samp{"lpr -J '%s'"}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2888
Dave Love <fx@gnu.org>
parents:
diff changeset
2889 @item mh-default-folder-for-message-function
Dave Love <fx@gnu.org>
parents:
diff changeset
2890 Function to generate a default folder (default: @code{nil}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2891
Dave Love <fx@gnu.org>
parents:
diff changeset
2892 @item mh-auto-folder-collect
Dave Love <fx@gnu.org>
parents:
diff changeset
2893 Collect folder names in background at startup (default: @code{t}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2894
Dave Love <fx@gnu.org>
parents:
diff changeset
2895 @item mh-recursive-folders
Dave Love <fx@gnu.org>
parents:
diff changeset
2896 Collect nested folders (default: @code{nil}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2897
Dave Love <fx@gnu.org>
parents:
diff changeset
2898 @item mh-refile-msg-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
2899 Functions to run when refiling message (default: @code{nil}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2900
Dave Love <fx@gnu.org>
parents:
diff changeset
2901 @item mh-store-default-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
2902 Default directory for storing files created by @code{uuencode} or @code{shar}
Dave Love <fx@gnu.org>
parents:
diff changeset
2903 (default: @code{nil}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2904
Dave Love <fx@gnu.org>
parents:
diff changeset
2905 @item mh-sortm-args
Dave Love <fx@gnu.org>
parents:
diff changeset
2906 Additional arguments for @code{sortm} (default: @code{nil}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2907
Dave Love <fx@gnu.org>
parents:
diff changeset
2908 @item mh-scan-prog
Dave Love <fx@gnu.org>
parents:
diff changeset
2909 Program to scan messages (default: @samp{"scan"}).
Dave Love <fx@gnu.org>
parents:
diff changeset
2910
Dave Love <fx@gnu.org>
parents:
diff changeset
2911 @item mh-before-quit-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
2912 Functions to run before quitting (default: @code{nil}). See also
Dave Love <fx@gnu.org>
parents:
diff changeset
2913 @code{mh-quit-hook}.
Dave Love <fx@gnu.org>
parents:
diff changeset
2914
Dave Love <fx@gnu.org>
parents:
diff changeset
2915 @item mh-quit-hook
Dave Love <fx@gnu.org>
parents:
diff changeset
2916 Functions to run after quitting (default: @code{nil}). See also
Dave Love <fx@gnu.org>
parents:
diff changeset
2917 @code{mh-before-quit-hook}.
Dave Love <fx@gnu.org>
parents:
diff changeset
2918 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
2919
Dave Love <fx@gnu.org>
parents:
diff changeset
2920 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
2921 * Customizing Incorporating::
Dave Love <fx@gnu.org>
parents:
diff changeset
2922 * Customizing Deleting::
Dave Love <fx@gnu.org>
parents:
diff changeset
2923 * Customizing Organizing::
Dave Love <fx@gnu.org>
parents:
diff changeset
2924 * Customizing Printing::
Dave Love <fx@gnu.org>
parents:
diff changeset
2925 * Customizing Files and Pipes::
Dave Love <fx@gnu.org>
parents:
diff changeset
2926 * Customizing Finishing Up::
Dave Love <fx@gnu.org>
parents:
diff changeset
2927 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
2928
Dave Love <fx@gnu.org>
parents:
diff changeset
2929 @node Customizing Incorporating, Customizing Deleting, Customizing Moving Mail, Customizing Moving Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
2930 @subsection Incorporating Your Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
2931
Dave Love <fx@gnu.org>
parents:
diff changeset
2932 @cindex incorporating
Dave Love <fx@gnu.org>
parents:
diff changeset
2933 @vindex @code{mh-inc-prog}
Dave Love <fx@gnu.org>
parents:
diff changeset
2934 @cindex @code{inc}
Dave Love <fx@gnu.org>
parents:
diff changeset
2935 @cindex MH commands, @code{inc}
Dave Love <fx@gnu.org>
parents:
diff changeset
2936 @vindex @code{mh-progs}
Dave Love <fx@gnu.org>
parents:
diff changeset
2937 @vindex @code{mh-scan-prog}
Dave Love <fx@gnu.org>
parents:
diff changeset
2938 @vindex @code{mh-inc-folder-hook}
Dave Love <fx@gnu.org>
parents:
diff changeset
2939
Dave Love <fx@gnu.org>
parents:
diff changeset
2940 The name of the program that incorporates new mail is stored in
Dave Love <fx@gnu.org>
parents:
diff changeset
2941 @code{mh-inc-prog}; it is @samp{"inc"} by default. This program
Dave Love <fx@gnu.org>
parents:
diff changeset
2942 generates a one-line summary for each of the new messages. Unless it is
Dave Love <fx@gnu.org>
parents:
diff changeset
2943 an absolute pathname, the file is assumed to be in the @code{mh-progs}
Dave Love <fx@gnu.org>
parents:
diff changeset
2944 directory. You may also link a file to @code{inc} that uses a different
Dave Love <fx@gnu.org>
parents:
diff changeset
2945 format (see @code{mh-profile}(5)). You'll then need to modify several
Dave Love <fx@gnu.org>
parents:
diff changeset
2946 variables appropriately; see @code{mh-scan-prog} below. You can set the
Dave Love <fx@gnu.org>
parents:
diff changeset
2947 hook @code{mh-inc-folder-hook}, which is called after new mail is
Dave Love <fx@gnu.org>
parents:
diff changeset
2948 incorporated by the @kbd{i} (@code{mh-inc-folder}) command. A good use
Dave Love <fx@gnu.org>
parents:
diff changeset
2949 of this hook is to rescan the whole folder either after running @kbd{M-x
Dave Love <fx@gnu.org>
parents:
diff changeset
2950 mh-rmail} the first time or when you've changed the message numbers from
Dave Love <fx@gnu.org>
parents:
diff changeset
2951 outside of mh-e.
Dave Love <fx@gnu.org>
parents:
diff changeset
2952
Dave Love <fx@gnu.org>
parents:
diff changeset
2953 @findex @code{mh-execute-commands}
Dave Love <fx@gnu.org>
parents:
diff changeset
2954 @findex @code{mh-rescan-folder}, example
Dave Love <fx@gnu.org>
parents:
diff changeset
2955 @findex @code{mh-show}, example
Dave Love <fx@gnu.org>
parents:
diff changeset
2956 @vindex @code{mh-inc-folder-hook}, example
Dave Love <fx@gnu.org>
parents:
diff changeset
2957
Dave Love <fx@gnu.org>
parents:
diff changeset
2958 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2959 @group
Dave Love <fx@gnu.org>
parents:
diff changeset
2960 @i{Rescan folder after incorporating new mail via mh-inc-folder-hook}
Dave Love <fx@gnu.org>
parents:
diff changeset
2961
Dave Love <fx@gnu.org>
parents:
diff changeset
2962 (defun my-mh-inc-folder-hook ()
Dave Love <fx@gnu.org>
parents:
diff changeset
2963 "Hook to rescan folder after incorporating mail."
Dave Love <fx@gnu.org>
parents:
diff changeset
2964 (if (buffer-modified-p) ; @r{if outstanding refiles and deletes,}
Dave Love <fx@gnu.org>
parents:
diff changeset
2965 (mh-execute-commands)) ; @r{carry them out}
Dave Love <fx@gnu.org>
parents:
diff changeset
2966 (mh-rescan-folder) ; @r{synchronize with +inbox}
Dave Love <fx@gnu.org>
parents:
diff changeset
2967 (mh-show)) ; @r{show the current message}
Dave Love <fx@gnu.org>
parents:
diff changeset
2968
Dave Love <fx@gnu.org>
parents:
diff changeset
2969 (add-hook 'mh-inc-folder-hook 'my-mh-inc-folder-hook)
Dave Love <fx@gnu.org>
parents:
diff changeset
2970 @end group
Dave Love <fx@gnu.org>
parents:
diff changeset
2971 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
2972
Dave Love <fx@gnu.org>
parents:
diff changeset
2973 @node Customizing Deleting, Customizing Organizing, Customizing Incorporating, Customizing Moving Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
2974 @subsection Deleting Your Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
2975
Dave Love <fx@gnu.org>
parents:
diff changeset
2976 @cindex deleting
Dave Love <fx@gnu.org>
parents:
diff changeset
2977 @vindex @code{mh-delete-msg-hook}
Dave Love <fx@gnu.org>
parents:
diff changeset
2978
Dave Love <fx@gnu.org>
parents:
diff changeset
2979 The hook @code{mh-delete-msg-hook} is called after you mark a message
Dave Love <fx@gnu.org>
parents:
diff changeset
2980 for deletion. For example, the current maintainer of mh-e used this
Dave Love <fx@gnu.org>
parents:
diff changeset
2981 once when he kept statistics on his mail usage.
Dave Love <fx@gnu.org>
parents:
diff changeset
2982
Dave Love <fx@gnu.org>
parents:
diff changeset
2983 @node Customizing Organizing, Customizing Printing, Customizing Deleting, Customizing Moving Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
2984 @subsection Organizing Your Mail with Folders
Dave Love <fx@gnu.org>
parents:
diff changeset
2985
Dave Love <fx@gnu.org>
parents:
diff changeset
2986 @cindex using folders
Dave Love <fx@gnu.org>
parents:
diff changeset
2987 @vindex @code{mh-recursive-folders}
Dave Love <fx@gnu.org>
parents:
diff changeset
2988 @vindex @code{mh-auto-folder-collect}
Dave Love <fx@gnu.org>
parents:
diff changeset
2989
Dave Love <fx@gnu.org>
parents:
diff changeset
2990 By default, operations on folders work only one level at a time. Set
Dave Love <fx@gnu.org>
parents:
diff changeset
2991 @code{mh-recursive-folders} to non-@code{nil} to operate on all folders.
Dave Love <fx@gnu.org>
parents:
diff changeset
2992 This mostly means that you'll be able to see all your folders when you
Dave Love <fx@gnu.org>
parents:
diff changeset
2993 press @key{TAB} when prompted for a folder name. The variable
Dave Love <fx@gnu.org>
parents:
diff changeset
2994 @code{mh-auto-folder-collect} is normally turned on to generate a list
Dave Love <fx@gnu.org>
parents:
diff changeset
2995 of folder names in the background as soon as mh-e is loaded. Otherwise,
Dave Love <fx@gnu.org>
parents:
diff changeset
2996 the list is generated when you need a folder name the first time (as
Dave Love <fx@gnu.org>
parents:
diff changeset
2997 with @kbd{o} (@code{mh-refile-msg})). If you have a lot of folders and
Dave Love <fx@gnu.org>
parents:
diff changeset
2998 you have @code{mh-recursive-folders} set, this could take a while, which
Dave Love <fx@gnu.org>
parents:
diff changeset
2999 is why it's nice to do the folder collection in the background.
Dave Love <fx@gnu.org>
parents:
diff changeset
3000
Dave Love <fx@gnu.org>
parents:
diff changeset
3001 @vindex @code{mh-default-folder-for-message-function}
Dave Love <fx@gnu.org>
parents:
diff changeset
3002 @findex @code{mh-refile-msg}
Dave Love <fx@gnu.org>
parents:
diff changeset
3003 @findex @code{mh-to-fcc}
Dave Love <fx@gnu.org>
parents:
diff changeset
3004 @cindex @file{.emacs}
Dave Love <fx@gnu.org>
parents:
diff changeset
3005 @cindex files, @file{.emacs}
Dave Love <fx@gnu.org>
parents:
diff changeset
3006
Dave Love <fx@gnu.org>
parents:
diff changeset
3007 The function @code{mh-default-folder-for-message-function} is used by
Dave Love <fx@gnu.org>
parents:
diff changeset
3008 @kbd{o} (@code{mh-refile-msg}) and @kbd{C-c C-f C-f} (@code{mh-to-fcc})
Dave Love <fx@gnu.org>
parents:
diff changeset
3009 to generate a default folder. The generated folder name should be a
Dave Love <fx@gnu.org>
parents:
diff changeset
3010 string with a @samp{+} before it. For each of my correspondents, I use the
Dave Love <fx@gnu.org>
parents:
diff changeset
3011 same name for both an alias and a folder. So, I wrote a function that
Dave Love <fx@gnu.org>
parents:
diff changeset
3012 takes the address in the @samp{From:} header field, finds it in my alias
Dave Love <fx@gnu.org>
parents:
diff changeset
3013 file, and returns the alias, which is used as a default folder name.
Dave Love <fx@gnu.org>
parents:
diff changeset
3014 This is the most complicated example given here, and it demonstrates
Dave Love <fx@gnu.org>
parents:
diff changeset
3015 several features of Emacs Lisp programming. You should be able to drop
Dave Love <fx@gnu.org>
parents:
diff changeset
3016 this into @file{~/.emacs}, however. If you use this to store messages
Dave Love <fx@gnu.org>
parents:
diff changeset
3017 in a subfolder of your Mail directory, you can modify the line that
Dave Love <fx@gnu.org>
parents:
diff changeset
3018 starts @samp{(format +%s...} and insert your subfolder after the folder
Dave Love <fx@gnu.org>
parents:
diff changeset
3019 symbol @samp{+}.
Dave Love <fx@gnu.org>
parents:
diff changeset
3020 @c Note for me: if I insert a new version, don't forget to remove the
Dave Love <fx@gnu.org>
parents:
diff changeset
3021 @c "a/" from the folder name.
Dave Love <fx@gnu.org>
parents:
diff changeset
3022
Dave Love <fx@gnu.org>
parents:
diff changeset
3023 @iftex
Dave Love <fx@gnu.org>
parents:
diff changeset
3024 @filbreak
Dave Love <fx@gnu.org>
parents:
diff changeset
3025 @end iftex
Dave Love <fx@gnu.org>
parents:
diff changeset
3026
Dave Love <fx@gnu.org>
parents:
diff changeset
3027 @vindex @code{mh-default-folder-for-message-function}, example
Dave Love <fx@gnu.org>
parents:
diff changeset
3028 @vindex @code{mh-user-path}, example
Dave Love <fx@gnu.org>
parents:
diff changeset
3029
37802
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
3030 @smallexample
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
3031 @group
Dave Love <fx@gnu.org>
parents:
diff changeset
3032 @i{Creating useful default folder for refiling via mh-default-folder-for-message-function}
Dave Love <fx@gnu.org>
parents:
diff changeset
3033
Dave Love <fx@gnu.org>
parents:
diff changeset
3034 (defun my-mh-folder-from-address ()
Dave Love <fx@gnu.org>
parents:
diff changeset
3035 "Determine folder name from address.
37802
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
3036 Takes the address in the From: header field, and returns its
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
3037 corresponding alias from the user's personal aliases file. Returns
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
3038 @code{nil} if the address was not found."
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
3039 (require 'rfc822) ; @r{for the rfc822 functions}
Dave Love <fx@gnu.org>
parents:
diff changeset
3040 (search-forward-regexp "^From: \\(.*\\)") ; @r{grab header field contents}
Dave Love <fx@gnu.org>
parents:
diff changeset
3041 (save-excursion ; @r{save state}
Dave Love <fx@gnu.org>
parents:
diff changeset
3042 (let ((addr (car (rfc822-addresses ; @r{get address}
Dave Love <fx@gnu.org>
parents:
diff changeset
3043 (buffer-substring (match-beginning 1)
Dave Love <fx@gnu.org>
parents:
diff changeset
3044 (match-end 1)))))
Dave Love <fx@gnu.org>
parents:
diff changeset
3045 (buffer (get-buffer-create " *temp*")) ; @r{set local variables}
Dave Love <fx@gnu.org>
parents:
diff changeset
3046 folder)
Dave Love <fx@gnu.org>
parents:
diff changeset
3047 (set-buffer buffer) ; @r{jump to temporary buffer}
Dave Love <fx@gnu.org>
parents:
diff changeset
3048 (unwind-protect ; @r{run kill-buffer when done}
Dave Love <fx@gnu.org>
parents:
diff changeset
3049 (progn ; @r{function grouping construct}
Dave Love <fx@gnu.org>
parents:
diff changeset
3050 (insert-file-contents (expand-file-name "aliases"
Dave Love <fx@gnu.org>
parents:
diff changeset
3051 mh-user-path))
Dave Love <fx@gnu.org>
parents:
diff changeset
3052 (goto-char (point-min)) ; @r{grab aliases file and go to start}
Dave Love <fx@gnu.org>
parents:
diff changeset
3053 (setq folder
Dave Love <fx@gnu.org>
parents:
diff changeset
3054 ;; @r{Search for the given address, even commented-out}
Dave Love <fx@gnu.org>
parents:
diff changeset
3055 ;; @r{addresses are found!}
37802
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
3056 ;; @r{The function search-forward-regexp sets values that}
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
3057 ;; @r{are later used by match-beginning and match-end.}
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
3058 (if (search-forward-regexp (format "^;*\\(.*\\):.*%s"
Dave Love <fx@gnu.org>
parents:
diff changeset
3059 addr) nil t)
37802
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
3060 ;; @r{NOTE WELL: this is what the return value looks}
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
3061 ;; @r{like. You can modify the format string to match}
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
3062 ;; @r{your own Mail hierarchy.}
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
3063 (format "+%s" (buffer-substring
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
3064 (match-beginning 1)
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
3065 (match-end 1))))))
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
3066 (kill-buffer buffer)) ; @r{get rid of our temporary buffer}
Dave Love <fx@gnu.org>
parents:
diff changeset
3067 folder))) ; @r{function's return value}
Dave Love <fx@gnu.org>
parents:
diff changeset
3068
Dave Love <fx@gnu.org>
parents:
diff changeset
3069 (setq mh-default-folder-for-message-function 'my-mh-folder-from-address)
Dave Love <fx@gnu.org>
parents:
diff changeset
3070 @end group
37802
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
3071 @end smallexample
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
3072
Dave Love <fx@gnu.org>
parents:
diff changeset
3073 @vindex @code{mh-refile-msg-hook}
Dave Love <fx@gnu.org>
parents:
diff changeset
3074
Dave Love <fx@gnu.org>
parents:
diff changeset
3075 The hook @code{mh-refile-msg-hook} is called after a message is marked
Dave Love <fx@gnu.org>
parents:
diff changeset
3076 to be refiled.
Dave Love <fx@gnu.org>
parents:
diff changeset
3077
Dave Love <fx@gnu.org>
parents:
diff changeset
3078 @vindex @code{mh-sortm-args}
Dave Love <fx@gnu.org>
parents:
diff changeset
3079 @cindex @code{sortm}
Dave Love <fx@gnu.org>
parents:
diff changeset
3080 @cindex MH commands, @code{sortm}
Dave Love <fx@gnu.org>
parents:
diff changeset
3081 @findex @code{mh-sort-folder}
Dave Love <fx@gnu.org>
parents:
diff changeset
3082 @cindex MH profile components, @code{sortm}
Dave Love <fx@gnu.org>
parents:
diff changeset
3083 @cindex @file{.mh_profile}
Dave Love <fx@gnu.org>
parents:
diff changeset
3084 @cindex files, @file{.mh_profile}
Dave Love <fx@gnu.org>
parents:
diff changeset
3085
Dave Love <fx@gnu.org>
parents:
diff changeset
3086 The variable @code{mh-sortm-args} holds extra arguments to pass on to
Dave Love <fx@gnu.org>
parents:
diff changeset
3087 the @code{sortm} command. Note: this variable is only consulted when a
Dave Love <fx@gnu.org>
parents:
diff changeset
3088 prefix argument is given to @kbd{M-x mh-sort-folder}. It is used to
Dave Love <fx@gnu.org>
parents:
diff changeset
3089 override any arguments given in a @code{sortm:} entry in your MH profile
Dave Love <fx@gnu.org>
parents:
diff changeset
3090 (@file{~/.mh_profile}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3091
Dave Love <fx@gnu.org>
parents:
diff changeset
3092 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
3093 * Customizing Scan Line Formats::
Dave Love <fx@gnu.org>
parents:
diff changeset
3094 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
3095
Dave Love <fx@gnu.org>
parents:
diff changeset
3096 @node Customizing Scan Line Formats, , Customizing Organizing, Customizing Organizing
Dave Love <fx@gnu.org>
parents:
diff changeset
3097 @subsubsection Scan line formatting
Dave Love <fx@gnu.org>
parents:
diff changeset
3098
Dave Love <fx@gnu.org>
parents:
diff changeset
3099 @vindex @code{mh-scan-prog}
Dave Love <fx@gnu.org>
parents:
diff changeset
3100 @cindex @code{scan}
Dave Love <fx@gnu.org>
parents:
diff changeset
3101 @cindex MH commands, @code{scan}
Dave Love <fx@gnu.org>
parents:
diff changeset
3102 @vindex @code{mh-progs}
Dave Love <fx@gnu.org>
parents:
diff changeset
3103
Dave Love <fx@gnu.org>
parents:
diff changeset
3104 The name of the program that generates a listing of one line per message
Dave Love <fx@gnu.org>
parents:
diff changeset
3105 is held in @code{mh-scan-prog} (default: @samp{"scan"}). Unless this
Dave Love <fx@gnu.org>
parents:
diff changeset
3106 variable contains an absolute pathname, it is assumed to be in the
Dave Love <fx@gnu.org>
parents:
diff changeset
3107 @code{mh-progs} directory. You may link another program to @code{scan}
Dave Love <fx@gnu.org>
parents:
diff changeset
3108 (see @code{mh-profile}(5)) to produce a different type of listing.
Dave Love <fx@gnu.org>
parents:
diff changeset
3109
Dave Love <fx@gnu.org>
parents:
diff changeset
3110 If you change the format of the scan lines you'll need to tell mh-e how
Dave Love <fx@gnu.org>
parents:
diff changeset
3111 to parse the new format. As you see, quite a lot of variables are
Dave Love <fx@gnu.org>
parents:
diff changeset
3112 involved to do that. The first variable has to do with pruning out
Dave Love <fx@gnu.org>
parents:
diff changeset
3113 garbage.
Dave Love <fx@gnu.org>
parents:
diff changeset
3114
Dave Love <fx@gnu.org>
parents:
diff changeset
3115 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
3116 @item mh-valid-scan-line
Dave Love <fx@gnu.org>
parents:
diff changeset
3117 @vindex @code{mh-valid-scan-line}
Dave Love <fx@gnu.org>
parents:
diff changeset
3118 @cindex @code{inc}
Dave Love <fx@gnu.org>
parents:
diff changeset
3119 @cindex MH commands, @code{inc}
Dave Love <fx@gnu.org>
parents:
diff changeset
3120 @cindex @code{scan}
Dave Love <fx@gnu.org>
parents:
diff changeset
3121 @cindex MH commands, @code{scan}
Dave Love <fx@gnu.org>
parents:
diff changeset
3122 This regular expression describes a valid scan line. This is used to
Dave Love <fx@gnu.org>
parents:
diff changeset
3123 eliminate error messages that are occasionally produced by @code{inc} or
Dave Love <fx@gnu.org>
parents:
diff changeset
3124 @code{scan} (default: @samp{"^ *[0-9]"}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3125 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
3126
Dave Love <fx@gnu.org>
parents:
diff changeset
3127 Next, two variables control how the message numbers are parsed.
Dave Love <fx@gnu.org>
parents:
diff changeset
3128
Dave Love <fx@gnu.org>
parents:
diff changeset
3129 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
3130
Dave Love <fx@gnu.org>
parents:
diff changeset
3131 @item mh-msg-number-regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
3132 @vindex @code{mh-msg-number-regexp}
Dave Love <fx@gnu.org>
parents:
diff changeset
3133 This regular expression is used to extract the message number from a
Dave Love <fx@gnu.org>
parents:
diff changeset
3134 scan line. Note that the message number must be placed in quoted
Dave Love <fx@gnu.org>
parents:
diff changeset
3135 parentheses, (\\(...\\)), as in the default of @w{@samp{"^
Dave Love <fx@gnu.org>
parents:
diff changeset
3136 *\\([0-9]+\\)"}}.
Dave Love <fx@gnu.org>
parents:
diff changeset
3137
Dave Love <fx@gnu.org>
parents:
diff changeset
3138 @item mh-msg-search-regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
3139 @vindex @code{mh-msg-search-regexp}
Dave Love <fx@gnu.org>
parents:
diff changeset
3140 Given a message number (which is inserted in @samp{%d}), this regular
Dave Love <fx@gnu.org>
parents:
diff changeset
3141 expression will match the scan line that it represents (default:
Dave Love <fx@gnu.org>
parents:
diff changeset
3142 @samp{"^[^0-9]*%d[^0-9]"}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3143 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
3144
Dave Love <fx@gnu.org>
parents:
diff changeset
3145 Finally, there are a slew of variables that control how mh-e marks up
Dave Love <fx@gnu.org>
parents:
diff changeset
3146 the scan lines.
Dave Love <fx@gnu.org>
parents:
diff changeset
3147
Dave Love <fx@gnu.org>
parents:
diff changeset
3148 @table @code
Dave Love <fx@gnu.org>
parents:
diff changeset
3149 @item mh-cmd-note
Dave Love <fx@gnu.org>
parents:
diff changeset
3150 @vindex @code{mh-cmd-note}
Dave Love <fx@gnu.org>
parents:
diff changeset
3151 Number of characters to skip over before inserting notation (default:
Dave Love <fx@gnu.org>
parents:
diff changeset
3152 4). Note how it relates to the following regular expressions.
Dave Love <fx@gnu.org>
parents:
diff changeset
3153
Dave Love <fx@gnu.org>
parents:
diff changeset
3154 @item mh-deleted-msg-regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
3155 @vindex @code{mh-deleted-msg-regexp}
Dave Love <fx@gnu.org>
parents:
diff changeset
3156 This regular expression describes deleted messages (default:
Dave Love <fx@gnu.org>
parents:
diff changeset
3157 @samp{"^....D"}). See also @code{mh-note-deleted}.
Dave Love <fx@gnu.org>
parents:
diff changeset
3158
Dave Love <fx@gnu.org>
parents:
diff changeset
3159 @item mh-refiled-msg-regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
3160 @vindex @code{mh-refiled-msg-regexp}
Dave Love <fx@gnu.org>
parents:
diff changeset
3161 This regular expression describes refiled messages (default:
Dave Love <fx@gnu.org>
parents:
diff changeset
3162 @samp{"^....\\^"}). See also @code{mh-note-refiled}.
Dave Love <fx@gnu.org>
parents:
diff changeset
3163
Dave Love <fx@gnu.org>
parents:
diff changeset
3164 @item mh-cur-scan-msg-regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
3165 @vindex @code{mh-cur-scan-msg-regexp}
Dave Love <fx@gnu.org>
parents:
diff changeset
3166 This regular expression matches the current message (default:
Dave Love <fx@gnu.org>
parents:
diff changeset
3167 @samp{"^....\\+"}). See also @code{mh-note-cur}.
Dave Love <fx@gnu.org>
parents:
diff changeset
3168
Dave Love <fx@gnu.org>
parents:
diff changeset
3169 @item mh-good-msg-regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
3170 @vindex @code{mh-good-msg-regexp}
Dave Love <fx@gnu.org>
parents:
diff changeset
3171 This regular expression describes which messages should be shown when
Dave Love <fx@gnu.org>
parents:
diff changeset
3172 mh-e goes to the next or previous message. Normally, deleted or refiled
Dave Love <fx@gnu.org>
parents:
diff changeset
3173 messages are skipped over (default: @samp{"^....[^D^]"}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3174
Dave Love <fx@gnu.org>
parents:
diff changeset
3175 @item mh-note-deleted
Dave Love <fx@gnu.org>
parents:
diff changeset
3176 @vindex @code{mh-note-deleted}
Dave Love <fx@gnu.org>
parents:
diff changeset
3177 Messages that have been deleted to are marked by this string (default:
Dave Love <fx@gnu.org>
parents:
diff changeset
3178 @samp{"D"}). See also @code{mh-deleted-msg-regexp}.
Dave Love <fx@gnu.org>
parents:
diff changeset
3179
Dave Love <fx@gnu.org>
parents:
diff changeset
3180 @item mh-note-refiled
Dave Love <fx@gnu.org>
parents:
diff changeset
3181 @vindex @code{mh-note-refiled}
Dave Love <fx@gnu.org>
parents:
diff changeset
3182 Messages that have been refiled are marked by this string (default:
Dave Love <fx@gnu.org>
parents:
diff changeset
3183 @samp{"^"}). See also @code{mh-refiled-msg-regexp}.
Dave Love <fx@gnu.org>
parents:
diff changeset
3184
Dave Love <fx@gnu.org>
parents:
diff changeset
3185 @item mh-note-copied
Dave Love <fx@gnu.org>
parents:
diff changeset
3186 @vindex @code{mh-note-copied}
Dave Love <fx@gnu.org>
parents:
diff changeset
3187 Messages that have been copied are marked by this string (default:
Dave Love <fx@gnu.org>
parents:
diff changeset
3188 @samp{"C"}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3189
Dave Love <fx@gnu.org>
parents:
diff changeset
3190 @item mh-note-cur
Dave Love <fx@gnu.org>
parents:
diff changeset
3191 @vindex @code{mh-note-cur}
Dave Love <fx@gnu.org>
parents:
diff changeset
3192 The current message (in MH, not in mh-e) is marked by this string
Dave Love <fx@gnu.org>
parents:
diff changeset
3193 (default: @samp{"+"}). See also @code{mh-cur-scan-msg-regexp}.
Dave Love <fx@gnu.org>
parents:
diff changeset
3194
Dave Love <fx@gnu.org>
parents:
diff changeset
3195 @item mh-note-repl
Dave Love <fx@gnu.org>
parents:
diff changeset
3196 @vindex @code{mh-note-repl}
Dave Love <fx@gnu.org>
parents:
diff changeset
3197 Messages that have been replied to are marked by this string (default:
Dave Love <fx@gnu.org>
parents:
diff changeset
3198 @samp{"-"}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3199
Dave Love <fx@gnu.org>
parents:
diff changeset
3200 @item mh-note-forw
Dave Love <fx@gnu.org>
parents:
diff changeset
3201 @vindex @code{mh-note-forw}
Dave Love <fx@gnu.org>
parents:
diff changeset
3202 Messages that have been forwarded are marked by this string (default:
Dave Love <fx@gnu.org>
parents:
diff changeset
3203 @samp{"F"}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3204
Dave Love <fx@gnu.org>
parents:
diff changeset
3205 @item mh-note-dist
Dave Love <fx@gnu.org>
parents:
diff changeset
3206 @vindex @code{mh-note-dist}
Dave Love <fx@gnu.org>
parents:
diff changeset
3207 Messages that have been redistributed are marked by this string
Dave Love <fx@gnu.org>
parents:
diff changeset
3208 (default: @samp{"R"}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3209
Dave Love <fx@gnu.org>
parents:
diff changeset
3210 @item mh-note-printed
Dave Love <fx@gnu.org>
parents:
diff changeset
3211 @vindex @code{mh-note-printed}
Dave Love <fx@gnu.org>
parents:
diff changeset
3212 Messages that have been printed are marked by this string (default:
Dave Love <fx@gnu.org>
parents:
diff changeset
3213 @samp{"P"}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3214
Dave Love <fx@gnu.org>
parents:
diff changeset
3215 @item mh-note-seq
Dave Love <fx@gnu.org>
parents:
diff changeset
3216 @vindex @code{mh-note-seq}
Dave Love <fx@gnu.org>
parents:
diff changeset
3217 Messages in a sequence are marked by this string (default: @samp{"%"}).
Dave Love <fx@gnu.org>
parents:
diff changeset
3218 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
3219
Dave Love <fx@gnu.org>
parents:
diff changeset
3220 @node Customizing Printing, Customizing Files and Pipes, Customizing Organizing, Customizing Moving Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
3221 @subsection Printing Your Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
3222
Dave Love <fx@gnu.org>
parents:
diff changeset
3223 @cindex printing
Dave Love <fx@gnu.org>
parents:
diff changeset
3224 @vindex @code{mh-print-background}
Dave Love <fx@gnu.org>
parents:
diff changeset
3225 @vindex @code{mh-lpr-command-format}
Dave Love <fx@gnu.org>
parents:
diff changeset
3226 @cindex @code{lpr}
Dave Love <fx@gnu.org>
parents:
diff changeset
3227 @cindex Unix commands, @code{lpr}
Dave Love <fx@gnu.org>
parents:
diff changeset
3228
Dave Love <fx@gnu.org>
parents:
diff changeset
3229 Normally messages are printed in the foreground. If this is slow on
Dave Love <fx@gnu.org>
parents:
diff changeset
3230 your system, you may elect to set @code{mh-print-background} to
Dave Love <fx@gnu.org>
parents:
diff changeset
3231 non-@code{nil} to print in the background. If you do this, do not delete
Dave Love <fx@gnu.org>
parents:
diff changeset
3232 the message until it is printed or else the output may be truncated.
Dave Love <fx@gnu.org>
parents:
diff changeset
3233 The variable @code{mh-lpr-command-format} controls how the printing is
Dave Love <fx@gnu.org>
parents:
diff changeset
3234 actually done. The string can contain one escape, @samp{%s}, which is
Dave Love <fx@gnu.org>
parents:
diff changeset
3235 filled with the name of the folder and the message number and is useful
Dave Love <fx@gnu.org>
parents:
diff changeset
3236 for print job names. As an example, the default is @samp{"lpr -J
Dave Love <fx@gnu.org>
parents:
diff changeset
3237 '%s'"}.
Dave Love <fx@gnu.org>
parents:
diff changeset
3238
Dave Love <fx@gnu.org>
parents:
diff changeset
3239 @node Customizing Files and Pipes, Customizing Finishing Up, Customizing Printing, Customizing Moving Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
3240 @subsection Files and Pipes
Dave Love <fx@gnu.org>
parents:
diff changeset
3241
Dave Love <fx@gnu.org>
parents:
diff changeset
3242 @cindex using files
Dave Love <fx@gnu.org>
parents:
diff changeset
3243 @cindex using pipes
Dave Love <fx@gnu.org>
parents:
diff changeset
3244 @findex @code{mh-store-msg}
Dave Love <fx@gnu.org>
parents:
diff changeset
3245 @vindex @code{mh-store-default-directory}
Dave Love <fx@gnu.org>
parents:
diff changeset
3246
Dave Love <fx@gnu.org>
parents:
diff changeset
3247 The initial directory for the @code{mh-store-msg} command is held in
Dave Love <fx@gnu.org>
parents:
diff changeset
3248 @code{mh-store-default-directory}. Since I almost always run
Dave Love <fx@gnu.org>
parents:
diff changeset
3249 @code{mh-store-msg} on sources, I set it to my personal source directory
Dave Love <fx@gnu.org>
parents:
diff changeset
3250 like this:
Dave Love <fx@gnu.org>
parents:
diff changeset
3251
Dave Love <fx@gnu.org>
parents:
diff changeset
3252 @vindex @code{mh-store-default-directory}, example
Dave Love <fx@gnu.org>
parents:
diff changeset
3253
Dave Love <fx@gnu.org>
parents:
diff changeset
3254 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
3255 (setq mh-store-default-directory (expand-file-name "~/src/"))
Dave Love <fx@gnu.org>
parents:
diff changeset
3256 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
3257
Dave Love <fx@gnu.org>
parents:
diff changeset
3258 @findex @code{mh-store-buffer}
Dave Love <fx@gnu.org>
parents:
diff changeset
3259 @cindex @code{uuencode}
Dave Love <fx@gnu.org>
parents:
diff changeset
3260 @cindex Unix commands, @code{uuencode}
Dave Love <fx@gnu.org>
parents:
diff changeset
3261 @cindex @code{shar}
Dave Love <fx@gnu.org>
parents:
diff changeset
3262 @cindex Unix commands, @code{shar}
Dave Love <fx@gnu.org>
parents:
diff changeset
3263
Dave Love <fx@gnu.org>
parents:
diff changeset
3264 Subsequent incarnations of @code{mh-store-msg} offer the last directory
Dave Love <fx@gnu.org>
parents:
diff changeset
3265 used as the default. By the way, @code{mh-store-msg} calls the Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
3266 Lisp function @code{mh-store-buffer}. I mention this because you can use
Dave Love <fx@gnu.org>
parents:
diff changeset
3267 it directly if you're editing a buffer that contains a file that has
Dave Love <fx@gnu.org>
parents:
diff changeset
3268 been run through @code{uuencode} or @code{shar}. For example, you can
Dave Love <fx@gnu.org>
parents:
diff changeset
3269 extract the contents of the current buffer in your home directory by
Dave Love <fx@gnu.org>
parents:
diff changeset
3270 typing @kbd{M-x mh-store-buffer @key{RET} ~ @key{RET}}.
Dave Love <fx@gnu.org>
parents:
diff changeset
3271
Dave Love <fx@gnu.org>
parents:
diff changeset
3272 @node Customizing Finishing Up, , Customizing Files and Pipes, Customizing Moving Mail
Dave Love <fx@gnu.org>
parents:
diff changeset
3273 @subsection Finishing Up
Dave Love <fx@gnu.org>
parents:
diff changeset
3274
Dave Love <fx@gnu.org>
parents:
diff changeset
3275 @cindex quitting
Dave Love <fx@gnu.org>
parents:
diff changeset
3276 @vindex @code{mh-before-quit-hook}
Dave Love <fx@gnu.org>
parents:
diff changeset
3277 @vindex @code{mh-quit-hook}
Dave Love <fx@gnu.org>
parents:
diff changeset
3278 @findex @code{mh-execute-commands}
Dave Love <fx@gnu.org>
parents:
diff changeset
3279
Dave Love <fx@gnu.org>
parents:
diff changeset
3280 The two variables @code{mh-before-quit-hook} and @code{mh-quit-hook} are
Dave Love <fx@gnu.org>
parents:
diff changeset
3281 called by @kbd{q} (@code{mh-quit}). The former one is called before the
Dave Love <fx@gnu.org>
parents:
diff changeset
3282 quit occurs, so you might use it to perform any mh-e operations; you
Dave Love <fx@gnu.org>
parents:
diff changeset
3283 could perform some query and abort the quit or call
Dave Love <fx@gnu.org>
parents:
diff changeset
3284 @code{mh-execute-commands}, for example. The latter is not run in an
Dave Love <fx@gnu.org>
parents:
diff changeset
3285 mh-e context, so you might use it to modify the window setup.
Dave Love <fx@gnu.org>
parents:
diff changeset
3286
Dave Love <fx@gnu.org>
parents:
diff changeset
3287 @node Customizing Searching, , Customizing Moving Mail, Customizing mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
3288 @section Searching Through Messages
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3289
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
3290 @cindex searching
Dave Love <fx@gnu.org>
parents:
diff changeset
3291 @vindex @code{mh-pick-mode-hook}
Dave Love <fx@gnu.org>
parents:
diff changeset
3292 @vindex @code{mh-partial-folder-mode-line-annotation}
Dave Love <fx@gnu.org>
parents:
diff changeset
3293
Dave Love <fx@gnu.org>
parents:
diff changeset
3294 If you find that you do the same thing over and over when editing the
Dave Love <fx@gnu.org>
parents:
diff changeset
3295 search template, you may wish to bind some shortcuts to keys. This can
Dave Love <fx@gnu.org>
parents:
diff changeset
3296 be done with the variable @code{mh-pick-mode-hook}, which is called when
Dave Love <fx@gnu.org>
parents:
diff changeset
3297 @kbd{M-s} (@code{mh-search-folder}) is run on a new pattern.
Dave Love <fx@gnu.org>
parents:
diff changeset
3298
Dave Love <fx@gnu.org>
parents:
diff changeset
3299 The string
Dave Love <fx@gnu.org>
parents:
diff changeset
3300 @code{mh-partial-folder-mode-line-annotation} is used to annotate the
Dave Love <fx@gnu.org>
parents:
diff changeset
3301 mode line when only a portion of the folder is shown. For example, this
Dave Love <fx@gnu.org>
parents:
diff changeset
3302 will be displayed after running @kbd{M-s} (@code{mh-search-folder}) to
Dave Love <fx@gnu.org>
parents:
diff changeset
3303 list messages based on some search criteria (see @ref{Searching}). The
Dave Love <fx@gnu.org>
parents:
diff changeset
3304 default annotation of @samp{"select"} yields a mode line that looks
Dave Love <fx@gnu.org>
parents:
diff changeset
3305 like:
Dave Love <fx@gnu.org>
parents:
diff changeset
3306
Dave Love <fx@gnu.org>
parents:
diff changeset
3307 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
3308 --%%-@{+inbox/select@} 2 msgs (2-3) (MH-Folder)--All-----------------
Dave Love <fx@gnu.org>
parents:
diff changeset
3309 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
3310
Dave Love <fx@gnu.org>
parents:
diff changeset
3311 @node Odds and Ends, History, Customizing mh-e, Top
Dave Love <fx@gnu.org>
parents:
diff changeset
3312 @appendix Odds and Ends
Dave Love <fx@gnu.org>
parents:
diff changeset
3313
Dave Love <fx@gnu.org>
parents:
diff changeset
3314 This appendix covers a few topics that don't fit elsewhere. Here I tell
Dave Love <fx@gnu.org>
parents:
diff changeset
3315 you how to report bugs and how to get on the mh-e mailing list. I also
Dave Love <fx@gnu.org>
parents:
diff changeset
3316 point out some additional sources of information.
Dave Love <fx@gnu.org>
parents:
diff changeset
3317
Dave Love <fx@gnu.org>
parents:
diff changeset
3318 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
3319 * Bug Reports::
Dave Love <fx@gnu.org>
parents:
diff changeset
3320 * Mailing List::
Dave Love <fx@gnu.org>
parents:
diff changeset
3321 * MH FAQ::
Dave Love <fx@gnu.org>
parents:
diff changeset
3322 * Getting mh-e::
Dave Love <fx@gnu.org>
parents:
diff changeset
3323 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
3324
Dave Love <fx@gnu.org>
parents:
diff changeset
3325 @node Bug Reports, Mailing List, Odds and Ends, Odds and Ends
Dave Love <fx@gnu.org>
parents:
diff changeset
3326 @appendixsec Bug Reports
Dave Love <fx@gnu.org>
parents:
diff changeset
3327
Dave Love <fx@gnu.org>
parents:
diff changeset
3328 @cindex bugs
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3329 @cindex Wohler, Bill
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3330 @cindex SourceForge
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3331
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3332 The current maintainer of mh-e is Bill Wohler
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3333 <@i{wohler@@newt.com}>. Bug reports should be filed at
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3334 @uref{https://sourceforge.net/bugs/?group_id=13357, SourceForge}.
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3335 Please include the output of
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
3336 @kbd{M-x mh-version} (@pxref{Miscellaneous}) in any bug report you send.
Dave Love <fx@gnu.org>
parents:
diff changeset
3337
Dave Love <fx@gnu.org>
parents:
diff changeset
3338 @node Mailing List, MH FAQ, Bug Reports, Odds and Ends
Dave Love <fx@gnu.org>
parents:
diff changeset
3339 @appendixsec mh-e Mailing List
Dave Love <fx@gnu.org>
parents:
diff changeset
3340
Dave Love <fx@gnu.org>
parents:
diff changeset
3341 @cindex mailing list
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3342 @cindex SourceForge
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3343
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3344 There are actually several mailing lists for mh-e. They are
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3345 @i{mh-e-users@@lists.sourceforge.net},
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3346 @i{mh-e-announce@@lists.sourceforge.net}, and
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3347 @i{mh-e-devel@@lists.sourceforge.net}. You can subscribe or view the
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3348 archives at @uref{https://sourceforge.net/mail/?group_id=13357,
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3349 SourceForge}. Do not report bugs on these lists; please submit them
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3350 via SourceForge (@pxref{Bug Reports}).
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
3351
Dave Love <fx@gnu.org>
parents:
diff changeset
3352 @node MH FAQ, Getting mh-e, Mailing List, Odds and Ends
Dave Love <fx@gnu.org>
parents:
diff changeset
3353 @appendixsec MH FAQ
Dave Love <fx@gnu.org>
parents:
diff changeset
3354
Dave Love <fx@gnu.org>
parents:
diff changeset
3355 @cindex MH FAQ
Dave Love <fx@gnu.org>
parents:
diff changeset
3356 @cindex FAQ
Dave Love <fx@gnu.org>
parents:
diff changeset
3357
Dave Love <fx@gnu.org>
parents:
diff changeset
3358 An FAQ appears monthly in the newsgroup @samp{comp.mail.mh}. While very
Dave Love <fx@gnu.org>
parents:
diff changeset
3359 little is there that deals with mh-e specifically, there is an
Dave Love <fx@gnu.org>
parents:
diff changeset
3360 incredible wealth of material about MH itself which you will find
Dave Love <fx@gnu.org>
parents:
diff changeset
3361 useful. The subject of the FAQ is @cite{MH Frequently Asked Questions
Dave Love <fx@gnu.org>
parents:
diff changeset
3362 (FAQ) with Answers}.
Dave Love <fx@gnu.org>
parents:
diff changeset
3363
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3364 The FAQ is available via the World Wide Web (WWW) at
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3365 @uref{http://www.faqs.org/faqs/mail/mh-faq/part1/preamble.html, faqs.org}.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
3366
Dave Love <fx@gnu.org>
parents:
diff changeset
3367 @node Getting mh-e, , MH FAQ, Odds and Ends
Dave Love <fx@gnu.org>
parents:
diff changeset
3368 @appendixsec Getting mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
3369
Dave Love <fx@gnu.org>
parents:
diff changeset
3370 @cindex obtaining mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
3371
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3372 The version of mh-e in the current version of Emacs should be up to
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3373 date. It is most likely to be more up to date than the copy that comes
36329
8c99f1078bb9 (Getting mh-e): Remove doubled `the'.
Gerd Moellmann <gerd@gnu.org>
parents: 36207
diff changeset
3374 with the MH distribution in @file{miscellany/mh-e}.
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3375
37802
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
3376 @c intentionally wordy to avoid overfull hbox
37822
1a52bb462cc9 Fix a typo in the last change.
Eli Zaretskii <eliz@gnu.org>
parents: 37802
diff changeset
3377 New mh-e releases are always available for downloading at
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3378 @uref{https://sourceforge.net/project/showfiles.php?group_id=13357,
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3379 SourceForge} before they appear in an Emacs release. You can read the
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3380 release notes on that page to determine if the given release of mh-e
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3381 is already installed in your version of Emacs.
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3382
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3383 If you go this route, I suggest that you extract the files from
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3384 @file{mh-e-@var{m.n}.tgz} in the following fashion:
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
3385
37802
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
3386 @smallexample
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
3387 @group
Dave Love <fx@gnu.org>
parents:
diff changeset
3388 % @kbd{cd} # @r{Start in your home directory}
Dave Love <fx@gnu.org>
parents:
diff changeset
3389 % @kbd{mkdir lib lib/emacs} # @r{Create directory for mh-e}
Dave Love <fx@gnu.org>
parents:
diff changeset
3390 % @kbd{cd lib/emacs}
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3391 % @kbd{zcat @var{path/to/}mh-e-@var{m.n}.tgz | tar xvf -} # @r{Extract files}
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
3392 @end group
37802
953a442c9130 Avoid overfull hboxes wherever possible.
Eli Zaretskii <eliz@gnu.org>
parents: 36329
diff changeset
3393 @end smallexample
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
3394
Dave Love <fx@gnu.org>
parents:
diff changeset
3395 @cindex @file{.emacs}
Dave Love <fx@gnu.org>
parents:
diff changeset
3396 @cindex files, @file{.emacs}
Dave Love <fx@gnu.org>
parents:
diff changeset
3397
Dave Love <fx@gnu.org>
parents:
diff changeset
3398 To use these new files, add the following to @file{~/.emacs}:
Dave Love <fx@gnu.org>
parents:
diff changeset
3399
Dave Love <fx@gnu.org>
parents:
diff changeset
3400 @lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
3401 (setq load-path (cons (expand-file-name "~/lib/emacs") load-path))
Dave Love <fx@gnu.org>
parents:
diff changeset
3402 @end lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
3403
Dave Love <fx@gnu.org>
parents:
diff changeset
3404 @cindex news
Dave Love <fx@gnu.org>
parents:
diff changeset
3405 @cindex files, @samp{MH-E-NEWS}
Dave Love <fx@gnu.org>
parents:
diff changeset
3406
Dave Love <fx@gnu.org>
parents:
diff changeset
3407 That's it! If you're already running Emacs, please quit that session
Dave Love <fx@gnu.org>
parents:
diff changeset
3408 and start again to load in the new mh-e. Check that you're running the
Dave Love <fx@gnu.org>
parents:
diff changeset
3409 new version with the command @kbd{M-x mh-version} after running any mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
3410 command. The distribution comes with a file called @file{MH-E-NEWS} so
Dave Love <fx@gnu.org>
parents:
diff changeset
3411 you can see what's new.
Dave Love <fx@gnu.org>
parents:
diff changeset
3412
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3413 @node History, Copying, Odds and Ends, Top
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
3414 @appendix History of mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
3415
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3416 @cindex Gildea, Stephen
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3417 @cindex Larus, Jim
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3418 @cindex Reid, Brian
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3419 @cindex SourceForge
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
3420 @cindex history of mh-e
Dave Love <fx@gnu.org>
parents:
diff changeset
3421
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3422 mh-e was originally written by Brian Reid in 1983 and has changed
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3423 hands several times since then. Jim Larus wanted to do something
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3424 similar for GNU Emacs, and ended up completely rewriting it that same
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3425 year. In 1989, Stephen Gildea picked it up and added many improvements.
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3426 Bill Wohler then took over in 2000 and moved its development to
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3427 @uref{http://sourceforge.net/, SourceForge}.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
3428
Dave Love <fx@gnu.org>
parents:
diff changeset
3429 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
3430 * From Brian Reid::
Dave Love <fx@gnu.org>
parents:
diff changeset
3431 * From Jim Larus::
Dave Love <fx@gnu.org>
parents:
diff changeset
3432 * From Stephen Gildea::
Dave Love <fx@gnu.org>
parents:
diff changeset
3433 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
3434
Dave Love <fx@gnu.org>
parents:
diff changeset
3435 @node From Brian Reid, From Jim Larus, History, History
Dave Love <fx@gnu.org>
parents:
diff changeset
3436 @appendixsec From Brian Reid
Dave Love <fx@gnu.org>
parents:
diff changeset
3437
Dave Love <fx@gnu.org>
parents:
diff changeset
3438 @cindex Reid, Brian
Dave Love <fx@gnu.org>
parents:
diff changeset
3439
Dave Love <fx@gnu.org>
parents:
diff changeset
3440 One day in 1983 I got the flu and had to stay home from work for three
Dave Love <fx@gnu.org>
parents:
diff changeset
3441 days with nothing to do. I used that time to write MHE@. The
Dave Love <fx@gnu.org>
parents:
diff changeset
3442 fundamental idea behind MHE was that it was a ``puppeteer'' driving the MH
Dave Love <fx@gnu.org>
parents:
diff changeset
3443 programs underneath it. MH had a model that the editor was supposed to
Dave Love <fx@gnu.org>
parents:
diff changeset
3444 run as a subprocess of the mailer, which seemed to me at the time to be
Dave Love <fx@gnu.org>
parents:
diff changeset
3445 the tail wagging the dog. So I turned it around and made the editor
Dave Love <fx@gnu.org>
parents:
diff changeset
3446 drive the MH programs. I made sure that the UCI people (who were
Dave Love <fx@gnu.org>
parents:
diff changeset
3447 maintaining MH at the time) took in my changes and made them stick.
Dave Love <fx@gnu.org>
parents:
diff changeset
3448
Dave Love <fx@gnu.org>
parents:
diff changeset
3449 Today, I still use my own version of MHE because I don't at all like the
Dave Love <fx@gnu.org>
parents:
diff changeset
3450 way that GNU mh-e works and I've never gotten to be good enough at
Dave Love <fx@gnu.org>
parents:
diff changeset
3451 hacking Emacs Lisp to make GNU mh-e do what I want. The Gosling-emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
3452 version of MHE and the GNU Emacs version of mh-e have almost nothing in
Dave Love <fx@gnu.org>
parents:
diff changeset
3453 common except similar names. They work differently, have different
Dave Love <fx@gnu.org>
parents:
diff changeset
3454 conceptual models, and have different key bindings. @footnote{After
Dave Love <fx@gnu.org>
parents:
diff changeset
3455 reading this article, I questioned Brian about his version of MHE, and
Dave Love <fx@gnu.org>
parents:
diff changeset
3456 received some great ideas for improving mh-e such as a dired-like method
Dave Love <fx@gnu.org>
parents:
diff changeset
3457 of selecting folders; and removing the prompting when sending mail,
Dave Love <fx@gnu.org>
parents:
diff changeset
3458 filling in the blanks in the draft buffer instead. I passed them on to
Dave Love <fx@gnu.org>
parents:
diff changeset
3459 Stephen Gildea, the current maintainer, and he was excited about the
Dave Love <fx@gnu.org>
parents:
diff changeset
3460 ideas as well. Perhaps one day, mh-e will again resemble MHE, although
Dave Love <fx@gnu.org>
parents:
diff changeset
3461 none of these ideas are manifest in Version 5.0.}
Dave Love <fx@gnu.org>
parents:
diff changeset
3462
Dave Love <fx@gnu.org>
parents:
diff changeset
3463 Brian Reid, June 1994
Dave Love <fx@gnu.org>
parents:
diff changeset
3464
Dave Love <fx@gnu.org>
parents:
diff changeset
3465 @node From Jim Larus, From Stephen Gildea, From Brian Reid, History
Dave Love <fx@gnu.org>
parents:
diff changeset
3466 @appendixsec From Jim Larus
Dave Love <fx@gnu.org>
parents:
diff changeset
3467
Dave Love <fx@gnu.org>
parents:
diff changeset
3468 @cindex Larus, Jim
Dave Love <fx@gnu.org>
parents:
diff changeset
3469
Dave Love <fx@gnu.org>
parents:
diff changeset
3470 Brian Reid, while at CMU or shortly after going to Stanford wrote a mail
Dave Love <fx@gnu.org>
parents:
diff changeset
3471 reading program called MHE for Gosling Emacs. It had much the same
Dave Love <fx@gnu.org>
parents:
diff changeset
3472 structure as mh-e (i.e., invoked MH programs), though it was simpler and
Dave Love <fx@gnu.org>
parents:
diff changeset
3473 the commands were slightly different. Unfortunately, I no longer have a
Dave Love <fx@gnu.org>
parents:
diff changeset
3474 copy so the differences are lost in the mists of time.
Dave Love <fx@gnu.org>
parents:
diff changeset
3475
Dave Love <fx@gnu.org>
parents:
diff changeset
3476 In '82-83, I was working at BBN and wrote a lot of mlisp code in Gosling
Dave Love <fx@gnu.org>
parents:
diff changeset
3477 Emacs to make it look more like Tennex Emacs. One of the packages that
Dave Love <fx@gnu.org>
parents:
diff changeset
3478 I picked up and improved was Reid's mail system. In '83, I went back to
Dave Love <fx@gnu.org>
parents:
diff changeset
3479 Berkeley. About that time, Stallman's first version of GNU Emacs came
Dave Love <fx@gnu.org>
parents:
diff changeset
3480 out and people started to move to it from Gosling Emacs (as I recall,
Dave Love <fx@gnu.org>
parents:
diff changeset
3481 the transition took a year or two). I decided to port Reid's MHE and
Dave Love <fx@gnu.org>
parents:
diff changeset
3482 used the mlisp to Emacs Lisp translator that came with GNU Emacs. It
Dave Love <fx@gnu.org>
parents:
diff changeset
3483 did a lousy job and the resulting code didn't work, so I bit the bullet
Dave Love <fx@gnu.org>
parents:
diff changeset
3484 and rewrote the code by hand (it was a lot smaller and simpler then, so
Dave Love <fx@gnu.org>
parents:
diff changeset
3485 it took only a day or two).
Dave Love <fx@gnu.org>
parents:
diff changeset
3486
Dave Love <fx@gnu.org>
parents:
diff changeset
3487 Soon after that, mh-e became part of the standard Emacs distribution and
Dave Love <fx@gnu.org>
parents:
diff changeset
3488 suggestions kept dribbling in for improvements. mh-e soon reached
Dave Love <fx@gnu.org>
parents:
diff changeset
3489 sufficient functionality to keep me happy, but I kept on improving it
Dave Love <fx@gnu.org>
parents:
diff changeset
3490 because I was a graduate student with plenty of time on my hands and it
Dave Love <fx@gnu.org>
parents:
diff changeset
3491 was more fun than my dissertation. In retrospect, the one thing that I
Dave Love <fx@gnu.org>
parents:
diff changeset
3492 regret is not writing any documentation, which seriously limited the use
Dave Love <fx@gnu.org>
parents:
diff changeset
3493 and appeal of the package.
Dave Love <fx@gnu.org>
parents:
diff changeset
3494
Dave Love <fx@gnu.org>
parents:
diff changeset
3495 @cindex @code{xmh}, in mh-e history
Dave Love <fx@gnu.org>
parents:
diff changeset
3496
Dave Love <fx@gnu.org>
parents:
diff changeset
3497 In '89, I came to Wisconsin as a professor and decided not to work on
Dave Love <fx@gnu.org>
parents:
diff changeset
3498 mh-e. It was stable, except for minor bugs, and had enough
Dave Love <fx@gnu.org>
parents:
diff changeset
3499 functionality, so I let it be for a few years. Stephen Gildea of BBN
Dave Love <fx@gnu.org>
parents:
diff changeset
3500 began to pester me about the bugs, but I ignored them. In 1990, he went
Dave Love <fx@gnu.org>
parents:
diff changeset
3501 off to the X Consortium, said good bye, and said that he would now be
Dave Love <fx@gnu.org>
parents:
diff changeset
3502 using @code{xmh}. A few months later, he came back and said that he
Dave Love <fx@gnu.org>
parents:
diff changeset
3503 couldn't stand @code{xmh} and could I put a few more bug fixes into
Dave Love <fx@gnu.org>
parents:
diff changeset
3504 mh-e. At that point, I had no interest in fixing mh-e, so I gave the
Dave Love <fx@gnu.org>
parents:
diff changeset
3505 responsibility of maintenance to him and he has done a fine job since
Dave Love <fx@gnu.org>
parents:
diff changeset
3506 then.
Dave Love <fx@gnu.org>
parents:
diff changeset
3507
Dave Love <fx@gnu.org>
parents:
diff changeset
3508 Jim Larus, June 1994
Dave Love <fx@gnu.org>
parents:
diff changeset
3509
Dave Love <fx@gnu.org>
parents:
diff changeset
3510 @node From Stephen Gildea, , From Jim Larus, History
Dave Love <fx@gnu.org>
parents:
diff changeset
3511 @appendixsec From Stephen Gildea
Dave Love <fx@gnu.org>
parents:
diff changeset
3512
Dave Love <fx@gnu.org>
parents:
diff changeset
3513 @cindex Gildea, Stephen
Dave Love <fx@gnu.org>
parents:
diff changeset
3514
Dave Love <fx@gnu.org>
parents:
diff changeset
3515 In 1987 I went to work for Bolt Beranek and Newman, as Jim had before
Dave Love <fx@gnu.org>
parents:
diff changeset
3516 me. In my previous job, I had been using RMAIL, but as my folders tend
Dave Love <fx@gnu.org>
parents:
diff changeset
3517 to run large, I was frustrated with the speed of RMAIL@. However, I
Dave Love <fx@gnu.org>
parents:
diff changeset
3518 stuck with it because I wanted the GNU Emacs interface. I am very
Dave Love <fx@gnu.org>
parents:
diff changeset
3519 familiar and comfortable with the Emacs interface (with just a few
Dave Love <fx@gnu.org>
parents:
diff changeset
3520 modifications of my own) and dislike having to use applications with
Dave Love <fx@gnu.org>
parents:
diff changeset
3521 embedded editors; they never live up to Emacs.
Dave Love <fx@gnu.org>
parents:
diff changeset
3522
Dave Love <fx@gnu.org>
parents:
diff changeset
3523 MH is the mail reader of choice at BBN, so I converted to it. Since I
Dave Love <fx@gnu.org>
parents:
diff changeset
3524 didn't want to give up using an Emacs interface, I started using mh-e.
Dave Love <fx@gnu.org>
parents:
diff changeset
3525 As is my wont, I started hacking on it almost immediately. I first used
Dave Love <fx@gnu.org>
parents:
diff changeset
3526 version 3.4m. One of the first features I added was to treat the folder
Dave Love <fx@gnu.org>
parents:
diff changeset
3527 buffer as a file-visiting buffer: you could lock it, save it, and be
Dave Love <fx@gnu.org>
parents:
diff changeset
3528 warned of unsaved changes when killing it. I also worked to bring its
Dave Love <fx@gnu.org>
parents:
diff changeset
3529 functionality a little closer to RMAIL@. Jim Larus was very cooperative
Dave Love <fx@gnu.org>
parents:
diff changeset
3530 about merging in my changes, and my efforts first appeared in version
Dave Love <fx@gnu.org>
parents:
diff changeset
3531 3.6, distributed with Emacs 18.52 in 1988. Next I decided mh-e was too
Dave Love <fx@gnu.org>
parents:
diff changeset
3532 slow and optimized it a lot. Version, 3.7, distributed with Emacs 18.56
Dave Love <fx@gnu.org>
parents:
diff changeset
3533 in 1990, was noticeably faster.
Dave Love <fx@gnu.org>
parents:
diff changeset
3534
Dave Love <fx@gnu.org>
parents:
diff changeset
3535 When I moved to the X Consortium I became the first person there to not
Dave Love <fx@gnu.org>
parents:
diff changeset
3536 use xmh. (There is now one other engineer there using mh-e.) About
Dave Love <fx@gnu.org>
parents:
diff changeset
3537 this point I took over maintenance of mh-e from Jim and was finally able
Dave Love <fx@gnu.org>
parents:
diff changeset
3538 to add some features Jim hadn't accepted, such as the backward searching
Dave Love <fx@gnu.org>
parents:
diff changeset
3539 undo. My first release was 3.8 (Emacs 18.58) in 1992.
Dave Love <fx@gnu.org>
parents:
diff changeset
3540
Dave Love <fx@gnu.org>
parents:
diff changeset
3541 Now, in 1994, we see a flurry of releases, with both 4.0 and 5.0.
Dave Love <fx@gnu.org>
parents:
diff changeset
3542 Version 4.0 added many new features, including background folder
Dave Love <fx@gnu.org>
parents:
diff changeset
3543 collection and support for composing @sc{mime} messages. (Reading
Dave Love <fx@gnu.org>
parents:
diff changeset
3544 @sc{mime} messages remains to be done, alas.) While writing this book,
Dave Love <fx@gnu.org>
parents:
diff changeset
3545 Bill Wohler gave mh-e its closest examination ever, uncovering bugs and
Dave Love <fx@gnu.org>
parents:
diff changeset
3546 inconsistencies that required a new major version to fix, and so version
Dave Love <fx@gnu.org>
parents:
diff changeset
3547 5 was released.
Dave Love <fx@gnu.org>
parents:
diff changeset
3548
Dave Love <fx@gnu.org>
parents:
diff changeset
3549 Stephen Gildea, June 1994
Dave Love <fx@gnu.org>
parents:
diff changeset
3550
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3551 @node Copying, Command Index, History, Top
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
3552 @appendix GNU GENERAL PUBLIC LICENSE
36207
3f52023cf745 Release mh-e-doc-1.3 for Emacs 21.1.
Bill Wohler <wohler@newt.com>
parents: 36168
diff changeset
3553
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
3554 @center Version 2, June 1991
Dave Love <fx@gnu.org>
parents:
diff changeset
3555
Dave Love <fx@gnu.org>
parents:
diff changeset
3556 @display
Dave Love <fx@gnu.org>
parents:
diff changeset
3557 Copyright @copyright{} 1989, 1991 Free Software Foundation, Inc.
Dave Love <fx@gnu.org>
parents:
diff changeset
3558 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Dave Love <fx@gnu.org>
parents:
diff changeset
3559
Dave Love <fx@gnu.org>
parents:
diff changeset
3560 Everyone is permitted to copy and distribute verbatim copies
Dave Love <fx@gnu.org>
parents:
diff changeset
3561 of this license document, but changing it is not allowed.
Dave Love <fx@gnu.org>
parents:
diff changeset
3562 @end display
Dave Love <fx@gnu.org>
parents:
diff changeset
3563
Dave Love <fx@gnu.org>
parents:
diff changeset
3564 @appendixsec Preamble
Dave Love <fx@gnu.org>
parents:
diff changeset
3565
Dave Love <fx@gnu.org>
parents:
diff changeset
3566 The licenses for most software are designed to take away your
Dave Love <fx@gnu.org>
parents:
diff changeset
3567 freedom to share and change it. By contrast, the GNU General Public
Dave Love <fx@gnu.org>
parents:
diff changeset
3568 License is intended to guarantee your freedom to share and change free
Dave Love <fx@gnu.org>
parents:
diff changeset
3569 software---to make sure the software is free for all its users. This
Dave Love <fx@gnu.org>
parents:
diff changeset
3570 General Public License applies to most of the Free Software
Dave Love <fx@gnu.org>
parents:
diff changeset
3571 Foundation's software and to any other program whose authors commit to
Dave Love <fx@gnu.org>
parents:
diff changeset
3572 using it. (Some other Free Software Foundation software is covered by
Dave Love <fx@gnu.org>
parents:
diff changeset
3573 the GNU Library General Public License instead.) You can apply it to
Dave Love <fx@gnu.org>
parents:
diff changeset
3574 your programs, too.
Dave Love <fx@gnu.org>
parents:
diff changeset
3575
Dave Love <fx@gnu.org>
parents:
diff changeset
3576 When we speak of free software, we are referring to freedom, not
Dave Love <fx@gnu.org>
parents:
diff changeset
3577 price. Our General Public Licenses are designed to make sure that you
Dave Love <fx@gnu.org>
parents:
diff changeset
3578 have the freedom to distribute copies of free software (and charge for
Dave Love <fx@gnu.org>
parents:
diff changeset
3579 this service if you wish), that you receive source code or can get it
Dave Love <fx@gnu.org>
parents:
diff changeset
3580 if you want it, that you can change the software or use pieces of it
Dave Love <fx@gnu.org>
parents:
diff changeset
3581 in new free programs; and that you know you can do these things.
Dave Love <fx@gnu.org>
parents:
diff changeset
3582
Dave Love <fx@gnu.org>
parents:
diff changeset
3583 To protect your rights, we need to make restrictions that forbid
Dave Love <fx@gnu.org>
parents:
diff changeset
3584 anyone to deny you these rights or to ask you to surrender the rights.
Dave Love <fx@gnu.org>
parents:
diff changeset
3585 These restrictions translate to certain responsibilities for you if you
Dave Love <fx@gnu.org>
parents:
diff changeset
3586 distribute copies of the software, or if you modify it.
Dave Love <fx@gnu.org>
parents:
diff changeset
3587
Dave Love <fx@gnu.org>
parents:
diff changeset
3588 For example, if you distribute copies of such a program, whether
Dave Love <fx@gnu.org>
parents:
diff changeset
3589 gratis or for a fee, you must give the recipients all the rights that
Dave Love <fx@gnu.org>
parents:
diff changeset
3590 you have. You must make sure that they, too, receive or can get the
Dave Love <fx@gnu.org>
parents:
diff changeset
3591 source code. And you must show them these terms so they know their
Dave Love <fx@gnu.org>
parents:
diff changeset
3592 rights.
Dave Love <fx@gnu.org>
parents:
diff changeset
3593
Dave Love <fx@gnu.org>
parents:
diff changeset
3594 We protect your rights with two steps: (1) copyright the software, and
Dave Love <fx@gnu.org>
parents:
diff changeset
3595 (2) offer you this license which gives you legal permission to copy,
Dave Love <fx@gnu.org>
parents:
diff changeset
3596 distribute and/or modify the software.
Dave Love <fx@gnu.org>
parents:
diff changeset
3597
Dave Love <fx@gnu.org>
parents:
diff changeset
3598 Also, for each author's protection and ours, we want to make certain
Dave Love <fx@gnu.org>
parents:
diff changeset
3599 that everyone understands that there is no warranty for this free
Dave Love <fx@gnu.org>
parents:
diff changeset
3600 software. If the software is modified by someone else and passed on, we
Dave Love <fx@gnu.org>
parents:
diff changeset
3601 want its recipients to know that what they have is not the original, so
Dave Love <fx@gnu.org>
parents:
diff changeset
3602 that any problems introduced by others will not reflect on the original
Dave Love <fx@gnu.org>
parents:
diff changeset
3603 authors' reputations.
Dave Love <fx@gnu.org>
parents:
diff changeset
3604
Dave Love <fx@gnu.org>
parents:
diff changeset
3605 Finally, any free program is threatened constantly by software
Dave Love <fx@gnu.org>
parents:
diff changeset
3606 patents. We wish to avoid the danger that redistributors of a free
Dave Love <fx@gnu.org>
parents:
diff changeset
3607 program will individually obtain patent licenses, in effect making the
Dave Love <fx@gnu.org>
parents:
diff changeset
3608 program proprietary. To prevent this, we have made it clear that any
Dave Love <fx@gnu.org>
parents:
diff changeset
3609 patent must be licensed for everyone's free use or not licensed at all.
Dave Love <fx@gnu.org>
parents:
diff changeset
3610
Dave Love <fx@gnu.org>
parents:
diff changeset
3611 The precise terms and conditions for copying, distribution and
Dave Love <fx@gnu.org>
parents:
diff changeset
3612 modification follow.
Dave Love <fx@gnu.org>
parents:
diff changeset
3613
Dave Love <fx@gnu.org>
parents:
diff changeset
3614 @iftex
Dave Love <fx@gnu.org>
parents:
diff changeset
3615 @appendixsec TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
Dave Love <fx@gnu.org>
parents:
diff changeset
3616 @end iftex
Dave Love <fx@gnu.org>
parents:
diff changeset
3617 @ifinfo
Dave Love <fx@gnu.org>
parents:
diff changeset
3618 @center TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
Dave Love <fx@gnu.org>
parents:
diff changeset
3619 @end ifinfo
Dave Love <fx@gnu.org>
parents:
diff changeset
3620
Dave Love <fx@gnu.org>
parents:
diff changeset
3621 @enumerate 0
Dave Love <fx@gnu.org>
parents:
diff changeset
3622 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
3623 This License applies to any program or other work which contains
Dave Love <fx@gnu.org>
parents:
diff changeset
3624 a notice placed by the copyright holder saying it may be distributed
36168
df827c1def99 Clean up close-quote punctuation.
Richard M. Stallman <rms@gnu.org>
parents: 32315
diff changeset
3625 under the terms of this General Public License. The ``Program,'' below,
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
3626 refers to any such program or work, and a ``work based on the Program''
Dave Love <fx@gnu.org>
parents:
diff changeset
3627 means either the Program or any derivative work under copyright law:
Dave Love <fx@gnu.org>
parents:
diff changeset
3628 that is to say, a work containing the Program or a portion of it,
Dave Love <fx@gnu.org>
parents:
diff changeset
3629 either verbatim or with modifications and/or translated into another
Dave Love <fx@gnu.org>
parents:
diff changeset
3630 language. (Hereinafter, translation is included without limitation in
36168
df827c1def99 Clean up close-quote punctuation.
Richard M. Stallman <rms@gnu.org>
parents: 32315
diff changeset
3631 the term ``modification.'') Each licensee is addressed as ``you.''
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
3632
Dave Love <fx@gnu.org>
parents:
diff changeset
3633 Activities other than copying, distribution and modification are not
Dave Love <fx@gnu.org>
parents:
diff changeset
3634 covered by this License; they are outside its scope. The act of
Dave Love <fx@gnu.org>
parents:
diff changeset
3635 running the Program is not restricted, and the output from the Program
Dave Love <fx@gnu.org>
parents:
diff changeset
3636 is covered only if its contents constitute a work based on the
Dave Love <fx@gnu.org>
parents:
diff changeset
3637 Program (independent of having been made by running the Program).
Dave Love <fx@gnu.org>
parents:
diff changeset
3638 Whether that is true depends on what the Program does.
Dave Love <fx@gnu.org>
parents:
diff changeset
3639
Dave Love <fx@gnu.org>
parents:
diff changeset
3640 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
3641 You may copy and distribute verbatim copies of the Program's
Dave Love <fx@gnu.org>
parents:
diff changeset
3642 source code as you receive it, in any medium, provided that you
Dave Love <fx@gnu.org>
parents:
diff changeset
3643 conspicuously and appropriately publish on each copy an appropriate
Dave Love <fx@gnu.org>
parents:
diff changeset
3644 copyright notice and disclaimer of warranty; keep intact all the
Dave Love <fx@gnu.org>
parents:
diff changeset
3645 notices that refer to this License and to the absence of any warranty;
Dave Love <fx@gnu.org>
parents:
diff changeset
3646 and give any other recipients of the Program a copy of this License
Dave Love <fx@gnu.org>
parents:
diff changeset
3647 along with the Program.
Dave Love <fx@gnu.org>
parents:
diff changeset
3648
Dave Love <fx@gnu.org>
parents:
diff changeset
3649 You may charge a fee for the physical act of transferring a copy, and
Dave Love <fx@gnu.org>
parents:
diff changeset
3650 you may at your option offer warranty protection in exchange for a fee.
Dave Love <fx@gnu.org>
parents:
diff changeset
3651
Dave Love <fx@gnu.org>
parents:
diff changeset
3652 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
3653 You may modify your copy or copies of the Program or any portion
Dave Love <fx@gnu.org>
parents:
diff changeset
3654 of it, thus forming a work based on the Program, and copy and
Dave Love <fx@gnu.org>
parents:
diff changeset
3655 distribute such modifications or work under the terms of Section 1
Dave Love <fx@gnu.org>
parents:
diff changeset
3656 above, provided that you also meet all of these conditions:
Dave Love <fx@gnu.org>
parents:
diff changeset
3657
Dave Love <fx@gnu.org>
parents:
diff changeset
3658 @enumerate a
Dave Love <fx@gnu.org>
parents:
diff changeset
3659 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
3660 You must cause the modified files to carry prominent notices
Dave Love <fx@gnu.org>
parents:
diff changeset
3661 stating that you changed the files and the date of any change.
Dave Love <fx@gnu.org>
parents:
diff changeset
3662
Dave Love <fx@gnu.org>
parents:
diff changeset
3663 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
3664 You must cause any work that you distribute or publish, that in
Dave Love <fx@gnu.org>
parents:
diff changeset
3665 whole or in part contains or is derived from the Program or any
Dave Love <fx@gnu.org>
parents:
diff changeset
3666 part thereof, to be licensed as a whole at no charge to all third
Dave Love <fx@gnu.org>
parents:
diff changeset
3667 parties under the terms of this License.
Dave Love <fx@gnu.org>
parents:
diff changeset
3668
Dave Love <fx@gnu.org>
parents:
diff changeset
3669 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
3670 If the modified program normally reads commands interactively
Dave Love <fx@gnu.org>
parents:
diff changeset
3671 when run, you must cause it, when started running for such
Dave Love <fx@gnu.org>
parents:
diff changeset
3672 interactive use in the most ordinary way, to print or display an
Dave Love <fx@gnu.org>
parents:
diff changeset
3673 announcement including an appropriate copyright notice and a
Dave Love <fx@gnu.org>
parents:
diff changeset
3674 notice that there is no warranty (or else, saying that you provide
Dave Love <fx@gnu.org>
parents:
diff changeset
3675 a warranty) and that users may redistribute the program under
Dave Love <fx@gnu.org>
parents:
diff changeset
3676 these conditions, and telling the user how to view a copy of this
Dave Love <fx@gnu.org>
parents:
diff changeset
3677 License. (Exception: if the Program itself is interactive but
Dave Love <fx@gnu.org>
parents:
diff changeset
3678 does not normally print such an announcement, your work based on
Dave Love <fx@gnu.org>
parents:
diff changeset
3679 the Program is not required to print an announcement.)
Dave Love <fx@gnu.org>
parents:
diff changeset
3680 @end enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
3681
Dave Love <fx@gnu.org>
parents:
diff changeset
3682 These requirements apply to the modified work as a whole. If
Dave Love <fx@gnu.org>
parents:
diff changeset
3683 identifiable sections of that work are not derived from the Program,
Dave Love <fx@gnu.org>
parents:
diff changeset
3684 and can be reasonably considered independent and separate works in
Dave Love <fx@gnu.org>
parents:
diff changeset
3685 themselves, then this License, and its terms, do not apply to those
Dave Love <fx@gnu.org>
parents:
diff changeset
3686 sections when you distribute them as separate works. But when you
Dave Love <fx@gnu.org>
parents:
diff changeset
3687 distribute the same sections as part of a whole which is a work based
Dave Love <fx@gnu.org>
parents:
diff changeset
3688 on the Program, the distribution of the whole must be on the terms of
Dave Love <fx@gnu.org>
parents:
diff changeset
3689 this License, whose permissions for other licensees extend to the
Dave Love <fx@gnu.org>
parents:
diff changeset
3690 entire whole, and thus to each and every part regardless of who wrote it.
Dave Love <fx@gnu.org>
parents:
diff changeset
3691
Dave Love <fx@gnu.org>
parents:
diff changeset
3692 Thus, it is not the intent of this section to claim rights or contest
Dave Love <fx@gnu.org>
parents:
diff changeset
3693 your rights to work written entirely by you; rather, the intent is to
Dave Love <fx@gnu.org>
parents:
diff changeset
3694 exercise the right to control the distribution of derivative or
Dave Love <fx@gnu.org>
parents:
diff changeset
3695 collective works based on the Program.
Dave Love <fx@gnu.org>
parents:
diff changeset
3696
Dave Love <fx@gnu.org>
parents:
diff changeset
3697 In addition, mere aggregation of another work not based on the Program
Dave Love <fx@gnu.org>
parents:
diff changeset
3698 with the Program (or with a work based on the Program) on a volume of
Dave Love <fx@gnu.org>
parents:
diff changeset
3699 a storage or distribution medium does not bring the other work under
Dave Love <fx@gnu.org>
parents:
diff changeset
3700 the scope of this License.
Dave Love <fx@gnu.org>
parents:
diff changeset
3701
Dave Love <fx@gnu.org>
parents:
diff changeset
3702 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
3703 You may copy and distribute the Program (or a work based on it,
Dave Love <fx@gnu.org>
parents:
diff changeset
3704 under Section 2) in object code or executable form under the terms of
Dave Love <fx@gnu.org>
parents:
diff changeset
3705 Sections 1 and 2 above provided that you also do one of the following:
Dave Love <fx@gnu.org>
parents:
diff changeset
3706
Dave Love <fx@gnu.org>
parents:
diff changeset
3707 @enumerate a
Dave Love <fx@gnu.org>
parents:
diff changeset
3708 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
3709 Accompany it with the complete corresponding machine-readable
Dave Love <fx@gnu.org>
parents:
diff changeset
3710 source code, which must be distributed under the terms of Sections
Dave Love <fx@gnu.org>
parents:
diff changeset
3711 1 and 2 above on a medium customarily used for software interchange; or,
Dave Love <fx@gnu.org>
parents:
diff changeset
3712
Dave Love <fx@gnu.org>
parents:
diff changeset
3713 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
3714 Accompany it with a written offer, valid for at least three
Dave Love <fx@gnu.org>
parents:
diff changeset
3715 years, to give any third party, for a charge no more than your
Dave Love <fx@gnu.org>
parents:
diff changeset
3716 cost of physically performing source distribution, a complete
Dave Love <fx@gnu.org>
parents:
diff changeset
3717 machine-readable copy of the corresponding source code, to be
Dave Love <fx@gnu.org>
parents:
diff changeset
3718 distributed under the terms of Sections 1 and 2 above on a medium
Dave Love <fx@gnu.org>
parents:
diff changeset
3719 customarily used for software interchange; or,
Dave Love <fx@gnu.org>
parents:
diff changeset
3720
Dave Love <fx@gnu.org>
parents:
diff changeset
3721 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
3722 Accompany it with the information you received as to the offer
Dave Love <fx@gnu.org>
parents:
diff changeset
3723 to distribute corresponding source code. (This alternative is
Dave Love <fx@gnu.org>
parents:
diff changeset
3724 allowed only for noncommercial distribution and only if you
Dave Love <fx@gnu.org>
parents:
diff changeset
3725 received the program in object code or executable form with such
Dave Love <fx@gnu.org>
parents:
diff changeset
3726 an offer, in accord with Subsection b above.)
Dave Love <fx@gnu.org>
parents:
diff changeset
3727 @end enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
3728
Dave Love <fx@gnu.org>
parents:
diff changeset
3729 The source code for a work means the preferred form of the work for
Dave Love <fx@gnu.org>
parents:
diff changeset
3730 making modifications to it. For an executable work, complete source
Dave Love <fx@gnu.org>
parents:
diff changeset
3731 code means all the source code for all modules it contains, plus any
Dave Love <fx@gnu.org>
parents:
diff changeset
3732 associated interface definition files, plus the scripts used to
Dave Love <fx@gnu.org>
parents:
diff changeset
3733 control compilation and installation of the executable. However, as a
Dave Love <fx@gnu.org>
parents:
diff changeset
3734 special exception, the source code distributed need not include
Dave Love <fx@gnu.org>
parents:
diff changeset
3735 anything that is normally distributed (in either source or binary
Dave Love <fx@gnu.org>
parents:
diff changeset
3736 form) with the major components (compiler, kernel, and so on) of the
Dave Love <fx@gnu.org>
parents:
diff changeset
3737 operating system on which the executable runs, unless that component
Dave Love <fx@gnu.org>
parents:
diff changeset
3738 itself accompanies the executable.
Dave Love <fx@gnu.org>
parents:
diff changeset
3739
Dave Love <fx@gnu.org>
parents:
diff changeset
3740 If distribution of executable or object code is made by offering
Dave Love <fx@gnu.org>
parents:
diff changeset
3741 access to copy from a designated place, then offering equivalent
Dave Love <fx@gnu.org>
parents:
diff changeset
3742 access to copy the source code from the same place counts as
Dave Love <fx@gnu.org>
parents:
diff changeset
3743 distribution of the source code, even though third parties are not
Dave Love <fx@gnu.org>
parents:
diff changeset
3744 compelled to copy the source along with the object code.
Dave Love <fx@gnu.org>
parents:
diff changeset
3745
Dave Love <fx@gnu.org>
parents:
diff changeset
3746 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
3747 You may not copy, modify, sublicense, or distribute the Program
Dave Love <fx@gnu.org>
parents:
diff changeset
3748 except as expressly provided under this License. Any attempt
Dave Love <fx@gnu.org>
parents:
diff changeset
3749 otherwise to copy, modify, sublicense or distribute the Program is
Dave Love <fx@gnu.org>
parents:
diff changeset
3750 void, and will automatically terminate your rights under this License.
Dave Love <fx@gnu.org>
parents:
diff changeset
3751 However, parties who have received copies, or rights, from you under
Dave Love <fx@gnu.org>
parents:
diff changeset
3752 this License will not have their licenses terminated so long as such
Dave Love <fx@gnu.org>
parents:
diff changeset
3753 parties remain in full compliance.
Dave Love <fx@gnu.org>
parents:
diff changeset
3754
Dave Love <fx@gnu.org>
parents:
diff changeset
3755 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
3756 You are not required to accept this License, since you have not
Dave Love <fx@gnu.org>
parents:
diff changeset
3757 signed it. However, nothing else grants you permission to modify or
Dave Love <fx@gnu.org>
parents:
diff changeset
3758 distribute the Program or its derivative works. These actions are
Dave Love <fx@gnu.org>
parents:
diff changeset
3759 prohibited by law if you do not accept this License. Therefore, by
Dave Love <fx@gnu.org>
parents:
diff changeset
3760 modifying or distributing the Program (or any work based on the
Dave Love <fx@gnu.org>
parents:
diff changeset
3761 Program), you indicate your acceptance of this License to do so, and
Dave Love <fx@gnu.org>
parents:
diff changeset
3762 all its terms and conditions for copying, distributing or modifying
Dave Love <fx@gnu.org>
parents:
diff changeset
3763 the Program or works based on it.
Dave Love <fx@gnu.org>
parents:
diff changeset
3764
Dave Love <fx@gnu.org>
parents:
diff changeset
3765 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
3766 Each time you redistribute the Program (or any work based on the
Dave Love <fx@gnu.org>
parents:
diff changeset
3767 Program), the recipient automatically receives a license from the
Dave Love <fx@gnu.org>
parents:
diff changeset
3768 original licensor to copy, distribute or modify the Program subject to
Dave Love <fx@gnu.org>
parents:
diff changeset
3769 these terms and conditions. You may not impose any further
Dave Love <fx@gnu.org>
parents:
diff changeset
3770 restrictions on the recipients' exercise of the rights granted herein.
Dave Love <fx@gnu.org>
parents:
diff changeset
3771 You are not responsible for enforcing compliance by third parties to
Dave Love <fx@gnu.org>
parents:
diff changeset
3772 this License.
Dave Love <fx@gnu.org>
parents:
diff changeset
3773
Dave Love <fx@gnu.org>
parents:
diff changeset
3774 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
3775 If, as a consequence of a court judgment or allegation of patent
Dave Love <fx@gnu.org>
parents:
diff changeset
3776 infringement or for any other reason (not limited to patent issues),
Dave Love <fx@gnu.org>
parents:
diff changeset
3777 conditions are imposed on you (whether by court order, agreement or
Dave Love <fx@gnu.org>
parents:
diff changeset
3778 otherwise) that contradict the conditions of this License, they do not
Dave Love <fx@gnu.org>
parents:
diff changeset
3779 excuse you from the conditions of this License. If you cannot
Dave Love <fx@gnu.org>
parents:
diff changeset
3780 distribute so as to satisfy simultaneously your obligations under this
Dave Love <fx@gnu.org>
parents:
diff changeset
3781 License and any other pertinent obligations, then as a consequence you
Dave Love <fx@gnu.org>
parents:
diff changeset
3782 may not distribute the Program at all. For example, if a patent
Dave Love <fx@gnu.org>
parents:
diff changeset
3783 license would not permit royalty-free redistribution of the Program by
Dave Love <fx@gnu.org>
parents:
diff changeset
3784 all those who receive copies directly or indirectly through you, then
Dave Love <fx@gnu.org>
parents:
diff changeset
3785 the only way you could satisfy both it and this License would be to
Dave Love <fx@gnu.org>
parents:
diff changeset
3786 refrain entirely from distribution of the Program.
Dave Love <fx@gnu.org>
parents:
diff changeset
3787
Dave Love <fx@gnu.org>
parents:
diff changeset
3788 If any portion of this section is held invalid or unenforceable under
Dave Love <fx@gnu.org>
parents:
diff changeset
3789 any particular circumstance, the balance of the section is intended to
Dave Love <fx@gnu.org>
parents:
diff changeset
3790 apply and the section as a whole is intended to apply in other
Dave Love <fx@gnu.org>
parents:
diff changeset
3791 circumstances.
Dave Love <fx@gnu.org>
parents:
diff changeset
3792
Dave Love <fx@gnu.org>
parents:
diff changeset
3793 It is not the purpose of this section to induce you to infringe any
Dave Love <fx@gnu.org>
parents:
diff changeset
3794 patents or other property right claims or to contest validity of any
Dave Love <fx@gnu.org>
parents:
diff changeset
3795 such claims; this section has the sole purpose of protecting the
Dave Love <fx@gnu.org>
parents:
diff changeset
3796 integrity of the free software distribution system, which is
Dave Love <fx@gnu.org>
parents:
diff changeset
3797 implemented by public license practices. Many people have made
Dave Love <fx@gnu.org>
parents:
diff changeset
3798 generous contributions to the wide range of software distributed
Dave Love <fx@gnu.org>
parents:
diff changeset
3799 through that system in reliance on consistent application of that
Dave Love <fx@gnu.org>
parents:
diff changeset
3800 system; it is up to the author/donor to decide if he or she is willing
Dave Love <fx@gnu.org>
parents:
diff changeset
3801 to distribute software through any other system and a licensee cannot
Dave Love <fx@gnu.org>
parents:
diff changeset
3802 impose that choice.
Dave Love <fx@gnu.org>
parents:
diff changeset
3803
Dave Love <fx@gnu.org>
parents:
diff changeset
3804 This section is intended to make thoroughly clear what is believed to
Dave Love <fx@gnu.org>
parents:
diff changeset
3805 be a consequence of the rest of this License.
Dave Love <fx@gnu.org>
parents:
diff changeset
3806
Dave Love <fx@gnu.org>
parents:
diff changeset
3807 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
3808 If the distribution and/or use of the Program is restricted in
Dave Love <fx@gnu.org>
parents:
diff changeset
3809 certain countries either by patents or by copyrighted interfaces, the
Dave Love <fx@gnu.org>
parents:
diff changeset
3810 original copyright holder who places the Program under this License
Dave Love <fx@gnu.org>
parents:
diff changeset
3811 may add an explicit geographical distribution limitation excluding
Dave Love <fx@gnu.org>
parents:
diff changeset
3812 those countries, so that distribution is permitted only in or among
Dave Love <fx@gnu.org>
parents:
diff changeset
3813 countries not thus excluded. In such case, this License incorporates
Dave Love <fx@gnu.org>
parents:
diff changeset
3814 the limitation as if written in the body of this License.
Dave Love <fx@gnu.org>
parents:
diff changeset
3815
Dave Love <fx@gnu.org>
parents:
diff changeset
3816 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
3817 The Free Software Foundation may publish revised and/or new versions
Dave Love <fx@gnu.org>
parents:
diff changeset
3818 of the General Public License from time to time. Such new versions will
Dave Love <fx@gnu.org>
parents:
diff changeset
3819 be similar in spirit to the present version, but may differ in detail to
Dave Love <fx@gnu.org>
parents:
diff changeset
3820 address new problems or concerns.
Dave Love <fx@gnu.org>
parents:
diff changeset
3821
Dave Love <fx@gnu.org>
parents:
diff changeset
3822 Each version is given a distinguishing version number. If the Program
Dave Love <fx@gnu.org>
parents:
diff changeset
3823 specifies a version number of this License which applies to it and ``any
36168
df827c1def99 Clean up close-quote punctuation.
Richard M. Stallman <rms@gnu.org>
parents: 32315
diff changeset
3824 later version,'' you have the option of following the terms and conditions
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
3825 either of that version or of any later version published by the Free
Dave Love <fx@gnu.org>
parents:
diff changeset
3826 Software Foundation. If the Program does not specify a version number of
Dave Love <fx@gnu.org>
parents:
diff changeset
3827 this License, you may choose any version ever published by the Free Software
Dave Love <fx@gnu.org>
parents:
diff changeset
3828 Foundation.
Dave Love <fx@gnu.org>
parents:
diff changeset
3829
Dave Love <fx@gnu.org>
parents:
diff changeset
3830 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
3831 If you wish to incorporate parts of the Program into other free
Dave Love <fx@gnu.org>
parents:
diff changeset
3832 programs whose distribution conditions are different, write to the author
Dave Love <fx@gnu.org>
parents:
diff changeset
3833 to ask for permission. For software which is copyrighted by the Free
Dave Love <fx@gnu.org>
parents:
diff changeset
3834 Software Foundation, write to the Free Software Foundation; we sometimes
Dave Love <fx@gnu.org>
parents:
diff changeset
3835 make exceptions for this. Our decision will be guided by the two goals
Dave Love <fx@gnu.org>
parents:
diff changeset
3836 of preserving the free status of all derivatives of our free software and
Dave Love <fx@gnu.org>
parents:
diff changeset
3837 of promoting the sharing and reuse of software generally.
Dave Love <fx@gnu.org>
parents:
diff changeset
3838
Dave Love <fx@gnu.org>
parents:
diff changeset
3839 @iftex
Dave Love <fx@gnu.org>
parents:
diff changeset
3840 @heading NO WARRANTY
Dave Love <fx@gnu.org>
parents:
diff changeset
3841 @end iftex
Dave Love <fx@gnu.org>
parents:
diff changeset
3842 @ifinfo
Dave Love <fx@gnu.org>
parents:
diff changeset
3843 @center NO WARRANTY
Dave Love <fx@gnu.org>
parents:
diff changeset
3844 @end ifinfo
Dave Love <fx@gnu.org>
parents:
diff changeset
3845
Dave Love <fx@gnu.org>
parents:
diff changeset
3846 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
3847 BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
Dave Love <fx@gnu.org>
parents:
diff changeset
3848 FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW@. EXCEPT WHEN
Dave Love <fx@gnu.org>
parents:
diff changeset
3849 OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
Dave Love <fx@gnu.org>
parents:
diff changeset
3850 PROVIDE THE PROGRAM ``AS IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
Dave Love <fx@gnu.org>
parents:
diff changeset
3851 OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
Dave Love <fx@gnu.org>
parents:
diff changeset
3852 MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE@. THE ENTIRE RISK AS
Dave Love <fx@gnu.org>
parents:
diff changeset
3853 TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU@. SHOULD THE
Dave Love <fx@gnu.org>
parents:
diff changeset
3854 PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
Dave Love <fx@gnu.org>
parents:
diff changeset
3855 REPAIR OR CORRECTION.
Dave Love <fx@gnu.org>
parents:
diff changeset
3856
Dave Love <fx@gnu.org>
parents:
diff changeset
3857 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
3858 IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
Dave Love <fx@gnu.org>
parents:
diff changeset
3859 WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
Dave Love <fx@gnu.org>
parents:
diff changeset
3860 REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
Dave Love <fx@gnu.org>
parents:
diff changeset
3861 INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
Dave Love <fx@gnu.org>
parents:
diff changeset
3862 OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
Dave Love <fx@gnu.org>
parents:
diff changeset
3863 TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
Dave Love <fx@gnu.org>
parents:
diff changeset
3864 YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
Dave Love <fx@gnu.org>
parents:
diff changeset
3865 PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
Dave Love <fx@gnu.org>
parents:
diff changeset
3866 POSSIBILITY OF SUCH DAMAGES.
Dave Love <fx@gnu.org>
parents:
diff changeset
3867 @end enumerate
Dave Love <fx@gnu.org>
parents:
diff changeset
3868
Dave Love <fx@gnu.org>
parents:
diff changeset
3869 @iftex
Dave Love <fx@gnu.org>
parents:
diff changeset
3870 @heading END OF TERMS AND CONDITIONS
Dave Love <fx@gnu.org>
parents:
diff changeset
3871 @end iftex
Dave Love <fx@gnu.org>
parents:
diff changeset
3872 @ifinfo
Dave Love <fx@gnu.org>
parents:
diff changeset
3873 @center END OF TERMS AND CONDITIONS
Dave Love <fx@gnu.org>
parents:
diff changeset
3874 @end ifinfo
Dave Love <fx@gnu.org>
parents:
diff changeset
3875
Dave Love <fx@gnu.org>
parents:
diff changeset
3876 @page
Dave Love <fx@gnu.org>
parents:
diff changeset
3877 @appendixsec How to Apply These Terms to Your New Programs
Dave Love <fx@gnu.org>
parents:
diff changeset
3878
Dave Love <fx@gnu.org>
parents:
diff changeset
3879 If you develop a new program, and you want it to be of the greatest
Dave Love <fx@gnu.org>
parents:
diff changeset
3880 possible use to the public, the best way to achieve this is to make it
Dave Love <fx@gnu.org>
parents:
diff changeset
3881 free software which everyone can redistribute and change under these terms.
Dave Love <fx@gnu.org>
parents:
diff changeset
3882
Dave Love <fx@gnu.org>
parents:
diff changeset
3883 To do so, attach the following notices to the program. It is safest
Dave Love <fx@gnu.org>
parents:
diff changeset
3884 to attach them to the start of each source file to most effectively
Dave Love <fx@gnu.org>
parents:
diff changeset
3885 convey the exclusion of warranty; and each file should have at least
Dave Love <fx@gnu.org>
parents:
diff changeset
3886 the ``copyright'' line and a pointer to where the full notice is found.
Dave Love <fx@gnu.org>
parents:
diff changeset
3887
Dave Love <fx@gnu.org>
parents:
diff changeset
3888 @smallexample
Dave Love <fx@gnu.org>
parents:
diff changeset
3889 @var{one line to give the program's name and an idea of what it does.}
32112
18b192483928 (Copying): Change example year to `20yy'.
Miles Bader <miles@gnu.org>
parents: 30009
diff changeset
3890 Copyright (C) 20@var{yy} @var{name of author}
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
3891
Dave Love <fx@gnu.org>
parents:
diff changeset
3892 This program is free software; you can redistribute it and/or
Dave Love <fx@gnu.org>
parents:
diff changeset
3893 modify it under the terms of the GNU General Public License
Dave Love <fx@gnu.org>
parents:
diff changeset
3894 as published by the Free Software Foundation; either version 2
Dave Love <fx@gnu.org>
parents:
diff changeset
3895 of the License, or (at your option) any later version.
Dave Love <fx@gnu.org>
parents:
diff changeset
3896
Dave Love <fx@gnu.org>
parents:
diff changeset
3897 This program is distributed in the hope that it will be useful,
Dave Love <fx@gnu.org>
parents:
diff changeset
3898 but WITHOUT ANY WARRANTY; without even the implied warranty of
Dave Love <fx@gnu.org>
parents:
diff changeset
3899 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE@. See the
Dave Love <fx@gnu.org>
parents:
diff changeset
3900 GNU General Public License for more details.
Dave Love <fx@gnu.org>
parents:
diff changeset
3901
Dave Love <fx@gnu.org>
parents:
diff changeset
3902 You should have received a copy of the GNU General Public License along
Dave Love <fx@gnu.org>
parents:
diff changeset
3903 with this program; if not, write to the Free Software Foundation, Inc.,
Dave Love <fx@gnu.org>
parents:
diff changeset
3904 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
Dave Love <fx@gnu.org>
parents:
diff changeset
3905 @end smallexample
Dave Love <fx@gnu.org>
parents:
diff changeset
3906
Dave Love <fx@gnu.org>
parents:
diff changeset
3907 Also add information on how to contact you by electronic and paper mail.
Dave Love <fx@gnu.org>
parents:
diff changeset
3908
Dave Love <fx@gnu.org>
parents:
diff changeset
3909 If the program is interactive, make it output a short notice like this
Dave Love <fx@gnu.org>
parents:
diff changeset
3910 when it starts in an interactive mode:
Dave Love <fx@gnu.org>
parents:
diff changeset
3911
Dave Love <fx@gnu.org>
parents:
diff changeset
3912 @smallexample
32112
18b192483928 (Copying): Change example year to `20yy'.
Miles Bader <miles@gnu.org>
parents: 30009
diff changeset
3913 Gnomovision version 69, Copyright (C) 20@var{yy} @var{name of author}
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
3914 Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
Dave Love <fx@gnu.org>
parents:
diff changeset
3915 type `show w'. This is free software, and you are welcome
Dave Love <fx@gnu.org>
parents:
diff changeset
3916 to redistribute it under certain conditions; type `show c'
Dave Love <fx@gnu.org>
parents:
diff changeset
3917 for details.
Dave Love <fx@gnu.org>
parents:
diff changeset
3918 @end smallexample
Dave Love <fx@gnu.org>
parents:
diff changeset
3919
Dave Love <fx@gnu.org>
parents:
diff changeset
3920 The hypothetical commands @samp{show w} and @samp{show c} should show
Dave Love <fx@gnu.org>
parents:
diff changeset
3921 the appropriate parts of the General Public License. Of course, the
Dave Love <fx@gnu.org>
parents:
diff changeset
3922 commands you use may be called something other than @samp{show w} and
Dave Love <fx@gnu.org>
parents:
diff changeset
3923 @samp{show c}; they could even be mouse-clicks or menu items---whatever
Dave Love <fx@gnu.org>
parents:
diff changeset
3924 suits your program.
Dave Love <fx@gnu.org>
parents:
diff changeset
3925
Dave Love <fx@gnu.org>
parents:
diff changeset
3926 You should also get your employer (if you work as a programmer) or your
Dave Love <fx@gnu.org>
parents:
diff changeset
3927 school, if any, to sign a ``copyright disclaimer'' for the program, if
Dave Love <fx@gnu.org>
parents:
diff changeset
3928 necessary. Here is a sample; alter the names:
Dave Love <fx@gnu.org>
parents:
diff changeset
3929
Dave Love <fx@gnu.org>
parents:
diff changeset
3930 @smallexample
Dave Love <fx@gnu.org>
parents:
diff changeset
3931 @group
Dave Love <fx@gnu.org>
parents:
diff changeset
3932 Yoyodyne, Inc., hereby disclaims all copyright
Dave Love <fx@gnu.org>
parents:
diff changeset
3933 interest in the program `Gnomovision'
Dave Love <fx@gnu.org>
parents:
diff changeset
3934 (which makes passes at compilers) written
Dave Love <fx@gnu.org>
parents:
diff changeset
3935 by James Hacker.
Dave Love <fx@gnu.org>
parents:
diff changeset
3936
Dave Love <fx@gnu.org>
parents:
diff changeset
3937 @var{signature of Ty Coon}, 1 April 1989
Dave Love <fx@gnu.org>
parents:
diff changeset
3938 Ty Coon, President of Vice
Dave Love <fx@gnu.org>
parents:
diff changeset
3939 @end group
Dave Love <fx@gnu.org>
parents:
diff changeset
3940 @end smallexample
Dave Love <fx@gnu.org>
parents:
diff changeset
3941
Dave Love <fx@gnu.org>
parents:
diff changeset
3942 This General Public License does not permit incorporating your program into
Dave Love <fx@gnu.org>
parents:
diff changeset
3943 proprietary programs. If your program is a subroutine library, you may
Dave Love <fx@gnu.org>
parents:
diff changeset
3944 consider it more useful to permit linking proprietary applications with the
Dave Love <fx@gnu.org>
parents:
diff changeset
3945 library. If this is what you want to do, use the GNU Library General
Dave Love <fx@gnu.org>
parents:
diff changeset
3946 Public License instead of this License.
Dave Love <fx@gnu.org>
parents:
diff changeset
3947
Dave Love <fx@gnu.org>
parents:
diff changeset
3948 @node Command Index, Variable Index, Copying, Top
Dave Love <fx@gnu.org>
parents:
diff changeset
3949 @unnumbered Command Index
Dave Love <fx@gnu.org>
parents:
diff changeset
3950
Dave Love <fx@gnu.org>
parents:
diff changeset
3951 @printindex fn
Dave Love <fx@gnu.org>
parents:
diff changeset
3952
Dave Love <fx@gnu.org>
parents:
diff changeset
3953 @node Variable Index, Concept Index, Command Index, Top
Dave Love <fx@gnu.org>
parents:
diff changeset
3954 @unnumbered Variable Index
Dave Love <fx@gnu.org>
parents:
diff changeset
3955
Dave Love <fx@gnu.org>
parents:
diff changeset
3956 @printindex vr
Dave Love <fx@gnu.org>
parents:
diff changeset
3957
Dave Love <fx@gnu.org>
parents:
diff changeset
3958 @node Concept Index, , Variable Index, Top
Dave Love <fx@gnu.org>
parents:
diff changeset
3959 @unnumbered Concept Index
Dave Love <fx@gnu.org>
parents:
diff changeset
3960
Dave Love <fx@gnu.org>
parents:
diff changeset
3961 @printindex cp
Dave Love <fx@gnu.org>
parents:
diff changeset
3962
Dave Love <fx@gnu.org>
parents:
diff changeset
3963 @contents
Dave Love <fx@gnu.org>
parents:
diff changeset
3964 @bye
Dave Love <fx@gnu.org>
parents:
diff changeset
3965
Dave Love <fx@gnu.org>
parents:
diff changeset
3966 @c XXX In the sections on customizing mh-e, you can add cross-references
Dave Love <fx@gnu.org>
parents:
diff changeset
3967 @c to the Emacs manual and the Emacs Lisp manual wherever they are
Dave Love <fx@gnu.org>
parents:
diff changeset
3968 @c useful. @pxref{node, , section, emacs, The GNU Emacs Manual}