aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/emacs/ChangeLog118
-rw-r--r--doc/emacs/building.texi2
-rw-r--r--doc/emacs/cmdargs.texi33
-rw-r--r--doc/emacs/custom.texi11
-rw-r--r--doc/emacs/display.texi142
-rw-r--r--doc/emacs/emacs.texi56
-rw-r--r--doc/emacs/emacsver.texi2
-rw-r--r--doc/emacs/files.texi10
-rw-r--r--doc/emacs/frames.texi660
-rw-r--r--doc/emacs/glossary.texi16
-rw-r--r--doc/emacs/indent.texi386
-rw-r--r--doc/emacs/modes.texi259
-rw-r--r--doc/emacs/programs.texi2
-rw-r--r--doc/emacs/rmail.texi16
-rw-r--r--doc/emacs/text.texi1485
-rw-r--r--doc/emacs/windows.texi6
-rw-r--r--doc/emacs/xresources.texi62
-rw-r--r--doc/lispintro/ChangeLog4
-rw-r--r--doc/lispintro/emacs-lisp-intro.texi4
-rw-r--r--doc/lispintro/makefile.w32-in2
-rw-r--r--doc/lispref/ChangeLog23
-rw-r--r--doc/lispref/display.texi71
-rw-r--r--doc/lispref/spellfile5
-rw-r--r--doc/lispref/text.texi20
-rw-r--r--doc/lispref/two-volume-cross-refs.txt2
-rw-r--r--doc/lispref/windows.texi202
-rw-r--r--doc/man/emacs.12
-rw-r--r--doc/misc/ChangeLog12
-rw-r--r--doc/misc/autotype.texi4
-rw-r--r--doc/misc/calc.texi4
-rw-r--r--doc/misc/ede.texi2
-rw-r--r--doc/misc/eieio.texi2
-rw-r--r--doc/misc/gnus.texi14
-rw-r--r--doc/misc/idlwave.texi184
-rw-r--r--doc/misc/makefile.w32-in165
-rw-r--r--doc/misc/message.texi2
-rw-r--r--doc/misc/org.texi6
-rw-r--r--doc/misc/pcl-cvs.texi4
-rw-r--r--doc/misc/sem-user.texi2
-rw-r--r--doc/misc/semantic.texi2
-rw-r--r--doc/misc/ses.texi2
-rw-r--r--doc/misc/smtpmail.texi2
-rw-r--r--doc/misc/tramp.texi2
43 files changed, 1981 insertions, 2029 deletions
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index 6e687bcefc9..d16443ccf31 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,3 +1,121 @@
12011-12-03 Chong Yidong <cyd@gnu.org>
2
3 * text.texi (TeX Mode): Mention AUCTeX package.
4 (TeX Editing): Add xref to documentation for Occur.
5 (LaTeX Editing): Add xref to Completion node.
6 (TeX Print): Fix description of tex-directory.
7 (Enriched Text): Renamed from Formatted Text. Make this node and
8 its subnodes less verbose, since text/enriched files are
9 practically unused.
10 (Enriched Mode): Renamed from Requesting Formatted Text.
11 (Format Colors): Node deleted.
12 (Enriched Faces): Renamed from Format Faces. Describe commands
13 for applying colors too.
14 (Forcing Enriched Mode): Node deleted; merged into Enriched Mode.
15
16 * frames.texi (Menu Mouse Clicks): Tweak description of C-Mouse-2.
17
18 * display.texi (Colors): New node.
19
20 * cmdargs.texi (Colors X):
21 * xresources.texi (GTK styles):
22 * custom.texi (Face Customization): Reference it.
23
24 * glossary.texi (Glossary): Remove "formatted text" and "WYSIWYG".
25 Link to Fill Commands for Justification entry.
26
272011-12-03 Eli Zaretskii <eliz@gnu.org>
28
29 * display.texi (Auto Scrolling): More accurate description of what
30 scroll-*-aggressively does, including the effect of non-zero
31 margin. Fix "i.e." markup.
32
332011-12-02 Chong Yidong <cyd@gnu.org>
34
35 * text.texi (Pages): Mention how formfeed chars are displayed.
36 (Auto Fill): Note convention for calling auto-fill-mode from Lisp.
37 Describe adaptive filling more precisely.
38 (Fill Commands): Note that filling removes excess whitespace.
39 (Text Mode): Note auto-mode-alist entries for Text mode. TAB is
40 now bound to indent-for-tab-command in Text mode.
41 (Outline Mode): Copyedits.
42 (Outline Visibility): Note that Reveal mode is a buffer-local
43 minor mode.
44
45 * modes.texi (Major Modes): Move note about checking major-mode in
46 a hook function here, from Text mode.
47
482011-11-28 Chong Yidong <cyd@gnu.org>
49
50 * text.texi (Words): Add xref to Position Info.
51 (Paragraphs): Add xref to Regexps.
52
53 * indent.texi (Indentation): Rewrite introduction. Move table to
54 Indentation Commands node.
55 (Indentation Commands): Add index entries to table. Copyedits.
56 (Tab Stops, Just Spaces): Copyedits.
57 (Indent Convenience): New node. Document electric-indent-mode.
58
59 * programs.texi (Basic Indent):
60 * windows.texi (Pop Up Window): Fix kindex entry.
61
622011-11-28 Chong Yidong <cyd@gnu.org>
63
64 * modes.texi (Major Modes): Move major-mode variable doc here from
65 Choosing Modes. Document describe-mode. Document prog-mode-hook
66 and text-mode-hook. Add example of using hooks.
67 (Minor Modes): Document behavior of mode command calls from Lisp.
68 Note that setting the mode variable using Customize will DTRT.
69 (Choosing Modes): Add example of setting a minor mode using a
70 local variable.
71
722011-11-27 Chong Yidong <cyd@gnu.org>
73
74 * frames.texi (Creating Frames): Move frame parameter example to
75 Frame Parameters node.
76 (Frame Commands): C-x 5 o does not warp the mouse by default.
77 (Fonts): Add more GTK-style properties; also, they should be
78 capitalized.
79 (Special Buffer Frames): Node deleted; special-display is on the
80 way out.
81 (Frame Parameters): Example moved here from Creating Frames.
82 Clarify that default-frame-alist affects the initial frame too.
83 Delete auto-raise-mode and auto-lower-mode.
84 (Wheeled Mice): Node deleted. Content moved to Mouse Commands.
85 (Dialog Boxes): Delete x-gtk-use-old-file-dialog.
86
87 * windows.texi (Window Choice): Add xref to Lisp manual for
88 special-display-*.
89
902011-11-26 Eli Zaretskii <eliz@gnu.org>
91
92 * display.texi (Text Display): Update the description,
93 cross-references, and indexing related to display of control
94 characters and raw bytes.
95
962011-11-25 Chong Yidong <cyd@gnu.org>
97
98 * frames.texi (Frames): Rewrite introduction.
99 (Mouse Commands): Default for mouse-drag-copy-region is now t.
100 Mouse-3 does not copy to kill ring by default. DEL does not
101 behave specially for mouse commands any more.
102 (Mouse References): Document mouse-1-click-follows-link more
103 thoroughly.
104 (Menu Mouse Clicks): Move footnote to the main text and add xref
105 to Init Rebinding node.
106 (Mode Line Mouse): Mouse-3 on the mode-line does not bury buffer.
107
108 * files.texi (Visiting): `C-x 5 f' works on ttys too.
109
1102011-11-24 Juanma Barranquero <lekktu@gmail.com>
111
112 * display.texi (Font Lock): Fix typo.
113
1142011-11-24 Glenn Morris <rgm@gnu.org>
115
116 * rmail.texi (Rmail Output):
117 Mention rmail-automatic-folder-directives. (Bug#9657)
118
12011-11-21 Chong Yidong <cyd@gnu.org> 1192011-11-21 Chong Yidong <cyd@gnu.org>
2 120
3 * mark.texi (Global Mark Ring): Fix description of global mark 121 * mark.texi (Global Mark Ring): Fix description of global mark
diff --git a/doc/emacs/building.texi b/doc/emacs/building.texi
index ac62e2d9652..9c5b2e7dcd7 100644
--- a/doc/emacs/building.texi
+++ b/doc/emacs/building.texi
@@ -995,7 +995,7 @@ breakpoint}, the breakpoint which point is on.
995Enable/disable current breakpoint (@code{gdb-toggle-breakpoint}). 995Enable/disable current breakpoint (@code{gdb-toggle-breakpoint}).
996On a graphical display, this changes the color of a bullet in the 996On a graphical display, this changes the color of a bullet in the
997margin of a source buffer at the relevant line. This is red when 997margin of a source buffer at the relevant line. This is red when
998the breakpoint is enabled and grey when it is disabled. Text-only 998the breakpoint is enabled and gray when it is disabled. Text-only
999terminals correspondingly display a @samp{B} or @samp{b}. 999terminals correspondingly display a @samp{B} or @samp{b}.
1000 1000
1001@item D 1001@item D
diff --git a/doc/emacs/cmdargs.texi b/doc/emacs/cmdargs.texi
index 07cca53ce4d..d9109045570 100644
--- a/doc/emacs/cmdargs.texi
+++ b/doc/emacs/cmdargs.texi
@@ -69,7 +69,7 @@ arguments.)
69* Environment:: Environment variables that Emacs uses. 69* Environment:: Environment variables that Emacs uses.
70* Display X:: Changing the default display and using remote login. 70* Display X:: Changing the default display and using remote login.
71* Font X:: Choosing a font for text, under X. 71* Font X:: Choosing a font for text, under X.
72* Colors:: Choosing display colors. 72* Colors X:: Choosing display colors.
73* Window Size X:: Start-up window size, under X. 73* Window Size X:: Start-up window size, under X.
74* Borders X:: Internal and external borders, under X. 74* Borders X:: Internal and external borders, under X.
75* Title X:: Specifying the initial frame's title. 75* Title X:: Specifying the initial frame's title.
@@ -784,7 +784,7 @@ Use @var{font} as the default font.
784 784
785When passing a font specification to Emacs on the command line, you 785When passing a font specification to Emacs on the command line, you
786may need to ``quote'' it, by enclosing it in quotation marks, if it 786may need to ``quote'' it, by enclosing it in quotation marks, if it
787contains characters that the shell treats specially (e.g. spaces). 787contains characters that the shell treats specially (e.g.@: spaces).
788For example: 788For example:
789 789
790@smallexample 790@smallexample
@@ -794,27 +794,14 @@ emacs -fn "DejaVu Sans Mono-12"
794@xref{Fonts}, for other ways to specify the default font and font name 794@xref{Fonts}, for other ways to specify the default font and font name
795formats. 795formats.
796 796
797@node Colors 797@node Colors X
798@appendixsec Window Color Options 798@appendixsec Window Color Options
799@cindex color of window, from command line 799@cindex color of window, from command line
800@cindex text colors, from command line 800@cindex text colors, from command line
801 801
802@findex list-colors-display 802 You can use the following command-line options to specify the colors
803@cindex available colors 803to use for various parts of the Emacs display. Colors may be
804 On a color display, you can specify which color to use for various 804specified using either color names or RGB triplets (@pxref{Colors}).
805parts of the Emacs display. To find out what colors are available on
806your system, type @kbd{M-x list-colors-display}, or press
807@kbd{C-Mouse-2} and select @samp{Display Colors} from the pop-up menu.
808(A particular window system might support many more colors, but the
809list displayed by @code{list-colors-display} shows their portable
810subset that can be safely used on any display supported by Emacs.)
811If you do not specify colors, on windowed displays the default for the
812background is white and the default for all other colors is black. On a
813monochrome display, the foreground is black, the background is white,
814and the border is gray if the display supports that. On terminals, the
815background is usually black and the foreground is white.
816
817 Here is a list of the command-line options for specifying colors:
818 805
819@table @samp 806@table @samp
820@item -fg @var{color} 807@item -fg @var{color}
@@ -822,15 +809,15 @@ background is usually black and the foreground is white.
822@itemx --foreground-color=@var{color} 809@itemx --foreground-color=@var{color}
823@opindex --foreground-color 810@opindex --foreground-color
824@cindex foreground color, command-line argument 811@cindex foreground color, command-line argument
825Specify the foreground color. @var{color} should be a standard color 812Specify the foreground color, overriding the color specified by the
826name, or a numeric specification of the color's red, green, and blue 813@code{default} face (@pxref{Faces}).
827components as in @samp{#4682B4} or @samp{RGB:46/82/B4}.
828@item -bg @var{color} 814@item -bg @var{color}
829@opindex -bg 815@opindex -bg
830@itemx --background-color=@var{color} 816@itemx --background-color=@var{color}
831@opindex --background-color 817@opindex --background-color
832@cindex background color, command-line argument 818@cindex background color, command-line argument
833Specify the background color. 819Specify the background color, overriding the color specified by the
820@code{default} face.
834@item -bd @var{color} 821@item -bd @var{color}
835@opindex -bd 822@opindex -bd
836@itemx --border-color=@var{color} 823@itemx --border-color=@var{color}
diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi
index 5b98216369d..e807aebdeee 100644
--- a/doc/emacs/custom.texi
+++ b/doc/emacs/custom.texi
@@ -430,15 +430,8 @@ means that it's disabled. You can enable or disable the attribute by
430clicking that button. When the attribute is enabled, you can change 430clicking that button. When the attribute is enabled, you can change
431the attribute value in the usual ways. 431the attribute value in the usual ways.
432 432
433 You can specify a color name (use @kbd{M-x list-colors-display} for 433 The foreground and background colors can be specified using color
434a list of them) or a hexadecimal color specification of the form 434names or RGB triplets. @xref{Colors}.
435@samp{#@var{rr}@var{gg}@var{bb}}. (@samp{#000000} is black,
436@samp{#ff0000} is red, @samp{#00ff00} is green, @samp{#0000ff} is
437blue, and @samp{#ffffff} is white.) On a black-and-white display, the
438colors you can use for the background are @samp{black}, @samp{white},
439@samp{gray}, @samp{gray1}, and @samp{gray3}. Emacs supports these
440shades of gray by using background stipple patterns instead of a
441color.
442 435
443 Setting, saving and resetting a face work like the same operations for 436 Setting, saving and resetting a face work like the same operations for
444variables (@pxref{Changing a Variable}). 437variables (@pxref{Changing a Variable}).
diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi
index 8995b1242b1..ea9bd95b8ee 100644
--- a/doc/emacs/display.texi
+++ b/doc/emacs/display.texi
@@ -21,6 +21,7 @@ the text is displayed.
21* View Mode:: Viewing read-only buffers. 21* View Mode:: Viewing read-only buffers.
22* Follow Mode:: Follow mode lets two windows scroll as one. 22* Follow Mode:: Follow mode lets two windows scroll as one.
23* Faces:: How to change the display style using faces. 23* Faces:: How to change the display style using faces.
24* Colors:: Specifying colors for faces.
24* Standard Faces:: Emacs' predefined faces. 25* Standard Faces:: Emacs' predefined faces.
25* Text Scale:: Increasing or decreasing text size in a buffer. 26* Text Scale:: Increasing or decreasing text size in a buffer.
26* Font Lock:: Minor mode for syntactic highlighting using faces. 27* Font Lock:: Minor mode for syntactic highlighting using faces.
@@ -122,7 +123,7 @@ moving it to the topmost or bottommost line. With any other
122non-@code{nil} value, Emacs adjusts point this way even if the scroll 123non-@code{nil} value, Emacs adjusts point this way even if the scroll
123command leaves point in the window. This variable affects all the 124command leaves point in the window. This variable affects all the
124scroll commands documented in this section, as well as scrolling with 125scroll commands documented in this section, as well as scrolling with
125the mouse wheel (@pxref{Wheeled Mice}); in general, it affects any 126the mouse wheel (@pxref{Mouse Commands}); in general, it affects any
126command that has a non-@code{nil} @code{scroll-command} property. 127command that has a non-@code{nil} @code{scroll-command} property.
127@xref{Property Lists,,, elisp, The Emacs Lisp Reference Manual}. 128@xref{Property Lists,,, elisp, The Emacs Lisp Reference Manual}.
128 129
@@ -238,26 +239,32 @@ centered after scrolling.
238@cindex aggressive scrolling 239@cindex aggressive scrolling
239@vindex scroll-up-aggressively 240@vindex scroll-up-aggressively
240@vindex scroll-down-aggressively 241@vindex scroll-down-aggressively
241 When the window does scroll by a longer distance, you can control 242 When the window does scroll by a distance longer than
242how aggressively it scrolls by setting the variables 243@code{scroll-step}, you can control how aggressively it scrolls by
243@code{scroll-up-aggressively} and @code{scroll-down-aggressively}. 244setting the variables @code{scroll-up-aggressively} and
244The value of @code{scroll-up-aggressively} should be either 245@code{scroll-down-aggressively}. The value of
245@code{nil}, or a fraction @var{f} between 0 and 1. A fraction 246@code{scroll-up-aggressively} should be either @code{nil}, or a
246specifies where on the screen to put point when scrolling upward, 247fraction @var{f} between 0 and 1. A fraction specifies where on the
247i.e. forward. When point goes off the window end, the new start 248screen to put point when scrolling upward, i.e.@: forward. When point
248position is chosen to put point @var{f} parts of the window height 249goes off the window end, the new start position is chosen to put point
249from the bottom. Thus, larger @var{f} means more aggressive 250@var{f} parts of the window height from the bottom margin. Thus,
250scrolling: more new text is brought into view. The default value, 251larger @var{f} means more aggressive scrolling: more new text is
251@code{nil}, is equivalent to 0.5. 252brought into view. The default value, @code{nil}, is equivalent to
2530.5.
252 254
253 Likewise, @code{scroll-down-aggressively} is used for scrolling 255 Likewise, @code{scroll-down-aggressively} is used for scrolling
254down, i.e. backward. The value specifies how far point should be 256down, i.e.@: backward. The value specifies how far point should be
255placed from the top of the window; thus, as with 257placed from the top margin of the window; thus, as with
256@code{scroll-up-aggressively}, a larger value is more aggressive. 258@code{scroll-up-aggressively}, a larger value is more aggressive.
257 259
258 These two variables are ignored if either @code{scroll-step} or 260 These two variables are ignored if either @code{scroll-step} or
259@code{scroll-conservatively} are set to a non-zero value. 261@code{scroll-conservatively} are set to a non-zero value.
260 262
263 Note that @code{scroll-margin}, described below, limits the amount
264of scrolling so as to put point outside of the top or bottom margin,
265even if aggressive scrolling specifies a fraction @var{f} that is
266larger than the window portion between the top and the bottom margins.
267
261@vindex scroll-margin 268@vindex scroll-margin
262 The variable @code{scroll-margin} restricts how close point can come 269 The variable @code{scroll-margin} restricts how close point can come
263to the top or bottom of a window. Its value is a number of screen 270to the top or bottom of a window. Its value is a number of screen
@@ -455,7 +462,7 @@ one large window.
455 To turn off Follow mode, type @kbd{M-x follow-mode} a second time. 462 To turn off Follow mode, type @kbd{M-x follow-mode} a second time.
456 463
457@node Faces 464@node Faces
458@section Faces: Controlling Text Display Style 465@section Text Faces
459@cindex faces 466@cindex faces
460 467
461 Emacs can display text in several different styles, called 468 Emacs can display text in several different styles, called
@@ -474,10 +481,8 @@ matching that regular expression (@pxref{Regexps}).
474 It's possible for a given face to look different in different 481 It's possible for a given face to look different in different
475frames. For instance, some text-only terminals do not support all 482frames. For instance, some text-only terminals do not support all
476face attributes, particularly font, height, and width, and some 483face attributes, particularly font, height, and width, and some
477support a limited range of colors. The @code{list-faces-display} 484support a limited range of colors.
478command shows the appearance for the selected frame.
479 485
480@cindex face colors, setting
481@cindex background color 486@cindex background color
482@cindex default face 487@cindex default face
483 You can customize a face to alter its appearance, and save those 488 You can customize a face to alter its appearance, and save those
@@ -492,25 +497,58 @@ background color.
492 You can also use X resources to specify attributes of any particular 497 You can also use X resources to specify attributes of any particular
493face. @xref{Resources}. 498face. @xref{Resources}.
494 499
500 Emacs can display variable-width fonts, but some Emacs commands,
501particularly indentation commands, do not account for variable
502character display widths. Therefore, we recommend not using
503variable-width fonts for most faces, particularly those assigned by
504Font Lock mode.
505
506@node Colors
507@section Colors for Faces
508@cindex color name
509@cindex RGB triplet
510
511 Faces can have various foreground and background colors. When you
512specify a color for a face---for instance, when customizing the face
513(@pxref{Face Customization})---you can use either a @dfn{color name}
514or an @dfn{RGB triplet}.
515
516@findex list-colors-display
517 A color name is a pre-defined name, such as @samp{dark orange} or
518@samp{medium sea green}. To view a list of color names, type @kbd{M-x
519list-colors-display}. If you run this command on a graphical display,
520it shows the full range of color names known to Emacs (these are the
521standard X11 color names, defined in X's @file{rgb.txt} file). If you
522run the command on a text-only terminal, it shows only a small subset
523of colors that can be safely displayed on such terminals. However,
524Emacs understands X11 color names even on text-only terminals; if a
525face is given a color specified by an X11 color name, it is displayed
526using the closest-matching terminal color.
527
528 An RGB triplet is a string of the form @samp{#RRGGBB}. Each of the
529R, G, and B components is a hexadecimal number specifying the
530component's relative intensity, one to four digits long (usually two
531digits are used). The components must have the same number of digits.
532For hexadecimal values A to F, either upper or lower case are
533acceptable.
534
535 The @kbd{M-x list-colors-display} command also shows the equivalent
536RGB triplet for each named color. For instance, @samp{medium sea
537green} is equivalent to @samp{#3CB371}.
538
539@cindex face colors, setting
495@findex set-face-foreground 540@findex set-face-foreground
496@findex set-face-background 541@findex set-face-background
497 You can also change the foreground and background colors of a face 542 You can change the foreground and background colors of a face with
498with @kbd{M-x set-face-foreground} and @kbd{M-x set-face-background}. 543@kbd{M-x set-face-foreground} and @kbd{M-x set-face-background}.
499These commands prompt in the minibuffer for a face name and a color 544These commands prompt in the minibuffer for a face name and a color,
500name, with completion, and then set that face to use the specified 545with completion, and then set that face to use the specified color.
501color (@pxref{Face Customization}, for information about color names).
502They affect the face colors on all frames, but their effects do not 546They affect the face colors on all frames, but their effects do not
503persist for future Emacs sessions, unlike using the customization 547persist for future Emacs sessions, unlike using the customization
504buffer or X resources. You can also use frame parameters to set 548buffer or X resources. You can also use frame parameters to set
505foreground and background colors for a specific frame; see @ref{Frame 549foreground and background colors for a specific frame; @xref{Frame
506Parameters}. 550Parameters}.
507 551
508 Emacs can display variable-width fonts, but some Emacs commands,
509particularly indentation commands, do not account for variable
510character display widths. Therefore, we recommend not using
511variable-width fonts for most faces, particularly those assigned by
512Font Lock mode.
513
514@node Standard Faces 552@node Standard Faces
515@section Standard Faces 553@section Standard Faces
516 554
@@ -762,7 +800,7 @@ relies on analysis of the syntactic structure of the buffer text. For
762the sake of speed, some modes, including Lisp mode, rely on a special 800the sake of speed, some modes, including Lisp mode, rely on a special
763convention: an open-parenthesis or open-brace in the leftmost column 801convention: an open-parenthesis or open-brace in the leftmost column
764always defines the beginning of a defun, and is thus always outside 802always defines the beginning of a defun, and is thus always outside
765any string or comment. Therefore, you should avoid placing a an 803any string or comment. Therefore, you should avoid placing an
766open-parenthesis or open-brace in the leftmost column, if it is inside 804open-parenthesis or open-brace in the leftmost column, if it is inside
767a string or comment. @xref{Left Margin Paren}, for details. 805a string or comment. @xref{Left Margin Paren}, for details.
768 806
@@ -1016,13 +1054,13 @@ trailing whitespace in the region instead.
1016@cindex fringes, and unused line indication 1054@cindex fringes, and unused line indication
1017 On graphical displays, Emacs can indicate unused lines at the end of 1055 On graphical displays, Emacs can indicate unused lines at the end of
1018the window with a small image in the left fringe (@pxref{Fringes}). 1056the window with a small image in the left fringe (@pxref{Fringes}).
1019The image appears for window lines that do not correspond to any 1057The image appears for screen lines that do not correspond to any
1020buffer text. Blank lines at the end of the buffer then stand out 1058buffer text, so blank lines at the end of the buffer stand out because
1021because they do not have this image in the fringe. To enable this 1059they lack this image. To enable this feature, set the buffer-local
1022feature, set the buffer-local variable @code{indicate-empty-lines} to 1060variable @code{indicate-empty-lines} to a non-@code{nil} value. You
1023a non-@code{nil} value. You can enable or disable this feature for 1061can enable or disable this feature for all new buffers by setting the
1024all new buffers by setting the default value of this variable, 1062default value of this variable, e.g.@: @code{(setq-default
1025e.g.@:@code{(setq-default indicate-empty-lines t)}. 1063indicate-empty-lines t)}.
1026 1064
1027@node Selective Display 1065@node Selective Display
1028@section Selective Display 1066@section Selective Display
@@ -1216,7 +1254,7 @@ characters include @acronym{ASCII} numbers, letters, and punctuation
1216characters, as well as many non-@acronym{ASCII} characters. 1254characters, as well as many non-@acronym{ASCII} characters.
1217 1255
1218@vindex tab-width 1256@vindex tab-width
1219@cindex control character 1257@cindex control characters on display
1220 The @acronym{ASCII} character set contains non-printing @dfn{control 1258 The @acronym{ASCII} character set contains non-printing @dfn{control
1221characters}. Two of these are displayed specially: the newline 1259characters}. Two of these are displayed specially: the newline
1222character (Unicode code point @code{U+000A}) is displayed by starting 1260character (Unicode code point @code{U+000A}) is displayed by starting
@@ -1228,19 +1266,21 @@ value between 1 and 1000, inclusive. Note that how the tab character
1228in the buffer is displayed has nothing to do with the definition of 1266in the buffer is displayed has nothing to do with the definition of
1229@key{TAB} as a command. 1267@key{TAB} as a command.
1230 1268
1231 Other @acronym{ASCII} control characters are displayed as a caret 1269 Other @acronym{ASCII} control characters, whose codes are below
1270@code{U+0020} (octal 40, decimal 32), are displayed as a caret
1232(@samp{^}) followed by the non-control version of the character, with 1271(@samp{^}) followed by the non-control version of the character, with
1233the @code{escape-glyph} face. For instance, the @samp{control-A} 1272the @code{escape-glyph} face. For instance, the @samp{control-A}
1234character, @code{U+0001}, is displayed as @samp{^A}. 1273character, @code{U+0001}, is displayed as @samp{^A}.
1235 1274
1275@cindex octal escapes
1236@vindex ctl-arrow 1276@vindex ctl-arrow
1237 The non-@acronym{ASCII}, non-printing characters @code{U+0080} 1277 The raw bytes with codes @code{U+0080} (octal 200) through
1238(octal 200) through @code{U+009F} (octal 237) are displayed as octal 1278@code{U+009F} (octal 237) are displayed as @dfn{octal escape
1239escape sequences, with the @code{escape-glyph} face. For instance, 1279sequences}, with the @code{escape-glyph} face. For instance,
1240character code @code{U+0098} (octal 230) is displayed as @samp{\230}. 1280character code @code{U+0098} (octal 230) is displayed as @samp{\230}.
1241If you change the buffer-local variable @code{ctl-arrow} to 1281If you change the buffer-local variable @code{ctl-arrow} to
1242@code{nil}, @acronym{ASCII} control characters are also displayed as 1282@code{nil}, the @acronym{ASCII} control characters are also displayed
1243octal escape sequences instead of caret escape sequences. 1283as octal escape sequences instead of caret escape sequences.
1244 1284
1245@vindex nobreak-char-display 1285@vindex nobreak-char-display
1246@cindex non-breaking space 1286@cindex non-breaking space
@@ -1249,7 +1289,7 @@ octal escape sequences instead of caret escape sequences.
1249 Some non-@acronym{ASCII} characters have the same appearance as an 1289 Some non-@acronym{ASCII} characters have the same appearance as an
1250@acronym{ASCII} space or hyphen (minus) character. Such characters 1290@acronym{ASCII} space or hyphen (minus) character. Such characters
1251can cause problems if they are entered into a buffer without your 1291can cause problems if they are entered into a buffer without your
1252realization, e.g. by yanking; for instance, source code compilers 1292realization, e.g.@: by yanking; for instance, source code compilers
1253typically do not treat non-@acronym{ASCII} spaces as whitespace 1293typically do not treat non-@acronym{ASCII} spaces as whitespace
1254characters. To deal with this problem, Emacs displays such characters 1294characters. To deal with this problem, Emacs displays such characters
1255specially: it displays @code{U+00A0} (no-break space) with the 1295specially: it displays @code{U+00A0} (no-break space) with the
@@ -1270,10 +1310,12 @@ elisp, The Emacs Lisp Reference Manual}.
1270 On graphical displays, some characters may have no glyphs in any of 1310 On graphical displays, some characters may have no glyphs in any of
1271the fonts available to Emacs. These @dfn{glyphless characters} are 1311the fonts available to Emacs. These @dfn{glyphless characters} are
1272normally displayed as boxes containing the hexadecimal character code. 1312normally displayed as boxes containing the hexadecimal character code.
1273You can control the display method by customizing the variable 1313Similarly, on text terminals, characters that cannot be displayed
1274@code{glyphless-char-display-control}. @xref{Glyphless Chars,, 1314using the terminal encoding (@pxref{Terminal Coding}) are normally
1275Glyphless Character Display, elisp, The Emacs Lisp Reference Manual}, 1315displayed as question signs. You can control the display method by
1276for details. 1316customizing the variable @code{glyphless-char-display-control}.
1317@xref{Glyphless Chars,, Glyphless Character Display, elisp, The Emacs
1318Lisp Reference Manual}, for details.
1277 1319
1278@node Cursor Display 1320@node Cursor Display
1279@section Displaying the Cursor 1321@section Displaying the Cursor
diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi
index 55fdb9ec875..aca3735ff03 100644
--- a/doc/emacs/emacs.texi
+++ b/doc/emacs/emacs.texi
@@ -113,25 +113,6 @@ Emacs Lisp Reference Manual}.
113@insertcopying 113@insertcopying
114@end ifnottex 114@end ifnottex
115 115
116@ignore
117These subcategories have been deleted for simplicity
118and to avoid conflicts.
119Completion
120Backup Files
121Auto-Saving: Protection Against Disasters
122Tags
123Text Mode
124Outline Mode
125@TeX{} Mode
126Formatted Text
127Shell Command History
128
129The ones for Dired and Rmail have had the items turned into :: items
130to avoid conflicts.
131Also Running Shell Commands from Emacs
132and Sending Mail and Registers and Minibuffer.
133@end ignore
134
135@menu 116@menu
136* Distrib:: How to get the latest Emacs distribution. 117* Distrib:: How to get the latest Emacs distribution.
137* Intro:: An introduction to Emacs concepts. 118* Intro:: An introduction to Emacs concepts.
@@ -350,6 +331,7 @@ Controlling the Display
350* View Mode:: Viewing read-only buffers. 331* View Mode:: Viewing read-only buffers.
351* Follow Mode:: Follow mode lets two windows scroll as one. 332* Follow Mode:: Follow mode lets two windows scroll as one.
352* Faces:: How to change the display style using faces. 333* Faces:: How to change the display style using faces.
334* Colors:: Specifying colors for faces.
353* Standard Faces:: Emacs' predefined faces. 335* Standard Faces:: Emacs' predefined faces.
354* Text Scale:: Increasing or decreasing text size in a buffer. 336* Text Scale:: Increasing or decreasing text size in a buffer.
355* Font Lock:: Minor mode for syntactic highlighting using faces. 337* Font Lock:: Minor mode for syntactic highlighting using faces.
@@ -505,10 +487,8 @@ Frames and Graphical Displays
505* Fonts:: Changing the frame font. 487* Fonts:: Changing the frame font.
506* Speedbar:: How to make and use a speedbar frame. 488* Speedbar:: How to make and use a speedbar frame.
507* Multiple Displays:: How one Emacs job can talk to several displays. 489* Multiple Displays:: How one Emacs job can talk to several displays.
508* Special Buffer Frames:: You can make certain buffers have their own frames.
509* Frame Parameters:: Changing the colors and other modes of frames. 490* Frame Parameters:: Changing the colors and other modes of frames.
510* Scroll Bars:: How to enable and disable scroll bars; how to use them. 491* Scroll Bars:: How to enable and disable scroll bars; how to use them.
511* Wheeled Mice:: Using mouse wheels for scrolling.
512* Drag and Drop:: Using drag and drop to open files and insert text. 492* Drag and Drop:: Using drag and drop to open files and insert text.
513* Menu Bars:: Enabling and disabling the menu bar. 493* Menu Bars:: Enabling and disabling the menu bar.
514* Tool Bars:: Enabling and disabling the tool bar. 494* Tool Bars:: Enabling and disabling the tool bar.
@@ -553,10 +533,10 @@ Modes
553 533
554Indentation 534Indentation
555 535
556* Indentation Commands:: Various commands and techniques for indentation. 536* Indentation Commands:: More commands for performing indentation.
557* Tab Stops:: You can set arbitrary "tab stops" and then 537* Tab Stops:: Stop points for indentation in Text modes.
558 indent to the next tab stop when you want to. 538* Just Spaces:: Using only space characters for indentation.
559* Just Spaces:: You can request indentation using just spaces. 539* Indent Convenience:: Optional indentation features.
560 540
561Commands for Human Languages 541Commands for Human Languages
562 542
@@ -571,8 +551,8 @@ Commands for Human Languages
571* TeX Mode:: Editing input to the formatter TeX. 551* TeX Mode:: Editing input to the formatter TeX.
572* HTML Mode:: Editing HTML and SGML files. 552* HTML Mode:: Editing HTML and SGML files.
573* Nroff Mode:: Editing input to the formatter nroff. 553* Nroff Mode:: Editing input to the formatter nroff.
574* Formatted Text:: Editing formatted text directly in WYSIWYG fashion. 554* Enriched Text:: Editing text ``enriched'' with fonts, colors, etc.
575* Text Based Tables:: Editing text-based tables in WYSIWYG fashion. 555* Text Based Tables:: Commands for editing text-based tables.
576* Two-Column:: Splitting text columns into separate windows. 556* Two-Column:: Splitting text columns into separate windows.
577 557
578Filling Text 558Filling Text
@@ -599,18 +579,16 @@ Outline Mode
599* TeX Print:: Commands for printing part of a file with TeX. 579* TeX Print:: Commands for printing part of a file with TeX.
600* TeX Misc:: Customization of TeX mode, and related features. 580* TeX Misc:: Customization of TeX mode, and related features.
601 581
602Editing Formatted Text 582Editing Enriched Text
603 583
604* Requesting Formatted Text:: Entering and exiting Enriched mode. 584* Enriched Mode:: Entering and exiting Enriched mode.
605* Hard and Soft Newlines:: There are two different kinds of newlines. 585* Hard and Soft Newlines:: There are two different kinds of newlines.
606* Editing Format Info:: How to edit text properties. 586* Editing Format Info:: How to edit text properties.
607* Format Faces:: Bold, italic, underline, etc. 587* Enriched Faces:: Bold, italic, underline, etc.
608* Format Colors:: Changing the color of text. 588* Enriched Indentation:: Changing the left and right margins.
609* Format Indentation:: Changing the left and right margins. 589* Enriched Justification:: Centering, setting text flush with the
610* Format Justification:: Centering, setting text flush with the 590 left or right margin, etc.
611 left or right margin, etc. 591* Enriched Properties:: The "special" text properties submenu.
612* Format Properties:: The "special" text properties submenu.
613* Forcing Enriched Mode:: How to force use of Enriched mode.
614 592
615@c The automatic texinfo menu update inserts some duplicate items here 593@c The automatic texinfo menu update inserts some duplicate items here
616@c (faces, colors, indentation, justification, properties), because 594@c (faces, colors, indentation, justification, properties), because
@@ -1152,7 +1130,7 @@ Command Line Arguments for Emacs Invocation
1152* Environment:: Environment variables that Emacs uses. 1130* Environment:: Environment variables that Emacs uses.
1153* Display X:: Changing the default display and using remote login. 1131* Display X:: Changing the default display and using remote login.
1154* Font X:: Choosing a font for text, under X. 1132* Font X:: Choosing a font for text, under X.
1155* Colors:: Choosing display colors. 1133* Colors X:: Choosing display colors.
1156* Window Size X:: Start-up window size, under X. 1134* Window Size X:: Start-up window size, under X.
1157* Borders X:: Internal and external borders, under X. 1135* Borders X:: Internal and external borders, under X.
1158* Title X:: Specifying the initial frame's title. 1136* Title X:: Specifying the initial frame's title.
diff --git a/doc/emacs/emacsver.texi b/doc/emacs/emacsver.texi
index 87f9dddbba8..cb3f3f39778 100644
--- a/doc/emacs/emacsver.texi
+++ b/doc/emacs/emacsver.texi
@@ -1,4 +1,4 @@
1@c It would be nicer to generate this using configure and @version@. 1@c It would be nicer to generate this using configure and @version@.
2@c However, that would mean emacsver.texi would always be newer 2@c However, that would mean emacsver.texi would always be newer
3@c then the info files in release tarfiles. 3@c then the info files in release tarfiles.
4@set EMACSVER 24.0.91 4@set EMACSVER 24.0.92
diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi
index 2317f876b08..e3da0ca44e6 100644
--- a/doc/emacs/files.texi
+++ b/doc/emacs/files.texi
@@ -267,9 +267,8 @@ newly requested file. @xref{Windows}.
267@kindex C-x 5 f 267@kindex C-x 5 f
268@findex find-file-other-frame 268@findex find-file-other-frame
269 @kbd{C-x 5 f} (@code{find-file-other-frame}) is similar, but opens a 269 @kbd{C-x 5 f} (@code{find-file-other-frame}) is similar, but opens a
270new frame, or makes visible any existing frame showing the file you 270new frame, or selects any existing frame showing the specified file.
271seek. This feature is available only when you are using a window 271@xref{Frames}.
272system. @xref{Frames}.
273 272
274@cindex file selection dialog 273@cindex file selection dialog
275 On graphical displays, there are two additional methods for visiting 274 On graphical displays, there are two additional methods for visiting
@@ -298,8 +297,9 @@ original encoding and end-of-line convention. @xref{Coding Systems}.
298 If you wish to edit a file as a sequence of @acronym{ASCII} 297 If you wish to edit a file as a sequence of @acronym{ASCII}
299characters with no special encoding or conversion, use the @kbd{M-x 298characters with no special encoding or conversion, use the @kbd{M-x
300find-file-literally} command. This visits a file, like @kbd{C-x C-f}, 299find-file-literally} command. This visits a file, like @kbd{C-x C-f},
301but does not do format conversion (@pxref{Formatted Text}), character 300but does not do format conversion (@pxref{Format Conversion,, Format
302code conversion (@pxref{Coding Systems}), or automatic uncompression 301Conversion, elisp, the Emacs Lisp Reference Manual}), character code
302conversion (@pxref{Coding Systems}), or automatic uncompression
303(@pxref{Compressed Files}), and does not add a final newline because 303(@pxref{Compressed Files}), and does not add a final newline because
304of @code{require-final-newline} (@pxref{Customize Save}). If you have 304of @code{require-final-newline} (@pxref{Customize Save}). If you have
305already visited the same file in the usual (non-literal) manner, this 305already visited the same file in the usual (non-literal) manner, this
diff --git a/doc/emacs/frames.texi b/doc/emacs/frames.texi
index 49222451cce..1445d25be15 100644
--- a/doc/emacs/frames.texi
+++ b/doc/emacs/frames.texi
@@ -6,31 +6,41 @@
6@chapter Frames and Graphical Displays 6@chapter Frames and Graphical Displays
7@cindex frames 7@cindex frames
8 8
9 When using a graphical display, you can create multiple system-level 9 When Emacs is started on a graphical display, e.g.@: on the X Window
10``windows'' in a single Emacs session. We refer to these system-level 10System, it occupies a graphical system-level ``window''. In this
11windows as @dfn{frames}. A frame initially contains a single Emacs 11manual, we call this a @dfn{frame}, reserving the word ``window'' for
12window; however, you can subdivide this Emacs window into smaller 12the part of the frame used for displaying a buffer. A frame initially
13windows, all fitting into the same frame. Each frame normally 13contains one window, but it can be subdivided into multiple windows
14contains its own echo area and minibuffer. 14(@pxref{Windows}). A frame normally also contains a menu bar, tool
15 15bar, and echo area.
16 To avoid confusion, we reserve the word ``window'' for the 16
17subdivisions that Emacs implements, and never use it to refer to a 17 You can also create additional frames (@pxref{Creating Frames}).
18frame. 18All frames created in the same Emacs session have access to the same
19 19underlying buffers and other data. For instance, if a buffer is being
20 Any editing you do in one frame affects the other frames. For 20shown in more than one frame, any changes made to it in one frame show
21instance, if you put text in the kill ring in one frame, you can yank 21up immediately in the other frames too.
22it in another frame. If you exit Emacs through @kbd{C-x C-c} in one 22
23frame, it terminates all the frames. To delete just one frame, use 23 Typing @kbd{C-x C-c} closes all the frames on the current display,
24and ends the Emacs session if it has no frames open on any other
25displays (@pxref{Exiting}). To close just the selected frame, type
24@kbd{C-x 5 0} (that is zero, not @kbd{o}). 26@kbd{C-x 5 0} (that is zero, not @kbd{o}).
25 27
26 Emacs compiled for MS-DOS emulates some windowing functionality, 28 This chapter describes Emacs features specific to graphical displays
27so that you can use many of the features described in this chapter. 29(particularly mouse commands), and features for managing multiple
30frames. On text-only terminals, many of these features are
31unavailable. However, it is still possible to create multiple
32``frames'' on text-only terminals; such frames are displayed one at a
33time, filling the entire terminal screen (@pxref{Non-Window
34Terminals}). It is also possible to use the mouse on some text-only
35terminals (@pxref{Text-Only Mouse}, for doing so on GNU and UNIX
36systems; and
28@iftex 37@iftex
29@xref{MS-DOS Mouse,,,emacs-xtra,Specialized Emacs Features}. 38@pxref{MS-DOS Mouse,,,emacs-xtra,Specialized Emacs Features},
30@end iftex 39@end iftex
31@ifnottex 40@ifnottex
32@xref{MS-DOS Mouse}. 41@pxref{MS-DOS Mouse},
33@end ifnottex 42@end ifnottex
43for doing so on MS-DOS).
34 44
35@menu 45@menu
36* Mouse Commands:: Moving, cutting, and pasting, with the mouse. 46* Mouse Commands:: Moving, cutting, and pasting, with the mouse.
@@ -43,10 +53,8 @@ so that you can use many of the features described in this chapter.
43* Fonts:: Changing the frame font. 53* Fonts:: Changing the frame font.
44* Speedbar:: How to make and use a speedbar frame. 54* Speedbar:: How to make and use a speedbar frame.
45* Multiple Displays:: How one Emacs job can talk to several displays. 55* Multiple Displays:: How one Emacs job can talk to several displays.
46* Special Buffer Frames:: You can make certain buffers have their own frames.
47* Frame Parameters:: Changing the colors and other modes of frames. 56* Frame Parameters:: Changing the colors and other modes of frames.
48* Scroll Bars:: How to enable and disable scroll bars; how to use them. 57* Scroll Bars:: How to enable and disable scroll bars; how to use them.
49* Wheeled Mice:: Using mouse wheels for scrolling.
50* Drag and Drop:: Using drag and drop to open files and insert text. 58* Drag and Drop:: Using drag and drop to open files and insert text.
51* Menu Bars:: Enabling and disabling the menu bar. 59* Menu Bars:: Enabling and disabling the menu bar.
52* Tool Bars:: Enabling and disabling the tool bar. 60* Tool Bars:: Enabling and disabling the tool bar.
@@ -85,31 +93,32 @@ ring; on a second click, kill it (@code{mouse-save-then-kill}).
85 93
86@findex mouse-set-point 94@findex mouse-set-point
87 The most basic mouse command is @code{mouse-set-point}, which is 95 The most basic mouse command is @code{mouse-set-point}, which is
88called by clicking with the left mouse button, @kbd{Mouse-1}, in the 96invoked by clicking with the left mouse button, @kbd{Mouse-1}, in the
89text area of a window. This moves point to the position where you 97text area of a window. This moves point to the position where you
90clicked. 98clicked. If that window was not the selected window, it becomes the
99selected window.
91 100
92@vindex x-mouse-click-focus-ignore-position 101@vindex x-mouse-click-focus-ignore-position
93 Normally, Emacs does not distinguish between ordinary mouse clicks 102 Normally, if the frame you clicked in was not the selected frame, it
94and clicks that select a frame. When you click on a frame to select 103is made the selected frame, in addition to selecting the window and
95it, that also changes the selected window and cursor position 104setting the cursor. On the X Window System, you can change this by
96according to the mouse click position. On the X Window System, you 105setting the variable @code{x-mouse-click-focus-ignore-position} to
97can change this behavior by setting the variable 106@code{t}. In that case, the initial click on an unselected frame just
98@code{x-mouse-click-focus-ignore-position} to @code{t}. Then the 107selects the frame, without doing anything else; clicking again selects
99first click selects the frame, but does not affect the selected window 108the window and sets the cursor position.
100or cursor position. If you click again in the same place, that click
101will be in the selected frame, so it will change the window or cursor
102position.
103 109
104@findex mouse-set-region 110@findex mouse-set-region
105@vindex mouse-drag-copy-region
106 Holding down @kbd{Mouse-1} and ``dragging'' the mouse over a stretch 111 Holding down @kbd{Mouse-1} and ``dragging'' the mouse over a stretch
107of text activates the region around that text 112of text activates the region around that text
108(@code{mouse-set-region}). @xref{Mark}. Emacs places the mark where 113(@code{mouse-set-region}), placing the mark where you started holding
109you started holding down the mouse button, and point where you release 114down the mouse button, and point where you release it (@pxref{Mark}).
110it. In addition, the region is copied into the kill ring (@pxref{Kill 115In addition, the text in the region becomes the primary selection
111Ring}). If you don't want Emacs to copy the region, change the 116(@pxref{Primary Selection}).
112variable @code{mouse-drag-copy-region} to @code{nil}. 117
118@vindex mouse-drag-copy-region
119 If you change the variable @code{mouse-drag-copy-region} to a
120non-@code{nil} value, dragging the mouse over a stretch of text also
121adds the text to the kill ring. The default is @code{nil}.
113 122
114@vindex mouse-scroll-min-lines 123@vindex mouse-scroll-min-lines
115 If you move the mouse off the top or bottom of the window while 124 If you move the mouse off the top or bottom of the window while
@@ -124,7 +133,7 @@ on how far away from the window edge the mouse has gone; the variable
124 Clicking with the middle mouse button, @kbd{Mouse-2}, moves point to 133 Clicking with the middle mouse button, @kbd{Mouse-2}, moves point to
125the position where you clicked and inserts the contents of the primary 134the position where you clicked and inserts the contents of the primary
126selection (@code{mouse-yank-primary}). @xref{Primary Selection}. 135selection (@code{mouse-yank-primary}). @xref{Primary Selection}.
127This behavior is consistent with other X applications; alternatively, 136This behavior is consistent with other X applications. Alternatively,
128you can rebind @kbd{Mouse-2} to @code{mouse-yank-at-click}, which 137you can rebind @kbd{Mouse-2} to @code{mouse-yank-at-click}, which
129performs a yank at point. 138performs a yank at point.
130 139
@@ -144,7 +153,6 @@ depending on where you click and the status of the region:
144@item 153@item
145If no region is active, clicking @kbd{Mouse-3} activates the region, 154If no region is active, clicking @kbd{Mouse-3} activates the region,
146placing the mark where point was and point at the clicked position. 155placing the mark where point was and point at the clicked position.
147In addition, the text in the region is copied to the kill ring.
148 156
149@item 157@item
150If a region is active, clicking @kbd{Mouse-3} adjusts the nearer end 158If a region is active, clicking @kbd{Mouse-3} adjusts the nearer end
@@ -155,8 +163,8 @@ region was already on the kill ring, it replaces it there.
155@item 163@item
156If you originally specified the region using a double or triple 164If you originally specified the region using a double or triple
157@kbd{Mouse-1}, so that the region is defined to consist of entire 165@kbd{Mouse-1}, so that the region is defined to consist of entire
158words or lines, then adjusting the region with @kbd{Mouse-3} also 166words or lines (@pxref{Word and Line Mouse}), then adjusting the
159proceeds by entire words or lines. 167region with @kbd{Mouse-3} also proceeds by entire words or lines.
160 168
161@item 169@item
162If you use @kbd{Mouse-3} a second time consecutively, at the same 170If you use @kbd{Mouse-3} a second time consecutively, at the same
@@ -168,23 +176,33 @@ just once---or just drag across the text with @kbd{Mouse-1}. Then you
168can copy it elsewhere by yanking it. 176can copy it elsewhere by yanking it.
169@end itemize 177@end itemize
170 178
179 The @code{mouse-save-then-kill} command also obeys the variable
180@code{mouse-drag-copy-region} (described above). If the value is
181non-@code{nil}, then whenever the command sets or adjusts the active
182region, the text in the region is also added to the kill ring. If the
183latest kill ring entry had been added the same way, that entry is
184replaced rather than making a new entry.
185
171 Whenever you set the region using any of the mouse commands 186 Whenever you set the region using any of the mouse commands
172described above, the mark will be deactivated by any subsequent 187described above, the mark will be deactivated by any subsequent
173unshifted cursor motion command, in addition to the usual ways of 188unshifted cursor motion command, in addition to the usual ways of
174deactivating the mark. @xref{Shift Selection}. While the region 189deactivating the mark. @xref{Shift Selection}.
175remains active, typing @key{Backspace} or @key{Delete} deletes the 190
176text in that region and deactivates the mark; this behavior follows a 191@cindex mouse wheel
177convention established by other graphical programs, and it does 192@findex mouse-wheel-mode
178@emph{not} apply when you set the region any other way, including 193@cindex Mouse Wheel minor mode
179shift-selection (@pxref{Shift Selection}). 194@cindex mode, Mouse Wheel
180 195@vindex mouse-wheel-follow-mouse
181@cindex Delete Selection mode 196@vindex mouse-wheel-scroll-amount
182@cindex mode, Delete Selection 197@vindex mouse-wheel-progressive-speed
183@findex delete-selection-mode 198 Some mice have a ``wheel'' which can be used for scrolling. Emacs
184 Many graphical applications also follow the convention that 199supports scrolling windows with the mouse wheel, by default, on most
185insertion while text is selected deletes the selected text. You can 200graphical displays. To toggle this feature, use @kbd{M-x
186make Emacs behave this way by enabling Delete Selection mode. 201mouse-wheel-mode}. The variables @code{mouse-wheel-follow-mouse} and
187@xref{Using Region}. 202@code{mouse-wheel-scroll-amount} determine where and by how much
203buffers are scrolled. The variable
204@code{mouse-wheel-progressive-speed} determines whether the scroll
205speed is linked to how fast you move the wheel.
188 206
189@node Word and Line Mouse 207@node Word and Line Mouse
190@section Mouse Commands for Words and Lines 208@section Mouse Commands for Words and Lines
@@ -202,7 +220,7 @@ underscore, in C mode) selects the symbol surrounding that character.
202Double-clicking on a character with open- or close-parenthesis syntax 220Double-clicking on a character with open- or close-parenthesis syntax
203selects the parenthetical grouping which that character starts or 221selects the parenthetical grouping which that character starts or
204ends. Double-clicking on a character with string-delimiter syntax 222ends. Double-clicking on a character with string-delimiter syntax
205(such as a singlequote or doublequote in C) selects the string 223(such as a single-quote or double-quote in C) selects the string
206constant (Emacs uses heuristics to figure out whether that character 224constant (Emacs uses heuristics to figure out whether that character
207is the beginning or the end of it). 225is the beginning or the end of it).
208 226
@@ -220,50 +238,54 @@ Select the text you drag across, in the form of whole lines.
220@section Following References with the Mouse 238@section Following References with the Mouse
221@kindex Mouse-1 @r{(selection)} 239@kindex Mouse-1 @r{(selection)}
222@kindex Mouse-2 @r{(selection)} 240@kindex Mouse-2 @r{(selection)}
241@cindex hyperlinks
242@cindex links
243@cindex text buttons
244@cindex buttons
223 245
224@vindex mouse-highlight 246@vindex mouse-highlight
225 Some Emacs buffers include @dfn{buttons}. A button is a piece of 247 Some Emacs buffers include @dfn{buttons}, or @dfn{hyperlinks}:
226text that performs some action when you activate it, such as following 248pieces of text that perform some action (e.g.@: following a reference)
227a reference. Usually, a button's text is visually highlighted: it is 249when activated (e.g.@: by clicking on them). Usually, a button's text
228underlined, or a box is drawn around it. If you move the mouse over a 250is visually highlighted: it is underlined, or a box is drawn around
229button, the shape of the mouse cursor changes and the button lights up 251it. If you move the mouse over a button, the shape of the mouse
230(if you change the variable @code{mouse-highlight} to @code{nil}, 252cursor changes and the button lights up. If you change the variable
231Emacs disables this highlighting). 253@code{mouse-highlight} to @code{nil}, Emacs disables this
254highlighting.
232 255
233 You can activate a button by moving point to it and typing 256 You can activate a button by moving point to it and typing
234@key{RET}, or by clicking either @kbd{Mouse-1} or @kbd{Mouse-2} on the 257@key{RET}, or by clicking either @kbd{Mouse-1} or @kbd{Mouse-2} on the
235button. For example, typing @key{RET} or clicking on a file name in a 258button. For example, in a Dired buffer, each file name is a button;
236Dired buffer visits that file (@pxref{Dired}). Doing it on an error 259activating it causes Emacs to visit that file (@pxref{Dired}). In a
237message in the @samp{*Compilation*} buffer goes to the source code for 260@samp{*Compilation*} buffer, each error message is a button, and
238that error message (@pxref{Compilation}). Doing it on a completion in 261activating it visits the source code for that error
239the @samp{*Completions*} buffer chooses that completion 262(@pxref{Compilation}).
240(@pxref{Completion}). 263
241 264 Although clicking @kbd{Mouse-1} on a button usually activates the
242 Although clicking @kbd{Mouse-1} on a button usually activates that 265button, if you hold the mouse button down for a period of time before
243button, if you hold the mouse button down for a short period of time 266releasing it (specifically, for more than 450 milliseconds), then
244before releasing it (specifically, for more than 450 milliseconds), 267Emacs moves point where you clicked, without activating the button.
245then Emacs moves point where you clicked instead. This behavior 268In this way, you can use the mouse to move point over a button without
246allows you to use the mouse to move point over a button without 269activating it. Dragging the mouse over or onto a button has its usual
247following it. Dragging---moving the mouse while it is held down---has 270behavior of setting the region, and does not activate the button.
248its usual behavior of setting the region, even if you drag from or 271
249onto a button. 272 You can change how @kbd{Mouse-1} applies to buttons by customizing
273the variable @code{mouse-1-click-follows-link}. If the value is a
274positive integer, that determines how long you need to hold the mouse
275button down for, in milliseconds, to cancel button activation; the
276default is 450, as described in the previous paragraph. If the value
277is @code{nil}, @kbd{Mouse-1} just sets point where you clicked, and
278does not activate buttons. If the value is @code{double}, double
279clicks activate buttons but single clicks just set point.
250 280
251@vindex mouse-1-click-in-non-selected-windows 281@vindex mouse-1-click-in-non-selected-windows
252 Normally, clicking @kbd{Mouse-1} on a button activates the button 282 Normally, @kbd{Mouse-1} on a button activates the button even if it
253even if it is in a nonselected window. If you change the variable 283is in a non-selected window. If you change the variable
254@code{mouse-1-click-in-non-selected-windows} to @code{nil}, clicking 284@code{mouse-1-click-in-non-selected-windows} to @code{nil},
255@kbd{Mouse-1} on a button in an un-selected window moves point to the 285@kbd{Mouse-1} on a button in an unselected window moves point to the
256clicked position and selects that window, without activating the 286clicked position and selects that window, without activating the
257button. 287button.
258 288
259@vindex mouse-1-click-follows-link
260 In Emacs versions before 22, only @kbd{Mouse-2} activates buttons
261and @kbd{Mouse-1} always sets point. If you prefer this older
262behavior, set the variable @code{mouse-1-click-follows-link} to
263@code{nil}. This variable also lets you choose various other
264alternatives for following links with the mouse. Type @kbd{C-h v
265mouse-1-click-follows-link @key{RET}} for more details.
266
267@node Menu Mouse Clicks 289@node Menu Mouse Clicks
268@section Mouse Clicks for Menus 290@section Mouse Clicks for Menus
269 291
@@ -280,28 +302,35 @@ menu smarter and more customizable. @xref{Buffer Menus}.
280 302
281@item C-Mouse-2 303@item C-Mouse-2
282@kindex C-Mouse-2 304@kindex C-Mouse-2
283This menu is for specifying faces and other text properties 305This menu contains entries for examining faces and other text
284for editing formatted text. @xref{Formatted Text}. 306properties, and well as for setting them (the latter is mainly useful
307when editing enriched text; @pxref{Enriched Text}).
285 308
286@item C-Mouse-3 309@item C-Mouse-3
287@kindex C-Mouse-3 310@kindex C-Mouse-3
288This menu is mode-specific. For most modes if Menu-bar mode is on, 311This menu is mode-specific. For most modes if Menu-bar mode is on,
289this menu has the same items as all the mode-specific menu-bar menus 312this menu has the same items as all the mode-specific menu-bar menus
290put together. Some modes may specify a different menu for this 313put together. Some modes may specify a different menu for this
291button.@footnote{Some systems use @kbd{Mouse-3} for a mode-specific 314button. If Menu Bar mode is off, this menu contains all the items
292menu. We took a survey of users, and found they preferred to keep 315which would be present in the menu bar---not just the mode-specific
293@kbd{Mouse-3} for selecting and killing regions. Hence the decision 316ones---so that you can access them without having to display the menu
294to use @kbd{C-Mouse-3} for this menu. To use @kbd{Mouse-3} instead, 317bar.
295do @code{(global-set-key [mouse-3] 'mouse-popup-menubar-stuff)}.} If
296Menu-bar mode is off, this menu contains all the items which would be
297present in the menu bar---not just the mode-specific ones---so that
298you can access them without having to display the menu bar.
299 318
300@item S-Mouse-1 319@item S-Mouse-1
301This menu is for changing the default face within the window's buffer. 320This menu is for changing the default face within the window's buffer.
302@xref{Text Scale}. 321@xref{Text Scale}.
303@end table 322@end table
304 323
324 Some graphical applications use @kbd{Mouse-3} for a mode-specific
325menu. If you prefer @kbd{Mouse-3} in Emacs to bring up such a menu
326instead of running the @code{mouse-save-then-kill} command, rebind
327@kbd{Mouse-3} by adding the following line to your init file
328(@pxref{Init Rebinding}):
329
330@smallexample
331(global-set-key [mouse-3] 'mouse-popup-menubar-stuff)
332@end smallexample
333
305@node Mode Line Mouse 334@node Mode Line Mouse
306@section Mode Line Mouse Commands 335@section Mode Line Mouse Commands
307@cindex mode line, mouse 336@cindex mode line, mouse
@@ -332,34 +361,33 @@ make any window smaller than the minimum height.
332@item Mouse-3 361@item Mouse-3
333@kindex Mouse-3 @r{(mode line)} 362@kindex Mouse-3 @r{(mode line)}
334@kbd{Mouse-3} on a mode line deletes the window it belongs to. If the 363@kbd{Mouse-3} on a mode line deletes the window it belongs to. If the
335frame has only one window, it buries the current buffer instead, and 364frame has only one window, it does nothing.
336switches to another buffer.
337 365
338@item C-Mouse-2 366@item C-Mouse-2
339@kindex C-mouse-2 @r{(mode line)} 367@kindex C-mouse-2 @r{(mode line)}
340@kbd{C-Mouse-2} on a mode line splits the window above 368@kbd{C-Mouse-2} on a mode line splits that window, producing two
341horizontally, above the place in the mode line where you click. 369side-by-side windows with the boundary running through the click
370position (@pxref{Split Window}).
342@end table 371@end table
343 372
344@kindex C-Mouse-2 @r{(scroll bar)} 373@kindex C-Mouse-2 @r{(scroll bar)}
345@kindex Mouse-1 @r{(scroll bar)} 374@kindex Mouse-1 @r{(scroll bar)}
346 Using @kbd{Mouse-1} on the divider between two side-by-side mode 375 Furthermore, by clicking and dragging @kbd{Mouse-1} on the divider
347lines, you can move the vertical boundary left or right. Using 376between two side-by-side mode lines, you can move the vertical
348@kbd{C-Mouse-2} on a scroll bar splits the corresponding window 377boundary to the left or right.
349vertically. @xref{Split Window}.
350 378
351@node Creating Frames 379@node Creating Frames
352@section Creating Frames 380@section Creating Frames
353@cindex creating frames 381@cindex creating frames
354 382
355@kindex C-x 5 383@kindex C-x 5
356 The prefix key @kbd{C-x 5} is analogous to @kbd{C-x 4}, with 384 The prefix key @kbd{C-x 5} is analogous to @kbd{C-x 4}. Whereas
357parallel subcommands. The difference is that @kbd{C-x 5} commands 385each @kbd{C-x 4} command pops up a buffer in a different window in the
358create a new frame rather than just a new window in the selected frame 386selected frame (@pxref{Pop Up Window}), the @kbd{C-x 5} commands use a
359(@pxref{Pop Up Window}). If an existing visible or iconified 387different frame. If an existing visible or iconified (``minimized'')
360(``minimized'') frame already displays the requested material, these 388frame already displays the requested buffer, that frame is raised and
361commands use the existing frame, after raising or deiconifying 389deiconified (``un-minimized''); otherwise, a new frame is created on
362(``un-minimizing'') as necessary. 390the current display terminal.
363 391
364 The various @kbd{C-x 5} commands differ in how they find or create the 392 The various @kbd{C-x 5} commands differ in how they find or create the
365buffer to select: 393buffer to select:
@@ -394,56 +422,32 @@ frame. This runs @code{find-file-read-only-other-frame}.
394@xref{Visiting}. 422@xref{Visiting}.
395@end table 423@end table
396 424
397@cindex default-frame-alist 425 You can control the appearance and behavior of the newly-created
398@cindex initial-frame-alist 426frames by specifying @dfn{frame parameters}. @xref{Frame Parameters}.
399@cindex face customization, in init file
400@cindex color customization, in init file
401 You can control the appearance of new frames you create by setting the
402frame parameters in @code{default-frame-alist}. You can use the
403variable @code{initial-frame-alist} to specify parameters that affect
404only the initial frame. @xref{Initial Parameters,,, elisp, The Emacs
405Lisp Reference Manual}, for more information.
406
407@cindex font (default)
408 Here is an example of using @code{default-frame-alist} to specify
409the default foreground color and font:
410
411@example
412(add-to-list 'default-frame-alist '(font . "10x20"))
413(add-to-list 'default-frame-alist
414 '(foreground-color . "blue"))
415@end example
416
417@noindent
418By putting such customizations in your init file, you can control the
419appearance of all the frames Emacs creates, including the initial one
420(@pxref{Init File}). @xref{Fonts}, for other ways to set the default
421font.
422 427
423@node Frame Commands 428@node Frame Commands
424@section Frame Commands 429@section Frame Commands
425 430
426 The following commands let you create, delete and operate on frames: 431 The following commands are used to delete and operate on frames:
427 432
428@table @kbd 433@table @kbd
434@item C-x 5 0
435@kindex C-x 5 0
436@findex delete-frame
437Delete the selected frame (@code{delete-frame}). This signals an
438error if there is only one frame.
439
429@item C-z 440@item C-z
430@kindex C-z @r{(X windows)} 441@kindex C-z @r{(X windows)}
431@findex suspend-frame 442@findex suspend-frame
432Minimize (or ``iconify) the selected Emacs frame 443Minimize (or ``iconify) the selected Emacs frame
433(@code{suspend-frame}). @xref{Exiting}. 444(@code{suspend-frame}). @xref{Exiting}.
434 445
435@item C-x 5 0
436@kindex C-x 5 0
437@findex delete-frame
438Delete the selected frame (@code{delete-frame}). This is not allowed
439if there is only one frame.
440
441@item C-x 5 o 446@item C-x 5 o
442@kindex C-x 5 o 447@kindex C-x 5 o
443@findex other-frame 448@findex other-frame
444Select another frame, raise it, and warp the mouse to it. If you 449Select another frame, and raise it. If you repeat this command, it
445repeat this command, it cycles through all the frames on your 450cycles through all the frames on your terminal.
446terminal.
447 451
448@item C-x 5 1 452@item C-x 5 1
449@kindex C-x 5 1 453@kindex C-x 5 1
@@ -451,43 +455,37 @@ terminal.
451Delete all frames on the current terminal, except the selected one. 455Delete all frames on the current terminal, except the selected one.
452@end table 456@end table
453 457
454 The @kbd{C-x 5 0} (@code{delete-frame}) command never deletes the 458 The @kbd{C-x 5 0} (@code{delete-frame}) command deletes the selected
455last frame. This prevents you from losing the ability to interact 459frame. However, it will refuse to delete the last frame in an Emacs
456with the Emacs process. Note that when Emacs is run as a daemon 460session, to prevent you from losing the ability to interact with the
457(@pxref{Emacs Server}), there is always a ``virtual frame'' that 461Emacs session. Note that when Emacs is run as a daemon (@pxref{Emacs
458remains after all the ordinary, interactive frames are deleted. In 462Server}), there is always a ``virtual frame'' that remains after all
459this case, @kbd{C-x 5 0} can delete the last interactive frame; you 463the ordinary, interactive frames are deleted. In this case, @kbd{C-x
460can use @command{emacsclient} to reconnect to the Emacs session. 4645 0} can delete the last interactive frame; you can use
461 465@command{emacsclient} to reconnect to the Emacs session.
462 The @kbd{C-x 5 1} (@code{delete-other-frames}) command only deletes 466
463frames on the current terminal. For example, if you call it from an X 467 The @kbd{C-x 5 1} (@code{delete-other-frames}) command deletes all
464frame, it deletes the other frames on that X display; if the Emacs 468other frames on the current terminal (this terminal refers to either a
465process has frames open on other X displays or text terminals, those 469graphical display, or a text-only terminal; @pxref{Non-Window
466are not deleted. 470Terminals}). If the Emacs session has frames open on other graphical
471displays or text terminals, those are not deleted.
467 472
468@vindex focus-follows-mouse 473@vindex focus-follows-mouse
469 On X, you may have to tell Emacs how the window manager handles 474 The @kbd{C-x 5 o} (@code{other-frame}) command selects the next
470focus-switching between windows, in order for @kbd{C-x 5 o} 475frame on the current terminal. If you are using Emacs on the X Window
471(@code{other-frame}) to work properly. Unfortunately, there is no way 476System with a window manager that selects (or @dfn{gives focus to})
472for Emacs to detect this automatically, so you should set the variable 477whatever frame the mouse cursor is over, you have to change the
473@code{focus-follows-mouse}. The default is @code{nil}, meaning you 478variable @code{focus-follows-mouse} to @code{t} in order for this
474have to click on the window to select it (the default for most modern 479command to work properly. Then invoking @kbd{C-x 5 o} will also warp
475window managers). You should change it to @code{t} if your window 480the mouse cursor to the chosen frame.
476manager selects a window and gives it focus anytime you move the mouse
477onto the window.
478
479 The window manager that is part of MS-Windows always gives focus to
480a frame that raises, so this variable has no effect in the native
481MS-Windows build of Emacs. However, you may still wish to set this
482variable to @code{t} to have Emacs automatically move the mouse
483pointer to the raised frame.
484 481
485@node Fonts 482@node Fonts
486@section Fonts 483@section Fonts
487@cindex fonts 484@cindex fonts
488 485
489 By default, Emacs displays text in X using a 12-point monospace 486 By default, Emacs displays text on graphical displays using a
490font. There are several different ways to specify a different font: 48712-point monospace font. There are several different ways to specify
488a different font:
491 489
492@itemize 490@itemize
493@item 491@item
@@ -501,7 +499,7 @@ variable @code{default-frame-alist} to specify the @code{font}
501parameter (@pxref{Creating Frames}), like this: 499parameter (@pxref{Creating Frames}), like this:
502 500
503@smallexample 501@smallexample
504(add-to-list 'default-frame-alist '(font . "DejaVu Sans Mono-12")) 502(add-to-list 'default-frame-alist '(font . "DejaVu Sans Mono-10"))
505@end smallexample 503@end smallexample
506 504
507@cindex X defaults file 505@cindex X defaults file
@@ -523,18 +521,16 @@ font in your X resources file, you should not quote it.
523If you are running Emacs on the GNOME desktop, you can tell Emacs to 521If you are running Emacs on the GNOME desktop, you can tell Emacs to
524use the default system font by setting the variable 522use the default system font by setting the variable
525@code{font-use-system-font} to @code{t} (the default is @code{nil}). 523@code{font-use-system-font} to @code{t} (the default is @code{nil}).
526For this to work, Emacs must be compiled with Gconf support; this is 524For this to work, Emacs must have been compiled with Gconf support.
527done automatically if the libraries are present at compile time.
528 525
529@item 526@item
530Use the command line option @samp{-fn} (or @samp{--font}). @xref{Font 527Use the command line option @samp{-fn} (or @samp{--font}). @xref{Font
531X}. 528X}.
532@end itemize 529@end itemize
533 530
534To check what font you're currently using, the @kbd{C-u C-x =} 531 To check what font you're currently using, the @kbd{C-u C-x =}
535command can be helpful. It'll describe the character under point, and 532command can be helpful. It describes the character at point, and
536also say what font it's rendered in, if the window system you're 533names the font that it's rendered in.
537running under supports that.
538 534
539@cindex fontconfig 535@cindex fontconfig
540 On X, there are four different ways to express a ``font name''. The 536 On X, there are four different ways to express a ``font name''. The
@@ -548,7 +544,7 @@ the following form:
548@noindent 544@noindent
549Within this format, any of the elements in braces may be omitted. 545Within this format, any of the elements in braces may be omitted.
550Here, @var{fontname} is the @dfn{family name} of the font, such as 546Here, @var{fontname} is the @dfn{family name} of the font, such as
551@samp{Monospace} or @samp{DejaVu Serif}; @var{fontsize} is the 547@samp{Monospace} or @samp{DejaVu Sans Mono}; @var{fontsize} is the
552@dfn{point size} of the font (one @dfn{printer's point} is about 1/72 548@dfn{point size} of the font (one @dfn{printer's point} is about 1/72
553of an inch); and the @samp{@var{name}=@var{values}} entries specify 549of an inch); and the @samp{@var{name}=@var{values}} entries specify
554settings such as the slant and weight of the font. Each @var{values} 550settings such as the slant and weight of the font. Each @var{values}
@@ -561,7 +557,7 @@ Here is a list of common font properties:
561 557
562@table @samp 558@table @samp
563@item slant 559@item slant
564One of @samp{italic}, @samp{oblique} or @samp{roman}. 560One of @samp{italic}, @samp{oblique}, or @samp{roman}.
565 561
566@item weight 562@item weight
567One of @samp{light}, @samp{medium}, @samp{demibold}, @samp{bold} or 563One of @samp{light}, @samp{medium}, @samp{demibold}, @samp{bold} or
@@ -595,8 +591,9 @@ For a more detailed description of Fontconfig patterns, see the
595Fontconfig manual, which is distributed with Fontconfig and available 591Fontconfig manual, which is distributed with Fontconfig and available
596online at @url{http://fontconfig.org/fontconfig-user.html}. 592online at @url{http://fontconfig.org/fontconfig-user.html}.
597 593
598 The second way to specify a font is to use a @dfn{GTK font 594@cindex GTK font pattern
599description}. These have the syntax 595 The second way to specify a font is to use a @dfn{GTK font pattern}.
596These have the syntax
600 597
601@smallexample 598@smallexample
602@var{fontname} [@var{properties}] [@var{fontsize}] 599@var{fontname} [@var{properties}] [@var{fontsize}]
@@ -605,20 +602,24 @@ description}. These have the syntax
605@noindent 602@noindent
606where @var{fontname} is the family name, @var{properties} is a list of 603where @var{fontname} is the family name, @var{properties} is a list of
607property values separated by spaces, and @var{fontsize} is the point 604property values separated by spaces, and @var{fontsize} is the point
608size. The properties that you may specify are as follows: 605size. The properties that you may specify for GTK font patterns are
606as follows:
609 607
610@table @samp 608@itemize
611@item style 609@item
612One of @samp{roman}, @samp{italic} or @samp{oblique}. If omitted, the 610Slant properties: @samp{Italic} or @samp{Oblique}. If omitted, the
613@samp{roman} style is used. 611default (roman) slant is implied.
614@item weight 612@item
615One of @samp{medium}, @samp{ultra-light}, @samp{light}, 613Weight properties: @samp{Bold}, @samp{Book}, @samp{Light},
616@samp{semi-bold}, or @samp{bold}. If omitted, @samp{medium} weight is 614@samp{Medium}, @samp{Semi-bold}, or @samp{Ultra-light}. If omitted,
617used. 615@samp{Medium} weight is implied.
618@end table 616@item
617Width properties: @samp{Semi-Condensed} or @samp{Condensed}. If
618omitted, a default width is used.
619@end itemize
619 620
620@noindent 621@noindent
621Here are some examples of GTK font descriptions: 622Here are some examples of GTK font patterns:
622 623
623@smallexample 624@smallexample
624Monospace 12 625Monospace 12
@@ -657,7 +658,7 @@ The entries have the following meanings:
657@item maker 658@item maker
658The name of the font manufacturer. 659The name of the font manufacturer.
659@item family 660@item family
660The name of the font family (e.g. @samp{courier}). 661The name of the font family (e.g.@: @samp{courier}).
661@item weight 662@item weight
662The font weight---normally either @samp{bold}, @samp{medium} or 663The font weight---normally either @samp{bold}, @samp{medium} or
663@samp{light}. Some font names support other values. 664@samp{light}. Some font names support other values.
@@ -670,8 +671,8 @@ The font width---normally @samp{normal}, @samp{condensed},
670@samp{extended}, or @samp{semicondensed} (some font names support 671@samp{extended}, or @samp{semicondensed} (some font names support
671other values). 672other values).
672@item style 673@item style
673An optional additional style name. Usually it is empty---most long 674An optional additional style name. Usually it is empty---most XLFDs
674font names have two hyphens in a row at this point. 675have two hyphens in a row at this point.
675@item pixels 676@item pixels
676The font height, in pixels. 677The font height, in pixels.
677@item height 678@item height
@@ -840,116 +841,40 @@ input stream for each server. Each server also has its own selected
840frame. The commands you enter with a particular X server apply to 841frame. The commands you enter with a particular X server apply to
841that server's selected frame. 842that server's selected frame.
842 843
843 It is even possible to use this feature to let two or more users 844@node Frame Parameters
844type simultaneously on the two displays, within the same Emacs job. 845@section Frame Parameters
845In practice, however, the different users can easily interfere with 846@cindex default-frame-alist
846each others' edits if they are not careful.
847
848@node Special Buffer Frames
849@section Special Buffer Frames
850
851@vindex special-display-buffer-names
852 You can make certain chosen buffers, which Emacs normally displays
853in ``some other window'' (@pxref{Displaying Buffers}), appear in
854special frames of their own. To do this, set the variable
855@code{special-display-buffer-names} to a list of buffer names; any
856buffer whose name is in that list automatically gets a special frame.
857@xref{Window Choice}, for how this fits in with the other ways for
858Emacs to choose a window to display in.
859
860 For example, if you set the variable this way,
861 847
862@example 848 You can control the default appearance and behavior of all frames by
863(setq special-display-buffer-names 849specifying a default list of @dfn{frame parameters} in the variable
864 '("*Completions*" "*grep*" "*tex-shell*")) 850@code{default-frame-alist}. Its value should be a list of entries,
865@end example 851each specifying a parameter name and a value for that parameter.
852These entries take effect whenever Emacs creates a new frame,
853including the initial frame.
866 854
867@noindent 855@cindex frame size, specifying default
868then completion lists, @code{grep} output and the @TeX{} mode shell 856 For example, you can add the following lines to your init file
869buffer get individual frames of their own. These frames, and the 857(@pxref{Init File}) to set the default frame width to 90 character
870windows in them, are never automatically split or reused for any other 858columns, the default frame height to 40 character rows, and the
871buffers. They continue to show the buffers they were created for, 859default font to @samp{Monospace-10}:
872unless you alter them by hand. Killing the special buffer deletes its
873frame automatically.
874
875@vindex special-display-regexps
876 More generally, you can set @code{special-display-regexps} to a list
877of regular expressions; then a buffer gets its own frame if its name
878matches any of those regular expressions. (Once again, this applies only
879to buffers that normally get displayed for you in ``another window.'')
880
881@vindex special-display-frame-alist
882 The variable @code{special-display-frame-alist} specifies the frame
883parameters for these frames. It has a default value, so you don't need
884to set it.
885
886 For those who know Lisp, an element of
887@code{special-display-buffer-names} or @code{special-display-regexps}
888can also be a list. Then the first element is the buffer name or
889regular expression; the rest of the list specifies how to create the
890frame. It can be an association list specifying frame parameter
891values; these values take precedence over parameter values specified
892in @code{special-display-frame-alist}. If you specify the symbol
893@code{same-window} as a ``frame parameter'' in this list, with a
894non-@code{nil} value, that means to use the selected window if
895possible. If you use the symbol @code{same-frame} as a ``frame
896parameter'' in this list, with a non-@code{nil} value, that means to
897use the selected frame if possible.
898
899 Alternatively, the value can have this form:
900 860
901@example 861@example
902(@var{function} @var{args}...) 862(add-to-list 'default-frame-alist '(width . 90))
863(add-to-list 'default-frame-alist '(height . 40))
864(add-to-list 'default-frame-alist '(font . "Monospace-10"))
903@end example 865@end example
904 866
905@noindent 867 For a list of frame parameters and their effects, see @ref{Frame
906where @var{function} is a symbol. Then the frame is constructed by 868Parameters,,, elisp, The Emacs Lisp Reference Manual}.
907calling @var{function}; its first argument is the buffer, and its
908remaining arguments are @var{args}.
909
910@node Frame Parameters
911@section Setting Frame Parameters
912@cindex Auto-Raise mode
913@cindex Auto-Lower mode
914
915 These commands are available for controlling the window management
916behavior of the selected frame:
917 869
918@table @kbd 870@cindex initial-frame-alist
919@findex auto-raise-mode 871 You can also specify a list of frame parameters which apply to just
920@item M-x auto-raise-mode 872the initial frame, by customizing the variable
921Toggle whether or not the selected frame should auto-raise. Auto-raise 873@code{initial-frame-alist}.
922means that every time you move the mouse onto the frame, it raises the
923frame.
924
925Some window managers also implement auto-raise. If you enable
926auto-raise for Emacs frames in your window manager, it will work, but
927it is beyond Emacs' control, so @code{auto-raise-mode} has no effect
928on it.
929
930@findex auto-lower-mode
931@item M-x auto-lower-mode
932Toggle whether or not the selected frame should auto-lower.
933Auto-lower means that every time you move the mouse off the frame,
934the frame moves to the bottom of the stack on the screen.
935
936The command @code{auto-lower-mode} has no effect on auto-lower
937implemented by the window manager. To control that, you must use the
938appropriate window manager features.
939@end table
940 874
941 In Emacs versions that use an X toolkit, the color-setting and 875 If Emacs is compiled to use an X toolkit, frame parameters that
942font-setting functions don't affect menus and the menu bar, since they 876specify colors and fonts don't affect menus and the menu bar, since
943are displayed by their own widget classes. To change the appearance of 877those are drawn by the toolkit and not directly by Emacs.
944the menus and menu bar, you must use X resources (@pxref{Resources}).
945@xref{Colors}, regarding colors. @xref{Font X}, regarding choice of
946font.
947
948 Colors, fonts, and other attributes of the frame's display can also
949be customized by setting frame parameters in the variable
950@code{default-frame-alist} (@pxref{Creating Frames}). For a detailed
951description of frame parameters and customization, see @ref{Frame
952Parameters,,, elisp, The Emacs Lisp Reference Manual}.
953 878
954@node Scroll Bars 879@node Scroll Bars
955@section Scroll Bars 880@section Scroll Bars
@@ -994,41 +919,17 @@ or disable the scroll bars (@pxref{Resources}). To control the scroll
994bar width, change the @code{scroll-bar-width} frame parameter 919bar width, change the @code{scroll-bar-width} frame parameter
995(@pxref{Frame Parameters,,, elisp, The Emacs Lisp Reference Manual}). 920(@pxref{Frame Parameters,,, elisp, The Emacs Lisp Reference Manual}).
996 921
997@node Wheeled Mice
998@section Scrolling With ``Wheeled'' Mice
999
1000@cindex mouse wheel
1001@cindex wheel, mouse
1002@findex mouse-wheel-mode
1003@cindex Mouse Wheel minor mode
1004@cindex mode, Mouse Wheel
1005 Some mice have a ``wheel'' instead of a third button. You can
1006usually click the wheel to act as either @kbd{Mouse-2} or
1007@kbd{Mouse-3}, depending on the setup. You can also use the wheel to
1008scroll windows instead of using the scroll bar or keyboard commands.
1009Mouse wheel support only works if the system generates appropriate
1010events; whenever possible, it is turned on by default. To toggle this
1011feature, use @kbd{M-x mouse-wheel-mode}.
1012
1013@vindex mouse-wheel-follow-mouse
1014@vindex mouse-wheel-scroll-amount
1015@vindex mouse-wheel-progressive-speed
1016 The two variables @code{mouse-wheel-follow-mouse} and
1017@code{mouse-wheel-scroll-amount} determine where and by how much
1018buffers are scrolled. The variable
1019@code{mouse-wheel-progressive-speed} determines whether the scroll
1020speed is linked to how fast you move the wheel.
1021
1022@node Drag and Drop 922@node Drag and Drop
1023@section Drag and Drop 923@section Drag and Drop
1024@cindex drag and drop 924@cindex drag and drop
1025 925
1026 Emacs supports @dfn{drag and drop} using the mouse. For instance, 926 In most graphical desktop environments, Emacs has basic support for
1027dropping text onto an Emacs frame inserts the text where it is dropped. 927@dfn{drag and drop} operations. For instance, dropping text onto an
1028Dropping a file onto an Emacs frame visits that file. As a special 928Emacs frame inserts the text where it is dropped. Dropping a file
1029case, dropping the file on a Dired buffer moves or copies the file 929onto an Emacs frame visits that file. As a special case, dropping the
1030(according to the conventions of the application it came from) into the 930file on a Dired buffer moves or copies the file (according to the
1031directory displayed in that buffer. 931conventions of the application it came from) into the directory
932displayed in that buffer.
1032 933
1033@vindex dnd-open-file-other-window 934@vindex dnd-open-file-other-window
1034 Dropping a file normally visits it in the window you drop it on. If 935 Dropping a file normally visits it in the window you drop it on. If
@@ -1045,13 +946,12 @@ protocol, are currently supported.
1045@findex menu-bar-mode 946@findex menu-bar-mode
1046@vindex menu-bar-mode 947@vindex menu-bar-mode
1047 948
1048 You can turn display of menu bars on or off with @kbd{M-x 949 You can toggle the use of menu bars with @kbd{M-x menu-bar-mode}.
1049menu-bar-mode} or by customizing the variable @code{menu-bar-mode}. 950With no argument, this command toggles Menu Bar mode, a global minor
1050With no argument, this command toggles Menu Bar mode, a 951mode. With an argument, the command turns Menu Bar mode on if the
1051minor mode. With an argument, the command turns Menu Bar mode on if the 952argument is positive, off if the argument is not positive. To control
1052argument is positive, off if the argument is not positive. You can use 953the use of menu bars at startup, customize the variable
1053the X resource @samp{menuBar} to control the initial setting of 954@code{menu-bar-mode}.
1054Menu Bar mode. @xref{Resources}.
1055 955
1056@kindex C-Mouse-3 @r{(when menu bar is disabled)} 956@kindex C-Mouse-3 @r{(when menu bar is disabled)}
1057 Expert users often turn off the menu bar, especially on text-only 957 Expert users often turn off the menu bar, especially on text-only
@@ -1135,47 +1035,39 @@ toggle to be activated by default, change the variable
1135help text to the GTK+ file chooser dialog; to disable this help text, 1035help text to the GTK+ file chooser dialog; to disable this help text,
1136change the variable @code{x-gtk-file-dialog-help-text} to @code{nil}. 1036change the variable @code{x-gtk-file-dialog-help-text} to @code{nil}.
1137 1037
1138@vindex x-gtk-use-old-file-dialog
1139 In GTK+ versions 2.4 through 2.10, you can choose to use an older
1140version of the GTK+ file dialog by setting the variable
1141@code{x-gtk-use-old-file-dialog} to a non-@code{nil} value. If Emacs
1142is built with a GTK+ version that has only one file dialog, this
1143variable has no effect.
1144
1145@node Tooltips 1038@node Tooltips
1146@section Tooltips 1039@section Tooltips
1147@cindex tooltips 1040@cindex tooltips
1148 1041
1149 @dfn{Tooltips} are small windows that display text information at the 1042 @dfn{Tooltips} are small windows that display text information at
1150current mouse position. They activate when there is a pause in mouse 1043the current mouse position. They activate when there is a pause in
1151movement. There are two types of tooltip: help tooltips and GUD 1044mouse movement over some significant piece of text in a window, or the
1152tooltips. 1045mode line, or some other part of the Emacs frame such as a tool bar
1153 1046button or menu item.
1154 @dfn{Help tooltips} typically display over text---including the mode
1155line---but are also available for other parts of the Emacs frame, such
1156as the tool bar and menu items.
1157 1047
1158@findex tooltip-mode 1048@findex tooltip-mode
1159 You can toggle display of help tooltips (Tooltip mode) with the 1049 You can toggle the use of tooltips with the command @kbd{M-x
1160command @kbd{M-x tooltip-mode}. When Tooltip mode is disabled, the 1050tooltip-mode}. When Tooltip mode is disabled, the help text is
1161help text is displayed in the echo area instead. 1051displayed in the echo area instead. To control the use of tooltips at
1162 1052startup, customize the variable @code{tooltip-mode}.
1163 @dfn{GUD tooltips} show values of variables. They are useful when
1164you are debugging a program. @xref{Debugger Operation}.
1165 1053
1166@vindex tooltip-delay 1054@vindex tooltip-delay
1167 The variables @code{tooltip-delay} specifies how long Emacs should 1055 The variables @code{tooltip-delay} specifies how long Emacs should
1168wait before displaying a tooltip. For additional customization 1056wait before displaying a tooltip. For additional customization
1169options for displaying tooltips, use @kbd{M-x customize-group 1057options for displaying tooltips, use @kbd{M-x customize-group
1170@key{RET} tooltip @key{RET}}. @xref{X Resources}, for information on 1058@key{RET} tooltip @key{RET}}.
1171customizing the windows that display tooltips.
1172 1059
1173@vindex x-gtk-use-system-tooltips 1060@vindex x-gtk-use-system-tooltips
1174 If Emacs is built with GTK+ support, it displays tooltips via GTK+, 1061 If Emacs is built with GTK+ support, it displays tooltips via GTK+,
1175using the default appearance of GTK+ tooltips. To disable this, 1062using the default appearance of GTK+ tooltips. To disable this,
1176change the variable @code{x-gtk-use-system-tooltips} to @code{nil}. 1063change the variable @code{x-gtk-use-system-tooltips} to @code{nil}.
1177If you do this, or if Emacs is built without GTK+ support, the 1064If you do this, or if Emacs is built without GTK+ support, most
1178@code{tooltip} face specifies most attributes of the tooltip text. 1065attributes of the tooltip text are specified by the @code{tooltip}
1066face, and by X resources (@pxref{X Resources}).
1067
1068 @dfn{GUD tooltips} are special tooltips that show the values of
1069variables when debugging a program with GUD. @xref{Debugger
1070Operation}.
1179 1071
1180@node Mouse Avoidance 1072@node Mouse Avoidance
1181@section Mouse Avoidance 1073@section Mouse Avoidance
@@ -1248,23 +1140,31 @@ to select a frame according to its name. The name you specify appears
1248in the mode line when the frame is selected. 1140in the mode line when the frame is selected.
1249 1141
1250@node Text-Only Mouse 1142@node Text-Only Mouse
1251@section Using a Mouse in Terminal Emulators 1143@section Using a Mouse in Text-only Terminals
1252@cindex mouse support 1144@cindex mouse support
1253@cindex terminal emulators, mouse support 1145@cindex terminal emulators, mouse support
1254 1146
1255Some text-only terminals support mouse clicks in the terminal window. 1147Some text-only terminals support mouse clicks in the terminal window.
1256 1148
1257@cindex xterm 1149@cindex xterm
1258In a terminal emulator which is compatible with @code{xterm}, 1150 In a terminal emulator which is compatible with @command{xterm}, you
1259you can use @kbd{M-x xterm-mouse-mode} to give Emacs control over 1151can use @kbd{M-x xterm-mouse-mode} to give Emacs control over simple
1260simple use of the mouse---basically, only non-modified single clicks 1152uses of the mouse---basically, only non-modified single clicks are
1261are supported. The normal @code{xterm} mouse functionality for such 1153supported. The normal @command{xterm} mouse functionality for such
1262clicks is still available by holding down the @kbd{SHIFT} key when you 1154clicks is still available by holding down the @kbd{SHIFT} key when you
1263press the mouse button. Xterm Mouse mode is a global minor mode 1155press the mouse button. Xterm Mouse mode is a global minor mode
1264(@pxref{Minor Modes}). Repeating the command turns the mode off 1156(@pxref{Minor Modes}). Repeating the command turns the mode off
1265again. 1157again.
1266 1158
1267@findex gpm-mouse-mode 1159@findex gpm-mouse-mode
1268In the console on GNU/Linux, you can use @kbd{M-x gpm-mouse-mode} to 1160 In the console on GNU/Linux, you can use @kbd{M-x gpm-mouse-mode} to
1269enable terminal mouse support. You must have the gpm package 1161enable mouse support. You must have the gpm server installed and
1270installed and running on your system in order for this to work. 1162running on your system in order for this to work.
1163
1164@iftex
1165@pxref{MS-DOS Mouse,,,emacs-xtra,Specialized Emacs Features},
1166@end iftex
1167@ifnottex
1168@pxref{MS-DOS Mouse},
1169@end ifnottex
1170for information about mouse support on MS-DOS.
diff --git a/doc/emacs/glossary.texi b/doc/emacs/glossary.texi
index e37e80bfab8..3af75245e69 100644
--- a/doc/emacs/glossary.texi
+++ b/doc/emacs/glossary.texi
@@ -509,11 +509,6 @@ character sets and which font to use to display each of them. Fontsets
509make it easy to change several fonts at once by specifying the name of a 509make it easy to change several fonts at once by specifying the name of a
510fontset, rather than changing each font separately. @xref{Fontsets}. 510fontset, rather than changing each font separately. @xref{Fontsets}.
511 511
512@item Formatted Text
513Formatted text is text that displays with formatting information while
514you edit. Formatting information includes fonts, colors, and specified
515margins. @xref{Formatted Text}.
516
517@item Formfeed Character 512@item Formfeed Character
518See `page.' 513See `page.'
519 514
@@ -702,9 +697,8 @@ that someone else is already editing.
702See `incremental search.' 697See `incremental search.'
703 698
704@item Justification 699@item Justification
705Justification means adding extra spaces within lines of text 700Justification means adding extra spaces within lines of text in order
706in order to adjust the position of the text edges. 701to adjust the position of the text edges. @xref{Fill Commands}.
707@xref{Format Justification}.
708 702
709@item Key Binding 703@item Key Binding
710See `binding.' 704See `binding.'
@@ -1362,12 +1356,6 @@ See `abbrev.'
1362Word search is searching for a sequence of words, considering the 1356Word search is searching for a sequence of words, considering the
1363punctuation between them as insignificant. @xref{Word Search}. 1357punctuation between them as insignificant. @xref{Word Search}.
1364 1358
1365@item WYSIWYG
1366WYSIWYG stands for ``What you see is what you get.'' Emacs generally
1367provides WYSIWYG editing for files of characters; in Enriched mode
1368(@pxref{Formatted Text}), it provides WYSIWYG editing for files that
1369include text formatting information.
1370
1371@item Yanking 1359@item Yanking
1372Yanking means reinserting text previously killed (q.v.@:). It can be 1360Yanking means reinserting text previously killed (q.v.@:). It can be
1373used to undo a mistaken kill, or for copying or moving text. Some 1361used to undo a mistaken kill, or for copying or moving text. Some
diff --git a/doc/emacs/indent.texi b/doc/emacs/indent.texi
index e13b2808f09..f99e3519710 100644
--- a/doc/emacs/indent.texi
+++ b/doc/emacs/indent.texi
@@ -8,214 +8,154 @@
8@cindex tabs 8@cindex tabs
9@cindex columns (indentation) 9@cindex columns (indentation)
10 10
11 This chapter describes the Emacs commands that add, remove, or 11@cindex whitespace character
12adjust indentation. 12 @dfn{Indentation} refers to inserting or adjusting @dfn{whitespace
13 13characters} (space and/or tab characters) at the beginning of a line
14@table @kbd 14of text. This chapter documents indentation commands and options
15@item @key{TAB} 15which are common to Text mode and related modes, as well as
16Indent the current line appropriately, in a mode-dependent fashion. 16programming language modes. @xref{Program Indent}, for additional
17@item @kbd{C-j} 17documentation about indenting in programming modes.
18Perform @key{RET} followed by @key{TAB} (@code{newline-and-indent}). 18
19@item M-^ 19@findex indent-for-tab-command
20Merge the previous and the current line (@code{delete-indentation}). 20@kindex TAB @r{(indentation)}
21This would cancel the effect of a preceding @kbd{C-j}. 21 The simplest way to perform indentation is the @key{TAB} key. In
22@item C-M-o 22most major modes, this runs the command @code{indent-for-tab-command}.
23Split the current line at point; text on the line after point becomes a 23(In C and related modes, @key{TAB} runs the command
24new line indented to the same column where point is located 24@code{c-indent-line-or-region}, which behaves similarly).
25(@code{split-line}). 25
26@item M-m 26@table @key
27Move (forward or back) to the first nonblank character on the current 27@item TAB
28line (@code{back-to-indentation}). 28Insert whitespace, or indent the current line, in a mode-appropriate
29@item C-M-\ 29way (@code{indent-for-tab-command}). If the region is active, indent
30Indent lines in the region to the same column (@code{indent-region}). 30all the lines within it.
31@item C-x @key{TAB}
32Shift lines in the region rigidly right or left (@code{indent-rigidly}).
33@item M-i
34Indent from point to the next prespecified tab stop column
35(@code{tab-to-tab-stop}).
36@item M-x indent-relative
37Indent from point to under an indentation point in the previous line.
38@end table 31@end table
39 32
40@noindent 33 The exact behavior of @key{TAB} depends on the major mode. In Text
41The @key{TAB} key runs @code{indent-for-tab-command} in most major 34mode and related major modes, @key{TAB} normally inserts some
42modes (in C and related modes, @key{TAB} runs a separate command, 35combination of space and tab characters to advance point to the next
43@code{c-indent-line-or-region}, which behaves similarly). The major 36tab stop (@pxref{Tab Stops}). For this purpose, the position of the
44mode determines just what this entails. 37first non-whitespace character on the preceding line is treated as an
45 38additional tab stop, so you can use @key{TAB} to ``align'' point with
46 In text modes, @key{TAB} inserts some combination of space and tab 39the preceding line. If the region is active (@pxref{Using Region}),
47characters to advance point to the next tab stop (@pxref{Tab Stops}). 40@key{TAB} acts specially: it indents each line in the region so that
48If the region is active and spans multiple lines, it advances the 41its first non-whitespace character is aligned with the preceding line.
49first character of each of those lines to the next tab stop 42
50(@pxref{Using Region}). For the purposes of this command, the 43 In programming modes, @key{TAB} indents the current line of code in
51position of the first non-whitespace character on the preceding line 44a way that makes sense given the code in the preceding lines. If the
52is treated as an additional tab stop. Thus, you can use @key{TAB} to 45region is active, all the lines in the region are indented this way.
53``align'' point with the preceding line. 46If point was initially within the current line's indentation, it is
54 47repositioned to the first non-whitespace character on the line.
55 In programming modes, @key{TAB} adds or removes some combination of
56space and tab characters at the start of the line, in a way that makes
57sense given the text in the preceding lines. If the region is active
58and spans multiple lines, all those lines are indented this way. If
59point was initially within the current line's indentation, it is
60positioned after that indentation; otherwise, it remains at same point
61in the newly-indented text. @xref{Program Indent}.
62 48
63@vindex tab-width 49 If you just want to insert a tab character in the buffer, type
64 Normally, indentation commands insert (or remove) an optimal mix of 50@kbd{C-q @key{TAB}} (@pxref{Inserting Text}).
65@dfn{tab characters} and spaces to align to the desired column. Tab
66characters (@acronym{ASCII} code 9) are displayed as a stretch of
67empty space extending to the next @dfn{display tab stop}. By default,
68there is one display tab stop every eight columns; the number of
69columns is determined by the variable @code{tab-width}. You can
70insert a single tab character by typing @kbd{C-q @key{TAB}}.
71@xref{Text Display}.
72 51
73@findex edit-tab-stops 52@menu
74@findex tab-to-tab-stop 53* Indentation Commands:: More commands for performing indentation.
75@kindex M-i 54* Tab Stops:: Stop points for indentation in Text modes.
76 The command @kbd{M-i} (@code{tab-to-tab-stop}) adjusts the 55* Just Spaces:: Using only space characters for indentation.
77whitespace characters around point, inserting just enough whitespace 56* Indent Convenience:: Optional indentation features.
78to advance point up to the next tab stop. By default, this involves 57@end menu
79deleting the existing whitespace and inserting a single tab character.
80 58
81 @xref{Just Spaces}, for how to disable use of tabs. However, 59@node Indentation Commands
82@kbd{C-q @key{TAB}} always inserts a tab, even when tabs are disabled 60@section Indentation Commands
83for the indentation commands.
84 61
85@vindex tab-always-indent 62Apart from the @key{TAB} (@code{indent-for-tab-command}) command,
86 The variable @code{tab-always-indent} tweaks the behavior of the 63Emacs provides a variety of commands to perform indentation in other
87@key{TAB} (@code{indent-for-tab-command}) command. The default value, 64ways.
88@code{t}, gives the behavior described above. If you change the value
89to the symbol @code{complete}, then @key{TAB} first tries to indent
90the current line, and if the line was already indented, it tries to
91complete the text at point (@pxref{Symbol Completion}). If the value
92is @code{nil}, then @key{TAB} indents the current line only if point
93is at the left margin or in the line's indentation; otherwise, it
94inserts a real tab character.
95 65
96@menu 66@table @kbd
97* Indentation Commands:: Various commands and techniques for indentation. 67@item C-j
98* Tab Stops:: You can set arbitrary "tab stops" and then 68@kindex C-j
99 indent to the next tab stop when you want to. 69@findex newline-and-indent
100* Just Spaces:: You can request indentation using just spaces. 70Perform @key{RET} followed by @key{TAB} (@code{newline-and-indent}).
101@end menu
102 71
103@node Indentation Commands, Tab Stops, Indentation, Indentation 72@item C-M-o
104@section Indentation Commands and Techniques 73@kindex C-M-o
74@findex split-line
75Split the current line at point (@code{split-line}). The text on the
76line after point becomes a new line, indented to the same column where
77point is located. This command first moves point forward over any
78spaces and tabs. Afterward, point is positioned before the inserted
79newline.
105 80
106@kindex M-m 81@kindex M-m
107@findex back-to-indentation 82@findex back-to-indentation
108 To move over the indentation on a line, do @kbd{M-m} 83@item M-m
109(@code{back-to-indentation}). This command, given anywhere on a line, 84Move (forward or back) to the first non-whitespace character on the
110positions point at the first nonblank character on the line, if any, 85current line (@code{back-to-indentation}). If there are no
111or else at the end of the line. 86non-whitespace characters on the line, move to the end of the line.
112
113 To insert an indented line before the current line, do @kbd{C-a C-o
114@key{TAB}}. To make an indented line after the current line, use
115@kbd{C-e C-j}.
116 87
117 If you just want to insert a tab character in the buffer, type 88@item M-i
118@kbd{C-q @key{TAB}}. 89@kindex M-i
90@findex tab-to-tab-stop
91Indent whitespace at point, up to the next tab stop
92(@code{tab-to-tab-stop}). @xref{Tab Stops}.
119 93
120@kindex C-M-o 94@findex indent-relative
121@findex split-line 95@item M-x indent-relative
122 @kbd{C-M-o} (@code{split-line}) moves the text from point to the end of 96Insert whitespace at point, until point is aligned with the first
123the line vertically down, so that the current line becomes two lines. 97non-whitespace character on the previous line (actually, the last
124@kbd{C-M-o} first moves point forward over any spaces and tabs. Then it 98non-blank line). If point is already farther right than that, run
125inserts after point a newline and enough indentation to reach the same 99@code{tab-to-tab-stop} instead---unless called with a numeric
126column point is on. Point remains before the inserted newline; in this 100argument, in which case do nothing.
127regard, @kbd{C-M-o} resembles @kbd{C-o}.
128 101
102@item M-^
129@kindex M-^ 103@kindex M-^
130@findex delete-indentation 104@findex delete-indentation
131 To join two lines cleanly, use the @kbd{M-^} 105Merge the previous and the current line (@code{delete-indentation}).
132(@code{delete-indentation}) command. It deletes the indentation at 106This ``joins'' the two lines cleanly, by replacing any indentation at
133the front of the current line, and the line boundary as well, 107the front of the current line, together with the line boundary, with a
134replacing them with a single space. As a special case (useful for 108single space.
135Lisp code) the single space is omitted if the characters to be joined 109
136are consecutive open parentheses or closing parentheses, or if the 110As a special case (useful for Lisp code), the single space is omitted
137junction follows another newline. To delete just the indentation of a 111if the characters to be joined are consecutive opening and closing
138line, go to the beginning of the line and use @kbd{M-\} 112parentheses, or if the junction follows another newline.
139(@code{delete-horizontal-space}), which deletes all spaces and tabs 113
140around the cursor. 114If there is a fill prefix, @kbd{M-^} deletes the fill prefix if it
141
142 If you have a fill prefix, @kbd{M-^} deletes the fill prefix if it
143appears after the newline that is deleted. @xref{Fill Prefix}. 115appears after the newline that is deleted. @xref{Fill Prefix}.
144 116
117@item C-M-\
145@kindex C-M-\ 118@kindex C-M-\
146@kindex C-x TAB
147@findex indent-region 119@findex indent-region
148@findex indent-rigidly 120Indent all the lines in the region, as though you had typed @key{TAB}
149 There are also commands for changing the indentation of several lines 121at the beginning of each line (@code{indent-region}).
150at once. They apply to all the lines that begin in the region.
151@kbd{C-M-\} (@code{indent-region}) indents each line in the ``usual''
152way, as if you had typed @key{TAB} at the beginning of the line. A
153numeric argument specifies the column to indent to, and each line is
154shifted left or right so that its first nonblank character appears in
155that column. @kbd{C-x @key{TAB}} (@code{indent-rigidly}) moves all of
156the lines in the region right by its argument (left, for negative
157arguments). The whole group of lines moves rigidly sideways, which is
158how the command gets its name.
159 122
123If a numeric argument is supplied, indent every line in the region to
124that column number.
125
126@item C-x @key{TAB}
127@kindex C-x TAB
128@findex indent-rigidly
160@cindex remove indentation 129@cindex remove indentation
161 To remove all indentation from all of the lines in the region, 130Shift each line in the region by a fixed distance, to the right or
162invoke @kbd{C-x @key{TAB}} with a large negative argument, such as 131left (@code{indent-rigidly}). The distance to move is determined by
163-1000. 132the numeric argument (positive to move rightward, negative to move
133leftward).
134
135This command can be used to remove all indentation from the lines in
136the region, by invoking it with a large negative argument,
137e.g. @kbd{C-u -1000 C-x @key{TAB}}.
138@end table
164 139
165@findex indent-relative 140@node Tab Stops
166 @kbd{M-x indent-relative} indents at point based on the previous line
167(actually, the last nonempty line). It inserts whitespace at point, moving
168point, until it is underneath the next indentation point in the previous line.
169An indentation point is the end of a sequence of whitespace or the end of
170the line. If point is farther right than any indentation point in the
171previous line, @code{indent-relative} runs @code{tab-to-tab-stop}
172@ifnottex
173(@pxref{Tab Stops}),
174@end ifnottex
175@iftex
176(see next section),
177@end iftex
178unless it is called with a numeric argument, in which case it does
179nothing.
180
181 @xref{Format Indentation}, for another way of specifying the
182indentation for part of your text.
183
184@node Tab Stops, Just Spaces, Indentation Commands, Indentation
185@section Tab Stops 141@section Tab Stops
186
187@cindex tab stops 142@cindex tab stops
188@cindex using tab stops in making tables 143
189@cindex tables, indentation for 144@vindex tab-stop-list
190@kindex M-i 145 Emacs defines certain column numbers to be @dfn{tab stops}. These
191@findex tab-to-tab-stop 146are used as stopping points by @key{TAB} when inserting whitespace in
192 For typing in tables, you can use @kbd{M-i} (@code{tab-to-tab-stop}). 147Text mode and related modes (@pxref{Indentation}), and by commands
193This command inserts indentation before point, enough to reach the 148like @kbd{M-i} (@pxref{Indentation Commands}). By default, tab stops
194next tab stop column. 149are located every 8 columns. These positions are stored in the
150variable @code{tab-stop-list}, whose value is a list of column numbers
151in increasing order.
195 152
196@findex edit-tab-stops 153@findex edit-tab-stops
197@findex edit-tab-stops-note-changes
198@kindex C-c C-c @r{(Edit Tab Stops)} 154@kindex C-c C-c @r{(Edit Tab Stops)}
199@vindex tab-stop-list 155 Instead of customizing the variable @code{tab-stop-list} directly, a
200 You can change the tab stops used by @kbd{M-i} and other indentation 156convenient way to view and set tab stops is via the command @kbd{M-x
201commands, so that they need not be spaced every eight characters, or 157edit-tab-stops}. This switches to a buffer containing a description
202even regularly spaced. The tab stops are stored in the variable 158of the tab stop settings, which looks like this:
203@code{tab-stop-list}, as a list of column numbers in increasing order.
204
205 A convenient way to set the tab stops is with @kbd{M-x
206edit-tab-stops}, which creates and selects a buffer containing a
207description of the tab stop settings. You can edit this buffer to
208specify different tab stops, and then type @kbd{C-c C-c} to make those
209new tab stops take effect. The buffer uses Overwrite mode
210(@pxref{Minor Modes}). @code{edit-tab-stops} records which buffer was
211current when you invoked it, and stores the tab stops back in that
212buffer; normally all buffers share the same tab stops and changing
213them in one buffer affects all, but if you happen to make
214@code{tab-stop-list} local in one buffer then @code{edit-tab-stops} in
215that buffer will edit the local settings.
216
217 Here is what the text representing the tab stops looks like for ordinary
218tab stops every eight columns.
219 159
220@example 160@example
221 : : : : : : 161 : : : : : :
@@ -224,37 +164,77 @@ tab stops every eight columns.
224To install changes, type C-c C-c 164To install changes, type C-c C-c
225@end example 165@end example
226 166
227 The first line contains a colon at each tab stop. The remaining lines 167@noindent
228are present just to help you see where the colons are and know what to do. 168The first line contains a colon at each tab stop. The numbers on the
169next two lines are present just to indicate where the colons are.
170
171 You can edit this buffer to specify different tab stops by placing
172colons on the desired columns. The buffer uses Overwrite mode
173(@pxref{Minor Modes}). When you are done, type @kbd{C-c C-c} to make
174the new tab stops take effect. Normally, the new tab stop settings
175apply to all buffers. However, if you have made the
176@code{tab-stop-list} variable local to the buffer where you called
177@kbd{M-x edit-tab-stops} (@pxref{Locals}), then the new tab stop
178settings apply only to that buffer. To save the tab stop settings for
179future Emacs sessions, use the Customize interface to save the value
180of @code{tab-stop-list} (@pxref{Easy Customization}).
181
182 Note that the tab stops discussed in this section have nothing to do
183with how tab characters are displayed in the buffer. Tab characters
184are always displayed as empty spaces extending to the next
185@dfn{display tab stop}. @xref{Text Display}.
186
187@node Just Spaces
188@section Tabs vs. Spaces
229 189
230 Note that the tab stops that control @code{tab-to-tab-stop} have 190@vindex tab-width
231nothing to do with how tab characters are displayed in the buffer. 191 Normally, indentation commands insert (or remove) an optimal mix of
232Tab characters are always displayed as empty spaces extending to the 192space characters and tab characters to align to the desired column.
233next display tab stop, which occurs every @code{tab-width} columns 193Tab characters are displayed as a stretch of empty space extending to
234regardless of the contents of @code{tab-stop-list}. @xref{Text 194the next @dfn{display tab stop}. By default, there is one display tab
195stop every @code{tab-width} columns (the default is 8). @xref{Text
235Display}. 196Display}.
236 197
237@node Just Spaces,, Tab Stops, Indentation
238@section Tabs vs. Spaces
239
240@vindex indent-tabs-mode 198@vindex indent-tabs-mode
241 Emacs normally uses both tabs and spaces to indent lines. If you 199 If you prefer, all indentation can be made from spaces only. To
242prefer, all indentation can be made from spaces only. To request 200request this, set the buffer-local variable @code{indent-tabs-mode} to
243this, set @code{indent-tabs-mode} to @code{nil}. This is a per-buffer 201@code{nil}. @xref{Locals}, for information about setting buffer-local
244variable, so altering the variable affects only the current buffer, 202variables. Note, however, that @kbd{C-q @key{TAB}} always inserts a
245but there is a default value which you can change as well. 203tab character, regardless of the value of @code{indent-tabs-mode}.
246@xref{Locals}. 204
247 205 One reason to set @code{indent-tabs-mode} to @code{nil} is that not
248 A tab is not always displayed in the same way. By default, tabs are 206all editors display tab characters in the same way. Emacs users, too,
249eight columns wide, but some people like to customize their editors to 207may have different customized values of @code{tab-width}. By using
250use a different tab width (e.g., by changing the variable 208spaces only, you can make sure that your file always looks the same.
251@code{tab-width} in Emacs). By using spaces only, you can make sure 209If you only care about how it looks within Emacs, another way to
252that your file looks the same regardless of the tab width setting. 210tackle this problem is to set the @code{tab-width} variable in a
211file-local variable (@pxref{File Variables}).
253 212
254@findex tabify 213@findex tabify
255@findex untabify 214@findex untabify
256 There are also commands to convert tabs to spaces or vice versa, always 215 There are also commands to convert tabs to spaces or vice versa, always
257preserving the columns of all nonblank text. @kbd{M-x tabify} scans the 216preserving the columns of all non-whitespace text. @kbd{M-x tabify} scans the
258region for sequences of spaces, and converts sequences of at least two 217region for sequences of spaces, and converts sequences of at least two
259spaces to tabs if that can be done without changing indentation. @kbd{M-x 218spaces to tabs if that can be done without changing indentation. @kbd{M-x
260untabify} changes all tabs in the region to appropriate numbers of spaces. 219untabify} changes all tabs in the region to appropriate numbers of spaces.
220
221@node Indent Convenience
222@section Convenience Features for Indentation
223
224@vindex tab-always-indent
225 The variable @code{tab-always-indent} tweaks the behavior of the
226@key{TAB} (@code{indent-for-tab-command}) command. The default value,
227@code{t}, gives the behavior described in @ref{Indentation}. If you
228change the value to the symbol @code{complete}, then @key{TAB} first
229tries to indent the current line, and if the line was already
230indented, it tries to complete the text at point (@pxref{Symbol
231Completion}). If the value is @code{nil}, then @key{TAB} indents the
232current line only if point is at the left margin or in the line's
233indentation; otherwise, it inserts a tab character.
234
235@cindex Electric Indent mode
236@cindex mode, Electric Indent
237@findex electric-indent-mode
238 Electric Indent mode is a global minor mode that automatically
239indents the line after every @key{RET} you type. To toggle this minor
240mode, type @kbd{M-x electric-indent-mode}.
diff --git a/doc/emacs/modes.texi b/doc/emacs/modes.texi
index 5a786be62cf..4d574242c8d 100644
--- a/doc/emacs/modes.texi
+++ b/doc/emacs/modes.texi
@@ -3,11 +3,11 @@
3@c Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
5@node Modes, Indentation, International, Top 5@node Modes, Indentation, International, Top
6@chapter Editing Modes 6@chapter Major and Minor Modes
7 7
8 Emacs contains many @dfn{editing modes}, each of which alters its 8 Emacs contains many @dfn{editing modes} that alter its basic
9basic behavior in useful ways. These are divided into @dfn{major 9behavior in useful ways. These are divided into @dfn{major modes} and
10modes} and @dfn{minor modes}. 10@dfn{minor modes}.
11 11
12 Major modes provide specialized facilities for working on a 12 Major modes provide specialized facilities for working on a
13particular file type, such as a C source file (@pxref{Programs}), or a 13particular file type, such as a C source file (@pxref{Programs}), or a
@@ -38,15 +38,8 @@ one another, and of the selected major mode.
38 38
39 Every buffer possesses a major mode, which determines the editing 39 Every buffer possesses a major mode, which determines the editing
40behavior of Emacs while that buffer is current. The mode line 40behavior of Emacs while that buffer is current. The mode line
41normally shows the name of the current major mode, in parentheses. 41normally shows the name of the current major mode, in parentheses
42@xref{Mode Line}. 42(@pxref{Mode Line}).
43
44 Usually, the major mode is automatically set by Emacs, when you
45first visit a file or create a buffer. @xref{Choosing Modes}. You
46can explicitly select a new major mode by using an @kbd{M-x} command.
47Take the name of the mode and add @code{-mode} to get the name of the
48command to select that mode. Thus, you can enter Lisp mode with
49@kbd{M-x lisp-mode}.
50 43
51 The least specialized major mode is called @dfn{Fundamental mode}. 44 The least specialized major mode is called @dfn{Fundamental mode}.
52This mode has no mode-specific redefinitions or variable settings, so 45This mode has no mode-specific redefinitions or variable settings, so
@@ -55,73 +48,142 @@ user option variable is in its default state.
55 48
56 For editing text of a specific type that Emacs knows about, such as 49 For editing text of a specific type that Emacs knows about, such as
57Lisp code or English text, you typically use a more specialized major 50Lisp code or English text, you typically use a more specialized major
58mode, such as Lisp mode or Text mode. Such major modes change the 51mode, such as Lisp mode or Text mode. Most major modes fall into
59meanings of some keys to become more specifically adapted to the 52three major groups. The first group contains modes for normal text,
60language being edited. The ones that are commonly changed are 53either plain or with mark-up. It includes Text mode, HTML mode, SGML
61@key{TAB}, @key{DEL}, and @kbd{C-j}. The prefix key @kbd{C-c} 54mode, @TeX{} mode and Outline mode. The second group contains modes
62normally contains mode-specific commands. In addition, the commands 55for specific programming languages. These include Lisp mode (which
63which handle comments use the mode to determine how comments are to be 56has several variants), C mode, Fortran mode, and others. The third
64delimited. Many major modes redefine the syntactical properties of 57group consists of major modes that are not associated directly with
65characters appearing in the buffer. 58files; they are used in buffers created for specific purposes by
66 59Emacs, such as Dired mode for buffers made by Dired (@pxref{Dired}),
67 The major modes fall into three major groups. The first group 60Message mode for buffers made by @kbd{C-x m} (@pxref{Sending Mail}),
68contains modes for normal text, either plain or with mark-up. It 61and Shell mode for buffers used to communicate with an inferior shell
69includes Text mode, HTML mode, SGML mode, @TeX{} mode and Outline 62process (@pxref{Interactive Shell}).
70mode. The second group contains modes for specific programming 63
71languages. These include Lisp mode (which has several variants), C 64 Usually, the major mode is automatically set by Emacs, when you
72mode, Fortran mode, and others. The remaining major modes are not 65first visit a file or create a buffer (@pxref{Choosing Modes}). You
73intended for use on users' files; they are used in buffers created for 66can explicitly select a new major mode by using an @kbd{M-x} command.
74specific purposes by Emacs, such as Dired mode for buffers made by 67Take the name of the mode and add @code{-mode} to get the name of the
75Dired (@pxref{Dired}), Message mode for buffers made by @kbd{C-x m} 68command to select that mode. Thus, you can enter Lisp mode with
76(@pxref{Sending Mail}), and Shell mode for buffers used for 69@kbd{M-x lisp-mode}.
77communicating with an inferior shell process (@pxref{Interactive 70
78Shell}). 71@vindex major-mode
79 72 The value of the buffer-local variable @code{major-mode} is a symbol
80 Most programming-language major modes specify that only blank lines 73with the same name as the major mode command (e.g. @code{lisp-mode}).
81separate paragraphs. This is to make the paragraph commands useful. 74This variable is set automatically; you should not change it yourself.
82(@xref{Paragraphs}.) They also cause Auto Fill mode to use the 75
83definition of @key{TAB} to indent the new lines it creates. This is 76 The default value of @code{major-mode} determines the major mode to
84because most lines in a program are usually indented 77use for files that do not specify a major mode, and for new buffers
85(@pxref{Indentation}). 78created with @kbd{C-x b}. Normally, this default value is the symbol
79@code{fundamental-mode}, which specifies Fundamental mode. You can
80change this default value via the Customization interface (@pxref{Easy
81Customization}), or by adding a line like this to your init file
82(@pxref{Init File}):
83
84@smallexample
85(setq-default major-mode 'text-mode)
86@end smallexample
87
88@noindent
89If the default value of @code{major-mode} is @code{nil}, the major
90mode is taken from the previously current buffer.
91
92 Specialized major modes often change the meanings of certain keys to
93do something more suitable for the mode. For instance, programming
94language modes bind @key{TAB} to indent the current line according to
95the rules of the language (@pxref{Indentation}). The keys that are
96commonly changed are @key{TAB}, @key{DEL}, and @kbd{C-j}. Many modes
97also define special commands of their own, usually bound in the prefix
98key @kbd{C-c}. Major modes can also alter user options and variables;
99for instance, programming language modes typicaly set a buffer-local
100value for the variable @code{comment-start}, which determines how
101source code comments are delimited (@pxref{Comments}).
102
103@findex describe-mode
104@kindex C-h m
105 To view the documentation for the current major mode, including a
106list of its key bindings, type @code{C-h m} (@code{describe-mode}).
107
108@cindex mode hook
109@vindex text-mode-hook
110@vindex prog-mode-hook
111 Every major mode, apart from Fundamental mode, defines a @dfn{mode
112hook}, a customizable list of Lisp functions to run each time the mode
113is enabled in a buffer. @xref{Hooks}, for more information about
114hooks. Each mode hook is named after its major mode, e.g. Fortran
115mode has @code{fortran-mode-hook}. Furthermore, all text-based major
116modes run @code{text-mode-hook}, and all programming language modes
117run @code{prog-mode-hook}, prior to running their own mode hooks.
118Hook functions can look at the value of the variable @code{major-mode}
119to see which mode is actually being entered.
120
121 Mode hooks are commonly used to enable minor modes (@pxref{Minor
122Modes}). For example, you can put the following lines in your init
123file to enable Flyspell minor mode in all text-based major modes
124(@pxref{Spelling}), and Eldoc minor mode in Emacs Lisp mode
125(@pxref{Lisp Doc}):
126
127@example
128(add-hook 'text-mode-hook 'flyspell-mode)
129(add-hook 'emacs-lisp-mode-hook 'eldoc-mode)
130@end example
86 131
87@node Minor Modes 132@node Minor Modes
88@section Minor Modes 133@section Minor Modes
89@cindex minor modes 134@cindex minor modes
90@cindex mode, minor 135@cindex mode, minor
91 136
92 A minor mode is an optional editing modes that alters the behavior 137 A minor mode is an optional editing mode that alters the behavior of
93of Emacs in some well-defined way. Unlike major modes, any number of 138Emacs in some well-defined way. Unlike major modes, any number of
94minor modes can be in effect at any time. Some minor modes are 139minor modes can be in effect at any time. Some minor modes are
95@dfn{buffer-local}: they apply only to the current buffer, so you can 140@dfn{buffer-local}, and can be turned on (enabled) in certain buffers
96enable the mode in certain buffers and not others. Other minor modes 141and off (disabled) in others. Other minor modes are @dfn{global}:
97are @dfn{global}: while enabled, they affect everything you do in the 142while enabled, they affect everything you do in the Emacs session, in
98Emacs session, in all buffers. Some global minor modes are enabled by 143all buffers. Most minor modes are disabled by default, but a few are
99default. 144enabled by default.
100 145
101 Most minor modes say in the mode line when they are enabled, just 146 Most buffer-local minor modes say in the mode line when they are
102after the major mode indicator. For example, @samp{Fill} in the mode 147enabled, just after the major mode indicator. For example,
103line means that Auto Fill mode is enabled. @xref{Mode Line}. 148@samp{Fill} in the mode line means that Auto Fill mode is enabled.
104 149@xref{Mode Line}.
105 Each minor mode is associated with a command, called the @dfn{mode 150
106command}, which turns it on or off. The name of this command consists 151@cindex mode commands for minor modes
107of the name of the minor mode, followed by @samp{-mode}; for instance, 152 Like major modes, each minor mode is associated with a @dfn{mode
108the mode command for Auto Fill mode is @code{auto-fill-mode}. Calling 153command}, whose name consists of the mode name followed by
109the minor mode command with no prefix argument @dfn{toggles} the mode, 154@samp{-mode}. For instance, the mode command for Auto Fill mode is
110turning it on if it was off, and off if it was on. A positive 155@code{auto-fill-mode}. But unlike a major mode command, which simply
111argument always turns the mode on, and a zero or negative argument 156enables the mode, the mode command for a minor mode can either enable
112always turns it off. Mode commands are usually invoked with 157or disable it:
113@kbd{M-x}, but you can bind keys to them if you wish (@pxref{Key 158
114Bindings}). 159@itemize
160@item
161If you invoke the mode command directly with no prefix argument
162(either via @kbd{M-x}, or by binding it to a key and typing that key;
163@pxref{Key Bindings}), that @dfn{toggles} the minor mode. The minor
164mode is turned on if it was off, and turned off if it was on.
165
166@item
167If you invoke the mode command with a prefix argument, the minor mode
168is unconditionally turned off if that argument is zero or negative;
169otherwise, it is unconditionally turned on.
170
171@item
172If the mode command is called via Lisp, the minor mode is
173unconditionally turned on if the argument is omitted or @code{nil}.
174This makes it easy to turn on a minor mode from a major mode's mode
175hook (@pxref{Major Modes}). A non-@code{nil} argument is handled like
176an interactive prefix argument, as described above.
177@end itemize
115 178
116 Most minor modes also have a @dfn{mode variable}, with the same name 179 Most minor modes also have a @dfn{mode variable}, with the same name
117as the mode command. Its value is non-@code{nil} if the mode is 180as the mode command. Its value is non-@code{nil} if the mode is
118enabled, and @code{nil} if it is disabled. In some minor modes---but 181enabled, and @code{nil} if it is disabled. In general, you should not
119not all---the value of the variable alone determines whether the mode 182try to enable or disable the mode by changing the value of the mode
120is active: the mode command works simply by setting the variable, and 183variable directly in Lisp; you should run the mode command instead.
121changing the value of the variable has the same effect as calling the 184However, setting the mode variable through the Customize interface
122mode command. Because not all minor modes work this way, we recommend 185(@pxref{Easy Customization}) will always properly enable or disable
123that you avoid changing the mode variables directly; use the mode 186the mode, since Customize automatically runs the mode command for you.
124commands instead.
125 187
126 The following is a list of some buffer-local minor modes: 188 The following is a list of some buffer-local minor modes:
127 189
@@ -140,7 +202,7 @@ amount of work you can lose in case of a crash. @xref{Auto Save}.
140 202
141@item 203@item
142Enriched mode enables editing and saving of formatted text. 204Enriched mode enables editing and saving of formatted text.
143@xref{Formatted Text}. 205@xref{Enriched Text}.
144 206
145@item 207@item
146Flyspell mode automatically highlights misspelled words. 208Flyspell mode automatically highlights misspelled words.
@@ -189,11 +251,8 @@ Visual Line mode performs ``word wrapping'', causing long lines to be
189wrapped at word boundaries. @xref{Visual Line Mode}. 251wrapped at word boundaries. @xref{Visual Line Mode}.
190@end itemize 252@end itemize
191 253
192 Here are some useful global minor modes. Since Line Number mode and 254@noindent
193Transient Mark mode can be enabled or disabled just by setting the 255And here are some useful global minor modes:
194value of the minor mode variable, you @emph{can} set them differently
195for particular buffers, by explicitly making the corresponding
196variable local in those buffers. @xref{Locals}.
197 256
198@itemize @bullet 257@itemize @bullet
199@item 258@item
@@ -261,22 +320,27 @@ text may appear on the line as well. For example,
261 320
262@noindent 321@noindent
263tells Emacs to use Lisp mode. Note how the semicolon is used to make 322tells Emacs to use Lisp mode. Note how the semicolon is used to make
264Lisp treat this line as a comment. Alternatively, you could write 323Lisp treat this line as a comment. You could equivalently write
265 324
266@example 325@example
267; -*- mode: Lisp;-*- 326; -*- mode: Lisp;-*-
268@end example 327@end example
269 328
270@noindent 329@noindent
271The latter format allows you to specify local variables as well, like 330You can also use file-local variables to specify buffer-local minor
272this: 331modes, by using @code{eval} specifications. For example, this first
332nonblank line puts the buffer in Lisp mode and enables Auto-Fill mode:
273 333
274@example 334@example
275; -*- mode: Lisp; tab-width: 4; -*- 335; -*- mode: Lisp; eval: (auto-fill-mode 1); -*-
276@end example 336@end example
277 337
278 If a file variable specifies a buffer-local minor mode, Emacs 338@noindent
279enables that minor mode in the buffer. 339Note, however, that it is usually inappropriate to enable minor modes
340this way, since most minor modes represent individual user
341preferences. If you personally want to use a minor mode for a
342particular file type, it is better to enable the minor mode via a
343major mode hook (@pxref{Major Modes}).
280 344
281@vindex interpreter-mode-alist 345@vindex interpreter-mode-alist
282 Second, if there is no file variable specifying a major mode, Emacs 346 Second, if there is no file variable specifying a major mode, Emacs
@@ -310,9 +374,9 @@ elements of the form
310 374
311@noindent 375@noindent
312where @var{regexp} is a regular expression (@pxref{Regexps}), and 376where @var{regexp} is a regular expression (@pxref{Regexps}), and
313@var{mode-function} is a Lisp function that toggles a major mode. If 377@var{mode-function} is a major mode command. If the text at the
314the text at the beginning of the file matches @var{regexp}, Emacs 378beginning of the file matches @var{regexp}, Emacs chooses the major
315chooses the major mode specified by @var{mode-function}. 379mode specified by @var{mode-function}.
316 380
317Alternatively, an element of @code{magic-mode-alist} may have the form 381Alternatively, an element of @code{magic-mode-alist} may have the form
318 382
@@ -323,7 +387,7 @@ Alternatively, an element of @code{magic-mode-alist} may have the form
323@noindent 387@noindent
324where @var{match-function} is a Lisp function that is called at the 388where @var{match-function} is a Lisp function that is called at the
325beginning of the buffer; if the function returns non-@code{nil}, Emacs 389beginning of the buffer; if the function returns non-@code{nil}, Emacs
326set the major mode wit @var{mode-function}. 390set the major mode with @var{mode-function}.
327 391
328 Fourth---if Emacs still hasn't found a suitable major mode---it 392 Fourth---if Emacs still hasn't found a suitable major mode---it
329looks at the file's name. The correspondence between file names and 393looks at the file's name. The correspondence between file names and
@@ -370,29 +434,6 @@ only after @code{auto-mode-alist}. By default,
370@code{magic-fallback-mode-alist} contains forms that check for image 434@code{magic-fallback-mode-alist} contains forms that check for image
371files, HTML/XML/SGML files, and PostScript files. 435files, HTML/XML/SGML files, and PostScript files.
372 436
373@vindex major-mode
374 Once a major mode is chosen, Emacs sets the value of the variable
375@code{major-mode} to the symbol for that major mode (e.g.,
376@code{text-mode} for Text mode). This is a per-buffer variable
377(@pxref{Locals}); its buffer-local value is set automatically, and you
378should not change it yourself.
379
380 The default value of @code{major-mode} determines the major mode to
381use for files that do not specify a major mode, and for new buffers
382created with @kbd{C-x b}. Normally, this default value is the symbol
383@code{fundamental-mode}, which specifies Fundamental mode. You can
384change it via the Customization interface (@pxref{Easy
385Customization}), or by adding a line like this to your init file
386(@pxref{Init File}):
387
388@smallexample
389(setq-default major-mode 'text-mode)
390@end smallexample
391
392@noindent
393If the default value of @code{major-mode} is @code{nil}, the major
394mode is taken from the previously current buffer.
395
396@findex normal-mode 437@findex normal-mode
397 If you have changed the major mode of a buffer, you can return to 438 If you have changed the major mode of a buffer, you can return to
398the major mode Emacs would have chosen automatically, by typing 439the major mode Emacs would have chosen automatically, by typing
diff --git a/doc/emacs/programs.texi b/doc/emacs/programs.texi
index 2357902341e..675977c2c35 100644
--- a/doc/emacs/programs.texi
+++ b/doc/emacs/programs.texi
@@ -397,7 +397,7 @@ the syntax and conventions for its particular language.
397 397
398 Use @kbd{C-q @key{TAB}} to insert a tab character at point. 398 Use @kbd{C-q @key{TAB}} to insert a tab character at point.
399 399
400@kindex C-j 400@kindex C-j @r{(indenting source code)}
401@findex newline-and-indent 401@findex newline-and-indent
402 When entering lines of new code, use @kbd{C-j} 402 When entering lines of new code, use @kbd{C-j}
403(@code{newline-and-indent}), which inserts a newline and then adjusts 403(@code{newline-and-indent}), which inserts a newline and then adjusts
diff --git a/doc/emacs/rmail.texi b/doc/emacs/rmail.texi
index 71c23655608..0df4a3a7bb5 100644
--- a/doc/emacs/rmail.texi
+++ b/doc/emacs/rmail.texi
@@ -571,6 +571,22 @@ the file name to use, or more generally it may be any Lisp expression
571that returns a file name as a string. @code{rmail-output-file-alist} 571that returns a file name as a string. @code{rmail-output-file-alist}
572applies to both @kbd{o} and @kbd{C-o}. 572applies to both @kbd{o} and @kbd{C-o}.
573 573
574@vindex rmail-automatic-folder-directives
575Rmail can automatically save messages from your primary Rmail file
576(the one that @code{rmail-file-name} specifies) to other files, based
577on the value of the variable @code{rmail-automatic-folder-directives}.
578This variable is a list of elements (@samp{directives}) that say which
579messages to save where. Each directive is a list consisting of an
580output file, followed by one or more pairs of a header name and a regular
581expression. If a message has a header matching the specified regular
582expression, that message is saved to the given file. If the directive
583has more than one header entry, all must match. Rmail checks directives
584when it shows a message from the file @code{rmail-file-name}, and
585applies the first that matches (if any). If the output file is
586@code{nil}, the message is deleted, not saved. For example, you can use
587this feature to save messages from a particular address, or with a
588particular subject, to a dedicated file.
589
574@node Rmail Labels 590@node Rmail Labels
575@section Labels 591@section Labels
576@cindex label (Rmail) 592@cindex label (Rmail)
diff --git a/doc/emacs/text.texi b/doc/emacs/text.texi
index 562ce92d427..8f353961afb 100644
--- a/doc/emacs/text.texi
+++ b/doc/emacs/text.texi
@@ -32,10 +32,9 @@ structure.
32@findex nxml-mode 32@findex nxml-mode
33 Emacs has other major modes for text which contains ``embedded'' 33 Emacs has other major modes for text which contains ``embedded''
34commands, such as @TeX{} and La@TeX{} (@pxref{TeX Mode}); HTML and 34commands, such as @TeX{} and La@TeX{} (@pxref{TeX Mode}); HTML and
35SGML (@pxref{HTML Mode}); XML (@pxref{Top, nXML Mode,,nxml-mode, nXML 35SGML (@pxref{HTML Mode}); XML (@pxref{Top,The nXML Mode
36Mode}); and Groff and Nroff (@pxref{Nroff Mode}). In addition, you 36Manual,,nxml-mode, nXML Mode}); and Groff and Nroff (@pxref{Nroff
37can edit formatted text in WYSIWYG style (``what you see is what you 37Mode}).
38get''), using Enriched mode (@pxref{Formatted Text}).
39 38
40@cindex ASCII art 39@cindex ASCII art
41 If you need to edit pictures made out of text characters (commonly 40 If you need to edit pictures made out of text characters (commonly
@@ -48,13 +47,14 @@ for editing such pictures.
48@xref{Picture Mode}. 47@xref{Picture Mode}.
49@end ifnottex 48@end ifnottex
50 49
51 50@ifinfo
52@cindex skeletons 51@cindex skeletons
53@cindex templates 52@cindex templates
54@cindex autotyping 53@cindex autotyping
55@cindex automatic typing 54@cindex automatic typing
56 The ``automatic typing'' features may be useful when writing text. 55 The ``automatic typing'' features may be useful when writing text.
57@inforef{Top,, autotype}. 56@inforef{Top,The Autotype Manual,autotype}.
57@end ifinfo
58 58
59@menu 59@menu
60* Words:: Moving over and killing words. 60* Words:: Moving over and killing words.
@@ -68,8 +68,8 @@ for editing such pictures.
68* TeX Mode:: Editing input to the formatter TeX. 68* TeX Mode:: Editing input to the formatter TeX.
69* HTML Mode:: Editing HTML and SGML files. 69* HTML Mode:: Editing HTML and SGML files.
70* Nroff Mode:: Editing input to the formatter nroff. 70* Nroff Mode:: Editing input to the formatter nroff.
71* Formatted Text:: Editing formatted text directly in WYSIWYG fashion. 71* Enriched Text:: Editing text ``enriched'' with fonts, colors, etc.
72* Text Based Tables:: Editing text-based tables in WYSIWYG fashion. 72* Text Based Tables:: Commands for editing text-based tables.
73* Two-Column:: Splitting text columns into separate windows. 73* Two-Column:: Splitting text columns into separate windows.
74@end menu 74@end menu
75 75
@@ -78,8 +78,8 @@ for editing such pictures.
78@cindex words 78@cindex words
79@cindex Meta commands and words 79@cindex Meta commands and words
80 80
81 Emacs has commands for moving over or operating on words. By convention, 81 Emacs defines several commands for moving over or operating on
82the keys for them are all Meta characters. 82words:
83 83
84@table @kbd 84@table @kbd
85@item M-f 85@item M-f
@@ -157,13 +157,17 @@ the syntax table. Any character can, for example, be declared to be a
157word delimiter. @xref{Syntax Tables,, Syntax Tables, elisp, The Emacs 157word delimiter. @xref{Syntax Tables,, Syntax Tables, elisp, The Emacs
158Lisp Reference Manual}. 158Lisp Reference Manual}.
159 159
160 In addition, see @ref{Position Info} for the @kbd{M-=}
161(@code{count-words-region}) and @kbd{M-x count-words} commands, which
162count and report the number of words in the region or buffer.
163
160@node Sentences 164@node Sentences
161@section Sentences 165@section Sentences
162@cindex sentences 166@cindex sentences
163@cindex manipulating sentences 167@cindex manipulating sentences
164 168
165 The Emacs commands for manipulating sentences and paragraphs are mostly 169 The Emacs commands for manipulating sentences and paragraphs are
166on Meta keys, so as to be like the word-handling commands. 170mostly on Meta keys, like the word-handling commands.
167 171
168@table @kbd 172@table @kbd
169@item M-a 173@item M-a
@@ -180,12 +184,12 @@ Kill back to the beginning of the sentence (@code{backward-kill-sentence}).
180@kindex M-e 184@kindex M-e
181@findex backward-sentence 185@findex backward-sentence
182@findex forward-sentence 186@findex forward-sentence
183 The commands @kbd{M-a} and @kbd{M-e} (@code{backward-sentence} and 187 The commands @kbd{M-a} (@code{backward-sentence}) and @kbd{M-e}
184@code{forward-sentence}) move to the beginning and end of the current 188(@code{forward-sentence}) move to the beginning and end of the current
185sentence, respectively. They were chosen to resemble @kbd{C-a} and 189sentence, respectively. Their bindings were chosen to resemble
186@kbd{C-e}, which move to the beginning and end of a line. Unlike 190@kbd{C-a} and @kbd{C-e}, which move to the beginning and end of a
187them, @kbd{M-a} and @kbd{M-e} move over successive sentences if 191line. Unlike them, @kbd{M-a} and @kbd{M-e} move over successive
188repeated. 192sentences if repeated.
189 193
190 Moving backward over a sentence places point just before the first 194 Moving backward over a sentence places point just before the first
191character of the sentence; moving forward places point right after the 195character of the sentence; moving forward places point right after the
@@ -207,15 +211,14 @@ it kills back to the beginning of the @var{n}th preceding sentence.
207to the beginning of a sentence. 211to the beginning of a sentence.
208 212
209 The sentence commands assume that you follow the American typist's 213 The sentence commands assume that you follow the American typist's
210convention of putting two spaces at the end of a sentence; they consider 214convention of putting two spaces at the end of a sentence. That is, a
211a sentence to end wherever there is a @samp{.}, @samp{?} or @samp{!} 215sentence ends wherever there is a @samp{.}, @samp{?} or @samp{!}
212followed by the end of a line or two spaces, with any number of 216followed by the end of a line or two spaces, with any number of
213@samp{)}, @samp{]}, @samp{'}, or @samp{"} characters allowed in between. 217@samp{)}, @samp{]}, @samp{'}, or @samp{"} characters allowed in
214A sentence also begins or ends wherever a paragraph begins or ends. 218between. A sentence also begins or ends wherever a paragraph begins
215It is useful to follow this convention, because it makes a distinction 219or ends. It is useful to follow this convention, because it allows
216between periods that end a sentence and periods that indicate 220the Emacs sentence commands to distinguish between periods that end a
217abbreviations; that enables the Emacs sentence commands to distinguish, 221sentence and periods that indicate abbreviations.
218too. These commands do not stop for periods that indicate abbreviations.
219 222
220@vindex sentence-end-double-space 223@vindex sentence-end-double-space
221 If you want to use just one space between sentences, you can set the 224 If you want to use just one space between sentences, you can set the
@@ -225,7 +228,7 @@ drawback: there is no way to distinguish between periods that end
225sentences and those that indicate abbreviations. For convenient and 228sentences and those that indicate abbreviations. For convenient and
226reliable editing, we therefore recommend you follow the two-space 229reliable editing, we therefore recommend you follow the two-space
227convention. The variable @code{sentence-end-double-space} also 230convention. The variable @code{sentence-end-double-space} also
228affects filling (@pxref{Fill Commands}) in related ways. 231affects filling (@pxref{Fill Commands}).
229 232
230@vindex sentence-end 233@vindex sentence-end
231 The variable @code{sentence-end} controls how to recognize the end 234 The variable @code{sentence-end} controls how to recognize the end
@@ -237,19 +240,14 @@ Emacs computes sentence ends according to various criteria such as the
237value of @code{sentence-end-double-space}. 240value of @code{sentence-end-double-space}.
238 241
239@vindex sentence-end-without-period 242@vindex sentence-end-without-period
240 Some languages do not use periods to indicate the end of a sentence. 243 Some languages, such as Thai, do not use periods to indicate the end
241For example, sentences in Thai end with a double space but without a 244of a sentence. Set the variable @code{sentence-end-without-period} to
242period. Set the variable @code{sentence-end-without-period} to
243@code{t} in such cases. 245@code{t} in such cases.
244 246
245@node Paragraphs 247@node Paragraphs
246@section Paragraphs 248@section Paragraphs
247@cindex paragraphs 249@cindex paragraphs
248@cindex manipulating paragraphs 250@cindex manipulating paragraphs
249@kindex M-@{
250@kindex M-@}
251@findex backward-paragraph
252@findex forward-paragraph
253 251
254 The Emacs commands for manipulating paragraphs are also on Meta keys. 252 The Emacs commands for manipulating paragraphs are also on Meta keys.
255 253
@@ -262,23 +260,15 @@ Move forward to next paragraph end (@code{forward-paragraph}).
262Put point and mark around this or next paragraph (@code{mark-paragraph}). 260Put point and mark around this or next paragraph (@code{mark-paragraph}).
263@end table 261@end table
264 262
265 @kbd{M-@{} moves to the beginning of the current or previous 263@kindex M-@{
266paragraph, while @kbd{M-@}} moves to the end of the current or next 264@kindex M-@}
267paragraph. Blank lines and text-formatter command lines separate 265@findex backward-paragraph
268paragraphs and are not considered part of any paragraph. If there is 266@findex forward-paragraph
269a blank line before the paragraph, @kbd{M-@{} moves to the blank line, 267 @kbd{M-@{} (@code{backward-paragraph}) moves to the beginning of the
270because that is convenient in practice. 268current or previous paragraph (see below for the definition of a
271 269paragraph). @kbd{M-@}} (@code{forward-paragraph}) moves to the end of
272 In Text mode, an indented line is not a paragraph break. If you 270the current or next paragraph. If there is a blank line before the
273want indented lines to have this effect, use Paragraph-Indent Text 271paragraph, @kbd{M-@{} moves to the blank line.
274mode instead. @xref{Text Mode}.
275
276 In major modes for programs, paragraphs begin and end only at blank
277lines. This makes the paragraph commands useful, even though there
278are no paragraphs as such in a program.
279
280 When you have set a fill prefix, then paragraphs are delimited by
281all lines which don't start with the fill prefix. @xref{Filling}.
282 272
283@kindex M-h 273@kindex M-h
284@findex mark-paragraph 274@findex mark-paragraph
@@ -287,46 +277,57 @@ all lines which don't start with the fill prefix. @xref{Filling}.
287@kbd{M-h C-w} kills the paragraph around or after point. @kbd{M-h} 277@kbd{M-h C-w} kills the paragraph around or after point. @kbd{M-h}
288puts point at the beginning and mark at the end of the paragraph point 278puts point at the beginning and mark at the end of the paragraph point
289was in. If point is between paragraphs (in a run of blank lines, or 279was in. If point is between paragraphs (in a run of blank lines, or
290at a boundary), the paragraph following point is surrounded by point 280at a boundary), @kbd{M-h} sets the region around the paragraph
291and mark. If there are blank lines preceding the first line of the 281following point. If there are blank lines preceding the first line of
292paragraph, one of these blank lines is included in the region. If the 282the paragraph, one of these blank lines is included in the region. If
293region is already active, the command sets the mark without changing 283the region is already active, the command sets the mark without
294point; furthermore, each subsequent @kbd{M-h} further advances the 284changing point, and each subsequent @kbd{M-h} further advances the
295mark by one paragraph. 285mark by one paragraph.
296 286
287 The definition of a paragraph depends on the major mode. In
288Fundamental mode, as well as Text mode and related modes, a paragraph
289is separated each neighboring paragraph another by one or more
290@dfn{blank lines}---lines that are either empty, or consist solely of
291space, tab and/or formfeed characters. In programming language modes,
292paragraphs are usually defined in a similar way, so that you can use
293the paragraph commands even though there are no paragraphs as such in
294a program.
295
296 Note that an indented line is @emph{not} itself a paragraph break in
297Text mode. If you want indented lines to separate paragraphs, use
298Paragraph-Indent Text mode instead. @xref{Text Mode}.
299
300 If you set a fill prefix, then paragraphs are delimited by all lines
301which don't start with the fill prefix. @xref{Filling}.
302
297@vindex paragraph-start 303@vindex paragraph-start
298@vindex paragraph-separate 304@vindex paragraph-separate
299 The precise definition of a paragraph boundary is controlled by the 305 The precise definition of a paragraph boundary is controlled by the
300variables @code{paragraph-separate} and @code{paragraph-start}. The 306variables @code{paragraph-separate} and @code{paragraph-start}. The
301value of @code{paragraph-start} is a regexp that should match any line 307value of @code{paragraph-start} is a regular expression that should
302that either starts or separates paragraphs. The value of 308match lines that either start or separate paragraphs
303@code{paragraph-separate} is another regexp that should match only lines 309(@pxref{Regexps}). The value of @code{paragraph-separate} is another
304that separate paragraphs without being part of any paragraph (for 310regular expression that should match lines that separate paragraphs
305example, blank lines). Lines that start a new paragraph and are 311without being part of any paragraph (for example, blank lines). Lines
306contained in it must match only @code{paragraph-start}, not 312that start a new paragraph and are contained in it must match only
307@code{paragraph-separate}. Each regular expression must match at the 313@code{paragraph-start}, not @code{paragraph-separate}. For example,
308left margin. For example, in Fundamental mode, @code{paragraph-start} 314in Fundamental mode, @code{paragraph-start} is @w{@code{"\f\\|[
309is @w{@code{"\f\\|[ \t]*$"}}, and @code{paragraph-separate} is 315\t]*$"}}, and @code{paragraph-separate} is @w{@code{"[ \t\f]*$"}}.
310@w{@code{"[ \t\f]*$"}}.
311
312 Normally it is desirable for page boundaries to separate paragraphs.
313The default values of these variables recognize the usual separator for
314pages.
315 316
316@node Pages 317@node Pages
317@section Pages 318@section Pages
318 319
319@cindex pages 320@cindex pages
320@cindex formfeed character 321@cindex formfeed character
321 Within some text files, text is divided into @dfn{pages}, which are 322 Within some text files, text is divided into @dfn{pages} delimited
322delimited by the @dfn{formfeed character} (@acronym{ASCII} code 12, 323by the @dfn{formfeed character} (@acronym{ASCII} code 12, also denoted
323sometimes denoted as @key{control-L}). When you print hardcopy for a 324as @key{control-L}), which is displayed in Emacs as the escape
324file, the formfeed character forces a page break: each page of the 325sequence @samp{^L} (@pxref{Text Display}). Traditionally, when such
325file goes on a separate page on paper. Most Emacs commands treat the 326text files are printed to hardcopy, each formfeed character forces a
326formfeed character just like any other character: you can insert it 327page break. Most Emacs commands treat it just like any other
327with @kbd{C-q C-l}, and delete it with @key{DEL}. However, since 328character, so you can insert it with @kbd{C-q C-l}, delete it with
328pages are often meaningful divisions of the file, Emacs provides 329@key{DEL}, etc. In addition, Emacs provides commands to move over
329commands to move over them and operate on them. 330pages and operate on them.
330 331
331@table @kbd 332@table @kbd
332@item M-x what-page 333@item M-x what-page
@@ -358,9 +359,9 @@ command moves forward past the next page delimiter.
358@kindex C-x C-p 359@kindex C-x C-p
359@findex mark-page 360@findex mark-page
360 The @kbd{C-x C-p} command (@code{mark-page}) puts point at the 361 The @kbd{C-x C-p} command (@code{mark-page}) puts point at the
361beginning of the current page and the mark at the end. The page 362beginning of the current page (after that page delimiter at the
362delimiter at the end is included (the mark follows it). The page 363front), and the mark at the end of the page (after the page delimiter
363delimiter at the front is excluded (point follows it). 364at the end).
364 365
365 @kbd{C-x C-p C-w} is a handy way to kill a page to move it 366 @kbd{C-x C-p C-w} is a handy way to kill a page to move it
366elsewhere. If you move to another page delimiter with @kbd{C-x [} and 367elsewhere. If you move to another page delimiter with @kbd{C-x [} and
@@ -402,9 +403,7 @@ beginning of a line.
402specified width. Emacs does filling in two ways. In Auto Fill mode, 403specified width. Emacs does filling in two ways. In Auto Fill mode,
403inserting text with self-inserting characters also automatically fills 404inserting text with self-inserting characters also automatically fills
404it. There are also explicit fill commands that you can use when editing 405it. There are also explicit fill commands that you can use when editing
405text leaves it unfilled. When you edit formatted text, you can specify 406text leaves it unfilled.
406a style of filling for each portion of the text (@pxref{Formatted
407Text}).
408 407
409@menu 408@menu
410* Auto Fill:: Auto Fill mode breaks long lines automatically. 409* Auto Fill:: Auto Fill mode breaks long lines automatically.
@@ -418,9 +417,9 @@ Text}).
418@cindex Auto Fill mode 417@cindex Auto Fill mode
419@cindex mode, Auto Fill 418@cindex mode, Auto Fill
420 419
421 @dfn{Auto Fill} mode is a minor mode in which lines are broken 420 @dfn{Auto Fill} mode is a buffer-local minor mode (@pxref{Minor
422automatically when they become too wide. Breaking happens only when 421Modes}) in which lines are broken automatically when they become too
423you type a @key{SPC} or @key{RET}. 422wide. Breaking happens only when you type a @key{SPC} or @key{RET}.
424 423
425@table @kbd 424@table @kbd
426@item M-x auto-fill-mode 425@item M-x auto-fill-mode
@@ -431,45 +430,43 @@ In Auto Fill mode, break lines when appropriate.
431@end table 430@end table
432 431
433@findex auto-fill-mode 432@findex auto-fill-mode
434 @kbd{M-x auto-fill-mode} turns Auto Fill mode on if it was off, or off 433 The mode command @kbd{M-x auto-fill-mode} toggles Auto Fill mode in
435if it was on. With a positive numeric argument it always turns Auto 434the current buffer. With a positive numeric argument, it enables Auto
436Fill mode on, and with a negative argument always turns it off. You can 435Fill mode, and with a negative argument it disables it. If
437see when Auto Fill mode is in effect by the presence of the word 436@code{auto-fill-mode} is called from Lisp with an omitted or
438@samp{Fill} in the mode line, inside the parentheses. Auto Fill mode is 437@code{nil} argument, it enables Auto Fill mode. To enable Auto Fill
439a minor mode which is enabled or disabled for each buffer individually. 438mode automatically in certain major modes, add @code{auto-fill-mode}
440@xref{Minor Modes}. 439to the mode hooks (@pxref{Major Modes}). When Auto Fill mode is
441 440enabled, the mode indicator @samp{Fill} appears in the mode line
442 In Auto Fill mode, lines are broken automatically at spaces when they 441(@pxref{Mode Line}).
443get longer than the desired width. Line breaking and rearrangement 442
444takes place only when you type @key{SPC} or @key{RET}. If you wish to 443 Auto Fill mode breaks lines automatically at spaces whenever they
445insert a space or newline without permitting line-breaking, type 444get longer than the desired width. This line breaking occurs only
446@kbd{C-q @key{SPC}} or @kbd{C-q C-j} (recall that a newline is really a 445when you type @key{SPC} or @key{RET}. If you wish to insert a space
447control-J). Also, @kbd{C-o} inserts a newline without line breaking. 446or newline without permitting line-breaking, type @kbd{C-q @key{SPC}}
448 447or @kbd{C-q C-j} respectively. Also, @kbd{C-o} inserts a newline
449 Auto Fill mode works well with programming-language modes, because it 448without line breaking.
450indents new lines with @key{TAB}. If a line ending in a comment gets 449
451too long, the text of the comment is split into two comment lines. 450 When Auto Fill mode breaks a line, it tries to obey the
452Optionally, new comment delimiters are inserted at the end of the first 451@dfn{adaptive fill prefix}: if a fill prefix can be deduced from the
453line and the beginning of the second so that each line is a separate 452first and/or second line of the current paragraph, it is inserted into
454comment; the variable @code{comment-multi-line} controls the choice 453the new line (@pxref{Adaptive Fill}). Otherwise the new line is
455(@pxref{Comments}). 454indented, as though you had typed @key{TAB} on it
456 455(@pxref{Indentation}). In a programming language mode, if a line is
457 Adaptive filling (@pxref{Adaptive Fill}) works for Auto Filling as 456broken in the middle of a comment, the comment is split by inserting
458well as for explicit fill commands. It takes a fill prefix 457new comment delimiters as appropriate.
459automatically from the second or first line of a paragraph. 458
460 459 Auto Fill mode does not refill entire paragraphs; it breaks lines
461 Auto Fill mode does not refill entire paragraphs; it can break lines but 460but does not merge lines. Therefore, editing in the middle of a
462cannot merge lines. So editing in the middle of a paragraph can result in 461paragraph can result in a paragraph that is not correctly filled. To
463a paragraph that is not correctly filled. The easiest way to make the 462fill it, call the explicit fill commands
464paragraph properly filled again is usually with the explicit fill commands. 463@iftex
464described in the next section.
465@end iftex
465@ifnottex 466@ifnottex
466@xref{Fill Commands}. 467(@pxref{Fill Commands}).
467@end ifnottex 468@end ifnottex
468 469
469 Many users like Auto Fill mode and want to use it in all text files.
470The section on init files says how to arrange this permanently for yourself.
471@xref{Init File}.
472
473@node Fill Commands 470@node Fill Commands
474@subsection Explicit Fill Commands 471@subsection Explicit Fill Commands
475 472
@@ -488,21 +485,23 @@ Center a line.
488 485
489@kindex M-q 486@kindex M-q
490@findex fill-paragraph 487@findex fill-paragraph
491 To refill a paragraph, use the command @kbd{M-q} 488 The command @kbd{M-q} (@code{fill-paragraph}) @dfn{fills} the
492(@code{fill-paragraph}). This operates on the paragraph that point is 489current paragraph. It redistributes the line breaks within the
493inside, or the one after point if point is between paragraphs. 490paragraph, and deletes any excess space and tab characters occurring
494Refilling works by removing all the line-breaks, then inserting new 491within the paragraph, in such a way that the lines end up fitting
495ones where necessary. When there is an active region, this command 492within a certain maximum width.
496operates on the text within the region like @code{fill-region}.
497 493
498@findex fill-region 494@findex fill-region
499 To refill many paragraphs, use @kbd{M-x fill-region}, which 495 Normally, @kbd{M-q} acts on the paragraph where point is, but if
500finds the paragraphs in the region and fills each of them. 496point is between paragraphs, it acts on the paragraph after point. If
497the region is active, it acts instead on the text in the region. You
498can also call @kbd{M-x fill-region} to specifically fill the text in
499the region.
501 500
502@findex fill-region-as-paragraph 501@findex fill-region-as-paragraph
503 @kbd{M-q} and @code{fill-region} use the same criteria as @kbd{M-h} 502 @kbd{M-q} and @code{fill-region} use the usual Emacs criteria for
504for finding paragraph boundaries (@pxref{Paragraphs}). For more 503finding paragraph boundaries (@pxref{Paragraphs}). For more control,
505control, you can use @kbd{M-x fill-region-as-paragraph}, which refills 504you can use @kbd{M-x fill-region-as-paragraph}, which refills
506everything between point and mark as a single paragraph. This command 505everything between point and mark as a single paragraph. This command
507deletes any blank lines within the region, so separate blocks of text 506deletes any blank lines within the region, so separate blocks of text
508end up combined into one block. 507end up combined into one block.
@@ -512,9 +511,18 @@ end up combined into one block.
512as well as filling it. This means that extra spaces are inserted to 511as well as filling it. This means that extra spaces are inserted to
513make the right margin line up exactly at the fill column. To remove 512make the right margin line up exactly at the fill column. To remove
514the extra spaces, use @kbd{M-q} with no argument. (Likewise for 513the extra spaces, use @kbd{M-q} with no argument. (Likewise for
515@code{fill-region}.) Another way to control justification, and choose 514@code{fill-region}.)
516other styles of filling, is with the @code{justification} text 515
517property; see @ref{Format Justification}. 516@vindex fill-column
517@kindex C-x f
518@findex set-fill-column
519 The maximum line width for filling is specified by the buffer-local
520variable @code{fill-column}. The default value (@pxref{Locals}) is
52170. The easiest way to set @code{fill-column} in the current buffer
522is to use the command @kbd{C-x f} (@code{set-fill-column}). With a
523numeric argument, it uses that as the new fill column. With just
524@kbd{C-u} as argument, it sets @code{fill-column} to the current
525horizontal position of point.
518 526
519@kindex M-o M-s @r{(Text mode)} 527@kindex M-o M-s @r{(Text mode)}
520@cindex centering 528@cindex centering
@@ -525,40 +533,27 @@ within the current fill column. With an argument @var{n}, it centers
525made by Text mode and is available only in that and related modes 533made by Text mode and is available only in that and related modes
526(@pxref{Text Mode}). 534(@pxref{Text Mode}).
527 535
528@vindex fill-column 536 By default, Emacs considers a period followed by two spaces or by a
529@kindex C-x f 537newline as the end of a sentence; a period followed by just one space
530@findex set-fill-column 538indicates an abbreviation, not the end of a sentence. Accordingly,
531 The maximum line width for filling is in the variable 539the fill commands will not break a line after a period followed by
532@code{fill-column}. Altering the value of @code{fill-column} makes it 540just one space. If you change the variable
533local to the current buffer; until that time, the default value is in 541@code{sentence-end-double-space} to a non-@code{nil} value, the fill
534effect. The default is initially 70. @xref{Locals}. The easiest way 542commands will break a line after a period followed by one space, and
535to set @code{fill-column} is to use the command @kbd{C-x f} 543put just one space after each period. @xref{Sentences}, for other
536(@code{set-fill-column}). With a numeric argument, it uses that as the 544effects and possible drawbacks of this.
537new fill column. With just @kbd{C-u} as argument, it sets
538@code{fill-column} to the current horizontal position of point.
539
540 Emacs commands normally consider a period followed by two spaces or by
541a newline as the end of a sentence; a period followed by just one space
542indicates an abbreviation and not the end of a sentence. To preserve
543the distinction between these two ways of using a period, the fill
544commands do not break a line after a period followed by just one space.
545
546 If the variable @code{sentence-end-double-space} is @code{nil}, the
547fill commands expect and leave just one space at the end of a sentence.
548Ordinarily this variable is @code{t}, so the fill commands insist on
549two spaces for the end of a sentence, as explained above. @xref{Sentences}.
550 545
551@vindex colon-double-space 546@vindex colon-double-space
552 If the variable @code{colon-double-space} is non-@code{nil}, the 547 If the variable @code{colon-double-space} is non-@code{nil}, the
553fill commands put two spaces after a colon. 548fill commands put two spaces after a colon.
554 549
555@vindex fill-nobreak-predicate 550@vindex fill-nobreak-predicate
556 The variable @code{fill-nobreak-predicate} is a hook (an abnormal 551 To specify additional conditions where line-breaking is not allowed,
557hook, @pxref{Hooks}) specifying additional conditions where 552customize the abnormal hook variable @code{fill-nobreak-predicate}
558line-breaking is not allowed. Each function is called with no 553(@pxref{Hooks}). Each function in this hook is called with no
559arguments, with point at a place where Emacs is considering breaking 554arguments, with point positioned where Emacs is considering breaking a
560the line. If a function returns a non-@code{nil} value, then that's 555line. If a function returns a non-@code{nil} value, Emacs will not
561a bad place to break the line. Two standard functions you can use are 556break the line there. Two functions you can use are
562@code{fill-single-word-nobreak-p} (don't break after the first word of 557@code{fill-single-word-nobreak-p} (don't break after the first word of
563a sentence or before the last) and @code{fill-french-nobreak-p} (don't 558a sentence or before the last) and @code{fill-french-nobreak-p} (don't
564break after @samp{(} or before @samp{)}, @samp{:} or @samp{?}). 559break after @samp{(} or before @samp{)}, @samp{:} or @samp{?}).
@@ -567,12 +562,11 @@ break after @samp{(} or before @samp{)}, @samp{:} or @samp{?}).
567@subsection The Fill Prefix 562@subsection The Fill Prefix
568 563
569@cindex fill prefix 564@cindex fill prefix
570 To fill a paragraph in which each line starts with a special marker 565 The @dfn{fill prefix} feature allows paragraphs to be filled so that
571(which might be a few spaces, giving an indented paragraph), you can use 566each line starts with a special string of characters (such as a
572the @dfn{fill prefix} feature. The fill prefix is a string that Emacs 567sequence of spaces, giving an indented paragraph). You can specify a
573expects every line to start with, and which is not included in filling. 568fill prefix explicitly; otherwise, Emacs tries to deduce one
574You can specify a fill prefix explicitly; Emacs can also deduce the 569automatically (@pxref{Adaptive Fill}).
575fill prefix automatically (@pxref{Adaptive Fill}).
576 570
577@table @kbd 571@table @kbd
578@item C-x . 572@item C-x .
@@ -596,15 +590,15 @@ after the @kbd{C-x}.) To turn off the fill prefix, specify an empty
596prefix: type @w{@kbd{C-x .}}@: with point at the beginning of a line. 590prefix: type @w{@kbd{C-x .}}@: with point at the beginning of a line.
597 591
598 When a fill prefix is in effect, the fill commands remove the fill 592 When a fill prefix is in effect, the fill commands remove the fill
599prefix from each line of the paragraph before filling and insert it on 593prefix from each line of the paragraph before filling, and insert it
600each line after filling. (The beginning of the first line of the 594on each line after filling. (The beginning of the first line of the
601paragraph is left unchanged, since often that is intentionally 595paragraph is left unchanged, since often that is intentionally
602different.) Auto Fill mode also inserts the fill prefix automatically 596different.) Auto Fill mode also inserts the fill prefix automatically
603when it makes a new line. The @kbd{C-o} command inserts the fill 597when it makes a new line (@pxref{Auto Fill}). The @kbd{C-o} command
604prefix on new lines it creates, when you use it at the beginning of a 598inserts the fill prefix on new lines it creates, when you use it at
605line (@pxref{Blank Lines}). Conversely, the command @kbd{M-^} deletes 599the beginning of a line (@pxref{Blank Lines}). Conversely, the
606the prefix (if it occurs) after the newline that it deletes 600command @kbd{M-^} deletes the prefix (if it occurs) after the newline
607(@pxref{Indentation}). 601that it deletes (@pxref{Indentation}).
608 602
609 For example, if @code{fill-column} is 40 and you set the fill prefix 603 For example, if @code{fill-column} is 40 and you set the fill prefix
610to @samp{;; }, then @kbd{M-q} in the following text 604to @samp{;; }, then @kbd{M-q} in the following text
@@ -657,7 +651,8 @@ per-buffer variable; altering the variable affects only the current buffer,
657but there is a default value which you can change as well. @xref{Locals}. 651but there is a default value which you can change as well. @xref{Locals}.
658 652
659 The @code{indentation} text property provides another way to control 653 The @code{indentation} text property provides another way to control
660the amount of indentation paragraphs receive. @xref{Format Indentation}. 654the amount of indentation paragraphs receive. @xref{Enriched
655Indentation}.
661 656
662@node Adaptive Fill 657@node Adaptive Fill
663@subsection Adaptive Filling 658@subsection Adaptive Filling
@@ -754,17 +749,16 @@ Convert region to upper case (@code{upcase-region}).
754@findex downcase-word 749@findex downcase-word
755@findex upcase-word 750@findex upcase-word
756@findex capitalize-word 751@findex capitalize-word
757 The word conversion commands are the most useful. @kbd{M-l} 752 @kbd{M-l} (@code{downcase-word}) converts the word after point to
758(@code{downcase-word}) converts the word after point to lower case, moving 753lower case, moving past it. Thus, repeating @kbd{M-l} converts
759past it. Thus, repeating @kbd{M-l} converts successive words. 754successive words. @kbd{M-u} (@code{upcase-word}) converts to all
760@kbd{M-u} (@code{upcase-word}) converts to all capitals instead, while 755capitals instead, while @kbd{M-c} (@code{capitalize-word}) puts the
761@kbd{M-c} (@code{capitalize-word}) puts the first letter of the word 756first letter of the word into upper case and the rest into lower case.
762into upper case and the rest into lower case. All these commands convert 757All these commands convert several words at once if given an argument.
763several words at once if given an argument. They are especially convenient 758They are especially convenient for converting a large amount of text
764for converting a large amount of text from all upper case to mixed case, 759from all upper case to mixed case, because you can move through the
765because you can move through the text using @kbd{M-l}, @kbd{M-u} or 760text using @kbd{M-l}, @kbd{M-u} or @kbd{M-c} on each word as
766@kbd{M-c} on each word as appropriate, occasionally using @kbd{M-f} instead 761appropriate, occasionally using @kbd{M-f} instead to skip a word.
767to skip a word.
768 762
769 When given a negative argument, the word case conversion commands apply 763 When given a negative argument, the word case conversion commands apply
770to the appropriate number of words before point, but do not move point. 764to the appropriate number of words before point, but do not move point.
@@ -798,9 +792,10 @@ enable the command, which means it will not ask for confirmation again.
798@cindex mode, Text 792@cindex mode, Text
799@findex text-mode 793@findex text-mode
800 794
801 When you edit files of text in a human language, it's more convenient 795 Text mode is a major mode for editing files of text in a human
802to use Text mode rather than Fundamental mode. To enter Text mode, type 796language. Files which have names ending in the extension @file{.txt}
803@kbd{M-x text-mode}. 797are usually opened in Text mode (@pxref{Choosing Modes}). To
798explicitly switch to Text mode, type @kbd{M-x text-mode}.
804 799
805 In Text mode, only blank lines and page delimiters separate 800 In Text mode, only blank lines and page delimiters separate
806paragraphs. As a result, paragraphs can be indented, and adaptive 801paragraphs. As a result, paragraphs can be indented, and adaptive
@@ -808,46 +803,49 @@ filling determines what indentation to use when filling a paragraph.
808@xref{Adaptive Fill}. 803@xref{Adaptive Fill}.
809 804
810@kindex TAB @r{(Text mode)} 805@kindex TAB @r{(Text mode)}
811 Text mode defines @key{TAB} to run @code{indent-relative} 806 In Text mode, the @key{TAB} (@code{indent-for-tab-command}) command
812(@pxref{Indentation}), so that you can conveniently indent a line like 807usually inserts whitespace up to the next tab stop, instead of
813the previous line. 808indenting the current line. @xref{Indentation}, for details.
814 809
815 Text mode turns off the features concerned with comments except when 810 Text mode turns off the features concerned with comments except when
816you explicitly invoke them. It changes the syntax table so that 811you explicitly invoke them. It changes the syntax table so that
817single-quotes are considered part of words. However, if a word starts 812single-quotes are considered part of words (e.g.@: @samp{don't} is
818with single-quotes, these are treated as a prefix for purposes such as 813considered one word). However, if a word starts with a single-quote,
819capitalization. That is, @kbd{M-c} will convert @samp{'hello'} into 814it is treated as a prefix for the purposes of capitalization
820@samp{'Hello'}, as expected. 815(e.g.@: @kbd{M-c} converts @samp{'hello'} into @samp{'Hello'}, as
816expected).
821 817
822@cindex Paragraph-Indent Text mode 818@cindex Paragraph-Indent Text mode
823@cindex mode, Paragraph-Indent Text 819@cindex mode, Paragraph-Indent Text
824@findex paragraph-indent-text-mode 820@findex paragraph-indent-text-mode
825@findex paragraph-indent-minor-mode 821@findex paragraph-indent-minor-mode
826 If you indent the first lines of paragraphs, then you should use 822 If you indent the first lines of paragraphs, then you should use
827Paragraph-Indent Text mode rather than Text mode. In this mode, you 823Paragraph-Indent Text mode (@kbd{M-x paragraph-indent-text-mode})
828do not need to have blank lines between paragraphs, because the 824rather than Text mode. In that mode, you do not need to have blank
829first-line indentation is sufficient to start a paragraph; however 825lines between paragraphs, because the first-line indentation is
830paragraphs in which every line is indented are not supported. Use 826sufficient to start a paragraph; however paragraphs in which every
831@kbd{M-x paragraph-indent-text-mode} to enter this mode. Use @kbd{M-x 827line is indented are not supported. Use @kbd{M-x
832paragraph-indent-minor-mode} to enable an equivalent minor mode in 828paragraph-indent-minor-mode} to enable an equivalent minor mode for
833situations where you can't change the major mode---in mail 829situations where you shouldn't change the major mode---in mail
834composition, for instance. 830composition, for instance.
835 831
836@kindex M-TAB @r{(Text mode)} 832@kindex M-TAB @r{(Text mode)}
837 Text mode, and all the modes based on it, define @kbd{M-@key{TAB}} 833 Text mode binds @kbd{M-@key{TAB}} to @code{ispell-complete-word}.
838as the command @code{ispell-complete-word}, which performs completion 834This command performs completion of the partial word in the buffer
839of the partial word in the buffer before point, using the spelling 835before point, using the spelling dictionary as the space of possible
840dictionary as the space of possible words. @xref{Spelling}. If your 836words. @xref{Spelling}. If your window manager defines
841window manager defines @kbd{M-@key{TAB}} to switch windows, you can 837@kbd{M-@key{TAB}} to switch windows, you can type @kbd{@key{ESC}
842type @kbd{@key{ESC} @key{TAB}} or @kbd{C-M-i}. 838@key{TAB}} or @kbd{C-M-i} instead.
843 839
844@vindex text-mode-hook 840@vindex text-mode-hook
845 Entering Text mode runs the hook @code{text-mode-hook}. Other major 841 Entering Text mode runs the mode hook @code{text-mode-hook}
846modes related to Text mode also run this hook, followed by hooks of 842(@pxref{Major Modes}).
847their own; this includes Paragraph-Indent Text mode, Nroff mode, 843
848@TeX{} mode, Outline mode, and Message mode. Hook functions on 844 The following sections describe several major modes that are
849@code{text-mode-hook} can look at the value of @code{major-mode} to 845@dfn{derived} from Text mode. These derivatives share most of the
850see which of these modes is actually being entered. @xref{Hooks}. 846features of Text mode described above. In particular, derivatives of
847Text mode run @code{text-mode-hook} prior to running their own mode
848hooks.
851 849
852@node Outline Mode 850@node Outline Mode
853@section Outline Mode 851@section Outline Mode
@@ -858,29 +856,34 @@ see which of these modes is actually being entered. @xref{Hooks}.
858@findex outline-mode 856@findex outline-mode
859@findex outline-minor-mode 857@findex outline-minor-mode
860@vindex outline-minor-mode-prefix 858@vindex outline-minor-mode-prefix
861 Outline mode is a major mode much like Text mode but intended for 859@vindex outline-mode-hook
862editing outlines. It allows you to make parts of the text temporarily 860 Outline mode is a major mode derived from Text mode, which is
863invisible so that you can see the outline structure. Type @kbd{M-x 861specialized for editing outlines. It provides commands to navigate
864outline-mode} to switch to Outline mode as the major mode of the current 862between entries in the outline structure, and commands to make parts
865buffer. 863of a buffer temporarily invisible, so that the outline structure may
866 864be more easily viewed. Type @kbd{M-x outline-mode} to switch to
867 When Outline mode makes a line invisible, the line does not appear 865Outline mode. Entering Outline mode runs the hook
868on the screen. The screen appears exactly as if the invisible line 866@code{text-mode-hook} followed by the hook @code{outline-mode-hook}
869were deleted, except that an ellipsis (three periods in a row) appears 867(@pxref{Hooks}).
870at the end of the previous visible line. (Multiple consecutive 868
871invisible lines produce just one ellipsis.) 869 When you use an Outline mode command to make a line invisible
870(@pxref{Outline Visibility}), the line disappears from the screen. An
871ellipsis (three periods in a row) is displayed at the end of the
872previous visible line, to indicate the hidden text. Multiple
873consecutive invisible lines produce just one ellipsis.
872 874
873 Editing commands that operate on lines, such as @kbd{C-n} and 875 Editing commands that operate on lines, such as @kbd{C-n} and
874@kbd{C-p}, treat the text of the invisible line as part of the previous 876@kbd{C-p}, treat the text of the invisible line as part of the
875visible line. Killing the ellipsis at the end of a visible line 877previous visible line. Killing the ellipsis at the end of a visible
876really kills all the following invisible lines. 878line really kills all the following invisible text associated with the
877 879ellipsis.
878 Outline minor mode provides the same commands as the major mode, 880
879Outline mode, but you can use it in conjunction with other major modes. 881 Outline minor mode is a buffer-local minor mode which provides the
880Type @kbd{M-x outline-minor-mode} to enable the Outline minor mode in 882same commands as the major mode, Outline mode, but can be used in
881the current buffer. You can also specify this in the text of a file, 883conjunction with other major modes. You can type @kbd{M-x
882with a file local variable of the form @samp{mode: outline-minor} 884outline-minor-mode} to toggle Outline minor mode in the current
883(@pxref{File Variables}). 885buffer, or use a file-local variable setting to enable it in a
886specific file (@pxref{File Variables}).
884 887
885@kindex C-c @@ @r{(Outline minor mode)} 888@kindex C-c @@ @r{(Outline minor mode)}
886 The major mode, Outline mode, provides special key bindings on the 889 The major mode, Outline mode, provides special key bindings on the
@@ -889,17 +892,12 @@ with a file local variable of the form @samp{mode: outline-minor}
889major mode's special commands. (The variable 892major mode's special commands. (The variable
890@code{outline-minor-mode-prefix} controls the prefix used.) 893@code{outline-minor-mode-prefix} controls the prefix used.)
891 894
892@vindex outline-mode-hook
893 Entering Outline mode runs the hook @code{text-mode-hook} followed by
894the hook @code{outline-mode-hook} (@pxref{Hooks}).
895
896@menu 895@menu
897* Format: Outline Format. What the text of an outline looks like. 896* Outline Format:: What the text of an outline looks like.
898* Motion: Outline Motion. Special commands for moving through 897* Outline Motion:: Special commands for moving through outlines.
899 outlines. 898* Outline Visibility:: Commands to control what is visible.
900* Visibility: Outline Visibility. Commands to control what is visible. 899* Outline Views:: Outlines and multiple views.
901* Views: Outline Views. Outlines and multiple views. 900* Foldout:: Folding means zooming in on outlines.
902* Foldout:: Folding means zooming in on outlines.
903@end menu 901@end menu
904 902
905@node Outline Format 903@node Outline Format
@@ -909,13 +907,13 @@ the hook @code{outline-mode-hook} (@pxref{Hooks}).
909@cindex body lines (Outline mode) 907@cindex body lines (Outline mode)
910 Outline mode assumes that the lines in the buffer are of two types: 908 Outline mode assumes that the lines in the buffer are of two types:
911@dfn{heading lines} and @dfn{body lines}. A heading line represents a 909@dfn{heading lines} and @dfn{body lines}. A heading line represents a
912topic in the outline. Heading lines start with one or more stars; the 910topic in the outline. Heading lines start with one or more asterisk
913number of stars determines the depth of the heading in the outline 911(@samp{*}) characters; the number of asterisks determines the depth of
914structure. Thus, a heading line with one star is a major topic; all the 912the heading in the outline structure. Thus, a heading line with one
915heading lines with two stars between it and the next one-star heading 913@samp{*} is a major topic; all the heading lines with two @samp{*}s
916are its subtopics; and so on. Any line that is not a heading line is a 914between it and the next one-@samp{*} heading are its subtopics; and so
917body line. Body lines belong with the preceding heading line. Here is 915on. Any line that is not a heading line is a body line. Body lines
918an example: 916belong with the preceding heading line. Here is an example:
919 917
920@example 918@example
921* Food 919* Food
@@ -997,12 +995,10 @@ Move point up to a lower-level (more inclusive) visible heading line
997@findex outline-previous-visible-heading 995@findex outline-previous-visible-heading
998@kindex C-c C-n @r{(Outline mode)} 996@kindex C-c C-n @r{(Outline mode)}
999@kindex C-c C-p @r{(Outline mode)} 997@kindex C-c C-p @r{(Outline mode)}
1000 @kbd{C-c C-n} (@code{outline-next-visible-heading}) moves down to the next 998 @kbd{C-c C-n} (@code{outline-next-visible-heading}) moves down to
1001heading line. @kbd{C-c C-p} (@code{outline-previous-visible-heading}) moves 999the next heading line. @kbd{C-c C-p}
1002similarly backward. Both accept numeric arguments as repeat counts. The 1000(@code{outline-previous-visible-heading}) moves similarly backward.
1003names emphasize that invisible headings are skipped, but this is not really 1001Both accept numeric arguments as repeat counts.
1004a special feature. All editing commands that look for lines ignore the
1005invisible lines automatically.
1006 1002
1007@findex outline-up-heading 1003@findex outline-up-heading
1008@findex outline-forward-same-level 1004@findex outline-forward-same-level
@@ -1010,21 +1006,19 @@ invisible lines automatically.
1010@kindex C-c C-f @r{(Outline mode)} 1006@kindex C-c C-f @r{(Outline mode)}
1011@kindex C-c C-b @r{(Outline mode)} 1007@kindex C-c C-b @r{(Outline mode)}
1012@kindex C-c C-u @r{(Outline mode)} 1008@kindex C-c C-u @r{(Outline mode)}
1013 More powerful motion commands understand the level structure of headings. 1009 The commands @kbd{C-c C-f} (@code{outline-forward-same-level}) and
1014@kbd{C-c C-f} (@code{outline-forward-same-level}) and
1015@kbd{C-c C-b} (@code{outline-backward-same-level}) move from one 1010@kbd{C-c C-b} (@code{outline-backward-same-level}) move from one
1016heading line to another visible heading at the same depth in 1011heading line to another visible heading at the same depth in the
1017the outline. @kbd{C-c C-u} (@code{outline-up-heading}) moves 1012outline. @kbd{C-c C-u} (@code{outline-up-heading}) moves backward to
1018backward to another heading that is less deeply nested. 1013another heading that is less deeply nested.
1019 1014
1020@node Outline Visibility 1015@node Outline Visibility
1021@subsection Outline Visibility Commands 1016@subsection Outline Visibility Commands
1022 1017
1023 The other special commands of outline mode are used to make lines visible 1018 Outline mode provides several commands for temporarily hiding or
1024or invisible. Their names all start with @code{hide} or @code{show}. 1019revealing parts of the buffer, based on the outline structure. These
1025Most of them fall into pairs of opposites. They are not undoable; instead, 1020commands are not undoable; their effects are simply not recorded by
1026you can undo right past them. Making lines visible or invisible is simply 1021the undo mechanism, so you can undo right past them (@pxref{Undo}).
1027not recorded by the undo mechanism.
1028 1022
1029 Many of these commands act on the ``current'' heading line. If 1023 Many of these commands act on the ``current'' heading line. If
1030point is on a heading line, that is the current heading line; if point 1024point is on a heading line, that is the current heading line; if point
@@ -1068,72 +1062,64 @@ the headings leading up from there to the top level of the outline
1068@findex show-entry 1062@findex show-entry
1069@kindex C-c C-c @r{(Outline mode)} 1063@kindex C-c C-c @r{(Outline mode)}
1070@kindex C-c C-e @r{(Outline mode)} 1064@kindex C-c C-e @r{(Outline mode)}
1071 Two commands that are exact opposites are @kbd{C-c C-c} 1065 The simplest of these commands are @kbd{C-c C-c}
1072(@code{hide-entry}) and @kbd{C-c C-e} (@code{show-entry}). They apply 1066(@code{hide-entry}), which hides the body lines directly following the
1073to the body lines directly following the current heading line. 1067current heading line, and @kbd{C-c C-e} (@code{show-entry}), which
1074Subheadings and their bodies are not affected. 1068reveals them. Subheadings and their bodies are not affected.
1075 1069
1076@findex hide-subtree 1070@findex hide-subtree
1077@findex show-subtree 1071@findex show-subtree
1078@kindex C-c C-s @r{(Outline mode)} 1072@kindex C-c C-s @r{(Outline mode)}
1079@kindex C-c C-d @r{(Outline mode)} 1073@kindex C-c C-d @r{(Outline mode)}
1080@cindex subtree (Outline mode) 1074@cindex subtree (Outline mode)
1081 Two more powerful opposites are @kbd{C-c C-d} (@code{hide-subtree}) 1075 The commands @kbd{C-c C-d} (@code{hide-subtree}) and @kbd{C-c C-s}
1082and @kbd{C-c C-s} (@code{show-subtree}). Both apply to the current 1076(@code{show-subtree}) are more powerful. They apply to the current
1083heading line's @dfn{subtree}: its body, all its subheadings, both 1077heading line's @dfn{subtree}: its body, all of its subheadings, both
1084direct and indirect, and all of their bodies. In other words, the 1078direct and indirect, and all of their bodies.
1085subtree contains everything following the current heading line, up to
1086and not including the next heading of the same or higher rank.
1087 1079
1088@findex hide-leaves 1080@findex hide-leaves
1089@findex show-branches 1081@findex show-branches
1082@findex show-children
1090@kindex C-c C-l @r{(Outline mode)} 1083@kindex C-c C-l @r{(Outline mode)}
1091@kindex C-c C-k @r{(Outline mode)} 1084@kindex C-c C-k @r{(Outline mode)}
1092 Intermediate between a visible subtree and an invisible one is having
1093all the subheadings visible but none of the body. There are two
1094commands for doing this, depending on whether you want to hide the
1095bodies or make the subheadings visible. They are @kbd{C-c C-l}
1096(@code{hide-leaves}) and @kbd{C-c C-k} (@code{show-branches}).
1097
1098@kindex C-c C-i @r{(Outline mode)} 1085@kindex C-c C-i @r{(Outline mode)}
1099@findex show-children 1086 The command @kbd{C-c C-l} (@code{hide-leaves}) hides the body of the
1100 A little weaker than @code{show-branches} is @kbd{C-c C-i} 1087current heading line as well as all the bodies in its subtree; the
1101(@code{show-children}). It makes just the direct subheadings 1088subheadings themselves are left visible. The command @kbd{C-c C-k}
1102visible---those one level down. Deeper subheadings remain invisible, if 1089(@code{show-branches}) reveals the subheadings, if they had previously
1103they were invisible. 1090been hidden (e.g.@: by @kbd{C-c C-d}). The command @kbd{C-c C-i}
1091(@code{show-children}) is a weaker version of this; it reveals just
1092the direct subheadings, i.e.@: those one level down.
1093
1094@findex hide-other
1095@kindex C-c C-o @r{(Outline mode)}
1096 The command @kbd{C-c C-o} (@code{hide-other}) hides everything
1097except the entry that point is in, plus its parents (the headers
1098leading up from there to top level in the outline) and the top level
1099headings.
1104 1100
1105@findex hide-body 1101@findex hide-body
1106@findex show-all 1102@findex show-all
1107@kindex C-c C-t @r{(Outline mode)} 1103@kindex C-c C-t @r{(Outline mode)}
1108@kindex C-c C-a @r{(Outline mode)} 1104@kindex C-c C-a @r{(Outline mode)}
1109 Two commands have a blanket effect on the whole file. @kbd{C-c C-t}
1110(@code{hide-body}) makes all body lines invisible, so that you see just
1111the outline structure (as a special exception, it will not hide lines
1112at the top of the file, preceding the first header line, even though
1113these are technically body lines). @kbd{C-c C-a} (@code{show-all})
1114makes all lines visible. These commands can be thought of as a pair
1115of opposites even though @kbd{C-c C-a} applies to more than just body
1116lines.
1117
1118@findex hide-sublevels 1105@findex hide-sublevels
1119@kindex C-c C-q @r{(Outline mode)} 1106@kindex C-c C-q @r{(Outline mode)}
1120 The command @kbd{C-c C-q} (@code{hide-sublevels}) hides all but the 1107 The remaining commands affect the whole buffer. @kbd{C-c C-t}
1121top level headings. With a numeric argument @var{n}, it hides everything 1108(@code{hide-body}) makes all body lines invisible, so that you see
1122except the top @var{n} levels of heading lines. 1109just the outline structure (as a special exception, it will not hide
1123 1110lines at the top of the file, preceding the first header line, even
1124@findex hide-other 1111though these are technically body lines). @kbd{C-c C-a}
1125@kindex C-c C-o @r{(Outline mode)} 1112(@code{show-all}) makes all lines visible. @kbd{C-c C-q}
1126 The command @kbd{C-c C-o} (@code{hide-other}) hides everything except 1113(@code{hide-sublevels}) hides all but the top level headings; with a
1127the heading and body text that point is in, plus its parents (the headers 1114numeric argument @var{n}, it hides everything except the top @var{n}
1128leading up from there to top level in the outline) and the top level 1115levels of heading lines.
1129headings.
1130 1116
1131@findex reveal-mode 1117@findex reveal-mode
1132 When incremental search finds text that is hidden by Outline mode, 1118 When incremental search finds text that is hidden by Outline mode,
1133it makes that part of the buffer visible. If you exit the search 1119it makes that part of the buffer visible. If you exit the search at
1134at that position, the text remains visible. You can also 1120that position, the text remains visible. You can also automatically
1135automatically make text visible as you navigate in it by using 1121make text visible as you navigate in it by using Reveal mode (@kbd{M-x
1136@kbd{M-x reveal-mode}. 1122reveal-mode}), a buffer-local minor mode.
1137 1123
1138@node Outline Views 1124@node Outline Views
1139@subsection Viewing One Outline in Multiple Views 1125@subsection Viewing One Outline in Multiple Views
@@ -1253,7 +1239,7 @@ it in order for this to take effect.
1253 1239
1254 To use the Foldout package, you can type @kbd{M-x load-library 1240 To use the Foldout package, you can type @kbd{M-x load-library
1255@key{RET} foldout @key{RET}}; or you can arrange for to do that 1241@key{RET} foldout @key{RET}}; or you can arrange for to do that
1256automatically by putting this in your @file{.emacs} file: 1242automatically by putting this in your init file (@pxref{Init File}):
1257 1243
1258@example 1244@example
1259(eval-after-load "outline" '(require 'foldout)) 1245(eval-after-load "outline" '(require 'foldout))
@@ -1300,18 +1286,48 @@ Emacs does not guess right, you can select the correct variant of
1300@TeX{} mode using the command @kbd{M-x plain-tex-mode}, @kbd{M-x 1286@TeX{} mode using the command @kbd{M-x plain-tex-mode}, @kbd{M-x
1301latex-mode}, @kbd{M-x slitex-mode}, or @kbd{doctex-mode}. 1287latex-mode}, @kbd{M-x slitex-mode}, or @kbd{doctex-mode}.
1302 1288
1303 Emacs also provides Bib@TeX{} mode, a major mode for editing 1289 The following sections document the features of @TeX{} mode and its
1304Bib@TeX{} files. Bib@TeX{} is a tool for storing and formatting 1290variants. There are several other @TeX{}-related Emacs packages,
1305bibliographic references, which is commonly used together with 1291which are not documented in this manual:
1306La@TeX{}. In addition, the Ref@TeX{} package provides a minor mode 1292
1307which can be used in conjunction with La@TeX{} mode to manage 1293@itemize @bullet
1308bibliographic references. @inforef{Top,, reftex}. 1294@item
1295Bib@TeX{} mode is a major mode for Bib@TeX{} files, which are commonly
1296used for keeping bibliographic references for La@TeX{} documents. For
1297more information, see the documentation string for the command
1298@code{bibtex-mode}.
1299
1300@item
1301The Ref@TeX{} package provides a minor mode which can be used in
1302conjunction with La@TeX{} mode to manage bibliographic references.
1303@ifinfo
1304@xref{Top,The Ref@TeX{} Manual,,reftex}.
1305@end ifinfo
1306@ifnotinfo
1307For more information, see the Ref@TeX{} Info manual, which is
1308distributed with Emacs.
1309@end ifnotinfo
1310
1311@item
1312The AUC@TeX{} package provides more advanced features for editing
1313@TeX{} and its related formats, including the ability to preview
1314@TeX{} equations within Emacs buffers. Unlike Bib@TeX{} mode and the
1315Ref@TeX{} package, AUC@TeX{} is not distributed with Emacs by default.
1316It can be downloaded via the Package Menu (@pxref{Packages}); once
1317installed, see
1318@ifinfo
1319@ref{Top,The AUC@TeX{} Manual,,auctex}.
1320@end ifinfo
1321@ifnotinfo
1322the AUC@TeX{} manual, which is included with the package.
1323@end ifnotinfo
1324@end itemize
1309 1325
1310@menu 1326@menu
1311* Editing: TeX Editing. Special commands for editing in TeX mode. 1327* TeX Editing:: Special commands for editing in TeX mode.
1312* LaTeX: LaTeX Editing. Additional commands for LaTeX input files. 1328* LaTeX Editing:: Additional commands for LaTeX input files.
1313* Printing: TeX Print. Commands for printing part of a file with TeX. 1329* TeX Print:: Commands for printing part of a file with TeX.
1314* Misc: TeX Misc. Customization of TeX mode, and related features. 1330* TeX Misc:: Customization of TeX mode, and related features.
1315@end menu 1331@end menu
1316 1332
1317@node TeX Editing 1333@node TeX Editing
@@ -1336,12 +1352,10 @@ Move forward past the next unmatched close brace (@code{up-list}).
1336@findex tex-insert-quote 1352@findex tex-insert-quote
1337@kindex " @r{(@TeX{} mode)} 1353@kindex " @r{(@TeX{} mode)}
1338 In @TeX{}, the character @samp{"} is not normally used; instead, 1354 In @TeX{}, the character @samp{"} is not normally used; instead,
1339quotations begin with @samp{``} and end with @samp{''}. For 1355quotations begin with @samp{``} and end with @samp{''}. @TeX{} mode
1340convenience, @TeX{} mode overrides the normal meaning of the key 1356therefore binds the @kbd{"} key to the @code{tex-insert-quote}
1341@kbd{"} with a command that inserts a pair of single-quotes or 1357command. This inserts @samp{``} after whitespace or an open brace,
1342backquotes (@code{tex-insert-quote}). To be precise, it inserts 1358@samp{"} after a backslash, and @samp{''} after any other character.
1343@samp{``} after whitespace or an open brace, @samp{"} after a
1344backslash, and @samp{''} after any other character.
1345 1359
1346 As a special exception, if you type @kbd{"} when the text before 1360 As a special exception, if you type @kbd{"} when the text before
1347point is either @samp{``} or @samp{''}, Emacs replaces that preceding 1361point is either @samp{``} or @samp{''}, Emacs replaces that preceding
@@ -1349,9 +1363,6 @@ text with a single @samp{"} character. You can therefore type
1349@kbd{""} to insert @samp{"}, should you ever need to do so. (You can 1363@kbd{""} to insert @samp{"}, should you ever need to do so. (You can
1350also use @kbd{C-q "} to insert this character.) 1364also use @kbd{C-q "} to insert this character.)
1351 1365
1352 To disable the @kbd{"} expansion feature, eliminate that binding in
1353the local map (@pxref{Key Bindings}).
1354
1355 In @TeX{} mode, @samp{$} has a special syntax code which attempts to 1366 In @TeX{} mode, @samp{$} has a special syntax code which attempts to
1356understand the way @TeX{} math mode delimiters match. When you insert a 1367understand the way @TeX{} math mode delimiters match. When you insert a
1357@samp{$} that is meant to exit math mode, the position of the matching 1368@samp{$} that is meant to exit math mode, the position of the matching
@@ -1376,13 +1387,14 @@ text that belongs inside. Afterward, use the command @kbd{C-c @}}
1376@findex tex-validate-region 1387@findex tex-validate-region
1377@findex tex-terminate-paragraph 1388@findex tex-terminate-paragraph
1378@kindex C-j @r{(@TeX{} mode)} 1389@kindex C-j @r{(@TeX{} mode)}
1379 There are two commands for checking the matching of braces. @kbd{C-j} 1390 There are two commands for checking the matching of braces.
1380(@code{tex-terminate-paragraph}) checks the paragraph before point, and 1391@kbd{C-j} (@code{tex-terminate-paragraph}) checks the paragraph before
1381inserts two newlines to start a new paragraph. It outputs a message in 1392point, and inserts two newlines to start a new paragraph. It outputs
1382the echo area if any mismatch is found. @kbd{M-x tex-validate-region} 1393a message in the echo area if any mismatch is found. @kbd{M-x
1383checks a region, paragraph by paragraph. The errors are listed in the 1394tex-validate-region} checks a region, paragraph by paragraph. The
1384@samp{*Occur*} buffer, and you can use @kbd{C-c C-c} or @kbd{Mouse-2} in 1395errors are listed in an @samp{*Occur*} buffer; you can use the usual
1385that buffer to go to a particular mismatch. 1396Occur mode commands in that buffer, such as @kbd{C-c C-c}, to visit a
1397particular mismatch (@pxref{Other Repeating Search}).
1386 1398
1387 Note that Emacs commands count square brackets and parentheses in 1399 Note that Emacs commands count square brackets and parentheses in
1388@TeX{} mode, not just braces. This is not strictly correct for the 1400@TeX{} mode, not just braces. This is not strictly correct for the
@@ -1394,8 +1406,8 @@ to work with them.
1394@node LaTeX Editing 1406@node LaTeX Editing
1395@subsection La@TeX{} Editing Commands 1407@subsection La@TeX{} Editing Commands
1396 1408
1397 La@TeX{} mode (and its obsolete variant, Sli@TeX{} mode) provide a 1409 La@TeX{} mode provides a few extra features not applicable to plain
1398few extra features not applicable to plain @TeX{}: 1410@TeX{}:
1399 1411
1400@table @kbd 1412@table @kbd
1401@item C-c C-o 1413@item C-c C-o
@@ -1408,60 +1420,59 @@ Close the innermost La@TeX{} block not yet closed
1408 1420
1409@findex tex-latex-block 1421@findex tex-latex-block
1410@kindex C-c C-o @r{(La@TeX{} mode)} 1422@kindex C-c C-o @r{(La@TeX{} mode)}
1411@vindex latex-block-names 1423 In La@TeX{} input, @samp{\begin} and @samp{\end} tags are used to
1412 In La@TeX{} input, @samp{\begin} and @samp{\end} commands are used to 1424group blocks of text. To insert a block, type @kbd{C-c C-o}
1413group blocks of text. To insert a @samp{\begin} and a matching 1425(@code{tex-latex-block}). This prompts for a block type, and inserts
1414@samp{\end} (on a new line following the @samp{\begin}), use @kbd{C-c 1426the appropriate matching @samp{\begin} and @samp{\end} tags, leaving a
1415C-o} (@code{tex-latex-block}). A blank line is inserted between the 1427blank line between the two and moving point there.
1416two, and point is left there. You can use completion when you enter the
1417block type; to specify additional block type names beyond the standard
1418list, set the variable @code{latex-block-names}. For example, here's
1419how to add @samp{theorem}, @samp{corollary}, and @samp{proof}:
1420 1428
1421@example 1429@vindex latex-block-names
1422(setq latex-block-names '("theorem" "corollary" "proof")) 1430 When entering the block type argument to @kbd{C-c C-o}, you can use
1423@end example 1431the usual completion commands (@pxref{Completion}). The default
1432completion list contains the standard La@TeX{} block types. If you
1433want additional block types for completion, customize the list
1434variable @code{latex-block-names}.
1424 1435
1425@findex tex-close-latex-block 1436@findex tex-close-latex-block
1426@kindex C-c C-e @r{(La@TeX{} mode)} 1437@kindex C-c C-e @r{(La@TeX{} mode)}
1427 In La@TeX{} input, @samp{\begin} and @samp{\end} commands must 1438 In La@TeX{} input, @samp{\begin} and @samp{\end} tags must balance.
1428balance. You can use @kbd{C-c C-e} (@code{tex-close-latex-block}) to 1439You can use @kbd{C-c C-e} (@code{tex-close-latex-block}) to insert an
1429insert automatically a matching @samp{\end} to match the last unmatched 1440@samp{\end} tag which matches the last unmatched @samp{\begin}. It
1430@samp{\begin}. It indents the @samp{\end} to match the corresponding 1441also indents the @samp{\end} to match the corresponding @samp{\begin},
1431@samp{\begin}. It inserts a newline after @samp{\end} if point is at 1442and inserts a newline after the @samp{\end} tag if point is at the
1432the beginning of a line. 1443beginning of a line.
1433 1444
1434@node TeX Print 1445@node TeX Print
1435@subsection @TeX{} Printing Commands 1446@subsection @TeX{} Printing Commands
1436 1447
1437 You can invoke @TeX{} as an inferior of Emacs on either the entire 1448 You can invoke @TeX{} as an subprocess of Emacs, supplying either
1438contents of the buffer or just a region at a time. Running @TeX{} in 1449the entire contents of the buffer or just part of it (e.g.@: one
1439this way on just one chapter is a good way to see what your changes 1450chapter of a larger document).
1440look like without taking the time to format the entire file.
1441 1451
1442@table @kbd 1452@table @kbd
1453@item C-c C-b
1454Invoke @TeX{} on the entire current buffer (@code{tex-buffer}).
1443@item C-c C-r 1455@item C-c C-r
1444Invoke @TeX{} on the current region, together with the buffer's header 1456Invoke @TeX{} on the current region, together with the buffer's header
1445(@code{tex-region}). 1457(@code{tex-region}).
1446@item C-c C-b
1447Invoke @TeX{} on the entire current buffer (@code{tex-buffer}).
1448@item C-c @key{TAB}
1449Invoke Bib@TeX{} on the current file (@code{tex-bibtex-file}).
1450@item C-c C-f 1458@item C-c C-f
1451Invoke @TeX{} on the current file (@code{tex-file}). 1459Invoke @TeX{} on the current file (@code{tex-file}).
1452@item C-c C-l 1460
1453Recenter the window showing output from the inferior @TeX{} so that
1454the last line can be seen (@code{tex-recenter-output-buffer}).
1455@item C-c C-k
1456Kill the @TeX{} subprocess (@code{tex-kill-job}).
1457@item C-c C-p
1458Print the output from the last @kbd{C-c C-r}, @kbd{C-c C-b}, or @kbd{C-c
1459C-f} command (@code{tex-print}).
1460@item C-c C-v 1461@item C-c C-v
1461Preview the output from the last @kbd{C-c C-r}, @kbd{C-c C-b}, or @kbd{C-c 1462Preview the output from the last @kbd{C-c C-r}, @kbd{C-c C-b}, or @kbd{C-c
1462C-f} command (@code{tex-view}). 1463C-f} command (@code{tex-view}).
1463@item C-c C-q 1464
1464Show the printer queue (@code{tex-show-print-queue}). 1465@item C-c C-p
1466Print the output from the last @kbd{C-c C-b}, @kbd{C-c C-r}, or
1467@kbd{C-c C-f} command (@code{tex-print}).
1468
1469@item C-c @key{TAB}
1470Invoke Bib@TeX{} on the current file (@code{tex-bibtex-file}).
1471@item C-c C-l
1472Recenter the window showing output from @TeX{} so that the last line
1473can be seen (@code{tex-recenter-output-buffer}).
1474@item C-c C-k
1475Kill the @TeX{} subprocess (@code{tex-kill-job}).
1465@item C-c C-c 1476@item C-c C-c
1466Invoke some other compilation command on the entire current buffer 1477Invoke some other compilation command on the entire current buffer
1467(@code{tex-compile}). 1478(@code{tex-compile}).
@@ -1469,49 +1480,51 @@ Invoke some other compilation command on the entire current buffer
1469 1480
1470@findex tex-buffer 1481@findex tex-buffer
1471@kindex C-c C-b @r{(@TeX{} mode)} 1482@kindex C-c C-b @r{(@TeX{} mode)}
1472@findex tex-print
1473@kindex C-c C-p @r{(@TeX{} mode)}
1474@findex tex-view 1483@findex tex-view
1475@kindex C-c C-v @r{(@TeX{} mode)} 1484@kindex C-c C-v @r{(@TeX{} mode)}
1476@findex tex-show-print-queue 1485@findex tex-print
1477@kindex C-c C-q @r{(@TeX{} mode)} 1486@kindex C-c C-p @r{(@TeX{} mode)}
1478 You can pass the current buffer through an inferior @TeX{} by means of 1487 To pass the current buffer through @TeX{}, type @kbd{C-c C-b}
1479@kbd{C-c C-b} (@code{tex-buffer}). The formatted output appears in a 1488(@code{tex-buffer}). The formatted output goes in a temporary file,
1480temporary file; to print it, type @kbd{C-c C-p} (@code{tex-print}). 1489normally a @file{.dvi} file. Afterwards, you can type @kbd{C-c C-v}
1481Afterward, you can use @kbd{C-c C-q} (@code{tex-show-print-queue}) to 1490(@code{tex-view}) to launch an external program, such as
1482view the progress of your output towards being printed. If your terminal 1491@command{xdvi}, to view this output file. You can also type @kbd{C-c
1483has the ability to display @TeX{} output files, you can preview the 1492C-p} (@code{tex-print}) to print a hardcopy of the output file.
1484output on the terminal with @kbd{C-c C-v} (@code{tex-view}).
1485 1493
1486@cindex @env{TEXINPUTS} environment variable 1494@cindex @env{TEXINPUTS} environment variable
1487@vindex tex-directory 1495@vindex tex-directory
1488 You can specify the directory to use for running @TeX{} by setting the 1496 By default, @kbd{C-c C-b} runs @TeX{} in the current directory. The
1489variable @code{tex-directory}. @code{"."} is the default value. If 1497output of @TeX{} also goes in this directory. To run @TeX{} in a
1490your environment variable @env{TEXINPUTS} contains relative directory 1498different directory, change the variable @code{tex-directory} to the
1491names, or if your files contains @samp{\input} commands with relative 1499desired directory name. If your environment variable @env{TEXINPUTS}
1492file names, then @code{tex-directory} @emph{must} be @code{"."} or you 1500contains relative directory names, or if your files contains
1493will get the wrong results. Otherwise, it is safe to specify some other 1501@samp{\input} commands with relative file names, then
1494directory, such as @code{"/tmp"}. 1502@code{tex-directory} @emph{must} be @code{"."} or you will get the
1503wrong results. Otherwise, it is safe to specify some other directory,
1504such as @code{"/tmp"}.
1495 1505
1496@vindex tex-run-command 1506@vindex tex-run-command
1497@vindex latex-run-command 1507@vindex latex-run-command
1498@vindex slitex-run-command
1499@vindex tex-dvi-print-command
1500@vindex tex-dvi-view-command 1508@vindex tex-dvi-view-command
1501@vindex tex-show-queue-command 1509@vindex tex-dvi-print-command
1502 If you want to specify which shell commands are used in the inferior @TeX{}, 1510 The buffer's @TeX{} variant determines what shell command @kbd{C-c
1503you can do so by setting the values of the variables @code{tex-run-command}, 1511C-b} actually runs. In Plain @TeX{} mode, it is specified by the
1504@code{latex-run-command}, @code{slitex-run-command}, 1512variable @code{tex-run-command}, which defaults to @code{"tex"}. In
1505@code{tex-dvi-print-command}, @code{tex-dvi-view-command}, and 1513La@TeX{} mode, it is specified by @code{latex-run-command}, which
1506@code{tex-show-queue-command}. The default values may 1514defaults to @code{"latex"}. The shell command that @kbd{C-c C-v} runs
1507(or may not) be appropriate for your system. 1515to view the @file{.dvi} output is determined by the variable
1508 1516@code{tex-dvi-view-command}, regardless of the @TeX{} variant. The
1509 Normally, the file name given to these commands comes at the end of 1517shell command that @kbd{C-c C-p} runs to print the output is
1510the command string; for example, @samp{latex @var{filename}}. In some 1518determined by the variable @code{tex-dvi-print-command}.
1511cases, however, the file name needs to be embedded in the command; an 1519
1512example is when you need to provide the file name as an argument to one 1520 Normally, Emacs automatically appends the output file name to the
1513command whose output is piped to another. You can specify where to put 1521shell command strings described in the preceding paragraph. For
1514the file name with @samp{*} in the command string. For example, 1522example, if @code{tex-dvi-view-command} is @code{"xdvi"}, @kbd{C-c
1523C-v} runs @command{xdvi @var{output-file-name}}. In some cases,
1524however, the file name needs to be embedded in the command, e.g.@: if
1525you need to provide the file name as an argument to one command whose
1526output is piped to another. You can specify where to put the file
1527name with @samp{*} in the command string. For example,
1515 1528
1516@example 1529@example
1517(setq tex-dvi-print-command "dvips -f * | lpr") 1530(setq tex-dvi-print-command "dvips -f * | lpr")
@@ -1521,12 +1534,12 @@ the file name with @samp{*} in the command string. For example,
1521@kindex C-c C-k @r{(@TeX{} mode)} 1534@kindex C-c C-k @r{(@TeX{} mode)}
1522@findex tex-recenter-output-buffer 1535@findex tex-recenter-output-buffer
1523@kindex C-c C-l @r{(@TeX{} mode)} 1536@kindex C-c C-l @r{(@TeX{} mode)}
1524 The terminal output from @TeX{}, including any error messages, appears 1537 The terminal output from @TeX{}, including any error messages,
1525in a buffer called @samp{*tex-shell*}. If @TeX{} gets an error, you can 1538appears in a buffer called @samp{*tex-shell*}. If @TeX{} gets an
1526switch to this buffer and feed it input (this works as in Shell mode; 1539error, you can switch to this buffer and feed it input (this works as
1527@pxref{Interactive Shell}). Without switching to this buffer you can 1540in Shell mode; @pxref{Interactive Shell}). Without switching to this
1528scroll it so that its last line is visible by typing @kbd{C-c 1541buffer you can scroll it so that its last line is visible by typing
1529C-l}. 1542@kbd{C-c C-l}.
1530 1543
1531 Type @kbd{C-c C-k} (@code{tex-kill-job}) to kill the @TeX{} process if 1544 Type @kbd{C-c C-k} (@code{tex-kill-job}) to kill the @TeX{} process if
1532you see that its output is no longer useful. Using @kbd{C-c C-b} or 1545you see that its output is no longer useful. Using @kbd{C-c C-b} or
@@ -1534,14 +1547,14 @@ you see that its output is no longer useful. Using @kbd{C-c C-b} or
1534 1547
1535@findex tex-region 1548@findex tex-region
1536@kindex C-c C-r @r{(@TeX{} mode)} 1549@kindex C-c C-r @r{(@TeX{} mode)}
1537 You can also pass an arbitrary region through an inferior @TeX{} by typing 1550 You can also pass an arbitrary region through @TeX{} by typing
1538@kbd{C-c C-r} (@code{tex-region}). This is tricky, however, because most files 1551@kbd{C-c C-r} (@code{tex-region}). This is tricky, however, because
1539of @TeX{} input contain commands at the beginning to set parameters and 1552most files of @TeX{} input contain commands at the beginning to set
1540define macros, without which no later part of the file will format 1553parameters and define macros, without which no later part of the file
1541correctly. To solve this problem, @kbd{C-c C-r} allows you to designate a 1554will format correctly. To solve this problem, @kbd{C-c C-r} allows
1542part of the file as containing essential commands; it is included before 1555you to designate a part of the file as containing essential commands;
1543the specified region as part of the input to @TeX{}. The designated part 1556it is included before the specified region as part of the input to
1544of the file is called the @dfn{header}. 1557@TeX{}. The designated part of the file is called the @dfn{header}.
1545 1558
1546@cindex header (@TeX{} mode) 1559@cindex header (@TeX{} mode)
1547 To indicate the bounds of the header in Plain @TeX{} mode, you insert two 1560 To indicate the bounds of the header in Plain @TeX{} mode, you insert two
@@ -1639,29 +1652,6 @@ keys (@pxref{Completion}).
1639 The commands @kbd{M-x iso-iso2tex}, @kbd{M-x iso-tex2iso}, @kbd{M-x 1652 The commands @kbd{M-x iso-iso2tex}, @kbd{M-x iso-tex2iso}, @kbd{M-x
1640iso-iso2gtex} and @kbd{M-x iso-gtex2iso} can be used to convert 1653iso-iso2gtex} and @kbd{M-x iso-gtex2iso} can be used to convert
1641between Latin-1 encoded files and @TeX{}-encoded equivalents. 1654between Latin-1 encoded files and @TeX{}-encoded equivalents.
1642@ignore
1643@c Too cryptic to be useful, too cryptic for me to make it better -- rms.
1644 They
1645are included by default in the @code{format-alist} variable, so they
1646can be used with @kbd{M-x format-find-file}, for instance.
1647@end ignore
1648
1649@ignore @c Not worth documenting if it is only for Czech -- rms.
1650@findex tildify-buffer
1651@findex tildify-region
1652@cindex ties, @TeX{}, inserting
1653@cindex hard spaces, @TeX{}, inserting
1654 The commands @kbd{M-x tildify-buffer} and @kbd{M-x tildify-region}
1655insert @samp{~} (@dfn{tie}) characters where they are conventionally
1656required. This is set up for Czech---customize the group
1657@samp{tildify} for other languages or for other sorts of markup.
1658@end ignore
1659
1660@cindex Ref@TeX{} package
1661@cindex references, La@TeX{}
1662@cindex La@TeX{} references
1663 For managing all kinds of references for La@TeX{}, you can use
1664Ref@TeX{}. @inforef{Top,, reftex}.
1665 1655
1666@node HTML Mode 1656@node HTML Mode
1667@section SGML and HTML Modes 1657@section SGML and HTML Modes
@@ -1764,22 +1754,27 @@ used as a cheap preview (@code{sgml-tags-invisible}).
1764@cindex mode, nXML 1754@cindex mode, nXML
1765@findex nxml-mode 1755@findex nxml-mode
1766@cindex XML schema 1756@cindex XML schema
1767 The default mode for editing XML documents is called nXML mode 1757 The major mode for editing XML documents is called nXML mode. This
1768(@code{xml-mode} or @code{nxml-mode}). This is a powerful major mode 1758is a powerful major mode that can recognize many existing XML schema
1769that can recognize many existing XML schema and use them to provide 1759and use them to provide completion of XML elements via
1770completion of XML elements via @kbd{C-@key{RET}} or @kbd{M-@key{TAB}}, 1760@kbd{C-@key{RET}} or @kbd{M-@key{TAB}}, as well as ``on-the-fly'' XML
1771as well as ``on-the-fly'' XML validation with error highlighting. It 1761validation with error highlighting. To enable nXML mode in an
1772is described in its own manual. @xref{Top, nXML Mode,,nxml-mode, nXML 1762existing buffer, type @kbd{M-x nxml-mode}, or, equivalently, @kbd{M-x
1773Mode}. 1763xml-mode}. Emacs uses nXML mode for files which have the extension
1764@file{.xml}. For XHTML files, which have the extension @file{.xhtml},
1765Emacs uses HTML mode by default; you can make it use nXML mode by
1766customizing the variable @code{auto-mode-alist} (@pxref{Choosing
1767Modes}). nXML mode is described in its own manual: @xref{Top, nXML
1768Mode,,nxml-mode, nXML Mode}.
1774 1769
1775@vindex sgml-xml-mode 1770@vindex sgml-xml-mode
1776 However, you can also use SGML mode to edit XML, since XML is a 1771 You may choose to use the less powerful SGML mode for editing XML,
1777strict subset of SGML. In XML, every opening tag must have an 1772since XML is a strict subset of SGML. To enable SGML mode in an
1778explicit closing tag. When the variable @code{sgml-xml-mode} is 1773existing buffer, type @kbd{M-x sgml-mode}. On enabling SGML mode,
1779non-@code{nil}, the tag insertion commands described above always 1774Emacs examines the buffer to determine whether it is XML; if so, it
1780insert explicit closing tags as well. When you visit a file in SGML 1775sets the variable @code{sgml-xml-mode} to a non-@code{nil} value.
1781mode, Emacs determines whether it is XML by examining the file 1776This causes SGML mode's tag insertion commands, described above, to
1782contents, and sets @code{sgml-xml-mode} accordingly. 1777always insert explicit closing tags as well.
1783 1778
1784@node Nroff Mode 1779@node Nroff Mode
1785@section Nroff Mode 1780@section Nroff Mode
@@ -1830,86 +1825,84 @@ header level).
1830 Entering Nroff mode runs the hook @code{text-mode-hook}, followed by 1825 Entering Nroff mode runs the hook @code{text-mode-hook}, followed by
1831the hook @code{nroff-mode-hook} (@pxref{Hooks}). 1826the hook @code{nroff-mode-hook} (@pxref{Hooks}).
1832 1827
1833@node Formatted Text 1828@node Enriched Text
1834@section Editing Formatted Text 1829@section Enriched Text
1835
1836@cindex Enriched mode 1830@cindex Enriched mode
1837@cindex mode, Enriched 1831@cindex mode, Enriched
1838@cindex formatted text 1832@cindex enriched text
1839@cindex WYSIWYG 1833@cindex WYSIWYG
1840@cindex word processing 1834@cindex word processing
1841 @dfn{Enriched mode} is a minor mode for editing files that contain 1835@cindex text/enriched MIME format
1842formatted text in WYSIWYG fashion, as in a word processor. Currently,
1843formatted text in Enriched mode can specify fonts, colors, underlining,
1844margins, and types of filling and justification. In the future, we plan
1845to implement other formatting features as well.
1846 1836
1847 Enriched mode is a minor mode (@pxref{Minor Modes}). It is 1837 Enriched mode is a minor mode for editing formatted text files in a
1848typically used in conjunction with Text mode (@pxref{Text Mode}), but 1838WYSIWYG (``what you see is what you get'') fashion. When Enriched
1849you can also use it with other major modes such as Outline mode and 1839mode is enabled, you can apply various formatting properties to the
1850Paragraph-Indent Text mode. 1840text in the buffer, such as fonts and colors; upon saving the buffer,
1841those properties are saved together with the text, using the MIME
1842@samp{text/enriched} file format.
1851 1843
1852@cindex text/enriched MIME format 1844 Enriched mode is typically used with Text mode (@pxref{Text Mode}).
1853 Potentially, Emacs can store formatted text files in various file 1845It is @emph{not} compatible with Font Lock mode, which is used by many
1854formats. Currently, only one format is implemented: @dfn{text/enriched} 1846major modes, including most programming language modes, for syntax
1855format, which is defined by the MIME protocol. @xref{Format 1847highlighting (@pxref{Font Lock}). Unlike Enriched mode, Font Lock
1856Conversion,, Format Conversion, elisp, the Emacs Lisp Reference Manual}, 1848mode assigns text properties automatically, based on the current
1857for details of how Emacs recognizes and converts file formats. 1849buffer contents; those properties are not saved to disk.
1858 1850
1859 The Emacs distribution contains a formatted text file that can serve as 1851 The file @file{etc/enriched.doc} in the Emacs distribution serves as
1860an example. Its name is @file{etc/enriched.doc}. It contains samples 1852an example of the features of Enriched mode.
1861illustrating all the features described in this section. It also
1862contains a list of ideas for future enhancements.
1863 1853
1864@menu 1854@menu
1865* Requesting Formatted Text:: Entering and exiting Enriched mode. 1855* Enriched Mode:: Entering and exiting Enriched mode.
1866* Hard and Soft Newlines:: There are two different kinds of newlines. 1856* Hard and Soft Newlines:: There are two different kinds of newlines.
1867* Editing Format Info:: How to edit text properties. 1857* Editing Format Info:: How to edit text properties.
1868* Faces: Format Faces. Bold, italic, underline, etc. 1858* Enriched Faces:: Bold, italic, underline, etc.
1869* Color: Format Colors. Changing the color of text. 1859* Enriched Indentation:: Changing the left and right margins.
1870* Indent: Format Indentation. Changing the left and right margins. 1860* Enriched Justification:: Centering, setting text flush with the
1871* Justification: Format Justification. 1861 left or right margin, etc.
1872 Centering, setting text flush with the 1862* Enriched Properties:: The "special" text properties submenu.
1873 left or right margin, etc.
1874* Special: Format Properties. The "special" text properties submenu.
1875* Forcing Enriched Mode:: How to force use of Enriched mode.
1876@end menu 1863@end menu
1877 1864
1878@node Requesting Formatted Text 1865@node Enriched Mode
1879@subsection Requesting to Edit Formatted Text 1866@subsection Enriched Mode
1880 1867
1881 Whenever you visit a file that Emacs saved in the text/enriched 1868 Enriched mode is a buffer-local minor mode (@pxref{Minor Modes}).
1882format, Emacs automatically converts the formatting information in the 1869When you visit a file that has been saved in the @samp{text/enriched}
1883file into Emacs's own internal format (known as @dfn{text 1870format, Emacs automatically enables Enriched mode, and applies the
1884properties}), and turns on Enriched mode. 1871formatting information in the file to the buffer text. When you save
1872a buffer with Enriched mode enabled, it is saved using the
1873@samp{text/enriched} format, including the formatting information.
1885 1874
1886@findex enriched-mode 1875@findex enriched-mode
1887 To create a new file of formatted text, first visit the nonexistent 1876 To create a new file of formatted text, visit the nonexistent file
1888file, then type @kbd{M-x enriched-mode} before you start inserting text. 1877and type @kbd{M-x enriched-mode}. This command actually toggles
1889This command turns on Enriched mode. Do this before you begin inserting 1878Enriched mode. With a prefix argument, it enables Enriched mode if
1890text, to ensure that the text you insert is handled properly. 1879the argument is positive, and disables Enriched mode otherwise. If
1891 1880you disable Enriched mode, Emacs no longer saves the buffer using the
1892 More generally, the command @code{enriched-mode} turns Enriched mode 1881@samp{text/enriched} format; any formatting properties that have been
1893on if it was off, and off if it was on. With a prefix argument, this 1882added to the buffer remain in the buffer, but they are not saved to
1894command turns Enriched mode on if the argument is positive, and turns 1883disk.
1895the mode off otherwise.
1896
1897 When you save a buffer while Enriched mode is enabled in it, Emacs
1898automatically converts the text to text/enriched format while writing it
1899into the file. When you visit the file again, Emacs will automatically
1900recognize the format, reconvert the text, and turn on Enriched mode
1901again.
1902 1884
1903@vindex enriched-translations 1885@vindex enriched-translations
1904 You can add annotations for saving additional text properties, which 1886 Enriched mode does not save all Emacs text properties, only those
1905Emacs normally does not save, by adding to @code{enriched-translations}. 1887specified in the variable @code{enriched-translations}. These include
1906Note that the text/enriched standard requires any non-standard 1888properties for fonts, colors, indentation, and justification.
1907annotations to have names starting with @samp{x-}, as in 1889
1908@samp{x-read-only}. This ensures that they will not conflict with 1890@findex format-decode-buffer
1909standard annotations that may be added later. 1891 If you visit a file and Emacs fails to recognize that it is in the
1910 1892@samp{text/enriched} format, type @kbd{M-x format-decode-buffer}.
1911 @xref{Text Properties,,, elisp, the Emacs Lisp Reference Manual}, 1893This command prompts for a file format, and re-reads the file in that
1912for more information about text properties. 1894format. Specifying the @samp{text/enriched} format automatically
1895enables Enriched mode.
1896
1897 To view a @samp{text/enriched} file in raw form (as plain text with
1898markup tags rather than formatted text), use @kbd{M-x
1899find-file-literally} (@pxref{Visiting}).
1900
1901 @xref{Format Conversion,, Format Conversion, elisp, the Emacs Lisp
1902Reference Manual}, for details of how Emacs recognizes and converts
1903file formats like @samp{text/enriched}. @xref{Text Properties,,,
1904elisp, the Emacs Lisp Reference Manual}, for more information about
1905text properties.
1913 1906
1914@node Hard and Soft Newlines 1907@node Hard and Soft Newlines
1915@subsection Hard and Soft Newlines 1908@subsection Hard and Soft Newlines
@@ -1918,56 +1911,44 @@ for more information about text properties.
1918@cindex newlines, hard and soft 1911@cindex newlines, hard and soft
1919 1912
1920@cindex use-hard-newlines 1913@cindex use-hard-newlines
1921 In formatted text, Emacs distinguishes between two different kinds of 1914 In Enriched mode, Emacs distinguishes between two different kinds of
1922newlines, @dfn{hard} newlines and @dfn{soft} newlines. (You can enable 1915newlines, @dfn{hard} newlines and @dfn{soft} newlines. You can also
1923or disable this feature separately in any buffer with the command 1916enable or disable this feature in other buffers, by typing @kbd{M-x
1924@code{use-hard-newlines}.) 1917use-hard-newlines}.
1925 1918
1926 Hard newlines are used to separate paragraphs, or items in a list, or 1919 Hard newlines are used to separate paragraphs, or anywhere there
1927anywhere that there should always be a line break regardless of the 1920needs to be a line break regardless of how the text is filled; soft
1928margins. The @key{RET} command (@code{newline}) and @kbd{C-o} 1921newlines are used for filling. The @key{RET} (@code{newline}) and
1929(@code{open-line}) insert hard newlines. 1922@kbd{C-o} (@code{open-line}) commands insert hard newlines. The fill
1930 1923commands, including Auto Fill (@pxref{Auto Fill}), insert only soft
1931 Soft newlines are used to make text fit between the margins. All the 1924newlines and delete only soft newlines, leaving hard newlines alone.
1932fill commands, including Auto Fill, insert soft newlines---and they 1925
1933delete only soft newlines. 1926 Thus, when editing with Enriched mode, you should not use @key{RET}
1934 1927or @kbd{C-o} to break lines in the middle of filled paragraphs. Use
1935 Although hard and soft newlines look the same, it is important to bear 1928Auto Fill mode or explicit fill commands (@pxref{Fill Commands})
1936the difference in mind. Do not use @key{RET} to break lines in the 1929instead. Use @key{RET} or @kbd{C-o} where line breaks should always
1937middle of filled paragraphs, or else you will get hard newlines that are 1930remain, such as in tables and lists. For such lines, you may also
1938barriers to further filling. Instead, let Auto Fill mode break lines, 1931want to set the justification style to @code{unfilled}
1939so that if the text or the margins change, Emacs can refill the lines 1932(@pxref{Enriched Justification}).
1940properly. @xref{Auto Fill}.
1941
1942 On the other hand, in tables and lists, where the lines should always
1943remain as you type them, you can use @key{RET} to end lines. For these
1944lines, you may also want to set the justification style to
1945@code{unfilled}. @xref{Format Justification}.
1946 1933
1947@node Editing Format Info 1934@node Editing Format Info
1948@subsection Editing Format Information 1935@subsection Editing Format Information
1949 1936
1950 There are two ways to alter the formatting information for a formatted 1937 The easiest way to alter properties is with the Text Properties
1951text file: with keyboard commands, and with the mouse. 1938menu. You can get to this menu from the Edit menu in the menu bar
1952 1939(@pxref{Menu Bar}), or with @kbd{C-Mouse-2} (@pxref{Menu Mouse
1953 The easiest way to add properties to your document is with the Text 1940Clicks}). Some of the commands in the Text Properties menu are listed
1954Properties menu. You can get to this menu in two ways: from the Edit 1941below (you can also invoke them with @kbd{M-x}):
1955menu in the menu bar (use @kbd{@key{F10} e t} if you have no mouse),
1956or with @kbd{C-Mouse-2} (hold the @key{CTRL} key and press the middle
1957mouse button). There are also keyboard commands described in the
1958following section.
1959
1960 These items in the Text Properties menu run commands directly:
1961 1942
1962@table @code 1943@table @code
1963@findex facemenu-remove-face-props 1944@findex facemenu-remove-face-props
1964@item Remove Face Properties 1945@item Remove Face Properties
1965Delete from the region all face and color text properties 1946Remove face properties from the region
1966(@code{facemenu-remove-face-props}). 1947(@code{facemenu-remove-face-props}).
1967 1948
1968@findex facemenu-remove-all 1949@findex facemenu-remove-all
1969@item Remove Text Properties 1950@item Remove Text Properties
1970Delete @emph{all} text properties from the region 1951Remove all text properties from the region, including face properties
1971(@code{facemenu-remove-all}). 1952(@code{facemenu-remove-all}).
1972 1953
1973@findex describe-text-properties 1954@findex describe-text-properties
@@ -1976,168 +1957,98 @@ Delete @emph{all} text properties from the region
1976@cindex widgets at buffer position 1957@cindex widgets at buffer position
1977@cindex buttons at buffer position 1958@cindex buttons at buffer position
1978@item Describe Properties 1959@item Describe Properties
1979List all the text properties, widgets, buttons, and overlays of the 1960List all text properties and other information about the character
1980character following point (@code{describe-text-properties}). 1961following point (@code{describe-text-properties}).
1981 1962
1982@item Display Faces 1963@item Display Faces
1983Display a list of all the defined faces (@code{list-faces-display}). 1964Display a list of defined faces (@code{list-faces-display}).
1965@xref{Faces}.
1984 1966
1985@item Display Colors 1967@item Display Colors
1986Display a list of all the defined colors (@code{list-colors-display}). 1968Display a list of defined colors (@code{list-colors-display}).
1969@xref{Colors}.
1987@end table 1970@end table
1988 1971
1989@ifinfo 1972@noindent
1990 Other items in the Text Properties menu lead to submenus: 1973The other menu entries are described in the following sections.
1991
1992@menu
1993* Faces: Format Faces. Bold, italic, underline, etc.
1994* Color: Format Colors. Changing the color of text.
1995* Indent: Format Indentation. Changing the left and right margins.
1996* Justification: Format Justification.
1997 Centering, setting text flush with the
1998 left or right margin, etc.
1999* Special: Format Properties. The "special" text properties submenu.
2000@end menu
2001@end ifinfo
2002@ifnotinfo
2003 The rest lead to submenus which are described in the following sections.
2004@end ifnotinfo
2005
2006@node Format Faces
2007@subsection Faces in Formatted Text
2008 1974
2009 The Faces submenu under Text Properties lists various Emacs faces 1975@node Enriched Faces
2010including @code{bold}, @code{italic}, and @code{underline} 1976@subsection Faces in Enriched Text
2011(@pxref{Faces}). These menu items operate on the region if it is
2012active and nonempty. Otherwise, they specify to use that face for an
2013immediately following self-inserting character. There is also an item
2014@samp{Other} with which you can enter a face name through the
2015minibuffer (@pxref{Standard Faces}).
2016 1977
2017 Instead of the Faces submenu, you can use these keyboard commands: 1978 The following commands can be used to add or remove faces
1979(@pxref{Faces}). Each applies to the text in the region if the mark
1980is active, and to the next self-inserting character if the mark is
1981inactive. With a prefix argument, each command applies to the next
1982self-inserting character even if the region is active.
2018 1983
2019@table @kbd 1984@table @kbd
2020@kindex M-o d @r{(Enriched mode)} 1985@kindex M-o d @r{(Enriched mode)}
2021@findex facemenu-set-default 1986@findex facemenu-set-default
2022@item M-o d 1987@item M-o d
2023Remove all @code{face} properties from the region (which includes 1988Remove all @code{face} properties (@code{facemenu-set-default}).
2024specified colors), or force the following inserted character to have no 1989
2025@code{face} property (@code{facemenu-set-default}).
2026@kindex M-o b @r{(Enriched mode)} 1990@kindex M-o b @r{(Enriched mode)}
2027@findex facemenu-set-bold 1991@findex facemenu-set-bold
2028@item M-o b 1992@item M-o b
2029Add the face @code{bold} to the region or to the following inserted 1993Apply the @code{bold} face (@code{facemenu-set-bold}).
2030character (@code{facemenu-set-bold}). 1994
2031@kindex M-o i @r{(Enriched mode)} 1995@kindex M-o i @r{(Enriched mode)}
2032@findex facemenu-set-italic 1996@findex facemenu-set-italic
2033@item M-o i 1997@item M-o i
2034Add the face @code{italic} to the region or to the following inserted 1998Apply the @code{italic} face (@code{facemenu-set-italic}).
2035character (@code{facemenu-set-italic}). 1999
2036@kindex M-o l @r{(Enriched mode)} 2000@kindex M-o l @r{(Enriched mode)}
2037@findex facemenu-set-bold-italic 2001@findex facemenu-set-bold-italic
2038@item M-o l 2002@item M-o l
2039Add the face @code{bold-italic} to the region or to the following 2003Apply the @code{bold-italic} face (@code{facemenu-set-bold-italic}).
2040inserted character (@code{facemenu-set-bold-italic}). 2004
2041@kindex M-o u @r{(Enriched mode)} 2005@kindex M-o u @r{(Enriched mode)}
2042@findex facemenu-set-underline 2006@findex facemenu-set-underline
2043@item M-o u 2007@item M-o u
2044Add the face @code{underline} to the region or to the following inserted 2008Apply the @code{underline} face (@code{facemenu-set-underline}).
2045character (@code{facemenu-set-underline}). 2009
2046@kindex M-o o @r{(Enriched mode)} 2010@kindex M-o o @r{(Enriched mode)}
2047@findex facemenu-set-face 2011@findex facemenu-set-face
2048@item M-o o @var{face} @key{RET} 2012@item M-o o @var{face} @key{RET}
2049Add the face @var{face} to the region or to the following inserted 2013Apply the face @var{face} (@code{facemenu-set-face}).
2050character (@code{facemenu-set-face}).
2051@end table
2052 2014
2053 With a prefix argument, all these commands apply to an immediately 2015@findex facemenu-set-foreground
2054following self-inserting character, disregarding the region. 2016@item M-x facemenu-set-foreground
2017Prompt for a color (@pxref{Colors}), and apply it as a foreground
2018color.
2055 2019
2056 A self-inserting character normally inherits the @code{face} 2020@findex facemenu-set-background
2057property (and most other text properties) from the preceding character 2021@item M-x facemenu-set-background
2058in the buffer. If you use the above commands to specify face for the 2022Prompt for a color, and apply it as a background color.
2059next self-inserting character, or the next section's commands to 2023@end table
2060specify a foreground or background color for it, then it does not
2061inherit the @code{face} property from the preceding character; instead
2062it uses whatever you specified. It will still inherit other text
2063properties, though.
2064 2024
2065 Strictly speaking, these commands apply only to the first following 2025@noindent
2066self-inserting character that you type. But if you insert additional 2026These command are also available via the Text Properties menu.
2067characters after it, they will inherit from the first one. So it
2068appears that these commands apply to all of them.
2069 2027
2070 Enriched mode defines two additional faces: @code{excerpt} and 2028 A self-inserting character normally inherits the face properties
2071@code{fixed}. These correspond to codes used in the text/enriched file 2029(and most other text properties) from the preceding character in the
2072format. 2030buffer. If you use one of the above commands to specify the face for
2073 2031the next self-inserting character, that character will not inherit the
2074 The @code{excerpt} face is intended for quotations. This face is the 2032faces properties from the preceding character, but it will still
2075same as @code{italic} unless you customize it (@pxref{Face Customization}). 2033inherit other text properties.
2076
2077 The @code{fixed} face means, ``Use a fixed-width font for this part
2078of the text.'' Applying the @code{fixed} face to a part of the text
2079will cause that part of the text to appear in a fixed-width font, even
2080if the default font is variable-width. This applies to Emacs and to
2081other systems that display text/enriched format. So if you
2082specifically want a certain part of the text to use a fixed-width
2083font, you should specify the @code{fixed} face for that part.
2084
2085 By default, the @code{fixed} face looks the same as @code{bold}.
2086This is an attempt to distinguish it from @code{default}. You may
2087wish to customize @code{fixed} to some other fixed-width medium font.
2088@xref{Face Customization}.
2089
2090 If your terminal cannot display different faces, you will not be
2091able to see them, but you can still edit documents containing faces,
2092and even add faces and colors to documents. The faces you specify
2093will be visible when the file is viewed on a terminal that can display
2094them.
2095
2096@node Format Colors
2097@subsection Colors in Formatted Text
2098
2099 You can specify foreground and background colors for portions of the
2100text. Under Text Properties, there is a submenu for specifying the
2101foreground color, and a submenu for specifying the background color.
2102Each one lists all the colors that you have used in Enriched mode in
2103the current Emacs session.
2104
2105 If the region is active, the command applies to the text in the
2106region; otherwise, it applies to any immediately following
2107self-inserting input. When Transient Mark mode is off
2108(@pxref{Disabled Transient Mark}), it always applies to the region
2109unless a prefix argument is given, in which case it applies to the
2110following input.
2111
2112 Each of the two color submenus contains one additional item:
2113@samp{Other}. You can use this item to specify a color that is not
2114listed in the menu; it reads the color name with the minibuffer. To
2115display a list of available colors and their names, use the
2116@samp{Display Colors} menu item in the Text Properties menu
2117(@pxref{Editing Format Info}).
2118
2119 Any color that you specify in this way, or that is mentioned in a
2120formatted text file that you read in, is added to the corresponding
2121color menu for the duration of the Emacs session.
2122 2034
2123@findex facemenu-set-foreground 2035 Enriched mode defines two additional faces: @code{excerpt} and
2124@findex facemenu-set-background 2036@code{fixed}. These correspond to codes used in the text/enriched
2125 There are no predefined key bindings for specifying colors, but you can do so 2037file format. The @code{excerpt} face is intended for quotations; by
2126with the extended commands @kbd{M-x facemenu-set-foreground} and 2038default, it appears the same as @code{italic}. The @code{fixed} face
2127@kbd{M-x facemenu-set-background}. Both of these commands read the name 2039specifies fixed-width text; by default, it appears the same as
2128of the color with the minibuffer. 2040@code{bold}.
2129 2041
2130@node Format Indentation 2042@node Enriched Indentation
2131@subsection Indentation in Formatted Text 2043@subsection Indentation in Enriched Text
2132 2044
2133 When editing formatted text, you can specify different amounts of 2045 In Enriched mode, you can specify different amounts of indentation
2134indentation for the right or left margin of an entire paragraph or a 2046for the right or left margin of a paragraph or a part of a paragraph.
2135part of a paragraph. The margins you specify automatically affect the 2047These margins also affect fill commands such as @kbd{M-q}
2136Emacs fill commands (@pxref{Filling}) and line-breaking commands. 2048(@pxref{Filling}).
2137 2049
2138 The Indentation submenu of Text Properties provides a convenient 2050 The Indentation submenu of Text Properties provides four commands
2139interface for specifying these properties. The submenu contains four 2051for specifying indentation:
2140items:
2141 2052
2142@table @code 2053@table @code
2143@kindex C-x TAB @r{(Enriched mode)} 2054@kindex C-x TAB @r{(Enriched mode)}
@@ -2158,44 +2069,20 @@ Make the text narrower by indenting 4 columns at the right margin.
2158Remove 4 columns of indentation from the right margin. 2069Remove 4 columns of indentation from the right margin.
2159@end table 2070@end table
2160 2071
2161 You can use these commands repeatedly to increase or decrease the
2162indentation.
2163
2164 The most common way to use them is to change the indentation of an
2165entire paragraph. For other uses, the effects of refilling can be
2166hard to predict, except in some special cases like the one described
2167next.
2168
2169 The most common other use is to format paragraphs with @dfn{hanging
2170indents}, which means that the first line is indented less than
2171subsequent lines. To set up a hanging indent, increase the
2172indentation of the region starting after the first word of the
2173paragraph and running until the end of the paragraph.
2174
2175 Indenting the first line of a paragraph is easier. Set the margin for
2176the whole paragraph where you want it to be for the body of the
2177paragraph, then indent the first line by inserting extra spaces or tabs.
2178
2179@vindex standard-indent 2072@vindex standard-indent
2180 The variable @code{standard-indent} specifies how many columns these 2073 The variable @code{standard-indent} specifies how many columns these
2181commands should add to or subtract from the indentation. The default 2074commands should add to or subtract from the indentation. The default
2182value is 4. The overall default right margin for Enriched mode is 2075value is 4. The default right margin for Enriched mode is controlled
2183controlled by the variable @code{fill-column}, as usual. 2076by the variable @code{fill-column}, as usual.
2184 2077
2185@kindex C-c [ @r{(Enriched mode)} 2078@kindex C-c [ @r{(Enriched mode)}
2186@kindex C-c ] @r{(Enriched mode)} 2079@kindex C-c ] @r{(Enriched mode)}
2187@findex set-left-margin 2080@findex set-left-margin
2188@findex set-right-margin 2081@findex set-right-margin
2189 There are also two commands for setting the left or right margin of 2082 You can also type @kbd{C-c [} (@code{set-left-margin}) and @kbd{C-c
2190the region absolutely: @code{set-left-margin} and 2083]} (@code{set-right-margin}) to set the left and right margins. You
2191@code{set-right-margin}. Enriched mode binds these commands to 2084can specify the margin width with a numeric argument; otherwise these
2192@kbd{C-c [} and @kbd{C-c ]}, respectively. You can specify the 2085commands prompt for a value via the minibuffer.
2193margin width either with a numeric argument or in the minibuffer.
2194
2195 Sometimes, as a result of editing, the filling of a paragraph becomes
2196messed up---parts of the paragraph may extend past the left or right
2197margins. When this happens, use @kbd{M-q} (@code{fill-paragraph}) to
2198refill the paragraph.
2199 2086
2200 The fill prefix, if any, works in addition to the specified paragraph 2087 The fill prefix, if any, works in addition to the specified paragraph
2201indentation: @kbd{C-x .} does not include the specified indentation's 2088indentation: @kbd{C-x .} does not include the specified indentation's
@@ -2203,148 +2090,76 @@ whitespace in the new value for the fill prefix, and the fill commands
2203look for the fill prefix after the indentation on each line. @xref{Fill 2090look for the fill prefix after the indentation on each line. @xref{Fill
2204Prefix}. 2091Prefix}.
2205 2092
2206@node Format Justification 2093@node Enriched Justification
2207@subsection Justification in Formatted Text 2094@subsection Justification in Enriched Text
2208
2209 When editing formatted text, you can specify various styles of
2210justification for a paragraph. The style you specify automatically
2211affects the Emacs fill commands.
2212 2095
2213 The Justification submenu of Text Properties provides a convenient 2096 In Enriched mode, you can use the following commands to specify
2214interface for specifying the style. The submenu contains five items: 2097various @dfn{justification styles} for filling. These commands apply
2215 2098to the paragraph containing point, or, if the region is active, to all
2216@table @code 2099paragraphs overlapping the region.
2217@item Left
2218This is the most common style of justification (at least for English).
2219Lines are aligned at the left margin but left uneven at the right.
2220
2221@item Right
2222This aligns each line with the right margin. Spaces and tabs are added
2223on the left, if necessary, to make lines line up on the right.
2224
2225@item Full
2226This justifies the text, aligning both edges of each line. Justified
2227text looks very nice in a printed book, where the spaces can all be
2228adjusted equally, but it does not look as nice with a fixed-width font
2229on the screen. Perhaps a future version of Emacs will be able to adjust
2230the width of spaces in a line to achieve elegant justification.
2231
2232@item Center
2233This centers every line between the current margins.
2234
2235@item Unfilled
2236This turns off filling entirely. Each line will remain as you wrote it;
2237the fill and auto-fill functions will have no effect on text which has
2238this setting. You can, however, still indent the left margin. In
2239unfilled regions, all newlines are treated as hard newlines (@pxref{Hard
2240and Soft Newlines}) .
2241@end table
2242
2243 In Enriched mode, you can also specify justification from the keyboard
2244using the @kbd{M-j} prefix character:
2245 2100
2246@table @kbd 2101@table @kbd
2247@kindex M-j l @r{(Enriched mode)} 2102@kindex M-j l @r{(Enriched mode)}
2248@findex set-justification-left 2103@findex set-justification-left
2249@item M-j l 2104@item M-j l
2250Make the region left-filled (@code{set-justification-left}). 2105Align lines to the left margin (@code{set-justification-left}).
2106
2251@kindex M-j r @r{(Enriched mode)} 2107@kindex M-j r @r{(Enriched mode)}
2252@findex set-justification-right 2108@findex set-justification-right
2253@item M-j r 2109@item M-j r
2254Make the region right-filled (@code{set-justification-right}). 2110Align lines to the right margin (@code{set-justification-right}).
2111
2255@kindex M-j b @r{(Enriched mode)} 2112@kindex M-j b @r{(Enriched mode)}
2256@findex set-justification-full 2113@findex set-justification-full
2257@item M-j b 2114@item M-j b
2258Make the region fully justified (@code{set-justification-full}). 2115Align lines to both margins, inserting spaces in the middle of the
2116line to achieve this (@code{set-justification-full}).
2117
2259@kindex M-j c @r{(Enriched mode)} 2118@kindex M-j c @r{(Enriched mode)}
2260@kindex M-S @r{(Enriched mode)} 2119@kindex M-S @r{(Enriched mode)}
2261@findex set-justification-center 2120@findex set-justification-center
2262@item M-j c 2121@item M-j c
2263@itemx M-S 2122@itemx M-S
2264Make the region centered (@code{set-justification-center}). 2123Center lines between the margins (@code{set-justification-center}).
2124
2265@kindex M-j u @r{(Enriched mode)} 2125@kindex M-j u @r{(Enriched mode)}
2266@findex set-justification-none 2126@findex set-justification-none
2267@item M-j u 2127@item M-j u
2268Make the region unfilled (@code{set-justification-none}). 2128Turn off filling entirely (@code{set-justification-none}). The fill
2129commands do nothing on text with this setting. You can, however,
2130still indent the left margin.
2269@end table 2131@end table
2270 2132
2271 Justification styles apply to entire paragraphs. All the 2133 You can also specify justification styles using the Justification
2272justification-changing commands operate on the paragraph containing 2134submenu in the Text Properties menu.
2273point, or, if the region is active, on all paragraphs which overlap the
2274region.
2275 2135
2276@vindex default-justification 2136@vindex default-justification
2277 The default justification style is specified by the variable 2137 The default justification style is specified by the per-buffer
2278@code{default-justification}. Its value should be one of the symbols 2138variable @code{default-justification}. Its value should be one of the
2279@code{left}, @code{right}, @code{full}, @code{center}, or @code{none}. 2139symbols @code{left}, @code{right}, @code{full}, @code{center}, or
2280This is a per-buffer variable. Setting the variable directly affects 2140@code{none}.
2281only the current buffer. However, customizing it in a Custom buffer
2282sets (as always) the default value for buffers that do not override it.
2283@xref{Locals}, and @ref{Easy Customization}.
2284
2285@node Format Properties
2286@subsection Setting Other Text Properties
2287
2288 The Special Properties submenu of Text Properties can add or remove
2289three other useful text properties: @code{read-only}, @code{invisible}
2290and @code{intangible}. The @code{intangible} property disallows
2291moving point within the text, the @code{invisible} text property hides
2292text from display, and the @code{read-only} property disallows
2293alteration of the text.
2294 2141
2295 Each of these special properties has a menu item to add it to the 2142@node Enriched Properties
2296region. The last menu item, @samp{Remove Special}, removes all of these 2143@subsection Setting Other Text Properties
2297special properties from the text in the region.
2298
2299 Currently, the @code{invisible} and @code{intangible} properties are
2300@emph{not} saved in the text/enriched format. The @code{read-only}
2301property is saved, but it is not a standard part of the text/enriched
2302format, so other editors may not respect it.
2303
2304@node Forcing Enriched Mode
2305@subsection Forcing Enriched Mode
2306
2307 Normally, Emacs knows when you are editing formatted text because it
2308recognizes the special annotations used in the file that you visited.
2309However, sometimes you must take special actions to convert file
2310contents or turn on Enriched mode:
2311
2312@itemize @bullet
2313@item
2314When you visit a file that was created with some other editor, Emacs may
2315not recognize the file as being in the text/enriched format. In this
2316case, when you visit the file you will see the formatting commands
2317rather than the formatted text. Type @kbd{M-x format-decode-buffer} to
2318translate it. This also automatically turns on Enriched mode.
2319 2144
2320@item 2145 The Special Properties submenu of Text Properties has entries for
2321When you @emph{insert} a file into a buffer, rather than visiting it, 2146adding or removing three other text properties: @code{read-only},
2322Emacs does the necessary conversions on the text which you insert, but 2147(which disallows alteration of the text), @code{invisible} (which
2323it does not enable Enriched mode. If you wish to do that, type @kbd{M-x 2148hides text), and @code{intangible} (which disallows moving point
2324enriched-mode}. 2149within the text). The @samp{Remove Special} menu item removes all of
2325@end itemize 2150these special properties from the text in the region.
2326 2151
2327 The command @code{format-decode-buffer} translates text in various 2152 The @code{invisible} and @code{intangible} properties are @emph{not}
2328formats into Emacs's internal format. It asks you to specify the format 2153saved in the text/enriched format. The @code{read-only} property is
2329to translate from; however, normally you can type just @key{RET}, which 2154saved, but it is not a standard part of the text/enriched format, so
2330tells Emacs to guess the format. 2155other editors may not respect it.
2331
2332@findex format-find-file
2333 If you wish to look at a text/enriched file in its raw form, as a
2334sequence of characters rather than as formatted text, use the @kbd{M-x
2335find-file-literally} command. This visits a file, like
2336@code{find-file}, but does not do format conversion. It also inhibits
2337character code conversion (@pxref{Coding Systems}) and automatic
2338uncompression (@pxref{Compressed Files}). To disable format conversion
2339but allow character code conversion and/or automatic uncompression if
2340appropriate, use @code{format-find-file} with suitable arguments.
2341 2156
2342@node Text Based Tables 2157@node Text Based Tables
2343@section Editing Text-based Tables 2158@section Editing Text-based Tables
2344@cindex table mode 2159@cindex table mode
2345@cindex text-based tables 2160@cindex text-based tables
2346 2161
2347 Table mode provides an easy and intuitive way to create and edit WYSIWYG 2162 Table mode provides an easy and intuitive way to create and edit
2348text-based tables. Here is an example of such a table: 2163text-based tables. Here is an example of such a table:
2349 2164
2350@smallexample 2165@smallexample
diff --git a/doc/emacs/windows.texi b/doc/emacs/windows.texi
index c44b67454a2..6a6f7b1a4d7 100644
--- a/doc/emacs/windows.texi
+++ b/doc/emacs/windows.texi
@@ -193,6 +193,7 @@ Select buffer @var{bufname} in another window
193 193
194@findex display-buffer 194@findex display-buffer
195@item C-x 4 C-o @var{bufname} @key{RET} 195@item C-x 4 C-o @var{bufname} @key{RET}
196@kindex C-x 4 C-o
196Display buffer @var{bufname} in some window, without trying to select 197Display buffer @var{bufname} in some window, without trying to select
197it (@code{display-buffer}). @xref{Displaying Buffers}, for details 198it (@code{display-buffer}). @xref{Displaying Buffers}, for details
198about how the window is chosen. 199about how the window is chosen.
@@ -385,7 +386,8 @@ change @code{pop-up-frames} (see below) to @code{t}.
385@item 386@item
386Otherwise, if you specified that the buffer should be displayed in a 387Otherwise, if you specified that the buffer should be displayed in a
387special frame by customizing @code{special-display-buffer-names} or 388special frame by customizing @code{special-display-buffer-names} or
388@code{special-display-regexps}, do so. @xref{Special Buffer Frames}. 389@code{special-display-regexps}, do so. @xref{Choosing Window
390Options,,, elisp, The Emacs Lisp Reference Manual}.
389 391
390@vindex pop-up-frames 392@vindex pop-up-frames
391@item 393@item
@@ -420,7 +422,7 @@ and display the buffer there.
420@end itemize 422@end itemize
421 423
422@node Window Convenience 424@node Window Convenience
423@section Window Handling Convenience Features and Customization 425@section Convenience Features for Window Handling
424 426
425@findex winner-mode 427@findex winner-mode
426@cindex Winner mode 428@cindex Winner mode
diff --git a/doc/emacs/xresources.texi b/doc/emacs/xresources.texi
index c2e65268d1b..b32b3d905e4 100644
--- a/doc/emacs/xresources.texi
+++ b/doc/emacs/xresources.texi
@@ -306,14 +306,14 @@ Name to display in the title bar of the initial Emacs frame.
306@item @code{toolBar} (class @code{ToolBar}) 306@item @code{toolBar} (class @code{ToolBar})
307@cindex tool bar 307@cindex tool bar
308Number of lines to reserve for the tool bar. A zero value suppresses 308Number of lines to reserve for the tool bar. A zero value suppresses
309the tool bar. For the Emacs tool bar (i.e. not Gtk+), if the value is 309the tool bar. For the Emacs tool bar (i.e.@: not Gtk+), if the value
310non-zero and @code{auto-resize-tool-bars} is non-@code{nil}, the tool bar's 310is non-zero and @code{auto-resize-tool-bars} is non-@code{nil}, the
311size will be changed automatically so that all tool bar items are visible. 311tool bar's size will be changed automatically so that all tool bar
312 If the value of @code{auto-resize-tool-bars} is @code{grow-only}, 312items are visible. If the value of @code{auto-resize-tool-bars} is
313the tool bar expands automatically, but does not contract automatically. 313@code{grow-only}, the tool bar expands automatically, but does not
314To contract the tool bar, you must redraw the frame by entering @kbd{C-l}. 314contract automatically. To contract the tool bar, you must redraw the
315For the Gtk+ tool bar, any non-zero value means on and 315frame by entering @kbd{C-l}. For the Gtk+ tool bar, any non-zero
316@code{auto-resize-tool-bars} has no effect. 316value means on and @code{auto-resize-tool-bars} has no effect.
317 317
318@item @code{useXIM} (class @code{UseXIM}) 318@item @code{useXIM} (class @code{UseXIM})
319@cindex XIM 319@cindex XIM
@@ -641,17 +641,18 @@ The color for the border shadow, on the top and the left.
641@node GTK resources 641@node GTK resources
642@appendixsec GTK resources 642@appendixsec GTK resources
643@iftex 643@iftex
644 The most common way to customize the GTK widgets Emacs uses (menus, dialogs 644 The most common way to customize the GTK widgets Emacs uses (menus,
645tool bars and scroll bars) is by choosing an appropriate theme, for example 645dialogs tool bars and scroll bars) is by choosing an appropriate
646with the GNOME theme selector. 646theme, for example with the GNOME theme selector.
647 647
648You can also do Emacs specific customization 648You can also do Emacs specific customization by inserting GTK style
649by inserting GTK style directives in the file @file{~/.emacs.d/gtkrc}, 649directives in the file @file{~/.emacs.d/gtkrc}, but only if you have a
650but only if you have a Gtk+ version earlier than 3 (i.e. 2). Some GTK 650Gtk+ version earlier than 3 (i.e.@: 2). Some GTK themes ignore
651themes ignore customizations in @file{~/.emacs.d/gtkrc} so not everything 651customizations in @file{~/.emacs.d/gtkrc} so not everything works with
652works with all themes. To customize Emacs font, background, faces, etc., use 652all themes. To customize Emacs font, background, faces, etc., use the
653the normal X resources (@pxref{Resources}). We will present some examples of 653normal X resources (@pxref{Resources}). We will present some examples
654customizations here, but for a more detailed description, see the online manual 654of customizations here, but for a more detailed description, see the
655online manual
655 656
656 The first example is just one line. It changes the font on all GTK widgets 657 The first example is just one line. It changes the font on all GTK widgets
657to courier with size 12: 658to courier with size 12:
@@ -1065,7 +1066,7 @@ possible states are:
1065This is the default state for widgets. 1066This is the default state for widgets.
1066@item ACTIVE 1067@item ACTIVE
1067This is the state for a widget that is ready to do something. It is 1068This is the state for a widget that is ready to do something. It is
1068also for the trough of a scroll bar, i.e. @code{bg[ACTIVE] = "red"} 1069also for the trough of a scroll bar, i.e.@: @code{bg[ACTIVE] = "red"}
1069sets the scroll bar trough to red. Buttons that have been pressed but 1070sets the scroll bar trough to red. Buttons that have been pressed but
1070not released yet (``armed'') are in this state. 1071not released yet (``armed'') are in this state.
1071@item PRELIGHT 1072@item PRELIGHT
@@ -1109,7 +1110,7 @@ You can't specify the file by its absolute file name. GTK looks for
1109the pixmap file in directories specified in @code{pixmap_path}. 1110the pixmap file in directories specified in @code{pixmap_path}.
1110@code{pixmap_path} is a colon-separated list of directories within 1111@code{pixmap_path} is a colon-separated list of directories within
1111double quotes, specified at the top level in a @file{gtkrc} file 1112double quotes, specified at the top level in a @file{gtkrc} file
1112(i.e. not inside a style definition; see example above): 1113(i.e.@: not inside a style definition; see example above):
1113 1114
1114@smallexample 1115@smallexample
1115pixmap_path "/usr/share/pixmaps:/usr/include/X11/pixmaps" 1116pixmap_path "/usr/share/pixmaps:/usr/include/X11/pixmaps"
@@ -1131,19 +1132,18 @@ Bold 12}, @samp{Courier 14}, @samp{Times 18}. See below for exact
1131syntax. The names are case insensitive. 1132syntax. The names are case insensitive.
1132@end table 1133@end table
1133 1134
1134 There are three ways to specify a color: by name, in hexadecimal 1135 There are three ways to specify a color: a color name, an RGB
1135form, and with an RGB triplet. 1136triplet, or a GTK-style RGB triplet. @xref{Colors}, for a description
1137of color names and RGB triplets. Color names should be enclosed with
1138double quotes, e.g.@: @samp{"red"}. RGB triplets should be written
1139without double quotes, e.g.@: @samp{#ff0000}. GTK-style RGB triplets
1140have the form
1136 1141
1137@noindent 1142@smallexample
1138A color name is written within double quotes, for example @code{"red"}. 1143@code{@{ @var{r}, @var{g}, @var{b} @}}
1139 1144@end smallexample
1140@noindent
1141Hexadecimal form is the same as in X:
1142@code{#@var{rrrr}@var{gggg}@var{bbbb}}, where all three color specs
1143must have the same number of hex digits (1, 2, 3 or 4).
1144 1145
1145@noindent 1146@noindent
1146An RGB triplet looks like @code{@{ @var{r}, @var{g}, @var{b} @}},
1147where @var{r}, @var{g} and @var{b} are either integers in the range 1147where @var{r}, @var{g} and @var{b} are either integers in the range
11480-65535 or floats in the range 0.0-1.0. 11480-65535 or floats in the range 0.0-1.0.
1149 1149
diff --git a/doc/lispintro/ChangeLog b/doc/lispintro/ChangeLog
index bdcd9e9aea8..6cede6375f2 100644
--- a/doc/lispintro/ChangeLog
+++ b/doc/lispintro/ChangeLog
@@ -1,3 +1,7 @@
12011-11-24 Juanma Barranquero <lekktu@gmail.com>
2
3 * makefile.w32-in: Update dependencies.
4
12011-11-16 Juanma Barranquero <lekktu@gmail.com> 52011-11-16 Juanma Barranquero <lekktu@gmail.com>
2 6
3 * emacs-lisp-intro.texi (etags): Fix typo. 7 * emacs-lisp-intro.texi (etags): Fix typo.
diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi
index 244d95d6937..23d0d5a8f34 100644
--- a/doc/lispintro/emacs-lisp-intro.texi
+++ b/doc/lispintro/emacs-lisp-intro.texi
@@ -1401,7 +1401,7 @@ This is a harmless activity; and indeed, we will often try to generate
1401error messages intentionally. Once you understand the jargon, error 1401error messages intentionally. Once you understand the jargon, error
1402messages can be informative. Instead of being called ``error'' 1402messages can be informative. Instead of being called ``error''
1403messages, they should be called ``help'' messages. They are like 1403messages, they should be called ``help'' messages. They are like
1404signposts to a traveller in a strange country; deciphering them can be 1404signposts to a traveler in a strange country; deciphering them can be
1405hard, but once understood, they can point the way. 1405hard, but once understood, they can point the way.
1406 1406
1407The error message is generated by a built-in GNU Emacs debugger. We 1407The error message is generated by a built-in GNU Emacs debugger. We
@@ -2040,7 +2040,7 @@ the first argument. This function takes three arguments. Its first
2040argument is the string of characters, the second and third arguments are 2040argument is the string of characters, the second and third arguments are
2041numbers that indicate the beginning and end of the substring. The 2041numbers that indicate the beginning and end of the substring. The
2042numbers are a count of the number of characters (including spaces and 2042numbers are a count of the number of characters (including spaces and
2043punctuations) from the beginning of the string. 2043punctuation) from the beginning of the string.
2044 2044
2045@need 800 2045@need 800
2046For example, if you evaluate the following: 2046For example, if you evaluate the following:
diff --git a/doc/lispintro/makefile.w32-in b/doc/lispintro/makefile.w32-in
index 7294d46b693..06641cc2222 100644
--- a/doc/lispintro/makefile.w32-in
+++ b/doc/lispintro/makefile.w32-in
@@ -24,7 +24,7 @@ infodir = $(srcdir)/../../info
24# Directory with the (customized) texinfo.tex file. 24# Directory with the (customized) texinfo.tex file.
25texinfodir = $(srcdir)/../misc 25texinfodir = $(srcdir)/../misc
26 26
27INFO_SOURCES = $(srcdir)/emacs-lisp-intro.texi 27INFO_SOURCES = $(srcdir)/emacs-lisp-intro.texi $(srcdir)/doclicense.texi
28# The file name eintr must fit within 5 characters, to allow for 28# The file name eintr must fit within 5 characters, to allow for
29# -NN extensions to fit into DOS 8+3 limits without clashing 29# -NN extensions to fit into DOS 8+3 limits without clashing
30INFO_TARGETS = $(infodir)/eintr 30INFO_TARGETS = $(infodir)/eintr
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog
index 293f253c545..37de62be976 100644
--- a/doc/lispref/ChangeLog
+++ b/doc/lispref/ChangeLog
@@ -1,3 +1,26 @@
12011-11-26 Eli Zaretskii <eliz@gnu.org>
2
3 * display.texi (Truncation):
4 * text.texi (Special Properties): Describe what a stretch-glyph is
5 instead of using that term without explanation. Make the
6 cross-references more accurate.
7
8 * display.texi (Usual Display): Update the description,
9 cross-references, and indexing related to display of control
10 characters and raw bytes.
11
122011-11-25 Martin Rudalics <rudalics@gmx.at>
13
14 * windows.texi (Splitting Windows): Fix description of
15 window-combination-limit. Suggested by Eli Zaretskii.
16
172011-11-23 Chong Yidong <cyd@gnu.org>
18
19 * windows.texi (Window Sizes): Move window-top-line,
20 window-left-column, and window-*-pixel-edges to Coordinates and
21 Windows node.
22 (Coordinates and Windows): Restore window-edges doc.
23
12011-11-21 Martin Rudalics <rudalics@gmx.at> 242011-11-21 Martin Rudalics <rudalics@gmx.at>
2 25
3 * windows.texi (Windows and Frames, Splitting Windows): Fix 26 * windows.texi (Windows and Frames, Splitting Windows): Fix
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi
index 9849420b1f5..a9921d7443d 100644
--- a/doc/lispref/display.texi
+++ b/doc/lispref/display.texi
@@ -193,10 +193,12 @@ a window, that forces truncation.
193@defvar wrap-prefix 193@defvar wrap-prefix
194If this buffer-local variable is non-@code{nil}, it defines a 194If this buffer-local variable is non-@code{nil}, it defines a
195``prefix'' that is prepended to every continuation line at 195``prefix'' that is prepended to every continuation line at
196display-time. (If lines are truncated, the wrap-prefix is never 196display time. (If lines are truncated, the wrap-prefix is never
197used.) It may be a string, an image, or a stretch-glyph; the value is 197used.) It may be a string or an image (@pxref{Other Display Specs}),
198interpreted in the same way as a @code{display} text property. 198or a stretch of whitespace such as specified by the @code{:width} or
199@xref{Display Property}. 199@code{:align-to} display properties (@pxref{Specified Space}). The
200value is interpreted in the same way as a @code{display} text
201property. @xref{Display Property}.
200 202
201A wrap-prefix may also be specified for regions of text, using the 203A wrap-prefix may also be specified for regions of text, using the
202@code{wrap-prefix} text or overlay property. This takes precedence 204@code{wrap-prefix} text or overlay property. This takes precedence
@@ -206,9 +208,11 @@ over the @code{wrap-prefix} variable. @xref{Special Properties}.
206@defvar line-prefix 208@defvar line-prefix
207If this buffer-local variable is non-@code{nil}, it defines a 209If this buffer-local variable is non-@code{nil}, it defines a
208``prefix'' that is prepended to every non-continuation line at 210``prefix'' that is prepended to every non-continuation line at
209display-time. It may be a string, an image, or a stretch-glyph; the 211display time. It may be a string or an image (@pxref{Other Display
210value is interpreted in the same way as a @code{display} text 212Specs}), or a stretch of whitespace such as specified by the
211property. @xref{Display Property}. 213@code{:width} or @code{:align-to} display properties (@pxref{Specified
214Space}). The value is interpreted in the same way as a @code{display}
215text property. @xref{Display Property}.
212 216
213A line-prefix may also be specified for regions of text using the 217A line-prefix may also be specified for regions of text using the
214@code{line-prefix} text or overlay property. This takes precedence 218@code{line-prefix} text or overlay property. This takes precedence
@@ -5638,39 +5642,45 @@ code. You can override these conventions by setting up a display table
5638@itemize @bullet 5642@itemize @bullet
5639@item 5643@item
5640Character codes 32 through 126 map to glyph codes 32 through 126. 5644Character codes 32 through 126 map to glyph codes 32 through 126.
5641Normally this means they display as themselves. 5645Normally this means they display as themselves, but a display table
5646can change that.
5642 5647
5643@item 5648@item
5644Character code 9 is a horizontal tab. It displays as whitespace 5649Character code 9 is a horizontal tab. It displays as whitespace
5645up to a position determined by @code{tab-width}. 5650up to a position determined by @code{tab-width}.
5646 5651
5647@item 5652@item
5648Character code 10 is a newline. 5653Character code 10 is a newline. It is normally invisible on display,
5654and has the effect of ending the preceding line and starting a new
5655line.
5649 5656
5650@item 5657@item
5651All other codes in the range 0 through 31, and code 127, display in one 5658All other codes in the range 0 through 31 display in one of two ways
5652of two ways according to the value of @code{ctl-arrow}. If it is 5659according to the value of @code{ctl-arrow}. If it is non-@code{nil},
5653non-@code{nil}, these codes map to sequences of two glyphs, where the 5660these codes map to sequences of two glyphs, where the first glyph is
5654first glyph is the @acronym{ASCII} code for @samp{^}. (A display table can 5661the @acronym{ASCII} code for @samp{^}. (A display table can specify a
5655specify a glyph to use instead of @samp{^}.) Otherwise, these codes map 5662glyph to use instead of @samp{^}.) Otherwise, these codes map just
5656just like the codes in the range 128 to 255. 5663like the raw bytes in the range 128 to 255 (described below).
5657 5664
5658On MS-DOS terminals, Emacs arranges by default for the character code 5665@cindex octal escapes
5659127 to be mapped to the glyph code 127, which normally displays as an
5660empty polygon. This glyph is used to display non-@acronym{ASCII} characters
5661that the MS-DOS terminal doesn't support. @xref{MS-DOS and MULE,,,
5662emacs, The GNU Emacs Manual}.
5663
5664@item 5666@item
5665Character codes 128 through 255 map to sequences of four glyphs, where 5667Raw bytes (@pxref{Text Representations}) with codes 128 through 255,
5666the first glyph is the @acronym{ASCII} code for @samp{\}, and the others are 5668and the @acronym{ASCII} control character with code 127, display as
5667digit characters representing the character code in octal. (A display 5669sequences of four glyphs, where the first glyph is the @acronym{ASCII}
5668table can specify a glyph to use instead of @samp{\}.) 5670code for @samp{\}, and the others are digit characters representing
5671the character code in octal. (A display table can specify a glyph to
5672use instead of @samp{\}.) This is known as the @dfn{octal escape}
5673display.
5669 5674
5670@item 5675@item
5671Multibyte character codes above 256 are displayed as themselves, or as 5676Non-@acronym{ASCII} character codes above 127 are displayed as
5672a question mark or a hex code or an empty box if the terminal cannot 5677themselves, if the terminal and the available fonts support them.
5673display that character. 5678Characters that are not supported by the terminal, or (on window
5679systems) have no fonts available for them, are displayed as a question
5680mark or a hex code or an empty box. @xref{Glyphless Chars}, for how
5681to control display of the characters not supported by the terminal or
5682fonts. Display tables can change how a character is displayed, even
5683if it is supported.
5674@end itemize 5684@end itemize
5675 5685
5676 The usual display conventions apply even when there is a display 5686 The usual display conventions apply even when there is a display
@@ -5695,7 +5705,8 @@ mode line using the new values, call the function
5695This buffer-local variable controls how control characters are 5705This buffer-local variable controls how control characters are
5696displayed. If it is non-@code{nil}, they are displayed as a caret 5706displayed. If it is non-@code{nil}, they are displayed as a caret
5697followed by the character: @samp{^A}. If it is @code{nil}, they are 5707followed by the character: @samp{^A}. If it is @code{nil}, they are
5698displayed as a backslash followed by three octal digits: @samp{\001}. 5708displayed as octal escapes: a backslash followed by three octal
5709digits, as in @samp{\001}.
5699@end defopt 5710@end defopt
5700 5711
5701@defopt tab-width 5712@defopt tab-width
diff --git a/doc/lispref/spellfile b/doc/lispref/spellfile
index 5c0a6d0f5ea..e0d77ee0541 100644
--- a/doc/lispref/spellfile
+++ b/doc/lispref/spellfile
@@ -253,7 +253,6 @@ deletable
253deletion' 253deletion'
254delq 254delq
255depiction 255depiction
256descendents
257deselecting 256deselecting
258destructive' 257destructive'
259destructively' 258destructively'
@@ -299,7 +298,6 @@ excess'
299exec 298exec
300exitcode 299exitcode
301expression' 300expression'
302extendible
303extra' 301extra'
304fails' 302fails'
305fascist 303fascist
@@ -660,7 +658,7 @@ the'
660tildes 658tildes
661time's 659time's
662to' 660to'
663towars 661towards
664transportable 662transportable
665txt 663txt
666types' 664types'
@@ -674,7 +672,6 @@ undefine
674undefines 672undefines
675underfull 673underfull
676undo's 674undo's
677undodata
678unevaluated' 675unevaluated'
679unexec 676unexec
680unexpand 677unexpand
diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi
index 3a081dddc61..fc12939bec5 100644
--- a/doc/lispref/text.texi
+++ b/doc/lispref/text.texi
@@ -3191,10 +3191,12 @@ controls the total height of the display line ending in that newline.
3191 3191
3192@item wrap-prefix 3192@item wrap-prefix
3193If text has a @code{wrap-prefix} property, the prefix it defines will 3193If text has a @code{wrap-prefix} property, the prefix it defines will
3194be added at display-time to the beginning of every continuation line 3194be added at display time to the beginning of every continuation line
3195due to text wrapping (so if lines are truncated, the wrap-prefix is 3195due to text wrapping (so if lines are truncated, the wrap-prefix is
3196never used). It may be a string, an image, or a stretch-glyph such as 3196never used). It may be a string or an image (@pxref{Other Display
3197used by the @code{display} text-property. @xref{Display Property}. 3197Specs}), or a stretch of whitespace such as specified by the
3198@code{:width} or @code{:align-to} display properties (@pxref{Specified
3199Space}).
3198 3200
3199A wrap-prefix may also be specified for an entire buffer using the 3201A wrap-prefix may also be specified for an entire buffer using the
3200@code{wrap-prefix} buffer-local variable (however, a 3202@code{wrap-prefix} buffer-local variable (however, a
@@ -3203,9 +3205,11 @@ the @code{wrap-prefix} variable). @xref{Truncation}.
3203 3205
3204@item line-prefix 3206@item line-prefix
3205If text has a @code{line-prefix} property, the prefix it defines will 3207If text has a @code{line-prefix} property, the prefix it defines will
3206be added at display-time to the beginning of every non-continuation 3208be added at display time to the beginning of every non-continuation
3207line. It may be a string, an image, or a stretch-glyph such as used 3209line. It may be a string or an image (@pxref{Other Display
3208by the @code{display} text-property. @xref{Display Property}. 3210Specs}), or a stretch of whitespace such as specified by the
3211@code{:width} or @code{:align-to} display properties (@pxref{Specified
3212Space}).
3209 3213
3210A line-prefix may also be specified for an entire buffer using the 3214A line-prefix may also be specified for an entire buffer using the
3211@code{line-prefix} buffer-local variable (however, a 3215@code{line-prefix} buffer-local variable (however, a
@@ -3762,7 +3766,7 @@ Additionally, if two fields are separated by another field with the
3762special value @code{boundary}, then any point within this special 3766special value @code{boundary}, then any point within this special
3763field is also considered to be ``on the boundary.'' 3767field is also considered to be ``on the boundary.''
3764 3768
3765Commands like @kbd{C-a} with no argumemt, that normally move backward 3769Commands like @kbd{C-a} with no argument, that normally move backward
3766to a specific kind of location and stay there once there, probably 3770to a specific kind of location and stay there once there, probably
3767should specify @code{nil} for @var{escape-from-edge}. Other motion 3771should specify @code{nil} for @var{escape-from-edge}. Other motion
3768commands that check fields should probably pass @code{t}. 3772commands that check fields should probably pass @code{t}.
@@ -4322,5 +4326,3 @@ If you do want modification hooks to be run in a particular piece of
4322code that is itself run from a modification hook, then rebind locally 4326code that is itself run from a modification hook, then rebind locally
4323@code{inhibit-modification-hooks} to @code{nil}. 4327@code{inhibit-modification-hooks} to @code{nil}.
4324@end defvar 4328@end defvar
4325
4326
diff --git a/doc/lispref/two-volume-cross-refs.txt b/doc/lispref/two-volume-cross-refs.txt
index 53a9f58cd01..6eb11a92f47 100644
--- a/doc/lispref/two-volume-cross-refs.txt
+++ b/doc/lispref/two-volume-cross-refs.txt
@@ -34,7 +34,7 @@ where each volume starts with a higher page number since I find it
34harder to go to the right place in the volume.) 34harder to go to the right place in the volume.)
35 35
36References to the same volume are just the page number; references to 36References to the same volume are just the page number; references to
37the other volume are a volumne number (in Roman numerals) preceding 37the other volume are a volume number (in Roman numerals) preceding
38the page number. 38the page number.
39 39
40For example, in Volume I: 40For example, in Volume I:
diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi
index bb1b0524689..437b6db8d58 100644
--- a/doc/lispref/windows.texi
+++ b/doc/lispref/windows.texi
@@ -376,7 +376,7 @@ Bars}). At the top of the window is an optional header line
376line (@pxref{Mode Line Format}). 376line (@pxref{Mode Line Format}).
377 377
378 Emacs provides several functions for finding the height and width of 378 Emacs provides several functions for finding the height and width of
379a window. Except where noted, these heights and widths are reported 379a window. Except where noted, Emacs reports window heights and widths
380as integer numbers of lines and columns respectively. On a graphical 380as integer numbers of lines and columns respectively. On a graphical
381display, each ``line'' and ``column'' actually corresponds to the 381display, each ``line'' and ``column'' actually corresponds to the
382height and width of a ``default'' character specified by the frame's 382height and width of a ``default'' character specified by the frame's
@@ -439,26 +439,6 @@ that of the root window on that frame. If @var{window} is omitted or
439@code{nil}, it defaults to the selected window. 439@code{nil}, it defaults to the selected window.
440@end defun 440@end defun
441 441
442@cindex window position
443 The following functions can be used to determine the position of a
444window relative to the window area of its frame:
445
446@defun window-top-line &optional window
447This function returns the distance, in lines, between the top of
448@var{window} and the top of the frame's window area. For instance,
449the return value is 0 if there is no window above @var{window}. If
450@var{window} is omitted or @code{nil}, it defaults to the selected
451window.
452@end defun
453
454@defun window-left-column &optional window
455This function returns the distance, in columns, between the left edge
456of @var{window} and the left edge of the frame's window area. For
457instance, the return value is 0 if there is no window to the left of
458@var{window}. If @var{window} is omitted or @code{nil}, it defaults
459to the selected window.
460@end defun
461
462@cindex window body height 442@cindex window body height
463@cindex body height of a window 443@cindex body height of a window
464@cindex window body width 444@cindex window body width
@@ -535,45 +515,12 @@ can be resized in the desired direction. To determine that, use the
535function @code{window-resizable}. @xref{Resizing Windows}. 515function @code{window-resizable}. @xref{Resizing Windows}.
536@end defun 516@end defun
537 517
538 The following functions can be used to find a window's size and 518 @xref{Coordinates and Windows}, for more functions that report the
539position in pixels. Though mostly useful on graphical displays, they 519positions of various parts of a window relative to the frame, from
540can also be called on text-only terminals, where the screen area of 520which you can calculate its size. In particular, you can use the
541each text character is taken to be ``one pixel''. 521functions @code{window-pixel-edges} and
542 522@code{window-inside-pixel-edges} to find the size in pixels, for
543@defun window-pixel-edges &optional window 523graphical displays.
544This function return a list of pixel coordinates for the edges of
545@var{window}. If @var{window} is omitted or @code{nil}, it defaults
546to the selected window.
547
548The return value has the form @code{(@var{left} @var{top} @var{right}
549@var{bottom})}. The list elements are, respectively, the X coordinate
550of the left window edge, the Y coordinate of the top edge, one more
551than the X coordinate of the right edge, and one more than the Y
552coordinate of the bottom edge. The origin coordinate @samp{(0,0)} is
553taken to be the top left corner of the frame's window area.
554
555These edge values include the space used by the window's scroll bar,
556margins, fringes, header line, and mode line, if any.
557@end defun
558
559@defun window-inside-pixel-edges &optional window
560This function is like @code{window-pixel-edges}, except that it
561returns the edge coordinates for the window's text area, rather than
562the edge coordinates for the window itself. @var{window} must specify
563a live window.
564@end defun
565
566@defun window-absolute-pixel-edges &optional window
567This function is like @code{window-pixel-edges}, except that it
568returns the edge coordinates relative to the top left corner of the
569display screen.
570@end defun
571
572@defun window-inside-absolute-pixel-edges &optional window
573This function is like @code{window-inside-pixel-edges}, except that it
574returns the edge coordinates relative to the top left corner of the
575display screen. @var{window} must specify a live window.
576@end defun
577 524
578@node Resizing Windows 525@node Resizing Windows
579@section Resizing Windows 526@section Resizing Windows
@@ -943,8 +890,9 @@ direction as the existing window combination (otherwise, a new
943internal window is created anyway). The default is @code{nil}. Other 890internal window is created anyway). The default is @code{nil}. Other
944values are reserved for future use. 891values are reserved for future use.
945 892
946Thus, if the value is always @code{t}, each window tree is a binary 893Thus, if the value of this variable is at all times @code{t}, then at
947tree: each window except the root window has exactly one sibling. 894all times every window tree is a binary tree (a tree where each window
895except the root window has exactly one sibling).
948 896
949Furthermore, @code{split-window} calls 897Furthermore, @code{split-window} calls
950@code{set-window-combination-limit} on the newly-created internal 898@code{set-window-combination-limit} on the newly-created internal
@@ -2976,32 +2924,90 @@ is off the screen due to horizontal scrolling:
2976@end group 2924@end group
2977@end example 2925@end example
2978 2926
2979
2980@node Coordinates and Windows 2927@node Coordinates and Windows
2981@section Coordinates and Windows 2928@section Coordinates and Windows
2929@cindex frame-relative coordinate
2930@cindex coordinate, relative to frame
2931@cindex window position
2932
2933 This section describes functions that report the position of a
2934window. Most of these functions report positions relative to the
2935window's frame. In this case, the coordinate origin @samp{(0,0)} lies
2936near the upper left corner of the frame. For technical reasons, on
2937graphical displays the origin is not located at the exact corner of
2938the graphical window as it appears on the screen. If Emacs is built
2939with the GTK+ toolkit, the origin is at the upper left corner of the
2940frame area used for displaying Emacs windows, below the title-bar,
2941GTK+ menu bar, and tool bar (since these are drawn by the window
2942manager and/or GTK+, not by Emacs). But if Emacs is not built with
2943GTK+, the origin is at the upper left corner of the tool bar (since in
2944this case Emacs itself draws the tool bar). In both cases, the X and
2945Y coordinates increase rightward and downward respectively.
2946
2947 Except where noted, X and Y coordinates are reported in integer
2948character units, i.e. numbers of lines and columns respectively. On a
2949graphical display, each ``line'' and ``column'' corresponds to the
2950height and width of a default character specified by the frame's
2951default font.
2952
2953@defun window-edges &optional window
2954This function returns a list of the edge coordinates of @var{window}.
2955If @var{window} is omitted or @code{nil}, it defaults to the selected
2956window.
2982 2957
2983This section describes how to relate screen coordinates to windows. 2958The return value has the form @code{(@var{left} @var{top} @var{right}
2959@var{bottom})}. These list elements are, respectively, the X
2960coordinate of the leftmost column occupied by the window, the Y
2961coordinate of the topmost row, the X coordinate one column to the
2962right of the rightmost column, and the Y coordinate one row down from
2963the bottommost row.
2984 2964
2985@defun window-at x y &optional frame 2965Note that these are the actual outer edges of the window, including
2986This function returns the window containing the specified cursor 2966any header line, mode line, scroll bar, fringes, and display margins.
2987position in the frame @var{frame}. The coordinates @var{x} and @var{y} 2967On a text-only terminal, if the window has a neighbor on its right,
2988are measured in characters and count from the top left corner of the 2968its right edge includes the separator line between the window and its
2989frame. If they are out of range, @code{window-at} returns @code{nil}. 2969neighbor.
2970@end defun
2990 2971
2991If you omit @var{frame}, the selected frame is used. 2972@defun window-inside-edges &optional window
2973This function is similar to @code{window-edges}, but the returned edge
2974values are for the text area of the window. They exclude any header
2975line, mode line, scroll bar, fringes, display margins, and vertical
2976separator.
2992@end defun 2977@end defun
2993 2978
2994@defun coordinates-in-window-p coordinates window 2979@defun window-top-line &optional window
2995This function checks whether a particular frame position falls within 2980This function returns the Y coordinate of the topmost row of
2996the window @var{window}. 2981@var{window}, equivalent to the @var{top} entry in the list returned
2982by @code{window-edges}.
2983@end defun
2984
2985@defun window-left-column &optional window
2986This function returns the X coordinate of the leftmost column of
2987@var{window}, equivalent to the @var{left} entry in the list returned
2988by @code{window-edges}.
2989@end defun
2997 2990
2998The argument @var{coordinates} is a cons cell of the form @code{(@var{x} 2991 The following functions can be used to relate a set of
2999. @var{y})}. The coordinates @var{x} and @var{y} are measured in 2992frame-relative coordinates to a window:
3000characters, and count from the top left corner of the screen or frame.
3001 2993
3002The value returned by @code{coordinates-in-window-p} is non-@code{nil} 2994@defun window-at x y &optional frame
3003if the coordinates are inside @var{window}. The value also indicates 2995This function returns the live window at the frame-relative
3004what part of the window the position is in, as follows: 2996coordinates @var{x} and @var{y}, on frame @var{frame}. If there is no
2997window at that position, the return value is @code{nil}. If
2998@var{frame} is omitted or @code{nil}, it defaults to the selected
2999frame.
3000@end defun
3001
3002@defun coordinates-in-window-p coordinates window
3003This function checks whether a window @var{window} occupies the
3004frame-relative coordinates @var{coordinates}, and if so which part of
3005the window that is. @var{window} should be a live window.
3006@var{coordinates} should be a cons cell of the form @code{(@var{x}
3007. @var{y})}, where @var{x} and @var{y} are frame-relative coordinates.
3008
3009If there is no window at the specified position, the return value is
3010@code{nil} . Otherwise, the return value is one of the following:
3005 3011
3006@table @code 3012@table @code
3007@item (@var{relx} . @var{rely}) 3013@item (@var{relx} . @var{rely})
@@ -3038,6 +3044,44 @@ The function @code{coordinates-in-window-p} does not require a frame as
3038argument because it always uses the frame that @var{window} is on. 3044argument because it always uses the frame that @var{window} is on.
3039@end defun 3045@end defun
3040 3046
3047 The following functions return window positions in pixels, rather
3048than character units. Though mostly useful on graphical displays,
3049they can also be called on text-only terminals, where the screen area
3050of each text character is taken to be ``one pixel''.
3051
3052@defun window-pixel-edges &optional window
3053This function returns a list of pixel coordinates for the edges of
3054@var{window}. If @var{window} is omitted or @code{nil}, it defaults
3055to the selected window.
3056
3057The return value has the form @code{(@var{left} @var{top} @var{right}
3058@var{bottom})}. The list elements are, respectively, the X pixel
3059coordinate of the left window edge, the Y pixel coordinate of the top
3060edge, one more than the X pixel coordinate of the right edge, and one
3061more than the Y pixel coordinate of the bottom edge.
3062@end defun
3063
3064@defun window-inside-pixel-edges &optional window
3065This function is like @code{window-pixel-edges}, except that it
3066returns the pixel coordinates for the edges of the window's text area,
3067rather than the pixel coordinates for the edges of the window itself.
3068@var{window} must specify a live window.
3069@end defun
3070
3071 The following functions return window positions in pixels, relative
3072to the display screen rather than the frame:
3073
3074@defun window-absolute-pixel-edges &optional window
3075This function is like @code{window-pixel-edges}, except that it
3076returns the edge pixel coordinates relative to the top left corner of
3077the display screen.
3078@end defun
3079
3080@defun window-inside-absolute-pixel-edges &optional window
3081This function is like @code{window-inside-pixel-edges}, except that it
3082returns the edge pixel coordinates relative to the top left corner of
3083the display screen. @var{window} must specify a live window.
3084@end defun
3041 3085
3042@node Window Configurations 3086@node Window Configurations
3043@section Window Configurations 3087@section Window Configurations
diff --git a/doc/man/emacs.1 b/doc/man/emacs.1
index 91ef4189b79..1acdcf5ebd2 100644
--- a/doc/man/emacs.1
+++ b/doc/man/emacs.1
@@ -1,5 +1,5 @@
1.\" See section COPYING for copyright and redistribution information. 1.\" See section COPYING for copyright and redistribution information.
2.TH EMACS 1 "2007 April 13" "GNU Emacs 24.0.91" 2.TH EMACS 1 "2007 April 13" "GNU Emacs 24.0.92"
3. 3.
4. 4.
5.SH NAME 5.SH NAME
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index 43d9ba1b1e6..f94153479a8 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,3 +1,11 @@
12011-11-24 Glenn Morris <rgm@gnu.org>
2
3 * gnus.texi, smtpmail.texi: Fix case of "GnuTLS".
4
52011-11-24 Juanma Barranquero <lekktu@gmail.com>
6
7 * makefile.w32-in: Update dependencies.
8
12011-11-20 Glenn Morris <rgm@gnu.org> 92011-11-20 Glenn Morris <rgm@gnu.org>
2 10
3 * gnus.texi (Group Information): 11 * gnus.texi (Group Information):
@@ -2987,7 +2995,7 @@
2987 * org.texi (Activation, Exporting, ASCII export, HTML export) 2995 * org.texi (Activation, Exporting, ASCII export, HTML export)
2988 (HTML Export commands, LaTeX/PDF export commands): 2996 (HTML Export commands, LaTeX/PDF export commands):
2989 Improve documentation about transient-mark-mode. 2997 Improve documentation about transient-mark-mode.
2990 (References): DOcuemtn the use of special names like $LR1 to reference 2998 (References): Document the use of special names like $LR1 to reference
2991 to fields in the last table row. 2999 to fields in the last table row.
2992 3000
29932008-12-19 Juri Linkov <juri@jurta.org> 30012008-12-19 Juri Linkov <juri@jurta.org>
@@ -7974,7 +7982,7 @@
79742003-02-01 Michael Albinus <Michael.Albinus@alcatel.de> 79822003-02-01 Michael Albinus <Michael.Albinus@alcatel.de>
7975 7983
7976 * tramp.texi (Frequently Asked Questions): Explain a workaround if 7984 * tramp.texi (Frequently Asked Questions): Explain a workaround if
7977 another package loads accidently Ange-FTP. 7985 another package loads accidentally Ange-FTP.
7978 7986
79792003-01-24 Michael Albinus <Michael.Albinus@alcatel.de> 79872003-01-24 Michael Albinus <Michael.Albinus@alcatel.de>
7980 7988
diff --git a/doc/misc/autotype.texi b/doc/misc/autotype.texi
index ecf4c7e47b2..289c08eb00e 100644
--- a/doc/misc/autotype.texi
+++ b/doc/misc/autotype.texi
@@ -419,7 +419,7 @@ inserting something. When this is @code{nil}, inserting is only done with
419@kbd{M-x auto-insert}. When this is @code{function}, you are queried 419@kbd{M-x auto-insert}. When this is @code{function}, you are queried
420whenever @code{auto-insert} is called as a function, such as when Emacs 420whenever @code{auto-insert} is called as a function, such as when Emacs
421visits an empty file and you have set the above-mentioned hook. Otherwise 421visits an empty file and you have set the above-mentioned hook. Otherwise
422you are alway queried. 422you are always queried.
423 423
424@vindex auto-insert-prompt 424@vindex auto-insert-prompt
425 When querying, the variable @code{auto-insert-prompt}'s value is used as a 425 When querying, the variable @code{auto-insert-prompt}'s value is used as a
@@ -510,7 +510,7 @@ inserting or updating the magic number. When this is @code{nil} updating
510is only done with @kbd{M-x executable-set-magic}. When this is 510is only done with @kbd{M-x executable-set-magic}. When this is
511@code{function} you are queried whenever @code{executable-set-magic} is 511@code{function} you are queried whenever @code{executable-set-magic} is
512called as a function, such as when Emacs puts a buffer in Shell script 512called as a function, such as when Emacs puts a buffer in Shell script
513mode. Otherwise you are alway queried. 513mode. Otherwise you are always queried.
514 514
515@findex executable-self-display 515@findex executable-self-display
516 @kbd{M-x executable-self-display} adds a magic number to the buffer, which 516 @kbd{M-x executable-self-display} adds a magic number to the buffer, which
diff --git a/doc/misc/calc.texi b/doc/misc/calc.texi
index 290b120ea80..32311ff5c3e 100644
--- a/doc/misc/calc.texi
+++ b/doc/misc/calc.texi
@@ -25644,7 +25644,7 @@ equivalent expression involving intervals: @samp{b in [a .. c)}.
25644of @samp{<} and @samp{<=} are allowed, or any of the four combinations 25644of @samp{<} and @samp{<=} are allowed, or any of the four combinations
25645of @samp{>} and @samp{>=}. Four-argument constructions like 25645of @samp{>} and @samp{>=}. Four-argument constructions like
25646@samp{a < b < c < d}, and mixtures like @w{@samp{a < b = c}} that 25646@samp{a < b < c < d}, and mixtures like @w{@samp{a < b = c}} that
25647involve both equalities and inequalities, are not allowed. 25647involve both equations and inequalities, are not allowed.
25648 25648
25649@kindex a . 25649@kindex a .
25650@pindex calc-remove-equal 25650@pindex calc-remove-equal
@@ -34631,7 +34631,7 @@ the derivative is evaluated at the value of @var{var}; otherwise, the
34631derivative is left in terms of @var{var}. If the expression contains 34631derivative is left in terms of @var{var}. If the expression contains
34632functions for which no derivative formula is known, new derivative 34632functions for which no derivative formula is known, new derivative
34633functions are invented by adding primes to the names; @pxref{Calculus}. 34633functions are invented by adding primes to the names; @pxref{Calculus}.
34634However, if @var{symb} is non-@code{nil}, the presence of undifferentiable 34634However, if @var{symb} is non-@code{nil}, the presence of nondifferentiable
34635functions in @var{expr} instead cancels the whole differentiation, and 34635functions in @var{expr} instead cancels the whole differentiation, and
34636@code{deriv} returns @code{nil} instead. 34636@code{deriv} returns @code{nil} instead.
34637 34637
diff --git a/doc/misc/ede.texi b/doc/misc/ede.texi
index f8d757c2d87..cc566086f44 100644
--- a/doc/misc/ede.texi
+++ b/doc/misc/ede.texi
@@ -268,7 +268,7 @@ projects.
268 268
269Some project modes do not have a project file, but directly read a 269Some project modes do not have a project file, but directly read a
270Makefile or other existing file. Instead of directly editing the 270Makefile or other existing file. Instead of directly editing the
271object, you can edit the file by typine @kbd{C-c . e} 271object, you can edit the file by typing @kbd{C-c . e}
272(@code{ede-edit-file-target}). You should ``rescan'' the project 272(@code{ede-edit-file-target}). You should ``rescan'' the project
273afterwards (@pxref{Miscellaneous commands}). 273afterwards (@pxref{Miscellaneous commands}).
274 274
diff --git a/doc/misc/eieio.texi b/doc/misc/eieio.texi
index 7b4945027d3..d65c7a15f7b 100644
--- a/doc/misc/eieio.texi
+++ b/doc/misc/eieio.texi
@@ -1458,7 +1458,7 @@ Useful methods to define for your new class include:
1458 1458
1459@defmethod eieio-speedbar eieio-speedbar-derive-line-path obj depth 1459@defmethod eieio-speedbar eieio-speedbar-derive-line-path obj depth
1460Return a string representing a directory associated with an instance 1460Return a string representing a directory associated with an instance
1461of @var{obj}. @var{depth} can be used to indice how many levels of 1461of @var{obj}. @var{depth} can be used to index how many levels of
1462indentation have been opened by the user where @var{obj} is shown. 1462indentation have been opened by the user where @var{obj} is shown.
1463@end defmethod 1463@end defmethod
1464 1464
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index f099dfd36d0..69b17a94d68 100644
--- a/doc/misc/gnus.texi
+++ b/doc/misc/gnus.texi
@@ -13761,7 +13761,7 @@ The same as the above, but don't do automatic @acronym{STARTTLS} upgrades.
13761@findex nntp-open-tls-stream 13761@findex nntp-open-tls-stream
13762@item nntp-open-tls-stream 13762@item nntp-open-tls-stream
13763Opens a connection to a server over a @dfn{secure} channel. To use 13763Opens a connection to a server over a @dfn{secure} channel. To use
13764this you must have @uref{http://www.gnu.org/software/gnutls/, GNUTLS} 13764this you must have @uref{http://www.gnu.org/software/gnutls/, GnuTLS}
13765installed. You then define a server as follows: 13765installed. You then define a server as follows:
13766 13766
13767@lisp 13767@lisp
@@ -21279,7 +21279,7 @@ name (or part of a name) to match.
21279@node The swish++ Engine 21279@node The swish++ Engine
21280@subsubsection The swish++ Engine 21280@subsubsection The swish++ Engine
21281 21281
21282FIXEM: Say something more here. 21282FIXME: Say something more here.
21283 21283
21284Documentation for swish++ may be found at the swish++ sourceforge page: 21284Documentation for swish++ may be found at the swish++ sourceforge page:
21285@uref{http://swishplusplus.sourceforge.net} 21285@uref{http://swishplusplus.sourceforge.net}
@@ -21302,7 +21302,7 @@ to get a group name. By default this is @code{$HOME/Mail}.
21302@node The swish-e Engine 21302@node The swish-e Engine
21303@subsubsection The swish-e Engine 21303@subsubsection The swish-e Engine
21304 21304
21305FIXEM: Say something more here. 21305FIXME: Say something more here.
21306 21306
21307Documentation for swish-e may be found at the swish-e homepage 21307Documentation for swish-e may be found at the swish-e homepage
21308@uref{http://swish-e.org} 21308@uref{http://swish-e.org}
@@ -21895,7 +21895,7 @@ Clearly, the easiest way would be if marks could somehow be
21895automatically set for the original article. This is exactly what 21895automatically set for the original article. This is exactly what
21896@emph{marks propagation} is about. 21896@emph{marks propagation} is about.
21897 21897
21898Marks propagation is deactivated by default. You can activate it for a 21898Marks propagation is inactive by default. You can activate it for a
21899certain @code{nnmairix} group with 21899certain @code{nnmairix} group with
21900@code{nnmairix-group-toggle-propmarks-this-group} (bound to @kbd{G b 21900@code{nnmairix-group-toggle-propmarks-this-group} (bound to @kbd{G b
21901p}). This function will warn you if you try to use it with your default 21901p}). This function will warn you if you try to use it with your default
@@ -22047,7 +22047,7 @@ an example server definition:
22047(nnml "mairix" (nnml-directory "mairix") (nnml-get-new-mail nil)) 22047(nnml "mairix" (nnml-directory "mairix") (nnml-get-new-mail nil))
22048@end lisp 22048@end lisp
22049 22049
22050(The @code{nnmaildir} back end also has a server variabe 22050(The @code{nnmaildir} back end also has a server variable
22051@code{get-new-mail}, but its default value is @code{nil}, so you don't 22051@code{get-new-mail}, but its default value is @code{nil}, so you don't
22052have to explicitly set it if you use a @code{nnmaildir} server just for 22052have to explicitly set it if you use a @code{nnmaildir} server just for
22053mairix.) 22053mairix.)
@@ -27408,7 +27408,7 @@ considered home score and adapt files (@pxref{Home Score File}) have
27408been added. 27408been added.
27409 27409
27410@item 27410@item
27411@code{nndoc} was rewritten to be easily extendable (@pxref{Document 27411@code{nndoc} was rewritten to be easily extensible (@pxref{Document
27412Server Internals}). 27412Server Internals}).
27413 27413
27414@item 27414@item
@@ -27801,7 +27801,7 @@ The revised Gnus @acronym{FAQ} is included in the manual,
27801@acronym{TLS} wrapper shipped with Gnus 27801@acronym{TLS} wrapper shipped with Gnus
27802 27802
27803@acronym{TLS}/@acronym{SSL} is now supported in @acronym{IMAP} and 27803@acronym{TLS}/@acronym{SSL} is now supported in @acronym{IMAP} and
27804@acronym{NNTP} via @file{tls.el} and GNUTLS. 27804@acronym{NNTP} via @file{tls.el} and GnuTLS.
27805 27805
27806@item 27806@item
27807Improved anti-spam features. 27807Improved anti-spam features.
diff --git a/doc/misc/idlwave.texi b/doc/misc/idlwave.texi
index 8e172301915..3e13dbb0f23 100644
--- a/doc/misc/idlwave.texi
+++ b/doc/misc/idlwave.texi
@@ -62,7 +62,7 @@ developing GNU and promoting software freedom.''
62IDLWAVE is a package which supports editing source code written in the 62IDLWAVE is a package which supports editing source code written in the
63Interactive Data Language (IDL), and running IDL as an inferior shell. 63Interactive Data Language (IDL), and running IDL as an inferior shell.
64 64
65@insertcopying 65@insertcopying
66@end ifnottex 66@end ifnottex
67 67
68@menu 68@menu
@@ -72,8 +72,8 @@ Interactive Data Language (IDL), and running IDL as an inferior shell.
72* The IDLWAVE Major Mode:: The mode for editing IDL programs 72* The IDLWAVE Major Mode:: The mode for editing IDL programs
73* The IDLWAVE Shell:: The mode for running IDL as an inferior program 73* The IDLWAVE Shell:: The mode for running IDL as an inferior program
74* Acknowledgements:: Who did what 74* Acknowledgements:: Who did what
75* Sources of Routine Info:: How does IDLWAVE know about routine XYZ 75* Sources of Routine Info:: How does IDLWAVE know about routine XYZ
76* HTML Help Browser Tips:: 76* HTML Help Browser Tips::
77* Configuration Examples:: The user is king 77* Configuration Examples:: The user is king
78* Windows and MacOS:: What still works, and how 78* Windows and MacOS:: What still works, and how
79* Troubleshooting:: When good computers turn bad 79* Troubleshooting:: When good computers turn bad
@@ -85,9 +85,9 @@ Interactive Data Language (IDL), and running IDL as an inferior shell.
85 85
86Getting Started (Tutorial) 86Getting Started (Tutorial)
87 87
88* Lesson I -- Development Cycle:: 88* Lesson I -- Development Cycle::
89* Lesson II -- Customization:: 89* Lesson II -- Customization::
90* Lesson III -- User Catalog:: 90* Lesson III -- User Catalog::
91 91
92The IDLWAVE Major Mode 92The IDLWAVE Major Mode
93 93
@@ -107,7 +107,7 @@ The IDLWAVE Major Mode
107Code Formatting 107Code Formatting
108 108
109* Code Indentation:: Reflecting the logical structure 109* Code Indentation:: Reflecting the logical structure
110* Continued Statement Indentation:: 110* Continued Statement Indentation::
111* Comment Indentation:: Special indentation for comment lines 111* Comment Indentation:: Special indentation for comment lines
112* Continuation Lines:: Splitting statements over lines 112* Continuation Lines:: Splitting statements over lines
113* Syntax Highlighting:: Font-lock support 113* Syntax Highlighting:: Font-lock support
@@ -115,14 +115,14 @@ Code Formatting
115 115
116Online Help 116Online Help
117 117
118* Help with HTML Documentation:: 118* Help with HTML Documentation::
119* Help with Source:: 119* Help with Source::
120 120
121Completion 121Completion
122 122
123* Case of Completed Words:: CaseOFcomPletedWords 123* Case of Completed Words:: CaseOFcomPletedWords
124* Object Method Completion and Class Ambiguity:: obj->Method, what? 124* Object Method Completion and Class Ambiguity:: obj->Method, what?
125* Object Method Completion in the Shell:: 125* Object Method Completion in the Shell::
126* Class and Keyword Inheritance:: obj->Method, _EXTRA=e 126* Class and Keyword Inheritance:: obj->Method, _EXTRA=e
127* Structure Tag Completion:: Completing state.Tag 127* Structure Tag Completion:: Completing state.Tag
128 128
@@ -136,32 +136,32 @@ The IDLWAVE Shell
136 136
137* Starting the Shell:: How to launch IDL as a subprocess 137* Starting the Shell:: How to launch IDL as a subprocess
138* Using the Shell:: Interactively working with the Shell 138* Using the Shell:: Interactively working with the Shell
139* Commands Sent to the Shell:: 139* Commands Sent to the Shell::
140* Debugging IDL Programs:: 140* Debugging IDL Programs::
141* Examining Variables:: 141* Examining Variables::
142* Custom Expression Examination:: 142* Custom Expression Examination::
143 143
144Debugging IDL Programs 144Debugging IDL Programs
145 145
146* A Tale of Two Modes:: 146* A Tale of Two Modes::
147* Debug Key Bindings:: 147* Debug Key Bindings::
148* Breakpoints and Stepping:: 148* Breakpoints and Stepping::
149* Compiling Programs:: 149* Compiling Programs::
150* Walking the Calling Stack:: 150* Walking the Calling Stack::
151* Electric Debug Mode:: 151* Electric Debug Mode::
152 152
153Sources of Routine Info 153Sources of Routine Info
154 154
155* Routine Definitions:: Where IDL Routines are defined. 155* Routine Definitions:: Where IDL Routines are defined.
156* Routine Information Sources:: So how does IDLWAVE know about... 156* Routine Information Sources:: So how does IDLWAVE know about...
157* Catalogs:: 157* Catalogs::
158* Load-Path Shadows:: Routines defined in several places 158* Load-Path Shadows:: Routines defined in several places
159* Documentation Scan:: Scanning the IDL Manuals 159* Documentation Scan:: Scanning the IDL Manuals
160 160
161Catalogs 161Catalogs
162 162
163* Library Catalogs:: 163* Library Catalogs::
164* User Catalog:: 164* User Catalog::
165 165
166@end detailmenu 166@end detailmenu
167@end menu 167@end menu
@@ -193,13 +193,13 @@ form a complete development environment. Here is a brief summary of
193what IDLWAVE does: 193what IDLWAVE does:
194 194
195@itemize @bullet 195@itemize @bullet
196@item 196@item
197Smart code indentation and automatic-formatting. 197Smart code indentation and automatic-formatting.
198@item 198@item
199Three level syntax highlighting support. 199Three level syntax highlighting support.
200@item 200@item
201Context-sensitive display of calling sequences and keywords for more 201Context-sensitive display of calling sequences and keywords for more
202than 1000 native IDL routines, extendible to any additional number of 202than 1000 native IDL routines, extensible to any additional number of
203local routines, and already available with many pre-scanned libraries. 203local routines, and already available with many pre-scanned libraries.
204@item 204@item
205Fast, context-sensitive online HTML help, or source-header help for 205Fast, context-sensitive online HTML help, or source-header help for
@@ -373,9 +373,9 @@ at point.
373@cindex Getting Started 373@cindex Getting Started
374 374
375@menu 375@menu
376* Lesson I -- Development Cycle:: 376* Lesson I -- Development Cycle::
377* Lesson II -- Customization:: 377* Lesson II -- Customization::
378* Lesson III -- User Catalog:: 378* Lesson III -- User Catalog::
379@end menu 379@end menu
380 380
381@node Lesson I -- Development Cycle, Lesson II -- Customization, Getting Started, Getting Started 381@node Lesson I -- Development Cycle, Lesson II -- Customization, Getting Started, Getting Started
@@ -418,13 +418,13 @@ function daynr,d,m,y
418 y1 = y * delta 418 y1 = y * delta
419 return, d + floor(m1*30.6)+floor(y1*365.25)+5 419 return, d + floor(m1*30.6)+floor(y1*365.25)+5
420end 420end
421 421
422function weekday,day,month,year 422function weekday,day,month,year
423 ;; compute weekday number for date 423 ;; compute weekday number for date
424 nr = daynr(day,month,year) 424 nr = daynr(day,month,year)
425 return, nr mod 7 425 return, nr mod 7
426end 426end
427 427
428pro plot_wday,day,month 428pro plot_wday,day,month
429 ;; Plot the weekday of a date in the first 10 years of this century. 429 ;; Plot the weekday of a date in the first 10 years of this century.
430 years = 2000,+indgen(10) 430 years = 2000,+indgen(10)
@@ -753,7 +753,7 @@ them.
753 753
754@menu 754@menu
755* Code Indentation:: Reflecting the logical structure 755* Code Indentation:: Reflecting the logical structure
756* Continued Statement Indentation:: 756* Continued Statement Indentation::
757* Comment Indentation:: Special indentation for comment lines 757* Comment Indentation:: Special indentation for comment lines
758* Continuation Lines:: Splitting statements over lines 758* Continuation Lines:: Splitting statements over lines
759* Syntax Highlighting:: Font-lock support 759* Syntax Highlighting:: Font-lock support
@@ -797,7 +797,7 @@ subprogram). The command @kbd{C-M-q} reindents the entire current
797routine. @xref{Actions}, for information how to impose additional 797routine. @xref{Actions}, for information how to impose additional
798formatting conventions on foreign code. 798formatting conventions on foreign code.
799 799
800@defopt idlwave-main-block-indent (@code{2}) 800@defopt idlwave-main-block-indent (@code{2})
801Extra indentation for the main block of code. That is the block between 801Extra indentation for the main block of code. That is the block between
802the FUNCTION/PRO statement and the END statement for that program 802the FUNCTION/PRO statement and the END statement for that program
803unit. 803unit.
@@ -998,7 +998,7 @@ in the first line of a comment paragraph.
998 998
999@defopt idlwave-use-last-hang-indent (@code{nil}) 999@defopt idlwave-use-last-hang-indent (@code{nil})
1000Non-@code{nil} means use last match on line for 1000Non-@code{nil} means use last match on line for
1001@code{idlwave-indent-regexp}. 1001@code{idlwave-indent-regexp}.
1002@end defopt 1002@end defopt
1003 1003
1004@node Syntax Highlighting, Octals and Highlighting, Continuation Lines, Code Formatting 1004@node Syntax Highlighting, Octals and Highlighting, Continuation Lines, Code Formatting
@@ -1026,7 +1026,7 @@ for highlighting using the variable
1026 1026
1027@defopt idlwave-default-font-lock-items 1027@defopt idlwave-default-font-lock-items
1028Items which should be fontified on the default fontification level 1028Items which should be fontified on the default fontification level
10292. 10292.
1030@end defopt 1030@end defopt
1031 1031
1032@node Octals and Highlighting, , Syntax Highlighting, Code Formatting 1032@node Octals and Highlighting, , Syntax Highlighting, Code Formatting
@@ -1104,7 +1104,7 @@ plot,x,alog(x+5*sin(x) + 2),
1104On positions 1,2 and 8, information about the @samp{plot} procedure will 1104On positions 1,2 and 8, information about the @samp{plot} procedure will
1105be shown. On positions 3,4, and 7, the @samp{alog} function will be 1105be shown. On positions 3,4, and 7, the @samp{alog} function will be
1106described, while positions 5 and 6 will investigate the @samp{sin} 1106described, while positions 5 and 6 will investigate the @samp{sin}
1107function. 1107function.
1108 1108
1109When you ask for routine information about an object method, and the 1109When you ask for routine information about an object method, and the
1110method exists in several classes, IDLWAVE queries for the class of the 1110method exists in several classes, IDLWAVE queries for the class of the
@@ -1162,7 +1162,7 @@ will automatically split into the next two.
1162@item @i{Other} 1162@item @i{Other}
1163@tab Any other routine with a file not known to be on the search path. 1163@tab Any other routine with a file not known to be on the search path.
1164@item @i{Unresolved} 1164@item @i{Unresolved}
1165@tab An otherwise unknown routine the shell lists as unresolved 1165@tab An otherwise unknown routine the shell lists as unresolved
1166(referenced, but not compiled). 1166(referenced, but not compiled).
1167@end multitable 1167@end multitable
1168 1168
@@ -1198,7 +1198,7 @@ with the middle mouse button inserts keywords or visits files:
1198@item @i{Usage} 1198@item @i{Usage}
1199@tab If online help is installed, a click with the @emph{right} mouse 1199@tab If online help is installed, a click with the @emph{right} mouse
1200button on the @i{Usage:} line will access the help for the 1200button on the @i{Usage:} line will access the help for the
1201routine (@pxref{Online Help}). 1201routine (@pxref{Online Help}).
1202@item @i{Keyword} 1202@item @i{Keyword}
1203@tab Online help about keywords is also available with the 1203@tab Online help about keywords is also available with the
1204@emph{right} mouse button. Clicking on a keyword with the @emph{middle} 1204@emph{right} mouse button. Clicking on a keyword with the @emph{middle}
@@ -1340,8 +1340,8 @@ directly in the originating source file.
1340 1340
1341 1341
1342@menu 1342@menu
1343* Help with HTML Documentation:: 1343* Help with HTML Documentation::
1344* Help with Source:: 1344* Help with Source::
1345@end menu 1345@end menu
1346 1346
1347@node Help with HTML Documentation, Help with Source, Online Help, Online Help 1347@node Help with HTML Documentation, Help with Source, Online Help, Online Help
@@ -1393,7 +1393,7 @@ configuring a browser for use with IDL's HTML help system.
1393Relative directory of the system-supplied HTML help directory, 1393Relative directory of the system-supplied HTML help directory,
1394considered with respect to @code{idlwave-system-directory}. Relevant 1394considered with respect to @code{idlwave-system-directory}. Relevant
1395for IDL 6.2 and greater. Should not change. 1395for IDL 6.2 and greater. Should not change.
1396@end defopt 1396@end defopt
1397 1397
1398@defopt idlwave-html-help-location @file{/usr/local/etc/} 1398@defopt idlwave-html-help-location @file{/usr/local/etc/}
1399The directory where the @file{idl_html_help} HTML directory live. 1399The directory where the @file{idl_html_help} HTML directory live.
@@ -1613,7 +1613,7 @@ available.
1613@menu 1613@menu
1614* Case of Completed Words:: CaseOFcomPletedWords 1614* Case of Completed Words:: CaseOFcomPletedWords
1615* Object Method Completion and Class Ambiguity:: obj->Method, what? 1615* Object Method Completion and Class Ambiguity:: obj->Method, what?
1616* Object Method Completion in the Shell:: 1616* Object Method Completion in the Shell::
1617* Class and Keyword Inheritance:: obj->Method, _EXTRA=e 1617* Class and Keyword Inheritance:: obj->Method, _EXTRA=e
1618* Structure Tag Completion:: Completing state.Tag 1618* Structure Tag Completion:: Completing state.Tag
1619@end menu 1619@end menu
@@ -1681,7 +1681,7 @@ narrow down the number of possible completions. The variable
1681@code{idlwave-query-class} can be configured to make such prompting the 1681@code{idlwave-query-class} can be configured to make such prompting the
1682default for all methods (not recommended), or selectively for very 1682default for all methods (not recommended), or selectively for very
1683common methods for which the number of completing keywords would be too 1683common methods for which the number of completing keywords would be too
1684large (e.g. @code{Init,SetProperty,GetProperty}). 1684large (e.g. @code{Init,SetProperty,GetProperty}).
1685 1685
1686@cindex Saving object class on @code{->} 1686@cindex Saving object class on @code{->}
1687@cindex @code{->} 1687@cindex @code{->}
@@ -1729,7 +1729,7 @@ routine info, or online help within a method routine, a query is sent to
1729determine the class of the object. If this query is successful, the 1729determine the class of the object. If this query is successful, the
1730class found will be used to select appropriate completions, routine 1730class found will be used to select appropriate completions, routine
1731info, or help. If unsuccessful, information from all known classes will 1731info, or help. If unsuccessful, information from all known classes will
1732be used (as in the buffer). 1732be used (as in the buffer).
1733 1733
1734@node Class and Keyword Inheritance, Structure Tag Completion, Object Method Completion in the Shell, Completion 1734@node Class and Keyword Inheritance, Structure Tag Completion, Object Method Completion in the Shell, Completion
1735@subsection Class and Keyword Inheritance 1735@subsection Class and Keyword Inheritance
@@ -1772,7 +1772,7 @@ keywords based on their originating class.
1772Non-@code{nil} means consider inheritance during completion, online help etc. 1772Non-@code{nil} means consider inheritance during completion, online help etc.
1773@end defopt 1773@end defopt
1774 1774
1775@defopt idlwave-keyword-class-inheritance 1775@defopt idlwave-keyword-class-inheritance
1776A list of regular expressions to match methods for which simple 1776A list of regular expressions to match methods for which simple
1777class-driven keyword inheritance will be used for Completion. 1777class-driven keyword inheritance will be used for Completion.
1778@end defopt 1778@end defopt
@@ -1802,7 +1802,7 @@ Structure tag completion is not enabled by default. To enable it,
1802simply add the following to your @file{.emacs}: 1802simply add the following to your @file{.emacs}:
1803 1803
1804@lisp 1804@lisp
1805 (add-hook 'idlwave-load-hook 1805 (add-hook 'idlwave-load-hook
1806 (lambda () (require 'idlw-complete-structtag))) 1806 (lambda () (require 'idlw-complete-structtag)))
1807@end lisp 1807@end lisp
1808 1808
@@ -2226,7 +2226,7 @@ your @file{.emacs} file:
2226 (idlwave-action-and-binding "\\<\\(pro\\|function\\)\\>[ \t]*\\<" 2226 (idlwave-action-and-binding "\\<\\(pro\\|function\\)\\>[ \t]*\\<"
2227 '(capitalize-word 1) t) 2227 '(capitalize-word 1) t)
2228 ;; Capitalize common block name 2228 ;; Capitalize common block name
2229 (idlwave-action-and-binding "\\<common\\>[ \t]+\\<" 2229 (idlwave-action-and-binding "\\<common\\>[ \t]+\\<"
2230 '(capitalize-word 1) t))) 2230 '(capitalize-word 1) t)))
2231@end lisp 2231@end lisp
2232 2232
@@ -2384,10 +2384,10 @@ currently only works under Unix and MacOSX.
2384@menu 2384@menu
2385* Starting the Shell:: How to launch IDL as a subprocess 2385* Starting the Shell:: How to launch IDL as a subprocess
2386* Using the Shell:: Interactively working with the Shell 2386* Using the Shell:: Interactively working with the Shell
2387* Commands Sent to the Shell:: 2387* Commands Sent to the Shell::
2388* Debugging IDL Programs:: 2388* Debugging IDL Programs::
2389* Examining Variables:: 2389* Examining Variables::
2390* Custom Expression Examination:: 2390* Custom Expression Examination::
2391@end menu 2391@end menu
2392 2392
2393@node Starting the Shell, Using the Shell, The IDLWAVE Shell, The IDLWAVE Shell 2393@node Starting the Shell, Using the Shell, The IDLWAVE Shell, The IDLWAVE Shell
@@ -2414,7 +2414,7 @@ In order to create a separate frame for the IDLWAVE shell buffer, call
2414@code{idlwave-shell} with a prefix argument: @kbd{C-u C-c C-s} or 2414@code{idlwave-shell} with a prefix argument: @kbd{C-u C-c C-s} or
2415@kbd{C-u C-c C-l}. If you always want a dedicated frame for the shell 2415@kbd{C-u C-c C-l}. If you always want a dedicated frame for the shell
2416window, configure the variable 2416window, configure the variable
2417@code{idlwave-shell-use-dedicated-frame}. 2417@code{idlwave-shell-use-dedicated-frame}.
2418 2418
2419To launch a quick IDLWAVE shell directly from a shell prompt without 2419To launch a quick IDLWAVE shell directly from a shell prompt without
2420an IDLWAVE buffer (e.g., as a replacement for running inside an 2420an IDLWAVE buffer (e.g., as a replacement for running inside an
@@ -2471,7 +2471,7 @@ The file in which the command history of the idlwave shell is saved.
2471Unless it's an absolute path, it goes in 2471Unless it's an absolute path, it goes in
2472@code{idlwave-config-directory}. 2472@code{idlwave-config-directory}.
2473@end defopt 2473@end defopt
2474 2474
2475@defopt idlwave-shell-use-dedicated-frame (@code{nil}) 2475@defopt idlwave-shell-use-dedicated-frame (@code{nil})
2476Non-@code{nil} means IDLWAVE should use a special frame to display the 2476Non-@code{nil} means IDLWAVE should use a special frame to display the
2477shell buffer. 2477shell buffer.
@@ -2574,7 +2574,7 @@ keywords, system variables, system variable tags etc.
2574@item @kbd{C-c C-v} 2574@item @kbd{C-c C-v}
2575@tab Find the source file of a routine (@code{idlwave-find-module}) 2575@tab Find the source file of a routine (@code{idlwave-find-module})
2576@item @kbd{C-c C-t} 2576@item @kbd{C-c C-t}
2577@tab Find the source file of a routine in the currently visited file 2577@tab Find the source file of a routine in the currently visited file
2578(@code{idlwave-find-module-this-file}). 2578(@code{idlwave-find-module-this-file}).
2579@item @kbd{C-c =} 2579@item @kbd{C-c =}
2580@tab Compile a library routine (@code{idlwave-resolve}) 2580@tab Compile a library routine (@code{idlwave-resolve})
@@ -2697,12 +2697,12 @@ buffers.
2697@end defopt 2697@end defopt
2698 2698
2699@menu 2699@menu
2700* A Tale of Two Modes:: 2700* A Tale of Two Modes::
2701* Debug Key Bindings:: 2701* Debug Key Bindings::
2702* Breakpoints and Stepping:: 2702* Breakpoints and Stepping::
2703* Compiling Programs:: 2703* Compiling Programs::
2704* Walking the Calling Stack:: 2704* Walking the Calling Stack::
2705* Electric Debug Mode:: 2705* Electric Debug Mode::
2706@end menu 2706@end menu
2707 2707
2708 2708
@@ -2795,7 +2795,7 @@ executed from the shell window, the breakpoint where IDL is currently
2795stopped will be deleted. To clear all breakpoints, use @kbd{C-c C-d 2795stopped will be deleted. To clear all breakpoints, use @kbd{C-c C-d
2796C-a} (@code{idlwave-clear-all-bp}). Breakpoints can also be disabled 2796C-a} (@code{idlwave-clear-all-bp}). Breakpoints can also be disabled
2797and re-enabled: @kbd{C-c C-d C-\} 2797and re-enabled: @kbd{C-c C-d C-\}
2798(@code{idlwave-shell-toggle-enable-current-bp}). 2798(@code{idlwave-shell-toggle-enable-current-bp}).
2799 2799
2800Breakpoint lines are highlighted or indicated with an icon in the source 2800Breakpoint lines are highlighted or indicated with an icon in the source
2801code (different icons for conditional, after, and other break types). 2801code (different icons for conditional, after, and other break types).
@@ -2804,7 +2804,7 @@ places breakpoints as close as possible on or after the line you
2804specify. IDLWAVE queries the shell for the actual breakpoint location 2804specify. IDLWAVE queries the shell for the actual breakpoint location
2805which was set, so the exact line you specify may not be marked. You can 2805which was set, so the exact line you specify may not be marked. You can
2806re-sync the breakpoint list and update the display at any time (e.g., if 2806re-sync the breakpoint list and update the display at any time (e.g., if
2807you add or remove some on the command line) using @kbd{C-c C-d C-l}. 2807you add or remove some on the command line) using @kbd{C-c C-d C-l}.
2808 2808
2809In recent IDLWAVE versions, the breakpoint line is highlighted when the 2809In recent IDLWAVE versions, the breakpoint line is highlighted when the
2810mouse is moved over it, and a tooltip pops up describing the break 2810mouse is moved over it, and a tooltip pops up describing the break
@@ -2914,8 +2914,8 @@ configured in @code{idlwave-shell-mark-stop-line}.
2914@kindex C-c C-d C-c 2914@kindex C-c C-d C-c
2915In order to compile the current buffer under the IDLWAVE shell, press 2915In order to compile the current buffer under the IDLWAVE shell, press
2916@kbd{C-c C-d C-c} (@code{idlwave-save-and-run}). This first saves the 2916@kbd{C-c C-d C-c} (@code{idlwave-save-and-run}). This first saves the
2917current buffer and then sends the command @samp{.run path/to/file} to the 2917current buffer and then sends the command @samp{.run path/to/file} to the
2918shell. You can also execute @kbd{C-c C-d C-c} from the shell buffer, in 2918shell. You can also execute @kbd{C-c C-d C-c} from the shell buffer, in
2919which case the most recently compiled buffer will be saved and 2919which case the most recently compiled buffer will be saved and
2920re-compiled. 2920re-compiled.
2921 2921
@@ -3080,9 +3080,9 @@ halts.
3080 3080
3081@defopt idlwave-shell-electric-stop-color (Violet) 3081@defopt idlwave-shell-electric-stop-color (Violet)
3082Default color of the stopped line overlay when in electric debug mode. 3082Default color of the stopped line overlay when in electric debug mode.
3083@end defopt 3083@end defopt
3084 3084
3085@defopt idlwave-shell-electric-stop-line-face 3085@defopt idlwave-shell-electric-stop-line-face
3086The face to use for the stopped line. Defaults to a face similar to the 3086The face to use for the stopped line. Defaults to a face similar to the
3087modeline, with color @code{idlwave-shell-electric-stop-color}. 3087modeline, with color @code{idlwave-shell-electric-stop-color}.
3088@end defopt 3088@end defopt
@@ -3188,14 +3188,14 @@ the expression printed by IDL.
3188@end defopt 3188@end defopt
3189 3189
3190@defopt idlwave-shell-output-face 3190@defopt idlwave-shell-output-face
3191The face for @code{idlwave-shell-output-overlay}. 3191The face for @code{idlwave-shell-output-overlay}.
3192Allows to choose the font, color and other properties for the most 3192Allows to choose the font, color and other properties for the most
3193recent output of IDL when examining an expression." 3193recent output of IDL when examining an expression."
3194@end defopt 3194@end defopt
3195 3195
3196@defopt idlwave-shell-separate-examine-output (@code{t}) 3196@defopt idlwave-shell-separate-examine-output (@code{t})
3197If non-@code{nil}, re-direct the output of examine commands to a special 3197If non-@code{nil}, re-direct the output of examine commands to a special
3198@file{*Examine*} buffer, instead of in the shell itself. 3198@file{*Examine*} buffer, instead of in the shell itself.
3199@end defopt 3199@end defopt
3200 3200
3201@defopt idlwave-shell-max-print-length (200) 3201@defopt idlwave-shell-max-print-length (200)
@@ -3249,17 +3249,17 @@ Both functions take a single string argument sharing the syntax of the
3249@lisp 3249@lisp
3250(add-hook 'idlwave-shell-mode-hook 3250(add-hook 'idlwave-shell-mode-hook
3251 (lambda () 3251 (lambda ()
3252 (idlwave-shell-define-key-both [s-down-mouse-2] 3252 (idlwave-shell-define-key-both [s-down-mouse-2]
3253 (idlwave-shell-mouse-examine 3253 (idlwave-shell-mouse-examine
3254 "print, size(___,/DIMENSIONS)")) 3254 "print, size(___,/DIMENSIONS)"))
3255 (idlwave-shell-define-key-both [f9] (idlwave-shell-examine 3255 (idlwave-shell-define-key-both [f9] (idlwave-shell-examine
3256 "print, size(___,/DIMENSIONS)")) 3256 "print, size(___,/DIMENSIONS)"))
3257 (idlwave-shell-define-key-both [f10] (idlwave-shell-examine 3257 (idlwave-shell-define-key-both [f10] (idlwave-shell-examine
3258 "print,size(___,/TNAME)")) 3258 "print,size(___,/TNAME)"))
3259 (idlwave-shell-define-key-both [f11] (idlwave-shell-examine 3259 (idlwave-shell-define-key-both [f11] (idlwave-shell-examine
3260 "help,___,/STRUCTURE")))) 3260 "help,___,/STRUCTURE"))))
3261@end lisp 3261@end lisp
3262 3262
3263@noindent Now pressing @key{f9}, or middle-mouse dragging with the 3263@noindent Now pressing @key{f9}, or middle-mouse dragging with the
3264@key{SUPER} key depressed, will print the dimensions of the nearby or 3264@key{SUPER} key depressed, will print the dimensions of the nearby or
3265highlighted expression. Pressing @key{f10} will give the type string, 3265highlighted expression. Pressing @key{f10} will give the type string,
@@ -3297,7 +3297,7 @@ of the package from version 3.0, during which time he overhauled almost
3297everything, modernized IDLWAVE with many new features, and developed the 3297everything, modernized IDLWAVE with many new features, and developed the
3298manual. 3298manual.
3299 3299
3300@item 3300@item
3301@uref{mailto:jdsmith@@as.arizona.edu, @b{J.D. Smith}}, the current 3301@uref{mailto:jdsmith@@as.arizona.edu, @b{J.D. Smith}}, the current
3302maintainer, as of version 4.10, helped shape object method completion 3302maintainer, as of version 4.10, helped shape object method completion
3303and most new features introduced in versions 4.x, and introduced many 3303and most new features introduced in versions 4.x, and introduced many
@@ -3364,7 +3364,7 @@ know about the accessible routines.
3364@menu 3364@menu
3365* Routine Definitions:: Where IDL Routines are defined. 3365* Routine Definitions:: Where IDL Routines are defined.
3366* Routine Information Sources:: So how does IDLWAVE know about... 3366* Routine Information Sources:: So how does IDLWAVE know about...
3367* Catalogs:: 3367* Catalogs::
3368* Load-Path Shadows:: Routines defined in several places 3368* Load-Path Shadows:: Routines defined in several places
3369* Documentation Scan:: Scanning the IDL Manuals 3369* Documentation Scan:: Scanning the IDL Manuals
3370@end menu 3370@end menu
@@ -3382,7 +3382,7 @@ know about the accessible routines.
3382several places: 3382several places:
3383 3383
3384@enumerate 3384@enumerate
3385@item 3385@item
3386@emph{Builtin routines} are defined inside IDL itself. The source code 3386@emph{Builtin routines} are defined inside IDL itself. The source code
3387of such routines is not available, but instead are learned about through 3387of such routines is not available, but instead are learned about through
3388the IDL documentation. 3388the IDL documentation.
@@ -3390,7 +3390,7 @@ the IDL documentation.
3390Routines which are @emph{part of the current program}, are defined in a 3390Routines which are @emph{part of the current program}, are defined in a
3391file explicitly compiled by the user. This file may or may not be 3391file explicitly compiled by the user. This file may or may not be
3392located on the IDL search path. 3392located on the IDL search path.
3393@item 3393@item
3394@emph{Library routines} are defined in files located on IDL's search 3394@emph{Library routines} are defined in files located on IDL's search
3395path. When a library routine is called for the first time, IDL will 3395path. When a library routine is called for the first time, IDL will
3396find the source file and compile it dynamically. A special sub-category 3396find the source file and compile it dynamically. A special sub-category
@@ -3428,7 +3428,7 @@ directly with IDL in the form of an XML catalog which IDLWAVE scans.
3428Formerly, this list was created by scanning the IDL manuals to produce 3428Formerly, this list was created by scanning the IDL manuals to produce
3429the file @file{idlw-rinfo.el}. 3429the file @file{idlw-rinfo.el}.
3430 3430
3431@item 3431@item
3432IDLWAVE @emph{scans} all its @emph{buffers} in the current Emacs session 3432IDLWAVE @emph{scans} all its @emph{buffers} in the current Emacs session
3433for routine definitions. This is done automatically when routine 3433for routine definitions. This is done automatically when routine
3434information or completion is first requested by the user. Each new 3434information or completion is first requested by the user. Each new
@@ -3547,8 +3547,8 @@ later).
3547@end defopt 3547@end defopt
3548 3548
3549@menu 3549@menu
3550* Library Catalogs:: 3550* Library Catalogs::
3551* User Catalog:: 3551* User Catalog::
3552@end menu 3552@end menu
3553 3553
3554@html 3554@html
@@ -3636,7 +3636,7 @@ instead, including:
3636@itemize @bullet 3636@itemize @bullet
3637@item The scan is internal to Emacs, so you don't need a working Perl 3637@item The scan is internal to Emacs, so you don't need a working Perl
3638installation, as you do for library catalogs. 3638installation, as you do for library catalogs.
3639@item Can be used to scan directories for which the user has no write 3639@item Can be used to scan directories for which the user has no write
3640privileges. 3640privileges.
3641@item Easy widget-based path selection. 3641@item Easy widget-based path selection.
3642@end itemize 3642@end itemize
@@ -3752,7 +3752,7 @@ Another way to find out if a specific routine has multiple definitions
3752on the load path is routine info display (@pxref{Routine Info}). 3752on the load path is routine info display (@pxref{Routine Info}).
3753 3753
3754@node Documentation Scan, , Load-Path Shadows, Sources of Routine Info 3754@node Documentation Scan, , Load-Path Shadows, Sources of Routine Info
3755@appendixsec Documentation Scan 3755@appendixsec Documentation Scan
3756@cindex @file{get_html_rinfo} 3756@cindex @file{get_html_rinfo}
3757@cindex @file{idlw-rinfo.el} 3757@cindex @file{idlw-rinfo.el}
3758@cindex Scanning the documentation 3758@cindex Scanning the documentation
@@ -3920,7 +3920,7 @@ user is King!
3920(setq idlwave-main-block-indent 3) 3920(setq idlwave-main-block-indent 3)
3921(setq idlwave-end-offset -3) 3921(setq idlwave-end-offset -3)
3922(setq idlwave-continuation-indent 1) 3922(setq idlwave-continuation-indent 1)
3923(setq idlwave-begin-line-comment "^;[^;]") ; Leave ";" but not ";;" 3923(setq idlwave-begin-line-comment "^;[^;]") ; Leave ";" but not ";;"
3924 ; anchored at start of line. 3924 ; anchored at start of line.
3925(setq idlwave-surround-by-blank t) ; Turn on padding ops =,<,> 3925(setq idlwave-surround-by-blank t) ; Turn on padding ops =,<,>
3926(setq idlwave-pad-keyword nil) ; Remove spaces for keyword '=' 3926(setq idlwave-pad-keyword nil) ; Remove spaces for keyword '='
@@ -3987,10 +3987,10 @@ user is King!
3987 ;; (local-set-key "\C-j" 'idlwave-newline) ; My preference. 3987 ;; (local-set-key "\C-j" 'idlwave-newline) ; My preference.
3988 3988
3989 ;; Some personal abbreviations 3989 ;; Some personal abbreviations
3990 (define-abbrev idlwave-mode-abbrev-table 3990 (define-abbrev idlwave-mode-abbrev-table
3991 (concat idlwave-abbrev-start-char "wb") "widget_base()" 3991 (concat idlwave-abbrev-start-char "wb") "widget_base()"
3992 (idlwave-keyword-abbrev 1)) 3992 (idlwave-keyword-abbrev 1))
3993 (define-abbrev idlwave-mode-abbrev-table 3993 (define-abbrev idlwave-mode-abbrev-table
3994 (concat idlwave-abbrev-start-char "on") "obj_new()" 3994 (concat idlwave-abbrev-start-char "on") "obj_new()"
3995 (idlwave-keyword-abbrev 1)) 3995 (idlwave-keyword-abbrev 1))
3996 )) 3996 ))
@@ -4008,12 +4008,12 @@ user is King!
4008(add-hook 'idlwave-shell-mode-hook 4008(add-hook 'idlwave-shell-mode-hook
4009 (lambda () 4009 (lambda ()
4010 ;; Set up some custom key and mouse examine commands 4010 ;; Set up some custom key and mouse examine commands
4011 (idlwave-shell-define-key-both [s-down-mouse-2] 4011 (idlwave-shell-define-key-both [s-down-mouse-2]
4012 (idlwave-shell-mouse-examine 4012 (idlwave-shell-mouse-examine
4013 "print, size(___,/DIMENSIONS)")) 4013 "print, size(___,/DIMENSIONS)"))
4014 (idlwave-shell-define-key-both [f9] (idlwave-shell-examine 4014 (idlwave-shell-define-key-both [f9] (idlwave-shell-examine
4015 "print, size(___,/DIMENSIONS)")) 4015 "print, size(___,/DIMENSIONS)"))
4016 (idlwave-shell-define-key-both [f10] (idlwave-shell-examine 4016 (idlwave-shell-define-key-both [f10] (idlwave-shell-examine
4017 "print,size(___,/TNAME)")) 4017 "print,size(___,/TNAME)"))
4018 (idlwave-shell-define-key-both [f11] (idlwave-shell-examine 4018 (idlwave-shell-define-key-both [f11] (idlwave-shell-examine
4019 "help,___,/STRUCTURE")))) 4019 "help,___,/STRUCTURE"))))
@@ -4066,7 +4066,7 @@ system. I am assuming that IDLWAVE has been installed in
4066sure you check the following things: 4066sure you check the following things:
4067 4067
4068@itemize @bullet 4068@itemize @bullet
4069@item When you download the IDLWAVE distribution, make sure you save the 4069@item When you download the IDLWAVE distribution, make sure you save the
4070file under the names @file{idlwave.tar.gz}. 4070file under the names @file{idlwave.tar.gz}.
4071@item M-TAB switches among running programs --- use Esc-TAB 4071@item M-TAB switches among running programs --- use Esc-TAB
4072instead. 4072instead.
@@ -4102,7 +4102,7 @@ customize the variable @code{idlwave-shell-automatic-electric-debug}
4102if you prefer not to enter electric debug on breakpoints@dots{} but 4102if you prefer not to enter electric debug on breakpoints@dots{} but
4103you really should try it before you disable it! You can also 4103you really should try it before you disable it! You can also
4104customize this variable to enter debug mode when errors are 4104customize this variable to enter debug mode when errors are
4105encountered. 4105encountered.
4106 4106
4107@item @strong{I get errors like @samp{Searching for program: no such 4107@item @strong{I get errors like @samp{Searching for program: no such
4108file or directory, idl} when attempting to start the IDL shell.} 4108file or directory, idl} when attempting to start the IDL shell.}
@@ -4141,7 +4141,7 @@ in compiled lisp files. Presumably, you kept the original .elc files in
4141place, and this is the source of the error. If you recompile (or just 4141place, and this is the source of the error. If you recompile (or just
4142"make; make install") from source, it should resolve this problem. 4142"make; make install") from source, it should resolve this problem.
4143Another option is to recompile the @file{idlw*.el} files by hand using 4143Another option is to recompile the @file{idlw*.el} files by hand using
4144@kbd{M-x byte-compile-file}. 4144@kbd{M-x byte-compile-file}.
4145 4145
4146@item @strong{@kbd{M-@key{TAB}} doesn't complete words, it switches 4146@item @strong{@kbd{M-@key{TAB}} doesn't complete words, it switches
4147windows on my desktop.} 4147windows on my desktop.}
@@ -4266,7 +4266,7 @@ You have a mismatch between your help index and the HTML help package
4266you downloaded. You need to ensure you download a ``downgrade kit'' if 4266you downloaded. You need to ensure you download a ``downgrade kit'' if
4267you are using anything older than the latest HTML help package. A new 4267you are using anything older than the latest HTML help package. A new
4268help package appears with each IDL release (assuming the documentation 4268help package appears with each IDL release (assuming the documentation
4269is updated). 4269is updated).
4270Starting with IDL 6.2, the HTML help and its catalog are 4270Starting with IDL 6.2, the HTML help and its catalog are
4271distributed with IDL, and so should never be inconsistent. 4271distributed with IDL, and so should never be inconsistent.
4272 4272
diff --git a/doc/misc/makefile.w32-in b/doc/misc/makefile.w32-in
index 1e497fe309f..0edaf3db3d6 100644
--- a/doc/misc/makefile.w32-in
+++ b/doc/misc/makefile.w32-in
@@ -100,123 +100,127 @@ info.dvi: $(INFOSOURCES)
100 $(ENVADD) $(TEXI2DVI) $(srcdir)/info.texi 100 $(ENVADD) $(TEXI2DVI) $(srcdir)/info.texi
101 101
102 102
103$(infodir)/ccmode: cc-mode.texi 103$(infodir)/ccmode: cc-mode.texi doclicense.texi
104 $(MAKEINFO) $(MAKEINFO_OPTS) cc-mode.texi 104 $(MAKEINFO) $(MAKEINFO_OPTS) cc-mode.texi
105cc-mode.dvi: cc-mode.texi 105cc-mode.dvi: cc-mode.texi doclicense.texi
106 $(ENVADD) $(TEXI2DVI) $(srcdir)/cc-mode.texi 106 $(ENVADD) $(TEXI2DVI) $(srcdir)/cc-mode.texi
107 107
108$(infodir)/ada-mode: ada-mode.texi 108$(infodir)/ada-mode: ada-mode.texi doclicense.texi
109 $(MAKEINFO) $(MAKEINFO_OPTS) ada-mode.texi 109 $(MAKEINFO) $(MAKEINFO_OPTS) ada-mode.texi
110ada-mode.dvi: ada-mode.texi 110ada-mode.dvi: ada-mode.texi doclicense.texi
111 $(ENVADD) $(TEXI2DVI) $(srcdir)/ada-mode.texi 111 $(ENVADD) $(TEXI2DVI) $(srcdir)/ada-mode.texi
112 112
113$(infodir)/pcl-cvs: pcl-cvs.texi 113$(infodir)/pcl-cvs: pcl-cvs.texi doclicense.texi
114 $(MAKEINFO) $(MAKEINFO_OPTS) pcl-cvs.texi 114 $(MAKEINFO) $(MAKEINFO_OPTS) pcl-cvs.texi
115pcl-cvs.dvi: pcl-cvs.texi 115pcl-cvs.dvi: pcl-cvs.texi doclicense.texi
116 $(ENVADD) $(TEXI2DVI) $(srcdir)/pcl-cvs.texi 116 $(ENVADD) $(TEXI2DVI) $(srcdir)/pcl-cvs.texi
117 117
118$(infodir)/eshell: eshell.texi 118$(infodir)/eshell: eshell.texi doclicense.texi
119 $(MAKEINFO) $(MAKEINFO_OPTS) eshell.texi 119 $(MAKEINFO) $(MAKEINFO_OPTS) eshell.texi
120eshell.dvi: eshell.texi 120eshell.dvi: eshell.texi doclicense.texi
121 $(ENVADD) $(TEXI2DVI) $(srcdir)/eshell.texi 121 $(ENVADD) $(TEXI2DVI) $(srcdir)/eshell.texi
122 122
123$(infodir)/cl: cl.texi 123$(infodir)/cl: cl.texi doclicense.texi
124 $(MAKEINFO) $(MAKEINFO_OPTS) cl.texi 124 $(MAKEINFO) $(MAKEINFO_OPTS) cl.texi
125cl.dvi: cl.texi 125cl.dvi: cl.texi doclicense.texi
126 $(ENVADD) $(TEXI2DVI) $(srcdir)/cl.texi 126 $(ENVADD) $(TEXI2DVI) $(srcdir)/cl.texi
127 127
128$(infodir)/dbus: dbus.texi 128$(infodir)/dbus: dbus.texi doclicense.texi
129 $(MAKEINFO) $(MAKEINFO_OPTS) dbus.texi 129 $(MAKEINFO) $(MAKEINFO_OPTS) dbus.texi
130dbus.dvi: dbus.texi 130dbus.dvi: dbus.texi doclicense.texi
131 $(ENVADD) $(TEXI2DVI) $(srcdir)/dbus.texi 131 $(ENVADD) $(TEXI2DVI) $(srcdir)/dbus.texi
132 132
133$(infodir)/dired-x: dired-x.texi 133$(infodir)/dired-x: dired-x.texi $(emacsdir)/emacsver.texi doclicense.texi
134 $(MAKEINFO) $(MAKEINFO_OPTS) dired-x.texi 134 $(MAKEINFO) $(MAKEINFO_OPTS) dired-x.texi
135dired-x.dvi: dired-x.texi 135dired-x.dvi: dired-x.texi $(emacsdir)/emacsver.texi doclicense.texi
136 $(ENVADD) $(TEXI2DVI) $(srcdir)/dired-x.texi 136 $(ENVADD) $(TEXI2DVI) $(srcdir)/dired-x.texi
137 137
138$(infodir)/ediff: ediff.texi 138$(infodir)/ediff: ediff.texi doclicense.texi
139 $(MAKEINFO) $(MAKEINFO_OPTS) ediff.texi 139 $(MAKEINFO) $(MAKEINFO_OPTS) ediff.texi
140ediff.dvi: ediff.texi 140ediff.dvi: ediff.texi doclicense.texi
141 $(ENVADD) $(TEXI2DVI) $(srcdir)/ediff.texi 141 $(ENVADD) $(TEXI2DVI) $(srcdir)/ediff.texi
142 142
143$(infodir)/flymake: flymake.texi 143$(infodir)/flymake: flymake.texi doclicense.texi
144 $(MAKEINFO) $(MAKEINFO_OPTS) flymake.texi 144 $(MAKEINFO) $(MAKEINFO_OPTS) flymake.texi
145flymake.dvi: flymake.texi 145flymake.dvi: flymake.texi doclicense.texi
146 $(ENVADD) $(TEXI2DVI) $(srcdir)/flymake.texi 146 $(ENVADD) $(TEXI2DVI) $(srcdir)/flymake.texi
147 147
148$(infodir)/forms: forms.texi 148$(infodir)/forms: forms.texi doclicense.texi
149 $(MAKEINFO) $(MAKEINFO_OPTS) forms.texi 149 $(MAKEINFO) $(MAKEINFO_OPTS) forms.texi
150forms.dvi: forms.texi 150forms.dvi: forms.texi doclicense.texi
151 $(ENVADD) $(TEXI2DVI) $(srcdir)/forms.texi 151 $(ENVADD) $(TEXI2DVI) $(srcdir)/forms.texi
152 152
153# gnus/message/emacs-mime/sieve/pgg are part of Gnus: 153# gnus/message/emacs-mime/sieve/pgg are part of Gnus:
154$(infodir)/gnus: gnus.texi 154$(infodir)/gnus: gnus.texi gnus-overrides.texi message.texi emacs-mime.texi \
155 sieve.texi pgg.texi sasl.texi gnus-news.texi gnus-faq.texi \
156 doclicense.texi
155 $(MAKEINFO) $(MAKEINFO_OPTS) gnus.texi 157 $(MAKEINFO) $(MAKEINFO_OPTS) gnus.texi
156gnus.dvi: gnus.texi 158gnus.dvi: gnus.texi gnus-overrides.texi message.texi emacs-mime.texi \
159 sieve.texi pgg.texi sasl.texi gnus-news.texi gnus-faq.texi \
160 doclicense.texi
157 sed -e "/@iflatex/,/@end iflatex/d" $(srcdir)/gnus.texi > gnustmp.texi 161 sed -e "/@iflatex/,/@end iflatex/d" $(srcdir)/gnus.texi > gnustmp.texi
158 $(ENVADD) $(TEXI2DVI) gnustmp.texi 162 $(ENVADD) $(TEXI2DVI) gnustmp.texi
159 cp gnustmp.dvi $*.dvi 163 cp gnustmp.dvi $*.dvi
160 rm gnustmp.* 164 rm gnustmp.*
161# 165#
162$(infodir)/message: message.texi 166$(infodir)/message: message.texi gnus-overrides.texi doclicense.texi
163 $(MAKEINFO) $(MAKEINFO_OPTS) message.texi 167 $(MAKEINFO) $(MAKEINFO_OPTS) message.texi
164message.dvi: message.texi 168message.dvi: message.texi gnus-overrides.texi doclicense.texi
165 $(ENVADD) $(TEXI2DVI) $(srcdir)/message.texi 169 $(ENVADD) $(TEXI2DVI) $(srcdir)/message.texi
166# 170#
167$(infodir)/emacs-mime: emacs-mime.texi 171$(infodir)/emacs-mime: emacs-mime.texi gnus-overrides.texi doclicense.texi
168 $(MAKEINFO) $(MAKEINFO_OPTS) --enable-encoding emacs-mime.texi 172 $(MAKEINFO) $(MAKEINFO_OPTS) --enable-encoding emacs-mime.texi
169emacs-mime.dvi: emacs-mime.texi 173emacs-mime.dvi: emacs-mime.texi gnus-overrides.texi doclicense.texi
170 $(ENVADD) $(TEXI2DVI) $(srcdir)/emacs-mime.texi 174 $(ENVADD) $(TEXI2DVI) $(srcdir)/emacs-mime.texi
171# 175#
172$(infodir)/sieve: sieve.texi 176$(infodir)/sieve: sieve.texi gnus-overrides.texi doclicense.texi
173 $(MAKEINFO) $(MAKEINFO_OPTS) sieve.texi 177 $(MAKEINFO) $(MAKEINFO_OPTS) sieve.texi
174sieve.dvi: sieve.texi 178sieve.dvi: sieve.texi gnus-overrides.texi doclicense.texi
175 $(ENVADD) $(TEXI2DVI) $(srcdir)/sieve.texi 179 $(ENVADD) $(TEXI2DVI) $(srcdir)/sieve.texi
176# 180#
177$(infodir)/pgg: pgg.texi 181$(infodir)/pgg: pgg.texi gnus-overrides.texi doclicense.texi
178 $(MAKEINFO) $(MAKEINFO_OPTS) pgg.texi 182 $(MAKEINFO) $(MAKEINFO_OPTS) pgg.texi
179pgg.dvi: pgg.texi 183pgg.dvi: pgg.texi gnus-overrides.texi doclicense.texi
180 $(ENVADD) $(TEXI2DVI) $(srcdir)/pgg.texi 184 $(ENVADD) $(TEXI2DVI) $(srcdir)/pgg.texi
181 185
182$(infodir)/mh-e: mh-e.texi 186$(infodir)/mh-e: mh-e.texi doclicense.texi gpl.texi
183 $(MAKEINFO) $(MAKEINFO_OPTS) mh-e.texi 187 $(MAKEINFO) $(MAKEINFO_OPTS) mh-e.texi
184mh-e.dvi: mh-e.texi 188mh-e.dvi: mh-e.texi doclicense.texi gpl.texi
185 $(ENVADD) $(TEXI2DVI) $(srcdir)/mh-e.texi 189 $(ENVADD) $(TEXI2DVI) $(srcdir)/mh-e.texi
186 190
187$(infodir)/reftex: reftex.texi 191$(infodir)/reftex: reftex.texi doclicense.texi
188 $(MAKEINFO) $(MAKEINFO_OPTS) reftex.texi 192 $(MAKEINFO) $(MAKEINFO_OPTS) reftex.texi
189reftex.dvi: reftex.texi 193reftex.dvi: reftex.texi doclicense.texi
190 $(ENVADD) $(TEXI2DVI) $(srcdir)/reftex.texi 194 $(ENVADD) $(TEXI2DVI) $(srcdir)/reftex.texi
191 195
192$(infodir)/remember: remember.texi 196$(infodir)/remember: remember.texi doclicense.texi
193 $(MAKEINFO) $(MAKEINFO_OPTS) remember.texi 197 $(MAKEINFO) $(MAKEINFO_OPTS) remember.texi
194remember.dvi: remember.texi 198remember.dvi: remember.texi doclicense.texix
195 $(ENVADD) $(TEXI2DVI) $(srcdir)/remember.texi 199 $(ENVADD) $(TEXI2DVI) $(srcdir)/remember.texi
196 200
197$(infodir)/sasl: sasl.texi 201$(infodir)/sasl: sasl.texi gnus-overrides.texi
198 $(MAKEINFO) $(MAKEINFO_OPTS) sasl.texi 202 $(MAKEINFO) $(MAKEINFO_OPTS) sasl.texi
199sasl.dvi: sasl.texi 203sasl.dvi: sasl.texi gnus-overrides.texi
200 $(ENVADD) $(TEXI2DVI) $(srcdir)/sasl.texi 204 $(ENVADD) $(TEXI2DVI) $(srcdir)/sasl.texi
201 205
202$(infodir)/sc: sc.texi 206$(infodir)/sc: sc.texi doclicense.texi
203 $(MAKEINFO) $(MAKEINFO_OPTS) sc.texi 207 $(MAKEINFO) $(MAKEINFO_OPTS) sc.texi
204sc.dvi: sc.texi 208sc.dvi: sc.texi doclicense.texi
205 $(ENVADD) $(TEXI2DVI) $(srcdir)/sc.texi 209 $(ENVADD) $(TEXI2DVI) $(srcdir)/sc.texi
206 210
207$(infodir)/vip: vip.texi 211$(infodir)/vip: vip.texi doclicense.texi
208 $(MAKEINFO) $(MAKEINFO_OPTS) vip.texi 212 $(MAKEINFO) $(MAKEINFO_OPTS) vip.texi
209vip.dvi: vip.texi 213vip.dvi: vip.texi doclicense.texi
210 $(ENVADD) $(TEXI2DVI) $(srcdir)/vip.texi 214 $(ENVADD) $(TEXI2DVI) $(srcdir)/vip.texi
211 215
212$(infodir)/viper: viper.texi 216$(infodir)/viper: viper.texi doclicense.texi
213 $(MAKEINFO) $(MAKEINFO_OPTS) viper.texi 217 $(MAKEINFO) $(MAKEINFO_OPTS) viper.texi
214viper.dvi: viper.texi 218viper.dvi: viper.texi doclicense.texi
215 $(ENVADD) $(TEXI2DVI) $(srcdir)/viper.texi 219 $(ENVADD) $(TEXI2DVI) $(srcdir)/viper.texi
216 220
217$(infodir)/widget: widget.texi 221$(infodir)/widget: widget.texi doclicense.texi
218 $(MAKEINFO) $(MAKEINFO_OPTS) widget.texi 222 $(MAKEINFO) $(MAKEINFO_OPTS) widget.texi
219widget.dvi: widget.texi 223widget.dvi: widget.texi doclicense.texi
220 $(ENVADD) $(TEXI2DVI) $(srcdir)/widget.texi 224 $(ENVADD) $(TEXI2DVI) $(srcdir)/widget.texi
221 225
222$(infodir)/efaq: faq.texi $(emacsdir)/emacsver.texi 226$(infodir)/efaq: faq.texi $(emacsdir)/emacsver.texi
@@ -224,57 +228,56 @@ $(infodir)/efaq: faq.texi $(emacsdir)/emacsver.texi
224faq.dvi: faq.texi $(emacsdir)/emacsver.texi 228faq.dvi: faq.texi $(emacsdir)/emacsver.texi
225 $(ENVADD) $(TEXI2DVI) $(srcdir)/faq.texi 229 $(ENVADD) $(TEXI2DVI) $(srcdir)/faq.texi
226 230
227$(infodir)/autotype: autotype.texi 231$(infodir)/autotype: autotype.texi doclicense.texi
228 $(MAKEINFO) $(MAKEINFO_OPTS) autotype.texi 232 $(MAKEINFO) $(MAKEINFO_OPTS) autotype.texi
229autotype.dvi: autotype.texi 233autotype.dvi: autotype.texi doclicense.texi
230 $(ENVADD) $(TEXI2DVI) $(srcdir)/autotype.texi 234 $(ENVADD) $(TEXI2DVI) $(srcdir)/autotype.texi
231 235
232$(infodir)/calc: calc.texi $(emacsdir)/emacsver.texi 236$(infodir)/calc: calc.texi $(emacsdir)/emacsver.texi gpl.texi doclicense.texi
233 $(MAKEINFO) $(MAKEINFO_OPTS) calc.texi 237 $(MAKEINFO) $(MAKEINFO_OPTS) calc.texi
234 238calc.dvi: calc.texi $(emacsdir)/emacsver.texi gpl.texi doclicense.texi
235calc.dvi: calc.texi $(emacsdir)/emacsver.texi
236 $(ENVADD) $(TEXI2DVI) $(srcdir)/calc.texi 239 $(ENVADD) $(TEXI2DVI) $(srcdir)/calc.texi
237 240
238# This is produced with --no-split to avoid making files whose 241# This is produced with --no-split to avoid making files whose
239# names clash on DOS 8+3 filesystems 242# names clash on DOS 8+3 filesystems
240$(infodir)/idlwave: idlwave.texi 243$(infodir)/idlwave: idlwave.texi doclicense.texi
241 $(MAKEINFO) $(MAKEINFO_OPTS) --no-split idlwave.texi 244 $(MAKEINFO) $(MAKEINFO_OPTS) --no-split idlwave.texi
242idlwave.dvi: idlwave.texi 245idlwave.dvi: idlwave.texi doclicense.texi
243 $(ENVADD) $(TEXI2DVI) $(srcdir)/idlwave.texi 246 $(ENVADD) $(TEXI2DVI) $(srcdir)/idlwave.texi
244 247
245$(infodir)/eudc: eudc.texi 248$(infodir)/eudc: eudc.texi doclicense.texi
246 $(MAKEINFO) $(MAKEINFO_OPTS) eudc.texi 249 $(MAKEINFO) $(MAKEINFO_OPTS) eudc.texi
247eudc.dvi: eudc.texi 250eudc.dvi: eudc.texi doclicense.texi
248 $(ENVADD) $(TEXI2DVI) $(srcdir)/eudc.texi 251 $(ENVADD) $(TEXI2DVI) $(srcdir)/eudc.texi
249 252
250$(infodir)/ebrowse: ebrowse.texi 253$(infodir)/ebrowse: ebrowse.texi doclicense.texi
251 $(MAKEINFO) $(MAKEINFO_OPTS) ebrowse.texi 254 $(MAKEINFO) $(MAKEINFO_OPTS) ebrowse.texi
252ebrowse.dvi: ebrowse.texi 255ebrowse.dvi: ebrowse.texi doclicense.texi
253 $(ENVADD) $(TEXI2DVI) $(srcdir)/ebrowse.texi 256 $(ENVADD) $(TEXI2DVI) $(srcdir)/ebrowse.texi
254 257
255$(infodir)/woman: woman.texi 258$(infodir)/woman: woman.texi doclicense.texi
256 $(MAKEINFO) $(MAKEINFO_OPTS) woman.texi 259 $(MAKEINFO) $(MAKEINFO_OPTS) woman.texi
257woman.dvi: woman.texi 260woman.dvi: woman.texi doclicense.texi
258 $(ENVADD) $(TEXI2DVI) $(srcdir)/woman.texi 261 $(ENVADD) $(TEXI2DVI) $(srcdir)/woman.texi
259 262
260$(infodir)/speedbar: speedbar.texi 263$(infodir)/speedbar: speedbar.texi doclicense.texi
261 $(MAKEINFO) $(MAKEINFO_OPTS) speedbar.texi 264 $(MAKEINFO) $(MAKEINFO_OPTS) speedbar.texi
262speedbar.dvi: speedbar.texi 265speedbar.dvi: speedbar.texi doclicense.texi
263 $(ENVADD) $(TEXI2DVI) $(srcdir)/speedbar.texi 266 $(ENVADD) $(TEXI2DVI) $(srcdir)/speedbar.texi
264 267
265$(infodir)/tramp: tramp.texi 268$(infodir)/tramp: tramp.texi trampver.texi doclicense.texi
266 $(MAKEINFO) $(MAKEINFO_OPTS) tramp.texi 269 $(MAKEINFO) $(MAKEINFO_OPTS) tramp.texi
267tramp.dvi: tramp.texi 270tramp.dvi: tramp.texi trampver.texi doclicense.texi
268 $(ENVADD) $(TEXI2DVI) $(srcdir)/tramp.texi 271 $(ENVADD) $(TEXI2DVI) $(srcdir)/tramp.texi
269 272
270$(infodir)/ses: ses.texi 273$(infodir)/ses: ses.texi doclicense.texi
271 $(MAKEINFO) $(MAKEINFO_OPTS) ses.texi 274 $(MAKEINFO) $(MAKEINFO_OPTS) ses.texi
272ses.dvi: ses.texi 275ses.dvi: ses.texi doclicense.texi
273 $(ENVADD) $(TEXI2DVI) $(srcdir)/ses.texi 276 $(ENVADD) $(TEXI2DVI) $(srcdir)/ses.texi
274 277
275$(infodir)/smtpmail: smtpmail.texi 278$(infodir)/smtpmail: smtpmail.texi doclicense.texi
276 $(MAKEINFO) $(MAKEINFO_OPTS) smtpmail.texi 279 $(MAKEINFO) $(MAKEINFO_OPTS) smtpmail.texi
277smtpmail.dvi: smtpmail.texi 280smtpmail.dvi: smtpmail.texi doclicense.texi
278 $(ENVADD) $(TEXI2DVI) $(srcdir)/smtpmail.texi 281 $(ENVADD) $(TEXI2DVI) $(srcdir)/smtpmail.texi
279 282
280$(infodir)/org: org.texi 283$(infodir)/org: org.texi
@@ -282,14 +285,14 @@ $(infodir)/org: org.texi
282org.dvi: org.texi 285org.dvi: org.texi
283 $(ENVADD) $(TEXI2DVI) $(srcdir)/org.texi 286 $(ENVADD) $(TEXI2DVI) $(srcdir)/org.texi
284 287
285$(infodir)/url: url.texi 288$(infodir)/url: url.texi doclicense.texi
286 $(MAKEINFO) $(MAKEINFO_OPTS) url.texi 289 $(MAKEINFO) $(MAKEINFO_OPTS) url.texi
287url.dvi: url.texi 290url.dvi: url.texi doclicense.texi
288 $(ENVADD) $(TEXI2DVI) $(srcdir)/url.texi 291 $(ENVADD) $(TEXI2DVI) $(srcdir)/url.texi
289 292
290$(infodir)/newsticker: newsticker.texi 293$(infodir)/newsticker: newsticker.texi doclicense.texi
291 $(MAKEINFO) $(MAKEINFO_OPTS) newsticker.texi 294 $(MAKEINFO) $(MAKEINFO_OPTS) newsticker.texi
292newsticker.dvi: newsticker.texi 295newsticker.dvi: newsticker.texi doclicense.texi
293 $(ENVADD) $(TEXI2DVI) $(srcdir)/newsticker.texi 296 $(ENVADD) $(TEXI2DVI) $(srcdir)/newsticker.texi
294 297
295$(infodir)/nxml-mode: nxml-mode.texi 298$(infodir)/nxml-mode: nxml-mode.texi
@@ -297,14 +300,14 @@ $(infodir)/nxml-mode: nxml-mode.texi
297nxml-mod.dvi: nxml-mode.texi 300nxml-mod.dvi: nxml-mode.texi
298 $(ENVADD) $(TEXI2DVI) $(srcdir)/nxml-mode.texi 301 $(ENVADD) $(TEXI2DVI) $(srcdir)/nxml-mode.texi
299 302
300$(infodir)/rcirc: rcirc.texi 303$(infodir)/rcirc: rcirc.texi doclicense.texi
301 $(MAKEINFO) $(MAKEINFO_OPTS) rcirc.texi 304 $(MAKEINFO) $(MAKEINFO_OPTS) rcirc.texi
302rcirc.dvi: rcirc.texi 305rcirc.dvi: rcirc.texi doclicense.texi
303 $(ENVADD) $(TEXI2DVI) $(srcdir)/rcirc.texi 306 $(ENVADD) $(TEXI2DVI) $(srcdir)/rcirc.texi
304 307
305$(infodir)/erc: erc.texi 308$(infodir)/erc: erc.texi gpl.texi doclicense.texi
306 $(MAKEINFO) $(MAKEINFO_OPTS) erc.texi 309 $(MAKEINFO) $(MAKEINFO_OPTS) erc.texi
307erc.dvi: erc.texi 310erc.dvi: erc.texi gpl.texi doclicense.texi
308 $(ENVADD) $(TEXI2DVI) $(srcdir)/erc.texi 311 $(ENVADD) $(TEXI2DVI) $(srcdir)/erc.texi
309 312
310$(infodir)/ert: ert.texi 313$(infodir)/ert: ert.texi
@@ -322,9 +325,9 @@ $(infodir)/mairix-el: mairix-el.texi
322mairix-el.dvi: mairix-el.texi 325mairix-el.dvi: mairix-el.texi
323 $(ENVADD) $(TEXI2DVI) $(srcdir)/mairix-el.texi 326 $(ENVADD) $(TEXI2DVI) $(srcdir)/mairix-el.texi
324 327
325$(infodir)/auth: auth.texi 328$(infodir)/auth: auth.texi gnus-overrides.texi
326 $(MAKEINFO) $(MAKEINFO_OPTS) auth.texi 329 $(MAKEINFO) $(MAKEINFO_OPTS) auth.texi
327auth.dvi: auth.texi 330auth.dvi: auth.texi gnus-overrides.texi
328 $(ENVADD) $(TEXI2DVI) $(srcdir)/auth.texi 331 $(ENVADD) $(TEXI2DVI) $(srcdir)/auth.texi
329 332
330$(infodir)/eieio: eieio.texi 333$(infodir)/eieio: eieio.texi
@@ -337,14 +340,14 @@ $(infodir)/ede: ede.texi
337ede.dvi: ede.texi 340ede.dvi: ede.texi
338 $(ENVADD) $(TEXI2DVI) $(srcdir)/ede.texi 341 $(ENVADD) $(TEXI2DVI) $(srcdir)/ede.texi
339 342
340$(infodir)/semantic: semantic.texi 343$(infodir)/semantic: semantic.texi sem-user.texi doclicense.texi
341 $(MAKEINFO) $(MAKEINFO_OPTS) semantic.texi 344 $(MAKEINFO) $(MAKEINFO_OPTS) semantic.texi
342semantic.dvi: semantic.texi 345semantic.dvi: semantic.texi sem-user.texi doclicense.texi
343 $(ENVADD) $(TEXI2DVI) $(srcdir)/semantic.texi 346 $(ENVADD) $(TEXI2DVI) $(srcdir)/semantic.texi
344 347
345$(infodir)/edt: edt.texi 348$(infodir)/edt: edt.texi doclicense.texi
346 $(MAKEINFO) $(MAKEINFO_OPTS) edt.texi 349 $(MAKEINFO) $(MAKEINFO_OPTS) edt.texi
347edt.dvi: edt.texi 350edt.dvi: edt.texi doclicense.texi
348 $(ENVADD) $(TEXI2DVI) $(srcdir)/edt.texi 351 $(ENVADD) $(TEXI2DVI) $(srcdir)/edt.texi
349 352
350mostlyclean: 353mostlyclean:
diff --git a/doc/misc/message.texi b/doc/misc/message.texi
index 4d828f69bbd..d9062a32572 100644
--- a/doc/misc/message.texi
+++ b/doc/misc/message.texi
@@ -904,7 +904,7 @@ happen---Message will encode non-@acronym{ASCII} domain names in @code{From},
904Until @acronym{IDNA} becomes more well known, Message queries you 904Until @acronym{IDNA} becomes more well known, Message queries you
905whether @acronym{IDNA} encoding of the domain name really should 905whether @acronym{IDNA} encoding of the domain name really should
906occur. Some users might not be aware that domain names can contain 906occur. Some users might not be aware that domain names can contain
907non-@acronym{ASCII} now, so this gives them a safety net if they accidently 907non-@acronym{ASCII} now, so this gives them a safety net if they accidentally
908typed a non-@acronym{ASCII} domain name. 908typed a non-@acronym{ASCII} domain name.
909 909
910@vindex message-use-idna 910@vindex message-use-idna
diff --git a/doc/misc/org.texi b/doc/misc/org.texi
index 34a4ba4f8f3..181e00f8e02 100644
--- a/doc/misc/org.texi
+++ b/doc/misc/org.texi
@@ -7219,7 +7219,7 @@ will be made in the agenda:
7219#+CATEGORY: Holiday 7219#+CATEGORY: Holiday
7220%%(org-calendar-holiday) ; special function for holiday names 7220%%(org-calendar-holiday) ; special function for holiday names
7221#+CATEGORY: Ann 7221#+CATEGORY: Ann
7222%%(org-anniversary 1956 5 14)@footnote{@code{org-anniversary} is just like @code{diary-anniversary}, but the argument order is allways according to ISO and therefore independent of the value of @code{calendar-date-style}.} Arthur Dent is %d years old 7222%%(org-anniversary 1956 5 14)@footnote{@code{org-anniversary} is just like @code{diary-anniversary}, but the argument order is always according to ISO and therefore independent of the value of @code{calendar-date-style}.} Arthur Dent is %d years old
7223%%(org-anniversary 1869 10 2) Mahatma Gandhi would be %d years old 7223%%(org-anniversary 1869 10 2) Mahatma Gandhi would be %d years old
7224@end example 7224@end example
7225 7225
@@ -7797,8 +7797,8 @@ Interactively select another agenda view and append it to the current view.
7797@item o 7797@item o
7798Delete other windows. 7798Delete other windows.
7799@c 7799@c
7800@orgcmdkskc{v d,d,org-aganda-day-view} 7800@orgcmdkskc{v d,d,org-agenda-day-view}
7801@xorgcmdkskc{v w,w,org-aganda-day-view} 7801@xorgcmdkskc{v w,w,org-agenda-day-view}
7802@xorgcmd{v m,org-agenda-month-view} 7802@xorgcmd{v m,org-agenda-month-view}
7803@xorgcmd{v y,org-agenda-month-year} 7803@xorgcmd{v y,org-agenda-month-year}
7804@xorgcmd{v SPC,org-agenda-reset-view} 7804@xorgcmd{v SPC,org-agenda-reset-view}
diff --git a/doc/misc/pcl-cvs.texi b/doc/misc/pcl-cvs.texi
index f12942da2d3..d4f82b6b3a7 100644
--- a/doc/misc/pcl-cvs.texi
+++ b/doc/misc/pcl-cvs.texi
@@ -70,7 +70,7 @@ customize-group RET pcl-cvs @key{RET}} and to look at the documentation strings
70of the various commands and major modes for further information. 70of the various commands and major modes for further information.
71@c This manual is updated to release 2.5 of PCL-CVS. 71@c This manual is updated to release 2.5 of PCL-CVS.
72 72
73@insertcopying 73@insertcopying
74 74
75@end ifnottex 75@end ifnottex
76 76
@@ -1275,7 +1275,7 @@ will be called as @samp{cvs -d @var{cvs-cvsroot}@dots{}}. This can be
1275useful if your site has several repositories. 1275useful if your site has several repositories.
1276 1276
1277@item log-edit-require-final-newline 1277@item log-edit-require-final-newline
1278@c wordy to avoid unhderfull hbox 1278@c wordy to avoid underfull hbox
1279When you enter a log message by typing into the 1279When you enter a log message by typing into the
1280@samp{*cvs-commit-message*} buffer, PCL-CVS normally automatically 1280@samp{*cvs-commit-message*} buffer, PCL-CVS normally automatically
1281inserts a trailing newline, unless there already is one. This behavior 1281inserts a trailing newline, unless there already is one. This behavior
diff --git a/doc/misc/sem-user.texi b/doc/misc/sem-user.texi
index 28d1cdb6eb8..e1631bcacc8 100644
--- a/doc/misc/sem-user.texi
+++ b/doc/misc/sem-user.texi
@@ -547,7 +547,7 @@ reparsed regardless of their size.
547@end deffn 547@end deffn
548 548
549@deffn Option semantic-idle-scheduler-no-working-message 549@deffn Option semantic-idle-scheduler-no-working-message
550If non-@code{nil}, disable display of working messages whie reparsing. 550If non-@code{nil}, disable display of working messages while reparsing.
551@end deffn 551@end deffn
552 552
553@deffn Option semantic-idle-scheduler-working-in-modeline-flag 553@deffn Option semantic-idle-scheduler-working-in-modeline-flag
diff --git a/doc/misc/semantic.texi b/doc/misc/semantic.texi
index 55b60937fb6..dcfff1fcb96 100644
--- a/doc/misc/semantic.texi
+++ b/doc/misc/semantic.texi
@@ -613,7 +613,7 @@ Emacs Lisp. It is an LALR parser suitable for complex languages.
613@c LocalWords: multitable NAvigaTOR noindent nomedian nonterm noselect 613@c LocalWords: multitable NAvigaTOR noindent nomedian nonterm noselect
614@c LocalWords: nosnarf obarray OLE OO outputfile paren parsetable POINT's 614@c LocalWords: nosnarf obarray OLE OO outputfile paren parsetable POINT's
615@c LocalWords: popup positionalonly positiononly positionormarker pre 615@c LocalWords: popup positionalonly positiononly positionormarker pre
616@c LocalWords: printf printindex Programmatically pt punctuations quotemode 616@c LocalWords: printf printindex Programmatically pt quotemode
617@c LocalWords: ref regex regexp Regexps reparse resetfile samp sb 617@c LocalWords: ref regex regexp Regexps reparse resetfile samp sb
618@c LocalWords: scopestart SEmantic semanticdb setfilename setq 618@c LocalWords: scopestart SEmantic semanticdb setfilename setq
619@c LocalWords: settitle setupfunction sexp sp SPC speedbar speedbar's 619@c LocalWords: settitle setupfunction sexp sp SPC speedbar speedbar's
diff --git a/doc/misc/ses.texi b/doc/misc/ses.texi
index d9739b93925..8300e6511a6 100644
--- a/doc/misc/ses.texi
+++ b/doc/misc/ses.texi
@@ -446,7 +446,7 @@ list.
446execute when starting SES mode for a buffer). 446execute when starting SES mode for a buffer).
447 447
448The variable @code{safe-functions} is a list of possibly-unsafe 448The variable @code{safe-functions} is a list of possibly-unsafe
449functions to be treated as safe when analysing formulas and printers. 449functions to be treated as safe when analyzing formulas and printers.
450@xref{Virus protection}. Before customizing @code{safe-functions}, 450@xref{Virus protection}. Before customizing @code{safe-functions},
451think about how much you trust the person who's suggesting this 451think about how much you trust the person who's suggesting this
452change. The value @code{t} turns off all anti-virus protection. A 452change. The value @code{t} turns off all anti-virus protection. A
diff --git a/doc/misc/smtpmail.texi b/doc/misc/smtpmail.texi
index 1d4bbbff4ac..854be0d0012 100644
--- a/doc/misc/smtpmail.texi
+++ b/doc/misc/smtpmail.texi
@@ -233,7 +233,7 @@ least one of the following external tools are installed:
233 233
234@enumerate 234@enumerate
235@item 235@item
236The GNUTLS command line tool @samp{gnutls-cli}, you can get it from 236The GnuTLS command line tool @samp{gnutls-cli}, you can get it from
237@url{http://www.gnu.org/software/gnutls/}. This is the recommended 237@url{http://www.gnu.org/software/gnutls/}. This is the recommended
238tool, mainly because it can verify the server certificates. 238tool, mainly because it can verify the server certificates.
239 239
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi
index e6b0f4fa235..f7f340074a2 100644
--- a/doc/misc/tramp.texi
+++ b/doc/misc/tramp.texi
@@ -3573,7 +3573,7 @@ The verbosity levels are
3573 3573
3574When @code{tramp-verbose} is greater than or equal to 4, the messages 3574When @code{tramp-verbose} is greater than or equal to 4, the messages
3575are also written into a @value{tramp} debug buffer. This debug buffer 3575are also written into a @value{tramp} debug buffer. This debug buffer
3576is useful for analysing problems; sending a @value{tramp} bug report 3576is useful for analyzing problems; sending a @value{tramp} bug report
3577should be done with @code{tramp-verbose} set to a verbosity level of at 3577should be done with @code{tramp-verbose} set to a verbosity level of at
3578least 6 (@pxref{Bug Reports}). 3578least 6 (@pxref{Bug Reports}).
3579 3579