annotate man/xemacs/trouble.texi @ 422:95016f13131a r21-2-19

Import from CVS: tag r21-2-19
author cvs
date Mon, 13 Aug 2007 11:25:01 +0200
parents 697ef44129c6
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
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2 @iftex
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3 @chapter Correcting Mistakes (Yours or Emacs's)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
4
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
5 If you type an Emacs command you did not intend, the results are often
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
6 mysterious. This chapter discusses how you can undo your mistake or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
7 recover from a mysterious situation. Emacs bugs and system crashes are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
8 also considered.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
9 @end iftex
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
10
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
11 @node Quitting, Lossage, Customization, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
12 @section Quitting and Aborting
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
13 @cindex quitting
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
14
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
15 @table @kbd
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
16 @item C-g
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
17 Quit. Cancel running or partially typed command.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
18 @item C-]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
19 Abort innermost recursive editing level and cancel the command which
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
20 invoked it (@code{abort-recursive-edit}).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
21 @item M-x top-level
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
22 Abort all recursive editing levels that are currently executing.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
23 @item C-x u
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
24 Cancel an already-executed command, usually (@code{undo}).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
25 @end table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
26
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
27 There are two ways of cancelling commands which are not finished
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
28 executing: @dfn{quitting} with @kbd{C-g}, and @dfn{aborting} with @kbd{C-]}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
29 or @kbd{M-x top-level}. Quitting is cancelling a partially typed command
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
30 or one which is already running. Aborting is getting out of a recursive
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
31 editing level and cancelling the command that invoked the recursive edit.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
32
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
33 @cindex quitting
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
34 @kindex C-g
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
35 Quitting with @kbd{C-g} is used for getting rid of a partially typed
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
36 command or a numeric argument that you don't want. It also stops a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
37 running command in the middle in a relatively safe way, so you can use
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
38 it if you accidentally start executing a command that takes a long
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
39 time. In particular, it is safe to quit out of killing; either your
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
40 text will @var{all} still be there, or it will @var{all} be in the kill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
41 ring (or maybe both). Quitting an incremental search does special
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
42 things documented under searching; in general, it may take two
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
43 successive @kbd{C-g} characters to get out of a search. @kbd{C-g} works
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
44 by setting the variable @code{quit-flag} to @code{t} the instant
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
45 @kbd{C-g} is typed; Emacs Lisp checks this variable frequently and quits
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
46 if it is non-@code{nil}. @kbd{C-g} is only actually executed as a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
47 command if it is typed while Emacs is waiting for input.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
48
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
49 If you quit twice in a row before the first @kbd{C-g} is recognized, you
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
50 activate the ``emergency escape'' feature and return to the shell.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
51 @xref{Emergency Escape}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
52
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
53 @cindex recursive editing level
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
54 @cindex editing level, recursive
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
55 @cindex aborting
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
56 @findex abort-recursive-edit
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
57 @kindex C-]
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
58 You can use @kbd{C-]} (@code{abort-recursive-edit}) to get out
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
59 of a recursive editing level and cancel the command which invoked it.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
60 Quitting with @kbd{C-g} does not do this, and could not do this because it
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
61 is used to cancel a partially typed command @i{within} the recursive
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
62 editing level. Both operations are useful. For example, if you are in the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
63 Emacs debugger (@pxref{Lisp Debug}) and have typed @kbd{C-u 8} to enter a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
64 numeric argument, you can cancel that argument with @kbd{C-g} and remain in
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
65 the debugger.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
66
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
67 @findex top-level
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
68 The command @kbd{M-x top-level} is equivalent to ``enough'' @kbd{C-]}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
69 commands to get you out of all the levels of recursive edits that you are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
70 in. @kbd{C-]} only gets you out one level at a time, but @kbd{M-x top-level}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
71 goes out all levels at once. Both @kbd{C-]} and @kbd{M-x top-level} are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
72 like all other commands and unlike @kbd{C-g} in that they are effective
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
73 only when Emacs is ready for a command. @kbd{C-]} is an ordinary key and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
74 has its meaning only because of its binding in the keymap.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
75 @xref{Recursive Edit}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
76
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
77 @kbd{C-x u} (@code{undo}) is not strictly speaking a way of cancelling a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
78 command, but you can think of it as cancelling a command already finished
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
79 executing. @xref{Undo}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
80
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
81 @node Lossage, Bugs, Quitting, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
82 @section Dealing With Emacs Trouble
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
83
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
84 This section describes various conditions in which Emacs fails to work,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
85 and how to recognize them and correct them.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
86
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
87 @menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
88 * Stuck Recursive:: `[...]' in mode line around the parentheses.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
89 * Screen Garbled:: Garbage on the screen.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
90 * Text Garbled:: Garbage in the text.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
91 * Unasked-for Search:: Spontaneous entry to incremental search.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
92 * Emergency Escape:: Emergency escape---
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
93 What to do if Emacs stops responding.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
94 * Total Frustration:: When you are at your wits' end.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
95 @end menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
96
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
97 @node Stuck Recursive, Screen Garbled, Lossage, Lossage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
98 @subsection Recursive Editing Levels
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
99
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
100 Recursive editing levels are important and useful features of Emacs, but
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
101 they can seem like malfunctions to the user who does not understand them.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
102
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
103 If the mode line has square brackets @samp{[@dots{}]} around the parentheses
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
104 that contain the names of the major and minor modes, you have entered a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
105 recursive editing level. If you did not do this on purpose, or if you
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
106 don't understand what that means, you should just get out of the recursive
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
107 editing level. To do so, type @kbd{M-x top-level}. This is called getting
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
108 back to top level. @xref{Recursive Edit}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
109
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
110 @node Screen Garbled, Text Garbled, Stuck Recursive, Lossage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
111 @subsection Garbage on the Screen
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
112
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
113 If the data on the screen looks wrong, the first thing to do is see
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
114 whether the text is actually wrong. Type @kbd{C-l}, to redisplay the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
115 entire screen. If the text appears correct after this, the problem was
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
116 entirely in the previous screen update.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
117
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
118 Display updating problems often result from an incorrect termcap entry
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
119 for the terminal you are using. The file @file{etc/TERMS} in the Emacs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
120 distribution gives the fixes for known problems of this sort.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
121 @file{INSTALL} contains general advice for these problems in one of its
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
122 sections. Very likely there is simply insufficient padding for certain
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
123 display operations. To investigate the possibility that you have this
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
124 sort of problem, try Emacs on another terminal made by a different
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
125 manufacturer. If problems happen frequently on one kind of terminal but
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
126 not another kind, the real problem is likely to be a bad termcap entry,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
127 though it could also be due to a bug in Emacs that appears for terminals
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
128 that have or lack specific features.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
129
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
130 @node Text Garbled, Unasked-for Search, Screen Garbled, Lossage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
131 @subsection Garbage in the Text
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
132
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
133 If @kbd{C-l} shows that the text is wrong, try undoing the changes to it
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
134 using @kbd{C-x u} until it gets back to a state you consider correct. Also
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
135 try @kbd{C-h l} to find out what command you typed to produce the observed
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
136 results.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
137
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
138 If a large portion of text appears to be missing at the beginning or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
139 end of the buffer, check for the word @samp{Narrow} in the mode line.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
140 If it appears, the text is still present, but marked off-limits.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
141 To make it visible again, type @kbd{C-x n w}. @xref{Narrowing}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
142
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
143 @node Unasked-for Search, Emergency Escape, Text Garbled, Lossage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
144 @subsection Spontaneous Entry to Incremental Search
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
145
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
146 If Emacs spontaneously displays @samp{I-search:} at the bottom of the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
147 screen, it means that the terminal is sending @kbd{C-s} and @kbd{C-q}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
148 according to the poorly designed xon/xoff ``flow control'' protocol. You
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
149 should try to prevent this by putting the terminal in a mode where it will
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
150 not use flow control, or by giving it enough padding that it will never send a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
151 @kbd{C-s}. If that cannot be done, you must tell Emacs to expect flow
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
152 control to be used, until you can get a properly designed terminal.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
153
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
154 Information on how to do these things can be found in the file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
155 @file{INSTALL} in the Emacs distribution.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
156
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
157 @node Emergency Escape, Total Frustration, Unasked-for Search, Lossage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
158 @subsection Emergency Escape
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
159
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
160 Because at times there have been bugs causing Emacs to loop without
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
161 checking @code{quit-flag}, a special feature causes Emacs to be suspended
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
162 immediately if you type a second @kbd{C-g} while the flag is already set,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
163 so you can always get out of XEmacs. Normally Emacs recognizes and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
164 clears @code{quit-flag} (and quits!) quickly enough to prevent this from
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
165 happening.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
166
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
167 When you resume Emacs after a suspension caused by multiple @kbd{C-g}, it
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
168 asks two questions before going back to what it had been doing:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
169
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
170 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
171 Auto-save? (y or n)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
172 Abort (and dump core)? (y or n)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
173 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
174
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
175 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
176 Answer each one with @kbd{y} or @kbd{n} followed by @key{RET}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
177
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
178 Saying @kbd{y} to @samp{Auto-save?} causes immediate auto-saving of all
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
179 modified buffers in which auto-saving is enabled.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
180
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
181 Saying @kbd{y} to @samp{Abort (and dump core)?} causes an illegal
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
182 instruction to be executed, dumping core. This is to enable a wizard to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
183 figure out why Emacs was failing to quit in the first place. Execution
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
184 does not continue after a core dump. If you answer @kbd{n}, execution
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
185 does continue. With luck, Emacs will ultimately check
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
186 @code{quit-flag} and quit normally. If not, and you type another
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
187 @kbd{C-g}, it is suspended again.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
188
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
189 If Emacs is not really hung, but is just being slow, you may invoke
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
190 the double @kbd{C-g} feature without really meaning to. In that case,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
191 simply resume and answer @kbd{n} to both questions, and you will arrive
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
192 at your former state. Presumably the quit you requested will happen
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
193 soon.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
194
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
195 The double-@kbd{C-g} feature may be turned off when Emacs is running under
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
196 a window system, since the window system always enables you to kill Emacs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
197 or to create another window and run another program.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
198
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
199 @node Total Frustration,, Emergency Escape, Lossage
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
200 @subsection Help for Total Frustration
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
201 @cindex Eliza
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
202 @cindex doctor
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
203
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
204 If using Emacs (or something else) becomes terribly frustrating and none
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
205 of the techniques described above solve the problem, Emacs can still help
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
206 you.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
207
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
208 First, if the Emacs you are using is not responding to commands, type
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
209 @kbd{C-g C-g} to get out of it and then start a new one.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
210
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
211 @findex doctor
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
212 Second, type @kbd{M-x doctor @key{RET}}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
213
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
214 The doctor will make you feel better. Each time you say something to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
215 the doctor, you must end it by typing @key{RET} @key{RET}. This lets the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
216 doctor know you are finished.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
217
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
218 @node Bugs,, Lossage, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
219 @section Reporting Bugs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
220
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
221 @cindex bugs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
222 Sometimes you will encounter a bug in Emacs. Although we cannot promise
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
223 we can or will fix the bug, and we might not even agree that it is a bug,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
224 we want to hear about bugs you encounter in case we do want to fix them.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
225
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
226 To make it possible for us to fix a bug, you must report it. In order
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
227 to do so effectively, you must know when and how to do it.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
228
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
229 @subsection When Is There a Bug
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
230
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
231 If Emacs executes an illegal instruction, or dies with an operating
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
232 system error message that indicates a problem in the program (as opposed to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
233 something like ``disk full''), then it is certainly a bug.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
234
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
235 If Emacs updates the display in a way that does not correspond to what is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
236 in the buffer, then it is certainly a bug. If a command seems to do the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
237 wrong thing but the problem corrects itself if you type @kbd{C-l}, it is a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
238 case of incorrect display updating.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
239
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
240 Taking forever to complete a command can be a bug, but you must make
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
241 certain that it was really Emacs's fault. Some commands simply take a long
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
242 time. Type @kbd{C-g} and then @kbd{C-h l} to see whether the input Emacs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
243 received was what you intended to type; if the input was such that you
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
244 @var{know} it should have been processed quickly, report a bug. If you
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
245 don't know whether the command should take a long time, find out by looking
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
246 in the manual or by asking for assistance.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
247
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
248 If a command you are familiar with causes an Emacs error message in a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
249 case where its usual definition ought to be reasonable, it is probably a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
250 bug.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
251
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
252 If a command does the wrong thing, that is a bug. But be sure you know
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
253 for certain what it ought to have done. If you aren't familiar with the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
254 command, or don't know for certain how the command is supposed to work,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
255 then it might actually be working right. Rather than jumping to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
256 conclusions, show the problem to someone who knows for certain.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
257
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
258 Finally, a command's intended definition may not be best for editing
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
259 with. This is a very important sort of problem, but it is also a matter of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
260 judgment. Also, it is easy to come to such a conclusion out of ignorance
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
261 of some of the existing features. It is probably best not to complain
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
262 about such a problem until you have checked the documentation in the usual
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
263 ways, feel confident that you understand it, and know for certain that what
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
264 you want is not available. If you are not sure what the command is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
265 supposed to do after a careful reading of the manual, check the index and
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
266 glossary for any terms that may be unclear. If you still do not
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
267 understand, this indicates a bug in the manual. The manual's job is to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
268 make everything clear. It is just as important to report documentation
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
269 bugs as program bugs.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
270
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
271 If the online documentation string of a function or variable disagrees
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
272 with the manual, one of them must be wrong, so report the bug.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
273
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
274 @subsection How to Report a Bug
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
275
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
276 @findex emacs-version
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
277 When you decide that there is a bug, it is important to report it and to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
278 report it in a way which is useful. What is most useful is an exact
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
279 description of what commands you type, starting with the shell command to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
280 run Emacs, until the problem happens. Always include the version number
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
281 of Emacs that you are using; type @kbd{M-x emacs-version} to print this.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
282
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
283 The most important principle in reporting a bug is to report @var{facts},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
284 not hypotheses or categorizations. It is always easier to report the facts,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
285 but people seem to prefer to strain to posit explanations and report
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
286 them instead. If the explanations are based on guesses about how Emacs is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
287 implemented, they will be useless; we will have to try to figure out what
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
288 the facts must have been to lead to such speculations. Sometimes this is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
289 impossible. But in any case, it is unnecessary work for us.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
290
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
291 For example, suppose that you type @kbd{C-x C-f /glorp/baz.ugh
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
292 @key{RET}}, visiting a file which (you know) happens to be rather large,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
293 and Emacs prints out @samp{I feel pretty today}. The best way to report
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
294 the bug is with a sentence like the preceding one, because it gives all the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
295 facts and nothing but the facts.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
296
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
297 Do not assume that the problem is due to the size of the file and say,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
298 ``When I visit a large file, Emacs prints out @samp{I feel pretty today}.''
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
299 This is what we mean by ``guessing explanations''. The problem is just as
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
300 likely to be due to the fact that there is a @samp{z} in the file name. If
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
301 this is so, then when we got your report, we would try out the problem with
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
302 some ``large file'', probably with no @samp{z} in its name, and not find
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
303 anything wrong. There is no way in the world that we could guess that we
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
304 should try visiting a file with a @samp{z} in its name.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
305
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
306 Alternatively, the problem might be due to the fact that the file starts
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
307 with exactly 25 spaces. For this reason, you should make sure that you
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
308 inform us of the exact contents of any file that is needed to reproduce the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
309 bug. What if the problem only occurs when you have typed the @kbd{C-x a l}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
310 command previously? This is why we ask you to give the exact sequence of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
311 characters you typed since starting to use Emacs.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
312
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
313 You should not even say ``visit a file'' instead of @kbd{C-x C-f} unless
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
314 you @i{know} that it makes no difference which visiting command is used.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
315 Similarly, rather than saying ``if I have three characters on the line,''
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
316 say ``after I type @kbd{@key{RET} A B C @key{RET} C-p},'' if that is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
317 the way you entered the text.@refill
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
318
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
319 If you are not in Fundamental mode when the problem occurs, you should
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
320 say what mode you are in.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
321
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
322 If the manifestation of the bug is an Emacs error message, it is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
323 important to report not just the text of the error message but a backtrace
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
324 showing how the Lisp program in Emacs arrived at the error. To make the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
325 backtrace, you must execute the Lisp expression
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
326 @code{(setq @w{debug-on-error t})} before the error happens (that is to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
327 say, you must execute that expression and then make the bug happen). This
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
328 causes the Lisp debugger to run (@pxref{Lisp Debug}). The debugger's
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
329 backtrace can be copied as text into the bug report. This use of the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
330 debugger is possible only if you know how to make the bug happen again. Do
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
331 note the error message the first time the bug happens, so if you can't make
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
332 it happen again, you can report at least that.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
333
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
334 Check whether any programs you have loaded into the Lisp world, including
412
697ef44129c6 Import from CVS: tag r21-2-14
cvs
parents: 410
diff changeset
335 your @file{.emacs} file, set any variables that may affect the functioning
697ef44129c6 Import from CVS: tag r21-2-14
cvs
parents: 410
diff changeset
336 of Emacs. Also, see whether the problem happens in a freshly started Emacs
697ef44129c6 Import from CVS: tag r21-2-14
cvs
parents: 410
diff changeset
337 without loading your @file{.emacs} file (start Emacs with the @code{-q} switch
697ef44129c6 Import from CVS: tag r21-2-14
cvs
parents: 410
diff changeset
338 to prevent loading the init file). If the problem does @var{not} occur
697ef44129c6 Import from CVS: tag r21-2-14
cvs
parents: 410
diff changeset
339 then, it is essential that we know the contents of any programs that you
697ef44129c6 Import from CVS: tag r21-2-14
cvs
parents: 410
diff changeset
340 must load into the Lisp world in order to cause the problem to occur.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
341
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
342 If the problem does depend on an init file or other Lisp programs that
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
343 are not part of the standard Emacs system, then you should make sure it is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
344 not a bug in those programs by complaining to their maintainers first.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
345 After they verify that they are using Emacs in a way that is supposed to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
346 work, they should report the bug.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
347
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
348 If you can tell us a way to cause the problem without visiting any files,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
349 please do so. This makes it much easier to debug. If you do need files,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
350 make sure you arrange for us to see their exact contents. For example, it
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
351 can often matter whether there are spaces at the ends of lines, or a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
352 newline after the last line in the buffer (nothing ought to care whether
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
353 the last line is terminated, but tell that to the bugs).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
354
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
355 @findex open-dribble-file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
356 @cindex dribble file
2
ac2d302a0011 Import from CVS: tag r19-15b2
cvs
parents: 0
diff changeset
357 The easy way to record the input to Emacs precisely is to write a
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
358 dribble file; execute the Lisp expression:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
359
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
360 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
361 (open-dribble-file "~/dribble")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
362 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
363
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
364 @noindent
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
365 using @kbd{Meta-@key{ESC}} or from the @samp{*scratch*} buffer just after starting
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
366 Emacs. From then on, all Emacs input will be written in the specified
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
367 dribble file until the Emacs process is killed.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
368
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
369 @findex open-termscript
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
370 @cindex termscript file
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
371 For possible display bugs, it is important to report the terminal type
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
372 (the value of environment variable @code{TERM}), the complete termcap entry
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
373 for the terminal from @file{/etc/termcap} (since that file is not identical
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
374 on all machines), and the output that Emacs actually sent to the terminal.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
375 The way to collect this output is to execute the Lisp expression:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
376
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
377 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
378 (open-termscript "~/termscript")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
379 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
380
412
697ef44129c6 Import from CVS: tag r21-2-14
cvs
parents: 410
diff changeset
381 @noindent
697ef44129c6 Import from CVS: tag r21-2-14
cvs
parents: 410
diff changeset
382 using @kbd{Meta-@key{ESC}} or from the @samp{*scratch*} buffer just
697ef44129c6 Import from CVS: tag r21-2-14
cvs
parents: 410
diff changeset
383 after starting Emacs. From then on, all output from Emacs to the terminal
697ef44129c6 Import from CVS: tag r21-2-14
cvs
parents: 410
diff changeset
384 will be written in the specified termscript file as well, until the Emacs
697ef44129c6 Import from CVS: tag r21-2-14
cvs
parents: 410
diff changeset
385 process is killed. If the problem happens when Emacs starts up, put this
697ef44129c6 Import from CVS: tag r21-2-14
cvs
parents: 410
diff changeset
386 expression into your @file{.emacs} file so that the termscript file will
697ef44129c6 Import from CVS: tag r21-2-14
cvs
parents: 410
diff changeset
387 be open when Emacs displays the screen for the first time. Be warned:
697ef44129c6 Import from CVS: tag r21-2-14
cvs
parents: 410
diff changeset
388 it is often difficult, and sometimes impossible, to fix a terminal-dependent
697ef44129c6 Import from CVS: tag r21-2-14
cvs
parents: 410
diff changeset
389 bug without access to a terminal of the type that stimulates the bug.@refill
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
390
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
391 The newsgroup @samp{comp.emacs.xemacs} may be used for bug reports,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
392 other discussions and requests for assistance.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
393
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
394 If you don't have access to this newgroup, you can subscribe to the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
395 mailing list version: the newsgroup is bidirectionally gatewayed into
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
396 the mailing list @samp{xemacs@@xemacs.org}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
397
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
398 To be added or removed from this mailing list, send mail to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
399 @samp{xemacs-request@@xemacs.org}. Do not send requests for addition
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
400 to the mailing list itself.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
401
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
402 The mailing lists and newsgroups are archived on our anonymous FTP server,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
403 @samp{ftp.xemacs.org}, and at various other archive sites around the net. You
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
404 should also check the @samp{FAQ} in @samp{/pub/xemacs} on our anonymous
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
405 FTP server. It provides some introductory information and help for initial
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
406 configuration problems.