annotate man/supercite.texi @ 74:54cc21c15cbb r20-0b32

Import from CVS: tag r20-0b32
author cvs
date Mon, 13 Aug 2007 09:04:33 +0200
parents ac2d302a0011
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1 \input texinfo @comment -*-texinfo-*-
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2 @comment 3.47
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3 @comment %**start of header (This is for running Texinfo on a region.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
4 @setfilename ../info/supercite.info
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
5 @settitle Supercite Version 3.1 User's Manual
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
6 @iftex
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
7 @finalout
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
8 @end iftex
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
9 @c @setchapternewpage odd % For book style double sided manual.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
10 @comment %**end of header (This is for running Texinfo on a region.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
11 @c @smallbook
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
12 @tex
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
13 \overfullrule=0pt
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
14 %\global\baselineskip 30pt % For printing in double spaces
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
15 @end tex
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
16 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
17 This document describes the Supercite Version 3.1 package for citing and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
18 attributing the replies for various GNU Emacs mail and news reading
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
19 subsystems.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
20
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
21 Copyright @copyright{} 1993 Barry A@. Warsaw
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
22
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
23 Permission is granted to make and distribute verbatim copies of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
24 this manual provided the copyright notice and this permission notice
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
25 are preserved on all copies.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
26
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
27 @ignore
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
28 Permission is granted to process this file through TeX and print the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
29 results, provided the printed document carries copying permission
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
30 notice identical to this one except for the removal of this paragraph
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
31 (this paragraph not being relevant to the printed manual).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
32
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
33 @end ignore
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
34 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
35 @c
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
36 @titlepage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
37 @sp 6
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
38 @center @titlefont{Supercite User's Manual}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
39 @sp 2
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
40 @center @titlefont{Supercite Version 3.1}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
41 @sp 4
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
42 @center Manual Revision: 3.47
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
43 @center August 1993
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
44 @sp 5
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
45 @center Barry A@. Warsaw
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
46 @center @t{bwarsaw@@cen.com}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
47 @center @t{@dots{}!uunet!cen.com!bwarsaw}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
48 @page
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
49 @vskip 0pt plus 1filll
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
50 Copyright @copyright{} 1993 Barry A@. Warsaw
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
51
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
52 Permission is granted to make and distribute verbatim copies of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
53 this manual provided the copyright notice and this permission notice
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
54 are preserved on all copies.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
55
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
56 @end titlepage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
57 @page
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
58 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
59 @node Top, Introduction, (dir), (dir)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
60 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
61
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
62 This document describes the Supercite Version 3.1 package for citing and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
63 attributing the replies for various GNU Emacs mail and news reading
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
64 subsystems. The manual is divided into the following chapters.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
65
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
66 @menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
67 * Introduction::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
68 * Citations::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
69 * Getting Connected::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
70 * Replying and Yanking::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
71 * Selecting an Attribution::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
72 * Configuring the Citation Engine::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
73 * Post-yank Formatting Commands::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
74 * Information Keys and the Info Alist::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
75 * Reference Headers::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
76 * Hints to MUA Authors::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
77 * Version 3 Changes::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
78 * Thanks and History::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
79 * The Supercite Mailing List::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
80
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
81 * Concept Index::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
82 * Command Index::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
83 * Key Index::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
84 * Variable Index::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
85 @end menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
86 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
87
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
88 @node Introduction, Usage Overview, Top, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
89 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
90 @chapter Introduction
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
91 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
92
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
93 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
94 Supercite version 3.1 is a GNU Emacs package written entirely in Emacs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
95 Lisp. It interfaces to most of the commonly used Emacs mail user agents
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
96 (@dfn{MUAs}) and news user agents (@dfn{NUAs}), and provides
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
97 sophisticated facilities for the citing and attributing of message
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
98 replies. Supercite has a very specific and limited role in the process
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
99 of composing replies to both USENET network news and electronic mail.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
100
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
101 The preferred way to spell Supercite is with a capital @samp{S},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
102 lowercase @samp{upercite}. There are a few alternate spellings out there
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
103 and I won't be terribly offended if you use them. People often ask
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
104 though@dots{}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
105
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
106 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
107 @menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
108 * Usage Overview::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
109 * What Supercite Does Not Do::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
110 * What Supercite Does::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
111 @end menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
112 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
113
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
114 @cindex MUA
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
115 @cindex NUA
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
116 Supercite is only useful in conjunction with MUAs and NUAs such as VM,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
117 GNUS, RMAIL, etc@. (hereafter referred to collectively as MUAs).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
118 Supercite is typically called by the MUA after a reply buffer has been
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
119 setup. Thereafter, Supercite's many commands and formatting styles are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
120 available in that reply buffer until the reply is sent. Supercite is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
121 re-initialized in each new reply buffer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
122
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
123 Supercite is currently at major revision 3.1, and is known to work in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
124 following environments:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
125
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
126 @table @asis
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
127 @item Emacsen:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
128 GNU Emacs 18.57 through 18.59, all current FSF Emacs 19,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
129 all current Lucid Emacs 19, and Epoch 4.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
130
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
131 @item MUAs:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
132 VM 4.37 and beyond (including VM version 5), RMAIL, MH-E 3.7 and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
133 beyond, PCMAIL.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
134
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
135 @item NUAs:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
136 RNEWS, GNUS 3.12 and beyond, GNEWS.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
137
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
138 @end table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
139 For systems with version numbers, all known subsequent versions also
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
140 work with Supercite. For those systems without version numbers,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
141 Supercite probably works with any recently released version. Note that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
142 only some of these systems will work with Supercite ``out of the box.''
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
143 All others must overload interfacing routines to supply the necessary
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
144 glue. @xref{Getting Connected} for more details.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
145
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
146
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
147 @node Usage Overview, What Supercite Does Not Do, Introduction, Introduction
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
148 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
149 @kindex r
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
150 @kindex f
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
151 @kindex C-c C-y
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
152 @cindex yank
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
153 @cindex cite, citing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
154 @cindex attribute, attributing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
155 @comment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
156 @section Usage Overview
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
157 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
158
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
159 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
160 Typical usage is as follows. You want to reply or followup to a message
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
161 in your MUA. You will probably hit @kbd{r} (i.e., ``reply'') or @kbd{f}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
162 (i.e., ``forward'') to begin composing the reply. In response, the MUA
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
163 will create a reply buffer and initialize the outgoing mail headers
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
164 appropriately. The body of the reply will usually be empty at this
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
165 point. You now decide that you would like to include part of the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
166 original message in your reply. To do this, you @dfn{yank} the original
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
167 message into the reply buffer, typically with a key stroke such as
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
168 @kbd{C-c C-y}. This sequence will invoke an MUA-specific function which
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
169 fills the body of the reply with the original message and then
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
170 @dfn{attributes} this text to its author. This is called @dfn{citing}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
171 and its effect is to prefix every line from the original message with a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
172 special text tag. Most MUAs provide some default style of citing; by
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
173 using Supercite you gain a wider flexibility in the look and style of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
174 citations. Supercite's only job is to cite the original message.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
175
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
176 @node What Supercite Does Not Do, What Supercite Does, Usage Overview, Introduction
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
177 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
178 @section What Supercite Doesn't Do
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
179 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
180
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
181 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
182 Because of this clear division of labor, there are useful features which
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
183 are the sole responsibility of the MUA, even though it might seem that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
184 Supercite should provide them. For example, many people would like to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
185 be able to yank (and cite) only a portion of the original message.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
186 Since Supercite only modifies the text it finds in the reply buffer as
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
187 set up by the MUA, it is the MUA's responsibility to do partial yanking.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
188 @xref{Reply Buffer Initialization}.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
189
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
190 @vindex mail-header-separator
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
191 @comment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
192 Another potentially useful thing would be for Supercite to set up the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
193 outgoing mail headers with information it gleans from the reply buffer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
194 But by previously agreed upon convention, any text above the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
195 @code{mail-header-separator} which separates mail headers from message
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
196 bodies cannot be modified by Supercite. Supercite, in fact, doesn't
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
197 know anything about the meaning of these headers, and never ventures
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
198 outside the designated region. @xref{Hints to MUA Authors} for more
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
199 details.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
200
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
201 @node What Supercite Does, Citations, What Supercite Does Not Do, Introduction
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
202 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
203 @findex sc-cite-original
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
204 @section What Supercite Does
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
205 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
206
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
207 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
208 Supercite is invoked for the first time on a reply buffer via your MUA's
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
209 reply or forward command. This command will actually perform citations
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
210 by calling a hook variable to which Supercite's top-level function
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
211 @code{sc-cite-original} has been added. When @code{sc-cite-original} is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
212 executed, the original message must be set up in a very specific way,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
213 but this is handled automatically by the MUA. @xref{Hints to MUA
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
214 Authors}.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
215
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
216 @cindex info alist
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
217 The first thing Supercite does, via @code{sc-cite-original}, is to parse
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
218 through the original message's mail headers. It saves this data in an
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
219 @dfn{information association list}, or @dfn{info alist}. The information
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
220 in this list is used in a number of places throughout Supercite.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
221 @xref{Information Keys and the Info Alist}.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
222
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
223 @cindex nuking mail headers
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
224 @cindex reference header
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
225 After the mail header info is extracted, the headers are optionally
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
226 removed (@dfn{nuked}) from the reply. Supercite then writes a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
227 @dfn{reference header} into the buffer. This reference header is a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
228 string carrying details about the citation it is about to perform.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
229
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
230 @cindex modeline
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
231 Next, Supercite visits each line in the reply, transforming the line
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
232 according to a customizable ``script''. Lines which were not previously
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
233 cited in the original message are given a citation, while already cited
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
234 lines remain untouched, or are coerced to your preferred style.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
235 Finally, Supercite installs a keymap into the reply buffer so that you
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
236 have access to Supercite's post-yank formatting and reciting commands as
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
237 you subsequently edit your reply. You can tell that Supercite has been
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
238 installed into the reply buffer because that buffer's modeline will
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
239 display the minor mode string @samp{SC}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
240
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
241 @cindex filladapt
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
242 @cindex gin-mode
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
243 @vindex fill-prefix
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
244 @findex fill-paragraph
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
245 @comment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
246 When the original message is cited by @code{sc-cite-original}, it will
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
247 (optionally) be filled by Supercite. However, if you manually edit the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
248 cited text and want to re-fill it, you must use an add-on package such
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
249 as @cite{filladapt} or @cite{gin-mode}. These packages can recognize
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
250 Supercited text and will fill them appropriately. Emacs' built-in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
251 filling routines, e.g@. @code{fill-paragraph}, do not recognize cited
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
252 text and will not re-fill them properly because it cannot guess the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
253 @code{fill-prefix} being used.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
254 @xref{Post-yank Formatting Commands} for details.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
255
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
256 As mentioned above, Supercite provides commands to recite or uncite
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
257 regions of text in the reply buffer, and commands to perform other
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
258 beautifications on the cited original text, maintaining consistent and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
259 informative citations throughout. Supercite tries to be as configurable
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
260 as possible to allow for a wide range of personalized citation styles,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
261 but it is also immediately useful with the default configuration, once
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
262 it has been properly connected to your MUA. @xref{Getting Connected}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
263 for more details.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
264
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
265 @node Citations, Citation Elements, What Supercite Does, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
266 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
267 @cindex nested citations
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
268 @cindex citation
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
269 @comment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
270 @chapter Citations
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
271 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
272
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
273 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
274 A @dfn{citation} is the acknowledgement of the original author of a mail
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
275 message in the body of the reply. There are two basic citation styles
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
276 which Supercite supports. The first, called @dfn{nested citations} is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
277 an anonymous form of citation; in other words, an indication is made
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
278 that the cited line was written by someone @emph{other} that the current
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
279 message author (i.e., other than you, the person composing the reply),
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
280 but no reference is made as to the identity of the original author.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
281 This style should look familiar since its use on the net is widespread.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
282 Here's an example of what a message buffer would look like using nested
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
283 citations after multiple replies:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
284
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
285 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
286 >> John originally wrote this
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
287 >> and this as well
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
288 > Jane said that John didn't know
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
289 > what he was talking about
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
290 And that's what I think too.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
291 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
292
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
293 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
294 @menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
295 * Citation Elements::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
296 * Recognizing Citations::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
297 @end menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
298 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
299
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
300 Note that multiple inclusions of the original messages result in a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
301 nesting of the @samp{@code{>}} characters. This can sometimes be quite
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
302 confusing when many levels of citations are included since it may be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
303 difficult or impossible to figure out who actually participated in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
304 thread, and multiple nesting of @samp{@code{>}} characters can sometimes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
305 make the message very difficult for the eye to scan.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
306
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
307 @cindex non-nested citations
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
308 In @dfn{non-nested citations}, each cited line begins with an
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
309 informative string attributing that line to the original author. Only
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
310 the first level of attribution will be shown; subsequent citations don't
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
311 nest the citation strings. The above dialog might look like this when
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
312 non-nested citations are used:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
313
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
314 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
315 John> John originally wrote this
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
316 John> and this as well
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
317 Jane> Jane said that John didn't know
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
318 Jane> what he was talking about
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
319 And that's what I think too.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
320 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
321
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
322 Notice here that my inclusion of Jane's inclusion of John's original
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
323 message did not result in a line cited with @samp{Jane>John>}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
324
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
325 @vindex sc-nested-citation-p
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
326 @vindex nested-citation-p (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
327 Supercite supports both styles of citation, and the variable
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
328 @code{sc-nested-citation-p} controls which style it will use when citing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
329 previously uncited text. When this variable is @code{nil} (the default),
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
330 non-nested citations are used. When non-@code{nil}, nested citations
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
331 are used.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
332
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
333
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
334 @node Citation Elements, Recognizing Citations, Citations, Citations
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
335 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
336 @cindex citation string
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
337 @comment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
338 @section Citation Elements
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
339 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
340
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
341 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
342 @dfn{Citation strings} are composed of one or more elements. Non-nested
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
343 citations are composed of four elements, three of which are directly
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
344 user definable. The elements are concatenated together, in this order:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
345
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
346 @cindex citation leader
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
347 @vindex citation-leader (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
348 @vindex sc-citation-leader
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
349 @enumerate
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
350 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
351 The @dfn{citation leader}. The citation leader is contained in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
352 variable @code{sc-citation-leader}, and has the default value of a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
353 string containing four spaces.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
354
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
355 @cindex attribution string
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
356 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
357 The @dfn{attribution string}. This element is supplied automatically by
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
358 Supercite, based on your preferences and the original message's mail
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
359 headers, though you may be asked to confirm Supercite's choice.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
360 @xref{Selecting an Attribution} for more details.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
361
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
362 @cindex citation delimiter
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
363 @vindex sc-citation-delimiter
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
364 @vindex citation-delimiter (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
365 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
366 The @dfn{citation delimiter}. This string, contained in the variable
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
367 @code{sc-citation-delimiter} visually separates the citation from the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
368 text of the line. This variable has a default value of @code{">"} and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
369 for best results, the string should consist of only a single character.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
370
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
371 @cindex citation separator
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
372 @vindex citation-separator (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
373 @vindex sc-citation-separator
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
374 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
375 The @dfn{citation separator}. The citation separator is contained in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
376 the variable @code{sc-citation-separator}, and has the default value of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
377 a string containing a single space.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
378 @end enumerate
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
379
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
380 For example, suppose you were using the default values for the above
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
381 variables, and Supercite provided the attribution string @samp{Jane}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
382 In this case, the composed, non-nested citation string used might be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
383 something like
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
384 @code{@asis{" Jane> "}}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
385 This citation string will be inserted in front of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
386 every line in the original message that is not already cited.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
387
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
388 Nested citations, being simpler than non-nested citations, are composed
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
389 of the same elements, sans the attribution string. Supercite is smart
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
390 enough to not put additional spaces between citation delimiters for
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
391 multi-level nested citations.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
392
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
393 @node Recognizing Citations, Getting Connected, Citation Elements, Citations
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
394 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
395 @section Recognizing Citations
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
396 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
397
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
398 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
399 Supercite also recognizes citations in the original article, and can
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
400 transform these already cited lines in a number of ways. This is how
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
401 Supercite suppresses the multiple citing of non-nested citations.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
402 Recognition of cited lines is controlled by variables analogous to those
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
403 that make up the citation string as mentioned previously.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
404
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
405 @vindex sc-citation-leader-regexp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
406 @vindex citation-leader-regexp (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
407 @vindex sc-citation-delimiter-regexp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
408 @vindex citation-delimiter-regexp (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
409 @vindex sc-citation-separator-regexp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
410 @vindex citation-separator-regexp (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
411 @vindex sc-citation-root-regexp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
412 @vindex citation-root-regexp (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
413 @vindex sc-citation-nonnested-root-regexp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
414 @vindex citation-nonnested-root-regexp (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
415
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
416 The variable @code{sc-citation-leader-regexp} describes how citation
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
417 leaders can look, by default it matches any number of spaces or tabs.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
418 Note that since the lisp function @code{looking-at} is used to do the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
419 matching, if you change this variable it need not start with a leading
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
420 @code{"^"}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
421
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
422 Similarly, the variables @code{sc-citation-delimiter-regexp} and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
423 @code{sc-citation-separator-regexp} respectively describe how citation
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
424 delimiters and separators can look. They follow the same rule as
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
425 @code{sc-citation-leader-regexp} above.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
426
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
427 When Supercite composes a citation string, it provides the attribution
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
428 automatically. The analogous variable which handles recognition of the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
429 attribution part of citation strings is @code{sc-citation-root-regexp}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
430 This variable describes the attribution root for both nested and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
431 non-nested citations. By default it can match zero-to-many alphanumeric
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
432 characters (also ``.'', ``-'', and ``_''). But in some situations,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
433 Supercite has to determine whether it is looking at a nested or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
434 non-nested citation. Thus the variable
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
435 @code{sc-citation-nonnested-root-regexp} is used to describe only
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
436 non-nested citation roots. It is important to remember that if you
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
437 change @code{sc-citation-root-regexp} you should always also change
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
438 @code{sc-citation-nonnested-root-regexp}.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
439
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
440 Nemacs users:@: For best results, try setting
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
441 @code{sc-citation-root-regexp} to:@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
442
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
443 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
444 "\\([-._a-zA-Z0-9]\\|\\cc\\|\\cC\\|\\ch\\|\\cH\\|\\ck\\|\\cK\\|\\ca\\|\\cg\\|\\cr\\|\\cu\\)*"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
445 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
446
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
447 Mule users:@: For best results, try setting
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
448 @code{sc-citation-root-regexp} to:@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
449
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
450 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
451 "\\([-._a-zA-Z0-9]\\|\\cj\\)*"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
452 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
453
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
454 @node Information Keys and the Info Alist, Reference Headers, Miscellaneous Commands, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
455 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
456 @cindex information keys
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
457 @cindex Info Alist
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
458 @cindex information extracted from mail fields
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
459 @findex sc-mail-field
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
460 @findex mail-field (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
461 @comment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
462 @chapter Information Keys and the Info Alist
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
463 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
464
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
465 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
466 @dfn{Mail header information keys} are nuggets of information that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
467 Supercite extracts from the various mail headers of the original
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
468 message, placed in the reply buffer by the MUA. Information is kept in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
469 the @dfn{Info Alist} as key-value pairs, and can be retrieved for use in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
470 various places within Supercite, such as in header rewrite functions and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
471 attribution selection. Other bits of data, composed and created by
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
472 Supercite, are also kept as key-value pairs in this alist. In the case
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
473 of mail fields, the key is the name of the field, omitting the trailing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
474 colon. Info keys are always case insensitive (as are mail headers), and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
475 the value for a corresponding key can be retrieved from the alist with
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
476 the @code{sc-mail-field} function. Thus, if the following fields were
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
477 present in the original article:@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
478
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
479 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
480 Date:@: 08 April 1991, 17:32:09 EST
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
481 Subject:@: Better get out your asbestos suit
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
482 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
483
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
484 @vindex sc-mumble
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
485 @vindex mumble (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
486 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
487 then, the following lisp constructs return:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
488
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
489 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
490 (sc-mail-field "date")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
491 ==> "08 April 1991, 17:32:09 EST"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
492
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
493 (sc-mail-field "subject")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
494 ==> "Better get out your asbestos suit"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
495 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
496
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
497 Since the argument to @code{sc-mail-field} can be any string, it is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
498 possible that the mail field will not be present on the info alist
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
499 (possibly because the mail header was not present in the original
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
500 message). In this case, @code{sc-mail-field} will return the value of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
501 the variable @code{sc-mumble}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
502
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
503 Supercite always places all mail fields found in the yanked original
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
504 article into the info alist. If possible, Supercite will also places
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
505 the following keys into the info alist:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
506
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
507 @table @code
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
508 @cindex sc-attribution info field
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
509 @cindex attribution info field (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
510 @item "sc-attribution"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
511 the selected attribution string.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
512
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
513 @cindex sc-citation info field
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
514 @cindex citation info field (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
515 @item "sc-citation"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
516 the non-nested citation string.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
517
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
518 @cindex sc-from-address info field
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
519 @cindex from-address info field (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
520 @item "sc-from-address"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
521 email address extracted from the @samp{From:@:} field.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
522
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
523 @cindex sc-reply-address info field
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
524 @cindex reply-address info field (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
525 @item "sc-reply-address"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
526 email address extracted from the @samp{Reply-To:@:} field.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
527
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
528 @cindex sc-sender-address info field
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
529 @cindex sender-address info field (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
530 @item "sc-sender-address"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
531 email address extracted from the @samp{Sender:@:} field.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
532
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
533 @cindex sc-emailname info field
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
534 @cindex emailname info field (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
535 @item "sc-emailname"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
536 email terminus extracted from the @samp{From:@:} field.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
537
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
538 @cindex sc-initials info field
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
539 @cindex initials info field (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
540 @item "sc-initials"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
541 the author's initials.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
542
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
543 @cindex sc-author info field
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
544 @cindex author info field (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
545 @item "sc-author"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
546 the author's full name.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
547
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
548 @cindex sc-firstname info field
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
549 @cindex firstname info field (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
550 @item "sc-firstname"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
551 the author's first name.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
552
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
553 @cindex sc-lastname info field
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
554 @cindex lastname info field (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
555 @item "sc-lastname"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
556 the author's last name.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
557
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
558 @cindex sc-middlename-1 info field
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
559 @cindex middlename-1 info field (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
560 @item "sc-middlename-1"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
561 the author's first middle name.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
562 @end table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
563
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
564 If the author's name has more than one middle name, they will appear as
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
565 info keys with the appropriate index (e.g., @code{"sc-middlename-2"},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
566 @dots{}). @xref{Selecting an Attribution}.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
567
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
568 @node Reference Headers, The Built-in Header Rewrite Functions, Information Keys and the Info Alist, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
569 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
570 @cindex reference headers
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
571 @chapter Reference Headers
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
572 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
573
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
574 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
575 Supercite will insert an informative @dfn{reference header} at the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
576 beginning of the cited body of text, which display more detail about the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
577 original article and provides the mapping between the attribution and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
578 the original author in non-nested citations. Whereas the citation
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
579 string usually only contains a portion of the original author's name,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
580 the reference header can contain such information as the author's full
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
581 name, email address, the original article's subject, etc. In fact any
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
582 information contained in the info alist can be inserted into a reference
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
583 header.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
584
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
585 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
586 @menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
587 * The Built-in Header Rewrite Functions::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
588 * Electric References::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
589 @end menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
590 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
591
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
592 @cindex header rewrite functions
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
593 @vindex sc-rewrite-header-list
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
594 @vindex rewrite-header-list (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
595 There are a number of built-in @dfn{header rewrite functions} supplied
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
596 by Supercite, but you can write your own custom header rewrite functions
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
597 (perhaps using the built-in ones as examples). The variable
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
598 @code{sc-rewrite-header-list} contains the list of such header rewrite
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
599 functions. This list is consulted both when inserting the initial
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
600 reference header, and when displaying @dfn{electric references}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
601 @xref{Electric References}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
602
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
603 @vindex sc-preferred-header-style
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
604 @vindex preferred-header-style (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
605 When Supercite is initially run on a reply buffer (via
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
606 @code{sc-cite-original}), it will automatically call one of these
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
607 functions. The one it uses is defined in the variable
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
608 @code{sc-preferred-header-style}. The value of this variable is an
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
609 integer which is an index into the @code{sc-rewrite-header-list},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
610 beginning at zero.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
611
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
612 @node The Built-in Header Rewrite Functions, Electric References, Reference Headers, Reference Headers
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
613 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
614 @cindex header rewrite functions, built-in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
615 @comment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
616 @section The Built-in Header Rewrite Functions
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
617 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
618
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
619 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
620 Below are examples of the various built-in header rewrite functions.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
621 Please note the following:@: first, the text which appears in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
622 examples below as @var{infokey} indicates that the corresponding value
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
623 of the info key from the info alist will be inserted there.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
624 (@xref{Information Keys and the Info Alist}). For example, in @code{sc-header-on-said}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
625 below, @var{date} and @var{from} correspond to the values of the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
626 @samp{Date:@:} and @samp{From:@:} mail headers respectively.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
627
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
628 @vindex sc-reference-tag-string
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
629 @vindex reference-tag-string (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
630 Also, the string @code{">>>>>"} below is really the value of the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
631 variable @code{sc-reference-tag-string}. This variable is used in all
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
632 built-in header rewrite functions, and you can customize its value to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
633 change the tag string globally.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
634
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
635 Finally, the references headers actually written may omit certain parts
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
636 of the header if the info key associated with @var{infokey} is not
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
637 present in the info alist. In fact, for all built-in headers, if the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
638 @samp{From:@:} field is not present in the mail headers, the entire
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
639 reference header will be omitted (but this usually signals a serious
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
640 problem either in your MUA or in Supercite's installation).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
641
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
642 @table @code
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
643 @findex sc-no-header
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
644 @findex no-header (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
645 @item sc-no-header
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
646 This function produces no header. It should be used instead of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
647 @code{nil} to produce a blank header. This header can possibly contain
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
648 a blank line after the @code{mail-header-separator} line.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
649
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
650 @item sc-no-blank-line-or-header
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
651 @findex sc-no-blank-line-or-header
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
652 @findex no-blank-line-or-header (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
653 This function is similar to @code{sc-no-header} except that any blank
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
654 line after the @code{mail-header-separator} line will be removed.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
655
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
656 @item sc-header-on-said
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
657 @findex sc-header-on-said
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
658 @findex header-on-said (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
659 @code{>>>>> On @var{date}, @var{from} said:}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
660
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
661 @item sc-header-inarticle-writes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
662 @findex sc-header-inarticle-writes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
663 @findex header-inarticle-writes (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
664 @code{>>>>> In article @var{message-id}, @var{from} writes:}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
665
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
666 @item sc-header-regarding-adds
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
667 @findex sc-header-regarding-adds
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
668 @findex header-regarding-adds (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
669 @code{>>>>> Regarding @var{subject}; @var{from} adds:}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
670
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
671 @item sc-header-attributed-writes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
672 @findex sc-header-attributed-writes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
673 @findex header-attributed-writes (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
674 @code{>>>>> "@var{sc-attribution}" == @var{sc-author} <@var{sc-reply-address}> writes:}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
675
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
676 @item sc-header-author-writes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
677 @findex sc-header-author-writes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
678 @findex header-author-writes (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
679 @code{>>>>> @var{sc-author} writes:}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
680
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
681 @item sc-header-verbose
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
682 @findex sc-header-verbose
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
683 @findex header-verbose (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
684 @code{>>>>> On @var{date},}@*
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
685 @code{>>>>> @var{sc-author}}@*
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
686 @code{>>>>> from the organization of @var{organization}}@*
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
687 @code{>>>>> who can be reached at:@: @var{sc-reply-address}}@*
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
688 @code{>>>>> (whose comments are cited below with:@: "@var{sc-cite}")}@*
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
689 @code{>>>>> had this to say in article @var{message-id}}@*
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
690 @code{>>>>> in newsgroups @var{newsgroups}}@*
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
691 @code{>>>>> concerning the subject of @var{subject}}@*
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
692 @code{>>>>> see @var{references} for more details}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
693 @end table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
694
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
695 @node Electric References, Hints to MUA Authors, The Built-in Header Rewrite Functions, Reference Headers
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
696 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
697 @cindex electric references
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
698 @section Electric References
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
699 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
700
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
701 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
702 By default, when Supercite cites the original message for the first
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
703 time, it just goes ahead and inserts the reference header indexed by
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
704 @code{sc-preferred-header-style}. However, you may want to select
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
705 different reference headers based on the type of reply or forwarding you
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
706 are doing. You may also want to preview the reference header before
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
707 deciding whether to insert it into the reply buffer or not. Supercite
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
708 provides an optional @dfn{electric reference} mode which you can drop
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
709 into to give you this functionality.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
710
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
711 @vindex sc-electric-references-p
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
712 @vindex electric-references-p (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
713 If the variable @code{sc-electric-references-p} is non-@code{nil},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
714 Supercite will bring up an electric reference mode buffer and place you
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
715 into a recursive edit. The electric reference buffer is read-only, so
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
716 you cannot directly modify the reference text until you exit electric
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
717 references and insert the text into the reply buffer. But you can cycle
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
718 through all the reference header rewrite functions in your
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
719 @code{sc-rewrite-header-list}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
720
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
721 You can also set a new preferred header style, jump to any header, or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
722 jump to the preferred header. The header will be shown in the electric
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
723 reference buffer and the header index and function name will appear in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
724 the echo area.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
725
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
726 The following commands are available while in electric reference mode
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
727 (shown here with their default key bindings):
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
728
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
729 @table @asis
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
730 @item @code{sc-eref-next} (@kbd{n})
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
731 @findex sc-eref-next
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
732 @findex eref-next (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
733 @kindex n
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
734 @vindex sc-electric-circular-p
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
735 @vindex electric-circular-p (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
736 Displays the next reference header in the electric reference buffer. If
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
737 the variable @code{sc-electric-circular-p} is non-@code{nil}, invoking
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
738 @code{sc-eref-next} while viewing the last reference header in the list
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
739 will wrap around to the first header.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
740
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
741 @item @code{sc-eref-prev} (@kbd{p})
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
742 @findex sc-eref-prev
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
743 @findex eref-prev (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
744 @kindex p
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
745 Displays the previous reference header in the electric reference buffer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
746 If the variable @code{sc-electric-circular-p} is non-@code{nil},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
747 invoking @code{sc-eref-prev} will wrap around to the last header.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
748
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
749 @item @code{sc-eref-goto} (@kbd{g})
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
750 @findex sc-eref-goto
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
751 @findex eref-goto (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
752 @kindex g
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
753 Goes to a specified reference header. The index (into the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
754 @code{sc-rewrite-header-list}) can be specified as a numeric argument to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
755 the command. Otherwise, Supercite will query you for the index in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
756 minibuffer.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
757
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
758 @item @code{sc-eref-jump} (@kbd{j})
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
759 @findex sc-eref-jump
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
760 @findex eref-jump (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
761 @kindex j
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
762 Display the preferred reference header, i.e., the one indexed by the current
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
763 value of @code{sc-preferred-header-style}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
764
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
765 @item @code{sc-eref-setn} (@kbd{s})
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
766 @findex sc-eref-setn
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
767 @findex eref-setn (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
768 @kindex s
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
769 Set the preferred reference header (i.e.,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
770 @code{sc-preferred-header-style}) to the currently displayed header.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
771
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
772 @item @code{sc-eref-exit} (@key{LFD}, @key{RET}, and @key{ESC C-c})
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
773 @kindex RET
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
774 @kindex LFD
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
775 @kindex q
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
776 @findex sc-eref-exit
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
777 @findex eref-exit (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
778 Exit from electric reference mode and insert the current header into the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
779 reply buffer.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
780
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
781 @item @code{sc-eref-abort} (@kbd{q}, @kbd{x})
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
782 @findex sc-eref-abort
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
783 @findex eref-abort (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
784 @kindex x
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
785 Exit from electric reference mode without inserting the current header.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
786 @end table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
787
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
788 @vindex sc-electric-mode-hook
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
789 @vindex electric-mode-hook (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
790 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
791 Supercite will execute the hook @code{sc-electric-mode-hook} before
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
792 entering electric reference mode.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
793
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
794 @node Getting Connected, Emacs 19 MUAs, Recognizing Citations, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
795 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
796 @cindex citation interface specification
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
797 @chapter Getting Connected
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
798 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
799
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
800 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
801 Hitting @kbd{C-c C-y} in your MUA's reply buffer yanks and cites the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
802 original message into the reply buffer. In reality, the citation of the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
803 original message is performed via a call through a configurable hook
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
804 variable. The name of this variable has been agreed to in advance as
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
805 part of the @dfn{citation interface specification}. By default this
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
806 hook variable has a @code{nil} value, which the MUA recognizes to mean,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
807 ``use your default citation function''. When you add Supercite's
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
808 citation function to the hook, thereby giving the variable a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
809 non-@code{nil} value, it tells the MUA to run the hook via
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
810 @code{run-hooks} instead of using the default citation.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
811
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
812 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
813 @menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
814 * Emacs 19 MUAs::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
815 * Emacs 18 MUAs::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
816 * MH-E with any Emacsen::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
817 * VM with any Emacsen::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
818 * GNEWS with any Emacsen::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
819 * Overloading for Non-conforming MUAs::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
820 @end menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
821 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
822
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
823 Early in Supercite's development, the Supercite author, a few MUA
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
824 authors, and some early Supercite users got together and agreed upon a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
825 standard interface between MUAs and citation packages (of which
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
826 Supercite is currently the only known add-on @t{:-)}. With the recent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
827 release of the Free Software Foundation's GNU Emacs 19, the interface
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
828 has undergone some modification and it is possible that not all MUAs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
829 support the new interface yet. Some support only the old interface and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
830 some do not support the interface at all. Still, it is possible for all
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
831 known MUAs to use Supercite, and the following sections will outline the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
832 procedures you need to follow.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
833
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
834 To learn exactly how to connect Supercite to the software systems you
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
835 are using, read the appropriate following sections. For details on the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
836 interface specifications, or if you are writing or maintaining an MUA,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
837 @pxref{Hints to MUA Authors}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
838
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
839 @cindex autoload
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
840 @cindex .emacs file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
841 @findex sc-cite-original
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
842 @findex cite-original (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
843 @findex sc-submit-bug-report
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
844 @findex submit-bug-report (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
845 The first thing that everyone should do, regardless of the MUA you are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
846 using is to set up Emacs so it will load Supercite at the appropriate
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
847 time. You can either dump Supercite into your Emacs binary (ask your
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
848 local Emacs guru how to do this if you don't know), or you can set up an
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
849 @dfn{autoload} for Supercite. To do the latter, put the following in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
850 your @file{.emacs} file:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
851
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
852 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
853 (autoload 'sc-cite-original "supercite" "Supercite 3.1" t)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
854 (autoload 'sc-submit-bug-report "supercite" "Supercite 3.1" t)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
855 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
856
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
857 @cindex point
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
858 @cindex mark
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
859 The function @code{sc-cite-original} is the top-level Supercite function
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
860 designed to be run from the citation hook. It expects
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
861 @samp{point} and @samp{mark} to be set around the region to cite, and it
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
862 expects the original article's mail headers to be present within this
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
863 region. Note that Supercite @emph{never} touches any text outside this
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
864 region. Note further that for Emacs 19, the region need not be active
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
865 for @code{sc-cite-original} to do its job.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
866 @xref{Hints to MUA Authors}.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
867
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
868 The other step in the getting connected process is to make sure your
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
869 MUA calls @code{sc-cite-original} at the right time. As mentioned
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
870 above, some MUAs handle this differently. Read the sections that follow
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
871 pertaining to the MUAs you are using.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
872
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
873 @vindex sc-load-hook
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
874 @vindex load-hook (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
875 @vindex sc-pre-hook
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
876 @vindex pre-hook (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
877 One final note. After Supercite is loaded into your Emacs session, it
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
878 runs the hook @code{sc-load-hook}. You can put any customizations into
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
879 this hook since it is only run once. This will not work, however, if
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
880 your Emacs maintainer has put Supercite into your dumped Emacs' image.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
881 In that case, you can use the @code{sc-pre-hook} variable, but this will
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
882 get executed every time @code{sc-cite-original} is called. @xref{Reply
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
883 Buffer Initialization}.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
884
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
885 @node Emacs 19 MUAs, Emacs 18 MUAs, Getting Connected, Getting Connected
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
886 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
887 @vindex mail-citation-hook
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
888 @cindex .emacs file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
889 @section GNUS, RMAIL, or RNEWS with any Emacs 19
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
890 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
891
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
892 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
893 These MUAs, distributed with both FSF and Lucid GNU Emacs 19, use Emacs'
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
894 built-in yanking facility, which provides the citing hook variable
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
895 @code{mail-citation-hook}. By default, this hook's value is @code{nil},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
896 but by adding the following to your @file{.emacs} file, you can tell
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
897 these MUAs to use Supercite to perform the citing of the original
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
898 message:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
899
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
900 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
901 (add-hook 'mail-citation-hook 'sc-cite-original)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
902 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
903
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
904 GNUS users may also want to add the following bit of lisp as well. This
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
905 prevents GNUS from inserting its default attribution header. Otherwise,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
906 both GNUS and Supercite will insert an attribution header:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
907
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
908 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
909 (setq news-reply-header-hook nil)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
910 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
911
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
912 Note that the @code{mail-citation-hook} interface described above was
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
913 not supported in FSF Emacs 19 until version 19.16 and in Lucid Emacs 19
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
914 until version 19.8. If you are running an earlier version of one of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
915 these Emacsen, you will need to either upgrade to the latest version, or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
916 use the unsupported @dfn{overloading} feature provided with Supercite.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
917 @xref{Overloading for Non-conforming MUAs}.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
918
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
919 @node Emacs 18 MUAs, MH-E with any Emacsen, Emacs 19 MUAs, Getting Connected
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
920 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
921 @vindex mail-citation-hook
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
922 @cindex .emacs file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
923 @cindex overloading
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
924 @cindex sendmail.el file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
925 @section GNUS, RMAIL, PCMAIL, RNEWS with Emacs 18 or Epoch 4
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
926 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
927
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
928 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
929 These MUAs use Emacs' built-in yanking and citing routines, contained in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
930 the @file{sendmail.el} file. @file{sendmail.el} for Emacs 18, and its
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
931 derivative Epoch 4, do not know anything about the citation interface
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
932 required by Supercite. To connect Supercite to any of these MUAs under
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
933 Emacs 18 or Epoch 4, you should first
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
934 @pxref{Overloading for Non-conforming MUAs}. Then follow the directions
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
935 for using these MUAs under Emacs 19.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
936 @xref{Emacs 19 MUAs}.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
937
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
938 @cindex add-hook substitute
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
939 @cindex setq as a substitute for add-hook
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
940 @findex setq
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
941 @findex add-hook
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
942 @cindex sc-unsupp.el file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
943 Note that those instructions will tell you to use the function
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
944 @code{add-hook}. This function is new with Emacs 19 and you will not
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
945 have it by default if you are running Emacs 18 or Epoch 4. You can
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
946 either substitute the appropriate call to @code{setq}, or you can use
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
947 the @code{add-hook} function that is provided in the @file{sc-unsupp.el}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
948 file of unsupported Supercite hacks and ideas. Or you can upgrade to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
949 some Emacs 19 variant! @t{:-)}@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
950
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
951 To use @code{setq} instead of @code{add-hook}, you would, for example,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
952 change this:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
953
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
954 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
955 (add-hook 'mail-citation-hook 'sc-cite-original)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
956 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
957
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
958 to:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
959
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
960 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
961 (setq mail-citation-hook 'sc-cite-original)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
962 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
963
2
ac2d302a0011 Import from CVS: tag r19-15b2
cvs
parents: 0
diff changeset
964 Note the lack of a single quote on the first argument to @code{setq}.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
965
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
966 @node MH-E with any Emacsen, VM with any Emacsen, Emacs 18 MUAs, Getting Connected
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
967 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
968 @cindex .emacs file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
969 @vindex mh-yank-hooks
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
970 @findex add-hook
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
971 @cindex mail-citation-hook
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
972 @section MH-E with any Emacsen
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
973 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
974
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
975 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
976 MH-E 4.x conforms to the @code{mail-citation-hook} interface supported
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
977 by other MUAs. At the time of this writing, MH-E 4.0 has not been
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
978 released, but if you have it, put this in your @file{.emacs} file to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
979 connect Supercite and MH-E 4.x:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
980
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
981 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
982 (add-hook 'mail-citation-hook 'sc-cite-original)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
983 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
984
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
985 Note that if you are using Emacs 18 or Epoch 4, you will not have the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
986 @code{add-hook} function. @xref{Emacs 18 MUAs} for details on how to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
987 proceed without @code{add-hook}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
988
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
989 MH-E version 3.x uses a slightly different interface than other MUAs.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
990 MH-E provides a hook variable @code{mh-yank-hooks}, but it doesn't act
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
991 like a hook, and doing an @code{add-hook} will not work.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
992
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
993 To connect Supercite to MH-E 3.x, you should instead add the following
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
994 to your @code{.emacs} file:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
995
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
996 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
997 (add-hook 'mh-yank-hooks 'sc-cite-original)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
998 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
999
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1000 @vindex mh-yank-from-start-of-msg
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1001 You also need to make sure that MH-E includes all the original mail
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1002 headers in the yanked message. The variable that controls this is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1003 @code{mh-yank-from-start-of-msg}. By default, this variable has the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1004 value @code{t}, which tells MH-E to include all the mail headers when
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1005 yanking the original message. Before you switched to using Supercite,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1006 you may have set this variable to other values so as not to include the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1007 mail headers in the yanked message. Since Supercite requires these
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1008 headers (and cleans them out for you), you need to make sure the value
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1009 is @code{t}. This lisp, in your @file{.emacs} file will do the trick:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1010
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1011 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1012 (setq mh-yank-from-start-of-msg t)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1013 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1014
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1015 Note that versions of MH-E before 3.7 did not provide the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1016 @code{mh-yank-hooks} variable. Your only option is to upgrade to MH-E
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1017 version 3.7 or later.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1018
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1019 @node VM with any Emacsen, GNEWS with any Emacsen, MH-E with any Emacsen, Getting Connected
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1020 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1021 @cindex .emacs file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1022 @vindex mail-citation-hook
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1023 @vindex mail-yank-hooks
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1024 @section VM with any Emacsen
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1025 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1026
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1027 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1028 Since release 4.40, VM has supported the citation interface required by
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1029 Supercite. But since the interface has changed recently the details of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1030 getting connected differ with the version of VM you are using.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1031
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1032 If you are running any release of VM after 4.40, you can add the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1033 following to your @file{.emacs} to connect Supercite with VM:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1034
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1035 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1036 (add-hook 'mail-yank-hooks 'sc-cite-original)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1037 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1038
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1039 Note that if you are using Emacs 18 or Epoch 4, you will not have the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1040 @code{add-hook} function. @xref{Emacs 18 MUAs} for details on how to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1041 proceed without @code{add-hook}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1042
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1043 Since version 5.34, VM has supported the newer @code{mail-citation-hook}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1044 interface, but @code{mail-yank-hooks} is still being supported for
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1045 backward compatibility. If you are running a newer version of VM and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1046 you want to maintain consistency with other MUAs, use this bit of code
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1047 instead:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1048
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1049 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1050 (add-hook 'mail-citation-hook 'sc-cite-original)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1051 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1052
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1053 @node GNEWS with any Emacsen, Overloading for Non-conforming MUAs, VM with any Emacsen, Getting Connected
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1054 @comment node-name, next, previous, up@cindex .emacs file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1055 @vindex news-reply-mode-hook
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1056 @findex sc-perform-overloads
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1057 @findex perform-overloads (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1058 @vindex gnews-ready-hook
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1059 @section GNEWS with any Emacsen
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1060 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1061
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1062 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1063 As far as I know, no version of GNEWS supports the citation interface
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1064 required by Supercite. To connect Supercite with GNEWS, please first
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1065 @pxref{Overloading for Non-conforming MUAs}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1066
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1067 After you have followed the directions in that section. You should add
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1068 the following lisp code to your @file{.emacs} file:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1069
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1070 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1071 (add-hook 'mail-citation-hook 'sc-cite-original)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1072 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1073
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1074 Note that if you are using Emacs 18 or Epoch 4, you will not have the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1075 @code{add-hook} function. @xref{Emacs 18 MUAs} for details on how to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1076 proceed without @code{add-hook}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1077
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1078 @node Overloading for Non-conforming MUAs, Replying and Yanking, GNEWS with any Emacsen, Getting Connected
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1079 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1080 @cindex overloading
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1081 @cindex sc-oloads.el
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1082 @vindex mail-citation-hook
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1083 @findex sc-perform-overloads
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1084 @cindex .emacs file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1085 @section Overloading for Non-conforming MUAs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1086 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1087
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1088 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1089 As mentioned elsewhere, some MUAs do not provide the necessary hooks to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1090 connect with Supercite. Supercite version 3.1 provides an unsupported
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1091 mechanism, called @dfn{overloading} which redefines certain key
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1092 functions in the MUA, so that it will call the @code{mail-citation-hook}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1093 variable instead of the MUA's default hard-coded citing routines. Since
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1094 most newer versions of the known MUAs support the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1095 @code{mail-citation-hook} variable, it is recommended that you upgrade
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1096 if at all possible. But if you can't upgrade, at least you're not out
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1097 of luck! Once you set up overloading properly, you should follow the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1098 directions for connecting Supercite to the Emacs 19 MUAs.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1099 @xref{Emacs 19 MUAs}.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1100
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1101 @cindex Hyperbole
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1102 @vindex hyperb:version
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1103 Users of Bob Weiner's Hyperbole package take note. Hyperbole provides
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1104 the necessary overloads (and a whole lot more!) and you can potentially
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1105 clobber it if you were to load Supercite's overloading after
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1106 Hyperbole's. For this reason, Supercite will @emph{not} perform any
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1107 overloading if it finds the variable @code{hyperb:version} is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1108 @code{boundp} (i.e. it exists because Hyperbole has been loaded into
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1109 your Emacs session). If this is the case, Supercite will display a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1110 warning message in the minibuffer. You should consult the Hyperbole
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1111 manual for further details.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1112
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1113 Overloading involves the re-definition of the citing function with the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1114 new, @code{mail-citation-hook} savvy version. The function in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1115 @file{sc-oloads.el} that does this is @code{sc-perform-overloads}. This
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1116 function is smart enough to only overload the MUA functions when it is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1117 absolutely necessary, based on the version numbers it can figure out.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1118 Also, @code{sc-perform-overloads} will only install the new functions
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1119 once. It is also smart enough to do nothing if the MUA is not yet
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1120 loaded.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1121
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1122 The tricky part is finding the right time and place to perform the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1123 overloading. It must be done after the MUA has been loaded into your
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1124 Emacs session, but before the first time you try to yank in a message.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1125 Fortunately, this has been figured out for you.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1126
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1127 If you must overload, you should put the following lisp code in your
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1128 @file{.emacs} file, to make sure the @file{sc-oloads.el} file gets
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1129 loaded at the right time:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1130
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1131 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1132 (autoload 'sc-perform-overloads "sc-oloads" "Supercite 3.1" t)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1133 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1134
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1135 Then you must make sure that the function @code{sc-perform-overloads}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1136 gets run at the right time. For GNUS, put this in your @file{.emacs}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1137 file:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1138
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1139 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1140 (setq news-reply-mode-hook 'sc-perform-overloads)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1141 (setq mail-setup-hook 'sc-perform-overloads)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1142 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1143
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1144 If you are using RNEWS, put this in your @file{.emacs} file:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1145
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1146 @vindex news-reply-mode-hook
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1147 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1148 (setq news-reply-mode-hook 'sc-perform-overloads)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1149 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1150
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1151 If you are using RMAIL or PCMAIL, put this in your @file{.emacs} file:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1152
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1153 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1154 (setq mail-setup-hook 'sc-perform-overloads)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1155 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1156
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1157 If you are using GNEWS, put this in your @file{.emacs} file:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1158
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1159 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1160 (setq news-reply-mode-hook 'sc-perform-overloads)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1161 (setq gnews-ready-hook 'sc-perform-overloads)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1162 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1163
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1164 Now go back and follow the directions for getting the Emacs 19 MUAs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1165 connected to Supercite. Be sure to @pxref{Emacs 18 MUAs} on substitutes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1166 for Emacs 19's @code{add-hook} function.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1167
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1168 @node Replying and Yanking, Reply Buffer Initialization, Overloading for Non-conforming MUAs, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1169 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1170 @chapter Replying and Yanking
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1171 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1172
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1173 This chapter explains what happens when you reply and yank an original
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1174 message from an MUA.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1175
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1176 @menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1177 * Reply Buffer Initialization::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1178 * Filling Cited Text::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1179 @end menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1180 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1181 @node Reply Buffer Initialization, Filling Cited Text, Replying and Yanking, Replying and Yanking
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1182 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1183 @findex sc-cite-original
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1184 @findex cite-original (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1185 @comment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1186 @section Reply Buffer Initialization
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1187 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1188
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1189 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1190 Executing @code{sc-cite-original} performs the following steps as it
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1191 initializes the reply buffer:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1192
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1193 @enumerate
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1194 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1195 @vindex sc-pre-hook
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1196 @vindex pre-hook (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1197 @emph{Runs @code{sc-pre-hook}.}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1198 This hook variable is run before @code{sc-cite-original} does any other
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1199 work. You could conceivably use this hook to set certain Supercite
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1200 variables based on the reply buffer's mode or name (i.e., to do
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1201 something different based on whether you are replying or following up to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1202 an article).@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1203
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1204 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1205 @emph{Inserts Supercite's keymap.}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1206 @vindex sc-mode-map-prefix
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1207 @vindex mode-map-prefix (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1208 @kindex C-c C-p
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1209 @cindex keymap prefix
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1210 Supercite provides a number of commands for performing post-yank
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1211 modifications to the reply buffer. These commands are installed on
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1212 Supercite's top-level keymap. Since Supercite has to interface with a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1213 wide variety of MUAs, it does not install all of its commands directly
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1214 into the reply buffer's keymap. Instead, it puts its commands on a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1215 keymap prefix, then installs this prefix onto the buffer's keymap. What
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1216 this means is that you typically have to type more characters to invoke
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1217 a Supercite command, but Supercite's keybindings can be made much more
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1218 consistent across MUAs.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1219
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1220 You can control what key Supercite uses as its keymap prefix by changing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1221 the variable @code{sc-mode-map-prefix}. By default, this variable is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1222 set to @code{C-c C-p}; a finger twister perhaps, but unfortunately the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1223 best default due to the scarcity of available keybindings in many MUAs.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1224
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1225 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1226 @emph{Turns on Supercite minor mode.}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1227 @cindex modeline
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1228 The modeline of the reply buffer should indicate that Supercite is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1229 active in that buffer by displaying the string @samp{SC}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1230
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1231 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1232 @emph{Sets the ``Undo Boundary''.}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1233 @cindex undo boundary
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1234 Supercite sets an undo boundary before it begins to modify the original
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1235 yanked text. This allows you to easily undo Supercite's changes to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1236 affect alternative citing styles.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1237
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1238 @item
2
ac2d302a0011 Import from CVS: tag r19-15b2
cvs
parents: 0
diff changeset
1239 @emph{Processes the mail headers.}
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1240 @vindex sc-confirm-always-p
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1241 @vindex confirm-always-p (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1242 @vindex sc-mail-warn-if-non-rfc822-p
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1243 @vindex mail-warn-if-non-rfc822-p (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1244 All previously retrieved info key-value pairs are deleted from the info
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1245 alist, then the mail headers in the body of the yanked message are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1246 scanned. Info key-value pairs are created for each header found. Also,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1247 such useful information as the author's name and email address are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1248 extracted. If the variable @code{sc-mail-warn-if-non-rfc822-p} is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1249 non-@code{nil}, then Supercite will warn you if it finds a mail header
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1250 that does not conform to RFC822. This is rare and indicates a problem
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1251 either with your MUA or the original author's MUA, or some MTA (mail
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1252 transport agent) along the way.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1253
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1254 @vindex sc-nuke-mail-headers
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1255 @vindex sc-nuke-mail-header-list
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1256 @vindex nuke-mail-headers (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1257 @vindex nuke-mail-header-list (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1258 Once the info keys have been extracted from the mail headers, the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1259 headers are nuked from the reply buffer. You can control exactly which
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1260 headers are removed or kept, but by default, all headers are removed.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1261
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1262 There are two variables which control mail header nuking. The variable
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1263 @code{sc-nuke-mail-headers} controls the overall behavior of the header
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1264 nuking routines. By setting this variable to @code{'all}, you
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1265 automatically nuke all mail headers. Likewise, setting this variable to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1266 @code{'none} inhibits nuking of any mail headers. In between these
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1267 extremes, you can tell Supercite to nuke only a specified list of mail
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1268 headers by setting this variable to @code{'specified}, or to keep only a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1269 specified list of headers by setting it to @code{'keep}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1270
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1271 If @code{sc-nuke-mail-headers} is set to @code{'specified} or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1272 @code{'keep}, then the variable @code{sc-nuke-mail-header-list} is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1273 consulted for the list of headers to nuke or keep. This variable
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1274 contains a list of regular expressions. If the mail header line matches
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1275 a regular expression in this list, the header will be nuked or kept.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1276 The line is matched against the regexp using @code{looking-at} rooted at
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1277 the beginning of the line.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1278
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1279 @vindex sc-blank-lines-after-headers
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1280 @vindex blank-lines-after-headers (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1281 If the variable @code{sc-blank-lines-after-headers} is non-@code{nil},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1282 it contains the number of blank lines remaining in the buffer after mail
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1283 headers are nuked. By default, only one blank line is left in the buffer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1284
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1285 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1286 @emph{Selects the attribution and citation strings.}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1287 Once the mail headers have been processed, Supercite selects a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1288 attribution string and a citation string which it will use to cite the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1289 original message. @xref{Selecting an Attribution} for details.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1290
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1291 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1292 @emph{Cites the message body.}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1293 @vindex sc-cite-region-limit
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1294 @vindex cite-region-limit (sc-)b
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1295 After the selection of the attribution and citation strings, Supercite
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1296 cites the original message by inserting the citation string prefix in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1297 front of every uncited line. You may not want Supercite to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1298 automatically cite very long messages however. For example, some email
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1299 could contain a smaller header section followed by a huge uuencoded
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1300 message. It wouldn't make sense to cite the uuencoded message part when
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1301 responding to the original author's short preface. For this reason,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1302 Supercite provides a variable which limits the automatic citation of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1303 long messages to a certain maximum number of lines. The variable is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1304 called @code{sc-cite-region-limit}. If this variable contains an
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1305 integer, messages with more lines that this will not be cited at all,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1306 and a warning message will be displayed. Supercite has performed
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1307 everything necessary, though, for you to manually cite only the small
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1308 portion of the original message that you want to use.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1309
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1310 If @code{sc-cite-region-limit} contains a non-@code{nil} value, the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1311 original message will always be cited, regardless of its size. If the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1312 variable contains the value @code{nil}, the region will never be cited
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1313 automatically. Use this if you always want to be able to edit and cite
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1314 the message manually.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1315
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1316 @vindex sc-cite-blank-lines-p
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1317 @vindex cite-blank-lines-p (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1318 The variable @code{sc-cite-blank-lines-p} controls whether blank lines
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1319 in the original message should be cited or not. If this variable is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1320 non-@code{nil}, blank lines will be cited just like non-blank lines.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1321 Otherwise, blank lines will be treated as paragraph separators.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1322
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1323 Citing of the original message is highly configurable. Supercite's
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1324 default setup does a pretty good job of citing many common forms of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1325 previously cited messages. But there are as many citation styles out
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1326 there as people on the net, or just about! It would be impossible for
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1327 Supercite to anticipate every style in existence, and you probably
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1328 wouldn't encounter them all anyway. But you can configure Supercite to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1329 recognize those styles you see often.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1330 @xref{Configuring the Citation Engine} for details.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1331
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1332 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1333 @emph{Runs @code{sc-post-hook}.}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1334 @vindex sc-post-hook
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1335 @vindex post-hook (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1336 This variable is very similar to @code{sc-pre-hook}, except that it runs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1337 after @code{sc-cite-original} is finished. This hook is provided mostly
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1338 for completeness and backward compatibility. Perhaps it could be used to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1339 reset certain variables set in @code{sc-pre-hook}.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1340 @end enumerate
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1341
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1342 @node Filling Cited Text, Selecting an Attribution, Reply Buffer Initialization, Replying and Yanking
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1343 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1344 @cindex filling paragraphs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1345 @vindex sc-auto-fill-region-p
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1346 @vindex auto-fill-region-p (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1347 @cindex filladapt
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1348 @cindex gin-mode
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1349 @findex sc-setup-filladapt
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1350 @findex setup-filladapt (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1351 @vindex sc-load-hook
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1352 @vindex load-hook (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1353 @section Filling Cited Text
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1354 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1355
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1356 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1357 Supercite will automatically fill newly cited text from the original
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1358 message unless the variable @code{sc-auto-fill-region-p} has a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1359 @code{nil} value. Supercite will also re-fill paragraphs when you
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1360 manually cite or re-cite text.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1361
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1362 However, during normal editing, Supercite itself cannot be used to fill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1363 paragraphs. This is a change from version 2. There are other add-on
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1364 lisp packages which do filling much better than Supercite ever did. The
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1365 two best known are @dfn{filladapt} and @dfn{gin-mode}. Both work well
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1366 with Supercite and both are available at the normal Emacs Lisp archive
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1367 sites. @dfn{gin-mode} works pretty well out of the box, but if you use
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1368 @dfn{filladapt}, you may want to run the function
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1369 @code{sc-setup-filladapt} from your @code{sc-load-hook}. This simply
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1370 makes @dfn{filladapt} a little more Supercite savvy than its default
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1371 setup.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1372
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1373 @vindex sc-fixup-whitespace-p
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1374 @vindex fixup-whitespace-p (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1375 Also, Supercite will collapse leading whitespace between the citation
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1376 string and the text on a line when the variable
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1377 @code{sc-fixup-whitespace-p} is non-@code{nil}. The default value for
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1378 this variable is @code{nil}.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1379
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1380 @vindex fill-prefix
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1381 Its important to understand that Supercite's automatic filling (during
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1382 the initial citation of the reply) is very fragile. That is because
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1383 figuring out the @code{fill-prefix} for a particular paragraph is a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1384 really hard thing to do automatically. This is especially the case when
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1385 the original message contains code or some other text where leading
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1386 whitespace is important to preserve. For this reason, many Supercite
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1387 users typically run with @code{sc-auto-fill-region-p} (and possibly also
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1388 @code{sc-fixup-whitespace-p}) set to @code{nil}. They then manually
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1389 fill each cited paragraph in the reply buffer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1390
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1391 I usually run with both these variables containing their default values.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1392 When Supercite's automatic filling breaks on a particular message, I
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1393 will use Emacs' undo feature to undo back before the citation was
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1394 applied to the original message. Then I'll toggle the variables and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1395 manually cite those paragraphs that I don't want to fill or collapse
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1396 whitespace on. @xref{Variable Toggling Shortcuts}.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1397
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1398 @kindex C-c C-p C-p
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1399 If you find that Supercite's automatic filling is just too fragile for
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1400 your tastes, you might consider one of these alternate approaches.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1401 Also, to make life easier, a shortcut function to toggle the state of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1402 both of these variables is provided on the key binding
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1403 @kbd{C-c C-p C-p} (with the default value of @code{sc-mode-map-prefix};
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1404 @pxref{Post-yank Formatting Commands}).@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1405
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1406 You will noticed that the minor mode string will
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1407 show the state of these variables as qualifier characters. When both
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1408 variables are @code{nil}, the Supercite minor mode string will display
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1409 @samp{SC}. When just @code{sc-auto-fill-region-p} is non-@code{nil}, the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1410 string will display @samp{SC:f}, and when just
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1411 @code{sc-fixup-whitespace-p} is non-@code{nil}, the string will display
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1412 @samp{SC:w}. When both variables are non-@code{nil}, the string will
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1413 display @samp{SC:fw}. Note that the qualifiers chosen are mnemonics for
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1414 the default bindings of the toggling function for each respective
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1415 variable.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1416 @xref{Variable Toggling Shortcuts}.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1417
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1418 Why are these variables not set to @code{nil} by default? It is because
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1419 many users won't manually fill paragraphs that are Supercited, and there
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1420 have been widespread complaints on the net about mail and news messages
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1421 containing lines greater than about 72 characters. So the default is to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1422 fill cited text.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1423
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1424 @node Selecting an Attribution, Attribution Preferences, Filling Cited Text, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1425 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1426 @cindex attribution list
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1427 @vindex sc-preferred-attribution-list
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1428 @vindex preferred-attribution-list (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1429 @comment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1430 @chapter Selecting an Attribution
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1431 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1432
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1433 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1434 As you know, the attribution string is the part of the author's name
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1435 that will be used to composed a non-nested citation string. Supercite
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1436 scans the various mail headers present in the original article and uses
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1437 a number of heuristics to extract strings which it puts into the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1438 @dfn{attribution association list} or @dfn{attribution alist}. This is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1439 analogous, but different than, the info alist previously mentioned. Each
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1440 element in the attribution alist is a key-value pair containing such
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1441 information as the author's first name, middle names, and last name, the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1442 author's initials, and the author's email terminus.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1443
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1444 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1445 @menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1446 * Attribution Preferences::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1447 * Anonymous Attributions::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1448 * Author Names::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1449 @end menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1450 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1451
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1452 @node Attribution Preferences, Anonymous Attributions, Selecting an Attribution, Selecting an Attribution
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1453 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1454 @section Attribution Preferences
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1455 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1456
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1457 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1458 When you cite an original message, you can tell Supercite which part of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1459 the author's name you would prefer it to use as the attribution. The
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1460 variable @code{sc-preferred-attribution-list} controls this; it contains
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1461 keys which are matched against the attribution alist in the given order.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1462 The first value of a key that produces a non-@code{nil}, non-empty
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1463 string match is used as the attribution string, and if no keys match, a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1464 secondary mechanism is used to generate the attribution.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1465 @xref{Anonymous Attributions}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1466
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1467 The following preferences are always available in the attribution alist
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1468 (barring error):
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1469
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1470 @table @code
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1471 @item "emailname"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1472 the author's email terminus.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1473
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1474 @item "initials"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1475 the author's initials.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1476
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1477 @item "firstname"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1478 the author's first name.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1479
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1480 @item "lastname"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1481 the author's last name.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1482
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1483 @item "middlename-1"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1484 the author's first middle name.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1485
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1486 @item "sc-lastchoice"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1487 the last attribution string you have selected. This is useful when you
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1488 recite paragraphs in the reply.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1489
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1490 @item "sc-consult"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1491 @vindex sc-attrib-selection-list
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1492 @vindex attrib-selection-list (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1493 consults the customizable list @code{sc-attrib-selection-list} which can
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1494 be used to select special attributions based on the value of any info
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1495 key. See below for details.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1496
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1497 @item "x-attribution"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1498 the original author's suggestion for attribution string choice. See below
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1499 for details.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1500 @end table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1501
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1502 Middle name indexes can be any positive integer greater than zero,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1503 though it is unlikely that many authors will have more than one middle
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1504 name, if that many.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1505
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1506 At this point, let me digress into a discussion of etiquette. It is my
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1507 belief that while the style of the citations is a reflection of the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1508 personal tastes of the replier (i.e., you), the attribution selection is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1509 ultimately the personal choice of the original author. In a sense it is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1510 his or her ``net nickname'', and therefore the author should have some
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1511 say in the selection of attribution string. Imagine how you would feel
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1512 if someone gave you a nickname that you didn't like?
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1513
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1514 For this reason, Supercite recognizes a special mail header,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1515 @samp{X-Attribution:}, which if present, tells Supercite the attribution
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1516 string preferred by the original author. It is the value of this header
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1517 that is associated with the @code{"x-attribution"} key in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1518 attribution alist. Currently, you can override the preference of this
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1519 key by changing @code{sc-preferred-attribution-list}, but that isn't
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1520 polite, and in the future Supercite may hard-code this. For now, it is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1521 suggested that if you change the order of the keys in this list, that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1522 @code{"x-attribution"} always be first, or possible second behind only
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1523 @code{"sc-lastchoice"}. This latter is the default.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1524
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1525 @vindex sc-attrib-selection-list
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1526 @vindex attrib-selection-list (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1527 The value @code{"sc-consult"} in @code{sc-preferred-attribution-list}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1528 has a special meaning during attribution selection. When Supercite
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1529 encounters this preference, it begins processing a customizable list of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1530 attributions, contained in the variable @code{sc-attrib-selection-list}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1531 Each element in this list contains lists of the following form:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1532
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1533 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1534 @group
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1535 (@var{infokey} ((@var{regexp} @. @var{attribution})
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1536 (@var{regexp} @. @var{attribution})
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1537 (@dots{})))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1538 @end group
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1539 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1540
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1541 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1542 @findex sc-mail-field
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1543 @findex mail-field (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1544 where @var{infokey} is a key for @code{sc-mail-field} and @var{regexp}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1545 is a regular expression to match against the @var{infokey}'s value. If
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1546 @var{regexp} matches the @var{infokey}'s value, the @var{attribution} is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1547 used as the attribution string. Actually, @var{attribution} can be a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1548 string or a list; if it is a list, it is @code{eval}uated and the return
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1549 value (which must be a string), is used as the attribution.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1550
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1551 This can be very useful for when you are replying to net acquaintances
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1552 who do not use the @samp{X-Attribution:@:} mail header. You may know
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1553 what nickname they would prefer to use, and you can set up this list to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1554 match against a specific mail field, e.g., @samp{From:@:}, allowing you
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1555 to cite your friend's message with the appropriate attribution.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1556
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1557 @node Anonymous Attributions, Author Names, Attribution Preferences, Selecting an Attribution
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1558 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1559 @vindex sc-default-author-name
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1560 @vindex default-author-name (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1561 @vindex sc-default-attribution
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1562 @vindex default-attribution (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1563 @comment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1564 @section Anonymous Attributions
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1565 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1566
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1567 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1568 When the author's name cannot be found in the @samp{From:@:} mail
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1569 header, a fallback author name and attribution string must be supplied.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1570 The fallback author name is contained in the variable
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1571 @code{sc-default-author-name} and the fallback attribution string is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1572 contained in the variable @code{sc-default-attribution}. Default values
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1573 for these variables are @code{"Anonymous"} and @code{"Anon"},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1574 respectively. Note that in most circumstances, getting the default
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1575 author name or attribution is a sign that something is set up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1576 incorrectly.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1577
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1578 @vindex sc-use-only-preference-p
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1579 @vindex use-only-preference-p (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1580 Also, if the preferred attribution, which you specified in your
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1581 @code{sc-preferred-attribution-alist} variable cannot be found, a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1582 secondary method can be employed to find a valid attribution string. The
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1583 variable @code{sc-use-only-preference-p} controls what happens in this
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1584 case. If the variable's value is non-@code{nil}, then
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1585 @code{sc-default-author-name} and @code{sc-default-attribution} are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1586 used, otherwise, the following steps are taken to find a valid
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1587 attribution string, and the first step to return a non-@code{nil},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1588 non-empty string becomes the attribution:@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1589
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1590 @enumerate
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1591 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1592 Use the last selected attribution, if there is one.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1593
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1594 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1595 Use the value of the @code{"x-attribution"} key.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1596
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1597 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1598 Use the author's first name.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1599
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1600 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1601 Use the author's last name.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1602
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1603 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1604 Use the author's initials.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1605
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1606 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1607 Find the first non-@code{nil}, non-empty attribution string in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1608 attribution alist.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1609
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1610 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1611 @code{sc-default-attribution} is used.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1612 @end enumerate
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1613
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1614 @vindex sc-confirm-always-p
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1615 @vindex confirm-always-p (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1616 Once the attribution string has been automatically selected, a number of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1617 things can happen. If the variable @code{sc-confirm-always-p} is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1618 non-@code{nil}, you are queried for confirmation of the chosen
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1619 attribution string. The possible values for completion are those strings
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1620 in the attribution alist, however you are not limited to these choices.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1621 You can type any arbitrary string at the confirmation prompt. The string
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1622 you enter becomes the value associated with the @code{"sc-lastchoice"}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1623 key in the attribution alist.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1624
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1625 @vindex sc-downcase-p
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1626 @vindex downcase-p (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1627 Once an attribution string has been selected, Supercite will force the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1628 string to lower case if the variable @code{sc-downcase-p} is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1629 non-@code{nil}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1630
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1631 @vindex sc-attribs-preselect-hook
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1632 @vindex attribs-preselect-hook (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1633 @vindex sc-attribs-postselect-hook
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1634 @vindex attribs-postselect-hook (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1635
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1636 Two hook variables provide even greater control of the attribution
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1637 selection process. The hook @code{sc-attribs-preselect-hook} is run
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1638 before any attribution is selected. Likewise, the hook
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1639 @code{sc-attribs-postselect-hook} is run after the attribution is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1640 selected (and the corresponding citation string is built), but before
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1641 these values are committed for use by Supercite. During the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1642 post-selection hook, the local variables @code{attribution} and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1643 @code{citation} are bound to the appropriate strings. By changing these
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1644 variables in your hook functions, you change the attribution and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1645 citation strings used by Supercite. One possible use of this would be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1646 to override any automatically derived attribution string when it is only
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1647 one character long; e.g. you prefer to use @code{"initials"} but the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1648 author only has one name.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1649
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1650 @node Author Names, Configuring the Citation Engine, Anonymous Attributions, Selecting an Attribution
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1651 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1652 @cindex author names
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1653 @section Author Names
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1654 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1655
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1656 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1657 Supercite employs a number of heuristics to decipher the author's name
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1658 based on value of the @samp{From:@:} mail field of the original message.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1659 Supercite can recognize almost all of the common @samp{From:@:} field
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1660 formats in use. If you encounter a @samp{From:@:} field that Supercite
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1661 cannot parse, please report this bug.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1662 @xref{The Supercite Mailing List}.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1663
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1664 @vindex sc-titlecue-regexp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1665 @vindex titlecue-regexp (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1666 There are a number of Supercite variables that control how author names
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1667 are extracted from the @samp{From:@:} header. Some headers may contain a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1668 descriptive title as in:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1669
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1670 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1671 From:@: computer!speedy!doe (John Xavier-Doe -- Decent Hacker)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1672 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1673
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1674 Supercite knows which part of the @samp{From:@:} header is email address
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1675 and which part is author name, but in this case the string @code{"Decent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1676 Hacker"} is not part of the author's name. You can tell Supercite to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1677 ignore the title, while still recognizing hyphenated names through the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1678 use of a regular expression in the variable @code{sc-titlecue-regexp}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1679 This variable has the default value of @code{"\\\\s +-+\\\\s +"}. Any
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1680 text after this regexp is encountered is ignored as noise.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1681
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1682 @vindex sc-name-filter-alist
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1683 @vindex name-filter-alist (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1684 Some @samp{From:@:} headers may contain extra titles in the name fields
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1685 not separated by a title cue, but which are nonetheless not part of the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1686 author's name proper. Examples include the titles ``Dr.'', ``Mr.'',
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1687 ``Ms.'', ``Jr.'', ``Sr.'', and ``III'' (e.g., Thurston Howe, the Third).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1688 Also, some companies prepend or append the name of the division,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1689 organization, or project on the author's name. All of these titles are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1690 noise which should be ignored. The variable @code{sc-name-filter-alist}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1691 is used for this purpose. As implied by its name, this variable is an
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1692 association list, where each element is a cons cell of the form:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1693
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1694 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1695 (@var{regexp} @. @var{position})
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1696 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1697
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1698 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1699 where @var{regexp} is a regular expression that is matched (using
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1700 @code{string-match}) against each element of the @samp{From:@:} field's
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1701 author name. @var{position} is a position indicator, starting at zero.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1702 Thus to strip out all titles of ``Dr.'', ``Mr.'', etc. from the name,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1703 @code{sc-name-filter-alist} would have an entry such as:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1704
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1705 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1706 ("^\\(Mr\\|Mrs\\|Ms\\|Dr\\)[.]?$" @. 0)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1707 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1708
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1709 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1710 which only removes them if they appear as the first word in the name.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1711 The position indicator is an integer, or one of the two special symbols
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1712 @code{last} or @code{any}. @code{last} always matches against the last
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1713 word in the name field, while @code{any} matches against every word in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1714 the name field.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1715
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1716 @node Configuring the Citation Engine, Using Regi, Author Names, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1717 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1718 @cindex Regi
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1719 @cindex frames (Regi)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1720 @cindex entries (Regi)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1721 @chapter Configuring the Citation Engine
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1722 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1723
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1724 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1725 At the heart of Supercite is a regular expression interpreting engine
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1726 called @dfn{Regi}. Regi operates by interpreting a data structure
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1727 called a Regi-frame (or just @dfn{frame}), which is a list of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1728 Regi-entries (or just @dfn{entry}). Each entry contains a predicate,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1729 typically a regular expression, which is matched against a line of text
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1730 in the current buffer. If the predicate matches true, an associated
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1731 expression is @code{eval}uated. In this way, an entire region of text
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1732 can be transformed in an @emph{awk}-like manner. Regi is used
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1733 throughout Supercite, from mail header information extraction, to header
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1734 nuking, to citing text.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1735
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1736 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1737 @menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1738 * Using Regi::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1739 * Frames You Can Customize::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1740 @end menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1741 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1742
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1743 While the details of Regi are discussed below (@pxref{Using Regi}), only
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1744 those who wish to customize certain aspects of Supercite need concern
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1745 themselves with it. It is important to understand though, that any
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1746 conceivable citation style that can be described by a regular expression
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1747 can be recognized by Supercite. This leads to some interesting
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1748 applications. For example, if you regularly recieve email from a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1749 co-worker that uses an uncommon citation style (say one that employs a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1750 @samp{|} or @samp{@}} character at the front of the line), it is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1751 possible for Supercite to recognize this and @emph{coerce} the citation
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1752 to your preferred style, for consistency. In theory, it is possible for
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1753 Supercite to recognize such things as uuencoded messages or C code and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1754 cite or fill those differently than normal text. None of this is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1755 currently part of Supercite, but contributions are welcome!
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1756
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1757 @node Using Regi, Frames You Can Customize, Configuring the Citation Engine, Configuring the Citation Engine
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1758 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1759 @findex regi-interpret
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1760 @findex eval
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1761 @findex looking-at
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1762 @section Using Regi
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1763 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1764
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1765 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1766 Regi works by interpreting frames with the function
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1767 @code{regi-interpret}. A frame is a list of arbitrary size where each
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1768 element is a entry of the following form:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1769
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1770 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1771 (@var{pred} @var{func} [@var{negate-p} [@var{case-fold-search}]])
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1772 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1773
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1774 Regi starts with the first entry in a frame, evaluating the @var{pred}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1775 of that entry against the beginning of the line that @samp{point} is on.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1776 If the @var{pred} evaluates to true (or false if the optional
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1777 @var{negate-p} is non-@code{nil}), then the @var{func} for that entry is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1778 @code{eval}uated. How processing continues is determined by the return
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1779 value for @var{func}, and is described below. If @var{pred} was false
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1780 the next entry in the frame is checked until all entries have been
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1781 matched against the current line. If no entry matches, @samp{point} is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1782 moved forward one line and the frame is reset to the first entry.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1783
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1784 @var{pred} can be a string, a variable, a list or one of the following
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1785 symbols: @code{t}, @code{begin}, @code{end}, or @code{every}. If
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1786 @var{pred} is a string, or a variable or list that @code{eval}uates to a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1787 string, it is interpreted as a regular expression. This regexp is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1788 matched against the current line, from the beginning, using
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1789 @code{looking-at}. This match folds case if the optional
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1790 @var{case-fold-search} is non-@code{nil}. If @var{pred} is not a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1791 string, or does not @code{eval}uate to a string, it is interpreted as a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1792 binary value (@code{nil} or non-@code{nil}).@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1793
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1794 The four special symbol values for @var{pred} are recognized:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1795
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1796 @table @code
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1797 @item t
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1798 Always produces a true outcome.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1799 @item begin
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1800 Always executed before the frame is interpreted. This can be used to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1801 initialize some global variables for example.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1802 @item end
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1803 Always executed after frame interpreting is completed. This can be used
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1804 to perform any necessary post-processing.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1805 @item every
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1806 Executes whenever the frame is reset, usually after the entire frame has
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1807 been matched against the current line.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1808 @end table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1809
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1810 Note that @var{negate-p} and @var{case-fold-search} are ignored if
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1811 @var{pred} is one of these special symbols. Only the first occurance of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1812 each symbol in a frame is used; any duplicates are ignored. Also
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1813 note that for performance reasons, the entries associated with these
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1814 symbols are removed from the frame during the main interpreting loop.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1815
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1816 Your @var{func} can return certain values which control continued Regi
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1817 processing. By default, if your @var{func} returns @code{nil} (as it
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1818 should be careful to do explicitly), Regi will reset the frame to the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1819 first entry, and advance @samp{point} to the beginning of the next line.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1820 If a list is returned from your function, it can contain any combination
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1821 of the following elements:@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1822
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1823 @table @asis
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1824 @item the symbol @code{continue}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1825 This tells Regi to continue processing entries after a match, instead of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1826 reseting the frame and moving @samp{point}. In this way, lines of text
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1827 can have multiple matches, but you have to be careful to avoid entering
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1828 infinite loops.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1829
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1830 @item the symbol @code{abort}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1831 This tells Regi to terminate frame processing. However, any @code{end}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1832 entry is still processed.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1833
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1834 @item the list @code{(frame . @var{newframe})}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1835 This tells Regi to substitute @var{newframe} as the frame it is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1836 interpreting. In other words, your @var{func} can modify the Regi frame
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1837 on the fly. @var{newframe} can be a variable containing a frame, or it
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1838 can be the frame in-lined.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1839
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1840 @item the list @code{(step . @var{step})}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1841 Tells Regi to move @var{step} number of lines forward as it continues
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1842 processing. By default, Regi moves forward one line. @var{step} can be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1843 zero or negative of course, but watch out for infinite loops.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1844 @end table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1845
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1846 During execution of your @var{func}, the following variables will be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1847 temporarily bound to some useful information:@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1848
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1849 @table @code
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1850 @item curline
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1851 The current line in the buffer that Regi is @code{looking-at}, as a string.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1852 @item curframe
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1853 The current frame being interpreted.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1854 @item curentry
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1855 The current frame entry being interpreted.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1856 @end table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1857
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1858 @node Frames You Can Customize, Post-yank Formatting Commands, Using Regi, Configuring the Citation Engine
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1859 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1860 @vindex sc-nuke-mail-header
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1861 @section Frames You Can Customize
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1862 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1863
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1864 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1865 As mentioned earlier, Supercite uses various frames to perform
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1866 certain jobs such as mail header information extraction and mail header
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1867 nuking. However, these frames are not available for you to customize,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1868 except through abstract interfaces such as @code{sc-nuke-mail-header},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1869 et al.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1870
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1871 @vindex sc-default-cite-frame
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1872 However, the citation frames Supercite uses provide a lot of customizing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1873 power and are thus available to you to change to suit your needs. The
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1874 workhorse of citation is the frame contained in the variable
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1875 @code{sc-default-cite-frame}. This frame recognizes many situations,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1876 such as blank lines, which it interprets as paragraph separators. It
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1877 also recognizes previously cited nested and non-nested citations in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1878 original message. By default it will coerce non-nested citations into
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1879 your preferred citation style, and it will add a level of citation to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1880 nested citations. It will also simply cite uncited lines in your
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1881 preferred style.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1882
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1883 @cindex unciting
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1884 @cindex reciting
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1885 @vindex sc-default-uncite-frame
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1886 @vindex sc-default-recite-frame
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1887 In a similar vein, there are default frames for @dfn{unciting} and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1888 @dfn{reciting}, contained in the variables
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1889 @code{sc-default-uncite-frame} and @code{sc-default-recite-frame}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1890 respectively.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1891
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1892 As mentioned earlier (@pxref{Recognizing Citations}), citations are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1893 recognized through the values of the regular expressions
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1894 @code{sc-citation-root-regexp}, et al. To recognize odd styles, you
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1895 could modify these variables, or you could modify the default citing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1896 frame. Alternatively, you could set up association lists of frames for
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1897 recognizing specific alternative forms.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1898
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1899 @vindex sc-cite-frame-alist
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1900 @vindex sc-uncite-frame-alist
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1901 @vindex sc-recite-frame-alist
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1902 For each of the actions -- citing, unciting, and reciting -- an alist is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1903 consulted to find the frame to use (@code{sc-cite-frame-alist},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1904 @code{sc-uncite-frame-alist}, and @code{sc-recite-frame-alist}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1905 respectively). These frames can contain alists of the form:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1906
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1907 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1908 ((@var{infokey} (@var{regexp} @. @var{frame}) (@var{regexp} @. @var{frame}) @dots{})
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1909 (@var{infokey} (@var{regexp} @. @var{frame}) (@var{regexp} @. @var{frame}) @dots{})
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1910 (@dots{}))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1911 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1912
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1913 @vindex sc-mail-field
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1914 @findex string-match
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1915 Where @var{infokey} is a key suitable for @code{sc-mail-field},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1916 @var{regexp} is a regular expression which is @code{string-match}'d
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1917 against the value of the @code{sc-mail-field} key, and @var{frame} is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1918 the frame to use if a match occurred. @var{frame} can be a variable
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1919 containing a frame or a frame in-lined.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1920
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1921 When Supercite is about to cite, uncite, or recite a region, it consults
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1922 the appropriate alist and attempts to find a frame to use. If one
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1923 is not found from the alist, then the appropriate default frame is used.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1924
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1925 @node Post-yank Formatting Commands, Citing Commands, Frames You Can Customize, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1926 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1927 @vindex sc-mode-map-prefix
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1928 @vindex mode-map-prefix (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1929 @kindex C-c C-p
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1930 @chapter Post-yank Formatting Commands
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1931 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1932
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1933 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1934 Once the original message has been yanked into the reply buffer, and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1935 @code{sc-cite-original} has had a chance to do its thing, a number of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1936 useful Supercite commands will be available to you. Since there is wide
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1937 variety in the keymaps that MUAs set up in their reply buffers, it is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1938 next to impossible for Supercite to properly sprinkle its commands into
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1939 the existing keymap. For this reason Supercite places its commands on a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1940 separate keymap, putting this keymap onto a prefix key in the reply
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1941 buffer. You can customize the prefix key Supercite uses by changing the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1942 variable @code{sc-mode-map-prefix}. By default, the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1943 @code{sc-mode-map-prefix} is @kbd{C-c C-p}; granted, not a great choice,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1944 but unfortunately the best general solution so far. In the rest of this
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1945 chapter, we'll assume you've installed Supercite's keymap on the default
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1946 prefix.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1947
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1948 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1949 @menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1950 * Citing Commands::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1951 * Insertion Commands::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1952 * Variable Toggling Shortcuts::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1953 * Mail Field Commands::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1954 * Miscellaneous Commands::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1955 @end menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1956 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1957
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1958 @node Citing Commands, Insertion Commands, Post-yank Formatting Commands, Post-yank Formatting Commands
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1959 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1960 @vindex sc-cite-region-limit
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1961 @section Commands to Manually Cite, Recite, and Uncite
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1962 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1963
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1964 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1965 Probably the three most common post-yank formatting operations that you
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1966 will perform will be the manual citing, reciting, and unciting of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1967 regions of text in the reply buffer. Often you may want to recite a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1968 paragraph to use a nickname, or manually cite a message when setting
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1969 @code{sc-cite-region-limit} to @code{nil}. The following commands
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1970 perform these functions on the region of text between @samp{point} and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1971 @samp{mark}. Each of them sets the @dfn{undo boundary} before modifying
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1972 the region so that the command can be undone in the standard Emacs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1973 way.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1974
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1975 A quick note about Emacs 19. Unlike in Emacs 18, the region delimited
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1976 by @samp{point} and @samp{mark} can have two states. It can be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1977 @dfn{active} or @dfn{inactive}. Although the FSF Emacs 19 and Lucid
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1978 Emacs 19 use different terminology and functions, both employ the same
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1979 convention such that when the region is inactive, commands that modify
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1980 the region should generate an error. The user needs to explicitly
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1981 activate the region before successfully executing the command. All
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1982 Supercite commands conform to this convention.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1983
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1984 Here is the list of Supercite citing commands:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1985
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1986 @table @asis
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1987 @findex sc-cite-region
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1988 @findex cite-region (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1989 @kindex C-c C-p c
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1990 @vindex sc-pre-cite-hook
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1991 @vindex pre-cite-hook (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1992 @vindex sc-confirm-always-p
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1993 @vindex confirm-always-p
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1994 @kindex C-u
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1995 @item @code{sc-cite-region} (@kbd{C-c C-p c})
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1996 @comment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1997 This command cites each line in the region of text by interpreting the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1998 selected frame from @code{sc-cite-frame-alist}, or the default citing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1999 frame @code{sc-default-cite-frame}. It runs the hook
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2000 @code{sc-pre-cite-hook} before interpreting the frame. With an optional
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2001 universal argument (@kbd{C-u}), it temporarily sets
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2002 @code{sc-confirm-always-p} to @code{t} so you can confirm the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2003 attribution string for a single manual citing.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2004 @xref{Configuring the Citation Engine}.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2005
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2006 @findex sc-uncite-region
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2007 @findex uncite-region (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2008 @kindex C-c C-p u
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2009 @item @code{sc-uncite-region} (@kbd{C-c C-p u})
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2010 @comment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2011 This command removes any citation strings from the beginning of each
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2012 cited line in the region by interpreting the selected frame from
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2013 @code{sc-uncite-frame-alist}, or the default unciting frame
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2014 @code{sc-default-uncite-frame}. It runs the hook
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2015 @code{sc-pre-uncite-hook} before interpreting the frame.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2016 @xref{Configuring the Citation Engine}.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2017
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2018 @findex sc-recite-region
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2019 @findex recite-region (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2020 @kindex C-c C-p r
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2021 @item @code{sc-recite-region} (@kbd{C-c C-p r})
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2022 @comment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2023 This command recites each line the region by interpreting the selected
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2024 frame from @code{sc-recite-frame-alist}, or the default reciting frame
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2025 @code{sc-default-recite-frame}. It runs the hook
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2026 @code{sc-pre-recite-hook} before interpreting the frame.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2027 @xref{Configuring the Citation Engine}.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2028
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2029 @vindex sc-confirm-always-p
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2030 @vindex confirm-always-p (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2031 Supercite will always ask you to confirm the attribution when reciting a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2032 region, regardless of the value of @code{sc-confirm-always-p}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2033 @end table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2034
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2035 @node Insertion Commands, Variable Toggling Shortcuts, Citing Commands, Post-yank Formatting Commands
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2036 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2037 @section Insertion Commands
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2038 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2039
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2040 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2041 These two functions insert various strings into the reply buffer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2042
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2043 @table @asis
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2044 @findex sc-insert-reference
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2045 @findex insert-reference (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2046 @kindex C-c C-p w
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2047 @item @code{sc-insert-reference} (@kbd{C-c C-p w})
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2048 @comment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2049 @vindex sc-preferred-header-style
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2050 @vindex preferred-header-style (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2051 Inserts a reference header into the reply buffer at @samp{point}. With
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2052 no arguments, the header indexed by @code{sc-preferred-header-style} is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2053 inserted. An optional numeric argument is the index into
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2054 @code{sc-rewrite-header-list} indicating which reference header to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2055 write.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2056
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2057 With just the universal argument (@kbd{C-u}), electric reference mode is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2058 entered, regardless of the value of @code{sc-electric-references-p}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2059
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2060 @findex sc-insert-citation
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2061 @findex insert-citation (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2062 @kindex C-c C-p i
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2063 @item @code{sc-insert-citation} (@kbd{C-c C-p i})
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2064 @comment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2065 Inserts the current citation string at the beginning of the line that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2066 @samp{point} is on. If the line is already cited, Supercite will issue
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2067 an error and will not cite the line.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2068 @end table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2069
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2070 @node Variable Toggling Shortcuts, Mail Field Commands, Insertion Commands, Post-yank Formatting Commands
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2071 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2072 @cindex toggling variables
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2073 @section Variable Toggling Shortcuts
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2074 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2075
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2076 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2077 Supercite defines a number of commands that make it easier for you to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2078 toggle and set various Supercite variables as you are editing the reply
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2079 buffer. For example, you may want to turn off filling or whitespace
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2080 cleanup, but only temporarily. These toggling shortcut commands make
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2081 this easy to do.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2082
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2083 @kindex C-c C-p C-t
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2084 Like Supercite commands in general, the toggling commands are placed on
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2085 a keymap prefix within the greater Supercite keymap. For the default
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2086 value of @code{sc-mode-map-prefix}, this will be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2087 @kbd{C-c C-p C-t}.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2088
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2089 The following commands toggle the value of certain Supercite variables
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2090 which take only a binary value:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2091
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2092 @table @kbd
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2093 @item C-c C-p C-t b
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2094 Toggles the variable @code{sc-mail-nuke-blank-lines-p}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2095
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2096 @item C-c C-p C-t c
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2097 Toggles the variable @code{sc-confirm-always-p}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2098
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2099 @item C-c C-p C-t d
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2100 Toggles the variable @code{sc-downcase-p}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2101
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2102 @item C-c C-p C-t e
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2103 Toggles the variable @code{sc-electric-references-p}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2104
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2105 @item C-c C-p C-t f
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2106 Toggles the variable @code{sc-auto-fill-region-p}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2107
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2108 @item C-c C-p C-t o
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2109 Toggles the variable @code{sc-electric-circular-p}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2110
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2111 @item C-c C-p C-t s
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2112 Toggles the variable @code{sc-nested-citation-p}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2113
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2114 @item C-c C-p C-t u
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2115 Toggles the variable @code{sc-use-only-preferences-p}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2116
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2117 @item C-c C-p C-t w
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2118 Toggles the variable @code{sc-fixup-whitespace-p}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2119 @end table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2120
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2121 @findex set-variable
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2122 The following commands let you set the value of multi-value variables,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2123 in the same way that Emacs' @code{set-variable} does:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2124
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2125 @table @kbd
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2126 @item C-c C-p C-t a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2127 Sets the value of the variable @code{sc-preferred-attribution-list}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2128
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2129 @item C-c C-p C-t l
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2130 Sets the value of the variable @code{sc-cite-region-limit}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2131
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2132 @item C-c C-p C-t n
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2133 Sets the value of the variable @code{sc-mail-nuke-mail-headers}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2134
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2135 @item C-c C-p C-t N
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2136 Sets the value of the variable @code{sc-mail-header-nuke-list}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2137
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2138 @item C-c C-p C-t p
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2139 Sets the value of the variable @code{sc-preferred-header-style}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2140 @end table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2141
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2142 @kindex C-c C-p C-p
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2143 One special command is provided to toggle both
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2144 @code{sc-auto-fill-region-p} and @code{sc-fixup-whitespace-p} together.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2145 This is because you typically want to run Supercite with either variable
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2146 as @code{nil} or non-@code{nil}. The command to toggle these variables
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2147 together is bound on @kbd{C-c C-p C-p}.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2148
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2149 Finally, the command @kbd{C-c C-p C-t h} (also @kbd{C-c C-p C-t ?})
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2150 brings up a Help message on the toggling keymap.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2151
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2152
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2153 @node Mail Field Commands, Miscellaneous Commands, Variable Toggling Shortcuts, Post-yank Formatting Commands
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2154 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2155 @section Mail Field Commands
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2156 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2157
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2158 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2159 These commands allow you to view, modify, add, and delete various bits
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2160 of information from the info alist.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2161 @xref{Information Keys and the Info Alist}.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2162
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2163 @table @asis
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2164 @kindex C-c C-p f
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2165 @findex sc-mail-field-query
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2166 @findex mail-field-query (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2167 @kindex C-c C-p f
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2168 @item @code{sc-mail-field-query} (@kbd{C-c C-p f})
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2169 @comment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2170 Allows you to interactively view, modify, add, and delete info alist
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2171 key-value pairs. With no argument, you are prompted (with completion)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2172 for a info key. The value associated with that key is displayed in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2173 minibuffer. With an argument, this command will first ask if you want
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2174 to view, modify, add, or delete an info key. Viewing is identical to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2175 running the command with no arguments.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2176
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2177 If you want to modify the value of a key, Supercite will first prompt
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2178 you (with completion) for the key of the value you want to change. It
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2179 will then put you in the minibuffer with the key's current value so you
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2180 can edit the value as you wish. When you hit @key{RET}, the key's value
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2181 is changed. For those of you running Emacs 19, minibuffer history is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2182 kept for the values.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2183
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2184 If you choose to delete a key-value pair, Supercite will prompt you (with
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2185 completion) for the key to delete.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2186
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2187 If you choose to add a new key-value pair, Supercite firsts prompts you
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2188 for the key to add. Note that completion is turned on for this prompt,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2189 but you can type any key name here, even one that does not yet exist.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2190 After entering the key, Supercite prompts you for the key's value. It
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2191 is not an error to enter a key that already exists, but the new value
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2192 will override any old value. It will not replace it though; if you
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2193 subsequently delete the key-value pair, the old value will reappear.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2194
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2195 @findex sc-mail-process-headers
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2196 @findex mail-process-headers (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2197 @kindex C-c C-p g
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2198 @item @code{sc-mail-process-headers} (@kbd{C-c C-p g})
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2199 @comment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2200 This command lets you re-initialize Supercite's info alist from any set
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2201 of mail headers in the region between @samp{point} and @samp{mark}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2202 This function is especially useful for replying to digest messages where
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2203 Supercite will initially set up its information for the digest
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2204 originator, but you want to cite each component article with the real
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2205 message author. Note that unless an error during processing occurs, any
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2206 old information is lost.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2207 @end table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2208
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2209 @node Miscellaneous Commands, Information Keys and the Info Alist, Mail Field Commands, Post-yank Formatting Commands
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2210 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2211 @section Miscellaneous Commands
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2212 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2213
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2214 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2215 @table @asis
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2216 @findex sc-open-line
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2217 @findex open-line (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2218 @findex open-line
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2219 @kindex C-c C-p o
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2220 @item @code{sc-open-line} (@kbd{C-c C-p o})
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2221 @comment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2222 Similar to Emacs' standard @code{open-line} commands, but inserts the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2223 citation string in front of the new line. As with @code{open-line},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2224 an optional numeric argument inserts that many new lines.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2225
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2226 @findex sc-describe
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2227 @findex describe (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2228 @kindex C-c C-p ?
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2229 @kindex C-c C-p h
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2230 @item @code{sc-describe} (@kbd{C-c C-p h} and @kbd{C-c C-p ?})
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2231 @comment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2232 This function has been obsoleted by the @TeX{}info manual you are now
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2233 reading. It is still provided for compatibility, but it will eventually
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2234 go away.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2235
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2236 @findex sc-version
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2237 @findex version (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2238 @kindex C-c C-p v
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2239 @item @code{sc-version} (@kbd{C-c C-p v})
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2240 @comment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2241 Echos the version of Supercite you are using. With the optional
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2242 universal argument (@kbd{C-u}), this command inserts the version
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2243 information into the current buffer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2244
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2245 @findex sc-submit-bug-report
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2246 @findex submit-bug-report (sc-)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2247 @kindex C-c C-p C-b
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2248 @item @code{sc-submit-bug-report} (@kbd{C-c C-p C-b})
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2249 @comment
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2250 If you encounter a bug, or wish to suggest an enhancement, use this
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2251 command to set up an outgoing mail buffer, with the proper address to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2252 the Supercite maintainer automatically inserted in the @samp{To:@:}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2253 field. This command also inserts information that the Supercite
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2254 maintainer can use to recreate your exact setup, making it easier to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2255 verify your bug.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2256 @end table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2257
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2258 @node Hints to MUA Authors, Version 3 Changes, Electric References, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2259 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2260 @chapter Hints to MUA Authors
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2261 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2262
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2263 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2264 In June of 1989, some discussion was held between the various MUA
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2265 authors, the Supercite author, and other Supercite users. These
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2266 discussions centered around the need for a standard interface between
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2267 MUAs and Supercite (or any future Supercite-like packages). This
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2268 interface was formally proposed by Martin Neitzel on Fri, 23 Jun 89, in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2269 a mail message to the Supercite mailing list:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2270
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2271 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2272 Martin> Each news/mail-reader should provide a form of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2273 Martin> mail-yank-original that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2274
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2275 Martin> 1: inserts the original message incl. header into the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2276 Martin> reply buffer; no indentation/prefixing is done, the header
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2277 Martin> tends to be a "full blown" version rather than to be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2278 Martin> stripped down.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2279
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2280 Martin> 2: `point' is at the start of the header, `mark' at the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2281 Martin> end of the message body.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2282
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2283 Martin> 3: (run-hooks 'mail-yank-hooks)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2284
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2285 Martin> [Supercite] should be run as such a hook and merely
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2286 Martin> rewrite the message. This way it isn't anymore
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2287 Martin> [Supercite]'s job to gather the original from obscure
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2288 Martin> sources. [@dots{}]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2289 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2290
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2291 @vindex mail-citation-hook
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2292 @vindex mail-yank-hooks
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2293 @cindex sendmail.el
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2294 @findex mail-yank-original
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2295 @findex defvar
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2296 This specification was adopted, but with the recent release of FSF GNU
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2297 Emacs 19, it has undergone a slight modification. Instead of the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2298 variable @code{mail-yank-hooks}, the new preferred hook variable that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2299 the MUA should provide is @code{mail-citation-hook}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2300 @code{mail-yank-hooks} can be provided for backward compatibility, but
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2301 @code{mail-citation-hook} should always take precedence. Richard
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2302 Stallman (of the FSF) suggests that the MUAs should @code{defvar}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2303 @code{mail-citation-hook} to @code{nil} and perform some default citing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2304 when that is the case. Take a look at Emacs 19's @file{sendmail.el}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2305 file, specifically the @code{mail-yank-original} defun for
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2306 details.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2307
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2308 If you are writing a new MUA package, or maintaining an existing MUA
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2309 package, you should make it conform to this interface so that your users
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2310 will be able to link Supercite easily and seamlessly. To do this, when
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2311 setting up a reply or forward buffer, your MUA should follow these
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2312 steps:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2313
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2314 @enumerate
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2315 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2316 Insert the original message, including the mail headers into the reply
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2317 buffer. At this point you should not modify the raw text in any way, and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2318 you should place all the original headers into the body of the reply.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2319 This means that many of the mail headers will be duplicated, one copy
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2320 above the @code{mail-header-separator} line and one copy below,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2321 however there will probably be more headers below this line.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2322
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2323 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2324 Set @samp{point} to the beginning of the line containing the first mail
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2325 header in the body of the reply. Set @samp{mark} at the end of the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2326 message text. It is very important that the region be set around the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2327 text Supercite is to modify and that the mail headers are within this
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2328 region. Supercite will not venture outside the region for any reason,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2329 and anything within the region is fair game, so don't put anything that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2330 @strong{must} remain unchanged inside the region. Further note that for
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2331 Emacs 19, the region need not be set active. Supercite will work
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2332 properly when the region is inactive, as should any other like-minded
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2333 package.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2334
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2335 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2336 Run the hook @code{mail-citation-hook}. You will probably want to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2337 provide some kind of default citation functions in cases where the user
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2338 does not have Supercite installed. By default, your MUA should
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2339 @code{defvar} @code{mail-citation-hook} to @code{nil}, and in your
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2340 yanking function, check its value. If it finds
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2341 @code{mail-citation-hook} to be @code{nil}, it should perform some
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2342 default citing behavior. User who want to connect to Supercite then
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2343 need only add @code{sc-cite-original} to this list of hooks using
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2344 @code{add-hook}.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2345 @end enumerate
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2346
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2347 If you do all this, your users will not need to overload your routines
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2348 to use Supercite, and your MUA will join the ranks of those that conform
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2349 to this interface ``out of the box.''
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2350
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2351 @node Version 3 Changes, Thanks and History, Hints to MUA Authors, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2352 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2353 @chapter Version 3 Changes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2354 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2355
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2356 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2357 @cindex sc-unsupp.el file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2358 With version 3, Supercite has undergone an almost complete rewrite, and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2359 has hopefully benefitted in a number of ways, including vast
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2360 improvements in the speed of performance, a big reduction in size of the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2361 code and in the use of Emacs resources, and a much cleaner and flexible
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2362 internal architecture. The central construct of the info alist, and its
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2363 role in Supercite has been expanded, and the other central concept, the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2364 general package Regi, was developed to provide a theoretically unlimited
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2365 flexibility.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2366
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2367 But most of this work is internal and not of very great importance to the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2368 casual user. There have been some changes at the user-visible level,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2369 but for the most part, the Supercite configuration variables from
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2370 version 2 should still be relevant to version 3. Below, I briefly
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2371 outline those user-visible things that have changed since version 2. For
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2372 details, look to other sections of this manual.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2373
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2374 @enumerate
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2375 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2376 @cindex supercite.el file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2377 @cindex reporter.el file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2378 @cindex regi.el file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2379 @cindex sc.el from version 2
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2380 @cindex sc-elec.el from version 2
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2381 Supercite proper now comes in a single file, @file{supercite.el}, which
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2382 contains everything except the unsupported noodlings, overloading (which
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2383 should be more or less obsolete with the release of Emacs 19), and the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2384 general lisp packages @file{reporter.el} and @file{regi.el}. Finally,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2385 the @TeX{}info manual comes in its own file as well. In particular, the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2386 file @file{sc.el} from the version 2 distribution is obsolete, as is the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2387 file @file{sc-elec.el}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2388
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2389 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2390 @code{sc-spacify-name-chars} is gone in version 3.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2391
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2392 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2393 @vindex sc-attrib-selection-list
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2394 @vindex attrib-selection-list
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2395 @code{sc-nickname-alist} is gone in version 3. The
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2396 @code{sc-attrib-selection-list} is a more general construct supporting
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2397 the same basic feature.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2398
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2399 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2400 The version 2 variable @code{sc-preferred-attribution} has been changed
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2401 to @code{sc-preferred-attribution-list}, and has been expanded upon to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2402 allow you to specify an ordered list of preferred attributions.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2403
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2404 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2405 @code{sc-mail-fields-list} has been removed, and header nuking in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2406 general has been greatly improved, giving you wider flexibility in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2407 specifying which headers to keep and remove while presenting a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2408 simplified interface to commonly chosen defaults.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2409
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2410 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2411 Post-yank paragraph filling has been completely removed from Supercite,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2412 other packages just do it better than Supercite ever would. Supercite
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2413 will still fill newly cited paragraphs.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2414
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2415 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2416 @vindex sc-cite-region-limit
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2417 @vindex cite-region-limit
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2418 The variable @code{sc-all-but-cite-p} has been replaced by
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2419 @code{sc-cite-region-limit}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2420
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2421 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2422 Keymap hacking in the reply buffer has been greatly simplified, with, I
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2423 believe, little reduction in functionality.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2424
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2425 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2426 Hacking of the reply buffer's docstring has been completely eliminated.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2427 @end enumerate
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2428
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2429 @node Thanks and History, The Supercite Mailing List, Version 3 Changes, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2430 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2431 @chapter Thanks and History
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2432 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2433
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2434 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2435 The Supercite package was derived from its predecessor Superyank 1.11
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2436 which was inspired by various bits of code and ideas from Martin Neitzel
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2437 and Ashwin Ram. They were the folks who came up with the idea of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2438 non-nested citations and implemented some rough code to provide this
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2439 style. Superyank and Supercite version 2 evolved to the point where much
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2440 of the attribution selection mechanism was automatic, and features have
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2441 been continuously added through the comments and suggestions of the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2442 Supercite mailing list participants. Supercite version 3 represents a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2443 nearly complete rewrite with many of the algorithms and coding styles
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2444 being vastly improved. Hopefully Supercite version 3 is faster,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2445 smaller, and much more flexible than its predecessors.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2446
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2447 In the version 2 manual I thanked some specific people for their help in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2448 developing Supercite 2. You folks know who you are and your continued
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2449 support is greatly appreciated. I wish to thank everyone on the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2450 Supercite mailing list, especially the brave alpha testers, who helped
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2451 considerably in testing out the concepts and implementation of Supercite
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2452 version 3. Special thanks go out to the MUA and Emacs authors Kyle
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2453 Jones, Stephen Gildea, Richard Stallman, and Jamie Zawinski for coming
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2454 to a quick agreement on the new @code{mail-citation-hook} interface, and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2455 for adding the magic lisp to their code to support this.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2456
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2457 All who have helped and contributed have been greatly appreciated.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2458
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2459 @node The Supercite Mailing List, Concept Index, Thanks and History, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2460 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2461 @cindex supercite mailing list address
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2462 @cindex mailing list address
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2463 @chapter The Supercite Mailing List
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2464 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2465
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2466 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2467 The author runs a simple mail expanding mailing list for discussion of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2468 issues related to Supercite. This includes enhancement requests, bug
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2469 reports, general help questions, etc. To subscribe or unsubscribe to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2470 the mailing list, send a request to the administrative address:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2471
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2472 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2473 Internet: supercite-request@@anthem.nlm.nih.gov
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2474 UUCP: uunet!anthem.nlm.nih.gov!supercite-request
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2475 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2476
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2477 Please be sure to include the most reliable and shortest (preferably
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2478 Internet) address back to you. To post articles to the list, send your
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2479 message to this address (you do not need to be a member to post, but be
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2480 sure to indicate this in your article or replies may not be CC'd to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2481 you):
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2482
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2483 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2484 Internet: supercite@@anthem.nlm.nih.gov
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2485 UUCP: uunet!anthem.nlm.nih.gov!supercite
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2486 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2487
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2488 If you are sending bug reports, they should go to the following address,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2489 but @emph{please}! use the command @code{sc-submit-bug-report} since it
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2490 will be much easier for me to duplicate your problem if you do so. It
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2491 will set up a mail buffer automatically with this address on the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2492 @samp{To:@:} line:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2493
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2494 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2495 Internet: supercite-help@@anthem.nlm.nih.gov
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2496 UUCP: uunet!anthem.nlm.nih.gov!supercite-help
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2497 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2498
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2499 @node Concept Index, Command Index, The Supercite Mailing List, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2500 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2501 @unnumbered Concept Index
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2502 @printindex cp
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2503
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2504 @node Command Index, Key Index, Concept Index, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2505 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2506 @unnumbered Command Index
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2507 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2508
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2509 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2510 Since all supercite commands are prepended with the string
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2511 ``@code{sc-}'', each appears under its @code{sc-}@var{command} name and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2512 its @var{command} name.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2513 @iftex
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2514 @sp 2
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2515 @end iftex
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2516 @printindex fn
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2517
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2518 @node Key Index, Variable Index, Command Index, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2519 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2520 @unnumbered Key Index
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2521 @printindex ky
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2522
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2523 @node Variable Index, , Key Index, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2524 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2525 @unnumbered Variable Index
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2526 @ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2527
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2528 @end ifinfo
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2529 Since all supercite variables are prepended with the string
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2530 ``@code{sc-}'', each appears under its @code{sc-}@var{variable} name and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2531 its @var{variable} name.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2532 @iftex
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2533 @sp 2
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2534 @end iftex
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2535 @printindex vr
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2536 @summarycontents
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2537 @contents
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2538 @bye