summaryrefslogtreecommitdiff
path: root/doc/emacs
diff options
context:
space:
mode:
Diffstat (limited to 'doc/emacs')
-rw-r--r--doc/emacs/buffers.texi12
-rw-r--r--doc/emacs/building.texi8
-rw-r--r--doc/emacs/cal-xtra.texi5
-rw-r--r--doc/emacs/cmdargs.texi15
-rw-r--r--doc/emacs/custom.texi19
-rw-r--r--doc/emacs/dired.texi20
-rw-r--r--doc/emacs/display.texi15
-rw-r--r--doc/emacs/entering.texi5
-rw-r--r--doc/emacs/files.texi12
-rw-r--r--doc/emacs/frames.texi16
-rw-r--r--doc/emacs/glossary.texi4
-rw-r--r--doc/emacs/m-x.texi6
-rw-r--r--doc/emacs/maintaining.texi15
-rw-r--r--doc/emacs/misc.texi58
-rw-r--r--doc/emacs/msdos.texi81
-rw-r--r--doc/emacs/text.texi14
-rw-r--r--doc/emacs/trouble.texi9
17 files changed, 245 insertions, 69 deletions
diff --git a/doc/emacs/buffers.texi b/doc/emacs/buffers.texi
index 2eb837f1510..c70e583b9ed 100644
--- a/doc/emacs/buffers.texi
+++ b/doc/emacs/buffers.texi
@@ -411,6 +411,18 @@ Remove all flags from the current line, and move down
@kindex DEL @r{(Buffer Menu)}
Move to the previous line and remove all flags on that line
(@code{Buffer-menu-backup-unmark}).
+
+@item M-@key{DEL}
+@findex Buffer-menu-unmark-all-buffers
+@kindex M-DEL @r{(Buffer Menu)}
+Remove a particular flag from all lines
+(@code{Buffer-menu-unmark-all-buffers}).
+
+@item U
+@findex Buffer-menu-unmark-all
+@kindex U @r{(Buffer Menu)}
+Remove all flags from all the lines
+(@code{Buffer-menu-unmark-all}).
@end table
@noindent
diff --git a/doc/emacs/building.texi b/doc/emacs/building.texi
index df0764ee6b7..a416734d40e 100644
--- a/doc/emacs/building.texi
+++ b/doc/emacs/building.texi
@@ -382,6 +382,14 @@ use of this feature by setting @code{grep-highlight-matches} to
@code{t}. When displaying a match in the source buffer, the exact
match will be highlighted, instead of the entire source line.
+ The @command{grep} commands will offer to save buffers before
+running. This is controlled by the @code{grep-save-buffers} variable.
+The possible values are either @code{nil} (don't save), @code{ask}
+(ask before saving), a function which will be used as a predicate (and
+is called with the file name as the parameter and should return
+non-nil if the buffer is to be saved), and any other non-@code{nil}
+value means that all buffers should be saved without asking.
+
@findex grep-find
@findex find-grep
The command @kbd{M-x grep-find} (also available as @kbd{M-x
diff --git a/doc/emacs/cal-xtra.texi b/doc/emacs/cal-xtra.texi
index 2dff8c9b869..842c0792eda 100644
--- a/doc/emacs/cal-xtra.texi
+++ b/doc/emacs/cal-xtra.texi
@@ -62,11 +62,6 @@ uses @code{calendar-today-marker} to mark today's date. By default,
the calendar uses faces named @code{holiday}, @code{diary}, and
@code{calendar-today} for these purposes.
-@vindex calendar-load-hook
- The variable @code{calendar-load-hook} is a normal hook run when the
-calendar package is first loaded (before actually starting to display
-the calendar).
-
@vindex calendar-initial-window-hook
Starting the calendar runs the normal hook
@code{calendar-initial-window-hook}. Recomputation of the calendar
diff --git a/doc/emacs/cmdargs.texi b/doc/emacs/cmdargs.texi
index 8db2ea12c89..524cd8dd268 100644
--- a/doc/emacs/cmdargs.texi
+++ b/doc/emacs/cmdargs.texi
@@ -283,6 +283,13 @@ which will invoke Emacs with @samp{--script} and supply the name of
the script file as @var{file}. Emacs Lisp then treats the @samp{#!}
on this first line as a comment delimiter.
+@item --no-build-details
+@opindex --no-build-details
+@cindex build details
+@cindex deterministic build
+Omit details like system name and build time from the Emacs executable,
+so that builds are more deterministic.
+
@item -q
@opindex -q
@itemx --no-init-file
@@ -329,12 +336,16 @@ setting @code{inhibit-x-resources} to @code{t} (@pxref{Resources}).
@opindex -daemon
@itemx --daemon[=@var{name}]
@opindex --daemon
+@itemx --old-daemon[=@var{name}]
+@itemx --new-daemon[=@var{name}]
Start Emacs as a daemon---after Emacs starts up, it starts the Emacs
-server and disconnects from the terminal without opening any frames.
+server without opening any frames.
(Optionally, you can specify an explicit @var{name} for the server.)
You can then use the @command{emacsclient} command to connect to Emacs
for editing. @xref{Emacs Server}, for information about using Emacs
-as a daemon.
+as a daemon. An ``old-style'' daemon disconnects from the terminal
+and runs in the background (@samp{--daemon} is an alias for
+@samp{--old-daemon}).
@item --no-desktop
@opindex --no-desktop
diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi
index 771633623f5..01637ae98ad 100644
--- a/doc/emacs/custom.texi
+++ b/doc/emacs/custom.texi
@@ -1037,9 +1037,10 @@ explicitly. For example, here's how to obtain the default value of
@cindex file local variables
A file can specify local variable values to use when editing the
-file with Emacs. Visiting the file checks for local variable
-specifications; it automatically makes these variables local to the
-buffer, and sets them to the values specified in the file.
+file with Emacs. Visiting the file or setting a major mode checks for
+local variable specifications; it automatically makes these variables
+local to the buffer, and sets them to the values specified in the
+file.
@menu
* Specifying File Variables:: Specifying file local variables.
@@ -1298,7 +1299,11 @@ accomplished with @dfn{directory-local variables}.
named @file{.dir-locals.el}@footnote{ On MS-DOS, the name of this file
should be @file{_dir-locals.el}, due to limitations of the DOS
filesystems. If the filesystem is limited to 8+3 file names, the name
-of the file will be truncated by the OS to @file{_dir-loc.el}. } in a
+of the file will be truncated by the OS to @file{_dir-loc.el}.
+}@footnote{ You can also use @file{.dir-locals-2.el}, which
+is loaded in addition. This is useful when @file{.dir-locals.el} is
+under version control in a shared repository and can't be used for
+personal customizations. } in a
directory. Whenever Emacs visits any file in that directory or any of
its subdirectories, it will apply the directory-local variables
specified in @file{.dir-locals.el}, as though they had been defined as
@@ -1340,6 +1345,12 @@ be applied in the current directory, not in any subdirectories.
Finally, it specifies a different @file{ChangeLog} file name for any
file in the @file{src/imported} subdirectory.
+You can specify the variables @code{mode}, @code{eval}, and
+@code{unibyte} in your @file{.dir-locals.el}, and they have the same
+meanings as they would have in file local variables. @code{coding}
+cannot be specified as a directory local variable. @xref{File
+Variables}.
+
@findex add-dir-local-variable
@findex delete-dir-local-variable
@findex copy-file-locals-to-dir-locals
diff --git a/doc/emacs/dired.texi b/doc/emacs/dired.texi
index 1b10ebc8758..2cda51a82fa 100644
--- a/doc/emacs/dired.texi
+++ b/doc/emacs/dired.texi
@@ -550,13 +550,16 @@ Mark (with @samp{*}) all files whose @emph{contents} contain a match for
the regular expression @var{regexp}
(@code{dired-mark-files-containing-regexp}). This command is like
@kbd{% m}, except that it searches the file contents instead of the file
-name. Note that if a file is visited in an Emacs buffer, this command
-will look in the buffer without revisiting the file, so the results
+name. Note that if a file is visited in an Emacs buffer,
+and @code{dired-always-read-filesystem} is @code{nil} (the default), this
+command will look in the buffer without revisiting the file, so the results
might be inconsistent with the file on disk if its contents has changed
since it was last visited. If you don't want this, you may wish
reverting the files you have visited in your buffers, or turning on
the @code{auto-revert} mode in those buffers, before invoking this
-command. @xref{Reverting}.
+command. @xref{Reverting}. If you prefer that this command always revisit
+the file, without having to revert the file or enable @code{auto-revert}
+mode, you might want to set @code{dired-always-read-filesystem} to non-@code{nil}.
@item C-/
@itemx C-x u
@@ -1314,6 +1317,10 @@ relative). To mark a file for deletion, delete the entire file name.
To change the target of a symbolic link, edit the link target name
which appears next to the link name.
+ If you edit the file names to create a new subdirectory, Wdired will
+automatically create these new directories. To inhibit this behavior,
+set @code{wdired-create-parent-directories} to @code{nil}.
+
The rest of the text in the buffer, such as the file sizes and
modification dates, is marked read-only, so you can't edit it.
However, if you set @code{wdired-allow-to-change-permissions} to
@@ -1438,6 +1445,13 @@ names into arguments for other Emacs commands. It also displays what
it added to the kill ring, so you can use it to display the list of
currently marked files in the echo area.
+@kindex W @r{(Dired)}
+@findex browse-url-of-dired-file
+ If you have an HTML file in the file listing, it can be useful to
+view that file with a browser. The @kbd{W}
+(@code{browse-url-of-dired-file}) command will use the standard
+configured browser to view that file.
+
@kindex ( @r{(Dired)}
@findex dired-hide-details-mode
@vindex dired-hide-details-hide-symlink-targets
diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi
index 391e1a0ed58..492dfc6afd5 100644
--- a/doc/emacs/display.texi
+++ b/doc/emacs/display.texi
@@ -657,9 +657,16 @@ Whitespace}).
@item escape-glyph
The face for displaying control characters and escape sequences
(@pxref{Text Display}).
+@item homoglyph
+The face for displaying lookalike characters, i.e., characters that
+look like but are not the characters being represented
+(@pxref{Text Display}).
@item nobreak-space
The face for displaying no-break space characters (@pxref{Text
Display}).
+@item nobreak-hyphen
+The face for displaying no-break hyphen characters (@pxref{Text
+Display}).
@end table
The following faces control the appearance of parts of the Emacs
@@ -1490,7 +1497,7 @@ characters. To deal with this problem, Emacs displays such characters
specially: it displays @code{U+00A0} (no-break space) with the
@code{nobreak-space} face, and it displays @code{U+00AD} (soft
hyphen), @code{U+2010} (hyphen), and @code{U+2011} (non-breaking
-hyphen) with the @code{escape-glyph} face. To disable this, change
+hyphen) with the @code{nobreak-hyphen} face. To disable this, change
the variable @code{nobreak-char-display} to @code{nil}. If you give
this variable a non-@code{nil} and non-@code{t} value, Emacs instead
displays such characters as a highlighted backslash followed by a
@@ -1517,12 +1524,12 @@ for details.
@cindex curly quotes
@cindex curved quotes
-@cindex escape-glyph face
+@cindex homoglyph face
If the curved quotes @samp{‘}, @samp{’}, @samp{“}, and @samp{”} are
known to look just like @acronym{ASCII} characters, they are shown
-with the @code{escape-glyph} face. Curved quotes that cannot be
+with the @code{homoglyph} face. Curved quotes that cannot be
displayed are shown as their @acronym{ASCII} approximations @samp{`},
-@samp{'}, and @samp{"} with the @code{escape-glyph} face.
+@samp{'}, and @samp{"} with the @code{homoglyph} face.
@node Cursor Display
@section Displaying the Cursor
diff --git a/doc/emacs/entering.texi b/doc/emacs/entering.texi
index d6cb3cb8b09..7f186cfafe5 100644
--- a/doc/emacs/entering.texi
+++ b/doc/emacs/entering.texi
@@ -133,6 +133,11 @@ run. One convenient function to use as the value of
@code{confirm-kill-emacs} is the function @code{yes-or-no-p}. The
default value of @code{confirm-kill-emacs} is @code{nil}.
+@vindex confirm-kill-processes
+ If the value of the variable @code{confirm-kill-processes} is
+@code{nil}, @kbd{C-x C-c} does not ask for confirmation before killing
+subprocesses started by Emacs. The value is @code{t} by default.
+
To further customize what happens when Emacs is exiting, see
@ref{Killing Emacs,,, elisp, The GNU Emacs Lisp Reference Manual}.
diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi
index 264154be66f..eca41af7a18 100644
--- a/doc/emacs/files.texi
+++ b/doc/emacs/files.texi
@@ -1560,8 +1560,8 @@ delete-file}. @xref{VC Delete/Rename}.
@findex copy-file
@cindex copying files
- @kbd{M-x copy-file} reads the file @var{old} and writes a new file
-named @var{new} with the same contents.
+ @kbd{M-x copy-file} copies the contents of the file @var{old} to the
+file @var{new}.
@findex copy-directory
@kbd{M-x copy-directory} copies directories, similar to the
@@ -1876,6 +1876,11 @@ prevent it from being treated as a remote file name. Thus, if you have
a directory named @file{/foo:} and a file named @file{bar} in it, you
can refer to that file in Emacs as @samp{/:/foo:/bar}.
+ If you want to quote only special characters in the local part of a
+remote file name, you can quote just the local part.
+@samp{/baz:/:/foo:/bar} refers to the file @file{bar} of directory
+@file{/foo:} on the host @file{baz}.
+
@samp{/:} can also prevent @samp{~} from being treated as a special
character for a user's home directory. For example, @file{/:/tmp/~hack}
refers to a file whose name is @file{~hack} in directory @file{/tmp}.
@@ -1974,6 +1979,9 @@ point. Partial Completion mode offers other features extending
major mode, you can type @kbd{C-c C-c} (@code{image-toggle-display})
to toggle between displaying the file as an image in the Emacs buffer,
and displaying its underlying text (or raw byte) representation.
+Additionally you can type @kbd{C-c C-x} (@code{image-toggle-hex-display})
+to toggle between displaying the file as an image in the Emacs buffer,
+and displaying it in hex representation.
Displaying the file as an image works only if Emacs is compiled with
support for displaying such images. If the displayed image is wider
or taller than the frame, the usual point motion keys (@kbd{C-f},
diff --git a/doc/emacs/frames.texi b/doc/emacs/frames.texi
index 99926dc47be..082de3796c1 100644
--- a/doc/emacs/frames.texi
+++ b/doc/emacs/frames.texi
@@ -97,7 +97,8 @@ ring; on a second click, kill it (@code{mouse-save-then-kill}).
invoked by clicking with the left mouse button, @kbd{mouse-1}, in the
text area of a window. This moves point to the position where you
clicked. If that window was not the selected window, it becomes the
-selected window.
+selected window. You can also activate a region by double-clicking
+mouse-1 (@pxref{Word and Line Mouse}).
@vindex x-mouse-click-focus-ignore-position
Normally, if the frame you clicked in was not the selected frame, it
@@ -215,7 +216,7 @@ also copied to the kill ring.
@table @kbd
@item Double-mouse-1
-Select the text around the word which you click on.
+Select the text around the word or character which you click on.
Double-clicking on a character with symbol syntax (such as
underscore, in C mode) selects the symbol surrounding that character.
@@ -226,6 +227,17 @@ ends. Double-clicking on a character with string-delimiter syntax
constant (Emacs uses heuristics to figure out whether that character
is the beginning or the end of it).
+Double-clicking on the beginning of a parenthetical grouping or
+beginning string-delimiter moves point to the end of the region,
+scrolling the buffer display forward if necessary to show the new
+location of point. Double-clicking on the end of a parenthetical
+grouping or end string-delimiter keeps point at the end of the region
+by default, so the beginning of the region will not be visible if it
+is above the top of the window; setting the user option
+@code{mouse-select-region-move-to-beginning} to non-nil changes this
+to move point to the beginning of the region, scrolling the display
+backward if necessary.
+
@item Double-Drag-mouse-1
Select the text you drag across, in the form of whole words.
diff --git a/doc/emacs/glossary.texi b/doc/emacs/glossary.texi
index bce97dacee2..d6489390ea5 100644
--- a/doc/emacs/glossary.texi
+++ b/doc/emacs/glossary.texi
@@ -338,8 +338,8 @@ or by rebinding key sequences (@pxref{Keymaps}).
@item Daemon
A daemon is a standard term for a system-level process that runs in the
background. Daemons are often started when the system first starts up.
-When Emacs runs in daemon-mode, it runs in the background and does not
-open a display. You can then connect to it with the
+When Emacs runs in daemon-mode, it does not
+open a display. You connect to it with the
@command{emacsclient} program. @xref{Emacs Server}.
@item Default Argument
diff --git a/doc/emacs/m-x.texi b/doc/emacs/m-x.texi
index 9e5f50b5e91..4b1165a1130 100644
--- a/doc/emacs/m-x.texi
+++ b/doc/emacs/m-x.texi
@@ -69,11 +69,13 @@ number, in which case Emacs will show the binding for that many
seconds before removing it from display. The default behavior is to
display the binding for 2 seconds.
+@vindex extended-command-suggest-shorter
Commands that don't have key bindings, can still be invoked after
typing less than their full name at the @samp{M-x} prompt. Emacs
mentions such shorthands in the echo area if they are significantly
-shorter than the full command name. The setting of
-@code{suggest-key-bindings} affects these hints as well.
+shorter than the full command name, and
+@code{extended-command-suggest-shorter} is non-@code{nil}. The
+setting of @code{suggest-key-bindings} affects these hints as well.
In this manual, when we speak of running a command by name, we often
omit the @key{RET} that terminates the name. Thus we might say
diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi
index acb6b8c8039..66781ad2bea 100644
--- a/doc/emacs/maintaining.texi
+++ b/doc/emacs/maintaining.texi
@@ -1590,6 +1590,13 @@ also creates a new item for the current file. For many languages, it
can even guess the name of the function or other object that was
changed.
+@c Not worth it.
+@c @vindex change-log-directory-files
+To find the change log file, Emacs searches up the directory tree from
+the file you are editing. By default, it stops if it finds a
+directory that seems to be the root of a version-control repository.
+To change this, customize @code{change-log-directory-files}.
+
@vindex add-log-keep-changes-together
When the variable @code{add-log-keep-changes-together} is
non-@code{nil}, @kbd{C-x 4 a} adds to any existing item for the file
@@ -2545,10 +2552,10 @@ directory as the default.
@vindex tags-file-name
Emacs does not actually read in the tags table contents until you
try to use them; all @code{visit-tags-table} does is store the file
-name in the variable @code{tags-file-name}, and setting the variable
-yourself is just as good. The variable's initial value is @code{nil};
-that value tells all the commands for working with tags tables that
-they must ask for a tags table file name to use.
+name in the variable @code{tags-file-name}, and not much more. The
+variable's initial value is @code{nil}; that value tells all the
+commands for working with tags tables that they must ask for a tags
+table file name to use.
Using @code{visit-tags-table} when a tags table is already loaded
gives you a choice: you can add the new tags table to the current list
diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi
index a1f611cfb23..2290dec31e2 100644
--- a/doc/emacs/misc.texi
+++ b/doc/emacs/misc.texi
@@ -771,6 +771,14 @@ the output buffer. But if you change the value of the variable
@code{shell-command-default-error-buffer} to a string, error output is
inserted into a buffer of that name.
+@vindex shell-command-dont-erase-buffer
+ By default, the output buffer is erased between shell commands.
+If you change the value of the variable
+@code{shell-command-dont-erase-buffer} to a non-@code{nil} value,
+the output buffer is not erased. This variable also controls where to
+set the point in the output buffer after the command completes; see the
+documentation of the variable for details.
+
@node Interactive Shell
@subsection Interactive Subshell
@@ -1562,7 +1570,7 @@ process.
You can solve this problem by setting up Emacs as an @dfn{edit
server}, so that it ``listens'' for external edit requests and acts
-accordingly. There are two ways to start an Emacs server:
+accordingly. There are various ways to start an Emacs server:
@itemize
@findex server-start
@@ -1575,15 +1583,51 @@ dies with the Emacs process.
@cindex daemon, Emacs
@item
-Run Emacs as a @dfn{daemon}, using the @samp{--daemon} command-line
-option. @xref{Initial Options}. When Emacs is started this way, it
-calls @code{server-start} after initialization, and returns control to
-the calling terminal instead of opening an initial frame; it then
-waits in the background, listening for edit requests.
+Run Emacs as a @dfn{daemon}, using one of the @samp{--daemon} command-line
+options. @xref{Initial Options}. When Emacs is started this way, it
+calls @code{server-start} after initialization and does not open an
+initial frame. It then waits for edit requests from clients.
+
+@cindex systemd unit file
+@item
+If your operating system uses @command{systemd} to manage startup,
+you can automatically start Emacs in daemon mode when you login
+using the supplied @dfn{systemd unit file}. To activate this:
+@example
+systemctl --user enable emacs
+@end example
+(If your Emacs was installed into a non-standard location, you may
+need to copy the @file{emacs.service} file to a standard directory
+such as @file{~/.config/systemd/user/}.)
+
+@cindex socket activation, systemd, Emacs
+@item
+An external process can invoke the Emacs server when a connection
+event occurs upon a specified socket and pass the socket to the new
+Emacs server process. An instance of this is the socket functionality
+of @command{systemd}: the @command{systemd} service creates a socket and
+listens for connections on it; when @command{emacsclient} connects to
+it for the first time, @command{systemd} can launch the Emacs server
+and hand over the socket to it for servicing @command{emacsclient}
+connections. A setup to use this functionality could be:
+
+@file{~/.config/systemd/user/emacs.socket}:
+@example
+[Socket]
+ListenStream=/path/to/.emacs.socket
+
+[Install]
+WantedBy=sockets.target
+@end example
+
+(The @file{emacs.service} file described above must also be installed.)
+
+The @code{ListenStream} path will be the path that Emacs listens for
+connections from @command{emacsclient}; this is a file of your choice.
@end itemize
@cindex @env{TEXEDIT} environment variable
- Either way, once an Emacs server is started, you can use a shell
+ Once an Emacs server is started, you can use a shell
command called @command{emacsclient} to connect to the Emacs process
and tell it to visit a file. You can then set the @env{EDITOR}
environment variable to @samp{emacsclient}, so that external programs
diff --git a/doc/emacs/msdos.texi b/doc/emacs/msdos.texi
index d0e9ab45c25..eb0fb17ddd1 100644
--- a/doc/emacs/msdos.texi
+++ b/doc/emacs/msdos.texi
@@ -507,32 +507,64 @@ the variable @code{w32-alt-is-meta} to a @code{nil} value.
@findex w32-register-hot-key
@findex w32-unregister-hot-key
MS-Windows reserves certain key combinations, such as
-@kbd{@key{Alt}-@key{TAB}}, for its own use. These key combinations are
-intercepted by the system before Emacs can see them. You can use the
-@code{w32-register-hot-key} function to allow a key sequence to be
-seen by Emacs instead of being grabbed by Windows. This function
-registers a key sequence as a @dfn{hot key}, overriding the special
-meaning of that key sequence for Windows. (MS-Windows is told that
-the key sequence is a hot key only when one of the Emacs windows has
-focus, so that the special keys still have their usual meaning for
-other Windows applications.)
-
- The argument to @code{w32-register-hot-key} must be a single key,
-with or without modifiers, in vector form that would be acceptable to
-@code{define-key}. The meta modifier is interpreted as the @key{Alt}
-key if @code{w32-alt-is-meta} is @code{t} (the default), and the hyper
-modifier is always interpreted as the Windows key (usually labeled
-with @key{start} and the Windows logo). If the function succeeds in
-registering the key sequence, it returns the hotkey ID, a number;
-otherwise it returns @code{nil}.
+@kbd{@key{Alt}-@key{TAB}} and a number of Windows key combinations,
+for its own use. These key combinations are intercepted by the system
+before Emacs can see them. Also, on Windows 10, all Windows key
+combinations are reserved by the system in such a way that they are
+never propagated to applications, even if the system does not
+currently define a hotkey on the specific combination. You can use
+the @code{w32-register-hot-key} function to allow a key sequence to be
+seen by Emacs instead of being grabbed by Windows. When registered as
+a hot key, the key combination is pulled out of the system's input
+queue before it is handled by Windows, effectively overriding the
+special meaning of that key sequence for Windows. The override is
+only effective when Emacs is active; with other applications on the
+foreground the keys behave normally.
+
+ The argument to @code{w32-register-hot-key} must be a single key with a
+single modifier, in vector form that would be acceptable to
+@code{define-key}. The control and shift modifiers have no effect on the
+argument. The meta modifier is interpreted as the @key{Alt} key if
+@code{w32-alt-is-meta} is @code{t} (the default), and the super and hyper
+modifiers are interpreted according to the bindings of
+@code{w32-lwindow-modifier} and @code{w32-rwindow-modifier}. Additionally, a
+modifier with the trailing dash but with no key indicates that all
+Windows defined hotkeys for that modifier are to be overridden in the
+favor of Emacs.
@kindex M-TAB@r{, (MS-Windows)}
@cindex @kbd{M-@key{TAB}} vs @kbd{@key{Alt}-@key{TAB}} (MS-Windows)
@cindex @kbd{@key{Alt}-@key{TAB}} vs @kbd{M-@key{TAB}} (MS-Windows)
For example, @code{(w32-register-hot-key [M-tab])} lets you use
-@kbd{M-@key{TAB}} normally in Emacs; for instance, to complete the word or
-symbol at point at top level, or to complete the current search string
-against previously sought strings during incremental search.
+@kbd{M-@key{TAB}} normally in Emacs; for instance, to complete the
+word or symbol at point at top level, or to complete the current
+search string against previously sought strings during incremental
+search. @code{(w32-register-hot-key [s-])} with
+@code{w32-lwindow-modifier} bound to @code{super} disables all the
+Windows' own Windows key based shortcuts.@footnote{There is one known
+exception: The combination @kbd{@key{Windows}-@key{L}} that locks the
+workstation is handled by the system on a lower level. For this
+reason, @code{w32-register-hot-key} cannot override this key
+combination - it always locks the computer.}
+
+ Note that @code{w32-register-hot-key} checks the
+@code{w32-[lr]window-modifier} values at the time of the function
+call. Thus, you can set @code{w32-lwindow-modifier} as @code{super},
+then call @code{(w32-register-hot-key [s-r])}, and finally set
+@code{w32-rwindow-modifier} as @code{super} as well. The result is
+that the left Windows key together with @key{R} invokes whichever
+function you have bound for the combination in Emacs, and the right
+Windows key and @key{R} opens the Windows @code{Run} dialog.
+
+ The hotkey registrations always also include all the shift and
+control modifier combinations for the given hotkey; that is,
+registering @kbd{s-@key{a}} as a hotkey gives you @kbd{S-s-@key{a}},
+@kbd{C-s-@key{a}} and @kbd{C-S-s-@key{a}} as well.
+
+ On Windows 98 and ME, the hotkey registration is more restricted.
+The desired hotkey must always be fully specified, and
+@code{w32-phantom-key-code} can be customized to achieve desired
+results.
The function @code{w32-unregister-hot-key} reverses the effect of
@code{w32-register-hot-key} for its argument key sequence.
@@ -611,12 +643,7 @@ keys are passed to Windows or swallowed by Emacs. If the value is
otherwise it is passed to Windows. The default is @code{t} for both
of these variables. Passing each of these keys to Windows produces
its normal effect: for example, @kbd{@key{Lwindow}} opens the
-@code{Start} menu, etc.@footnote{
-Some combinations of the ``Windows'' keys with other keys are caught
-by Windows at a low level in a way that Emacs currently cannot prevent.
-For example, @kbd{@key{Lwindow} r} always pops up the Windows
-@samp{Run} dialog. Customizing the value of
-@code{w32-phantom-key-code} might help in some cases, though.}
+@code{Start} menu, etc.
@vindex w32-recognize-altgr
@kindex AltGr @r{(MS-Windows)}
diff --git a/doc/emacs/text.texi b/doc/emacs/text.texi
index f28488e4545..6c513c9a607 100644
--- a/doc/emacs/text.texi
+++ b/doc/emacs/text.texi
@@ -412,6 +412,7 @@ beginning of a line.
@cindex mode, Electric Quote
@cindex curly quotes
@cindex curved quotes
+@cindex guillemets
@findex electric-quote-mode
One common way to quote is the typewriter convention, which quotes
using straight apostrophes @t{'like this'} or double-quotes @t{"like
@@ -420,9 +421,15 @@ left and right single or double quotation marks @t{‘like this’} or
@t{“like this”}. In text files, typewriter quotes are simple and
portable; curved quotes are less ambiguous and typically look nicer.
+@vindex electric-quote-chars
Electric Quote mode makes it easier to type curved quotes. As you
type characters it optionally converts @t{`} to @t{‘}, @t{'} to @t{’},
-@t{``} to @t{“}, and @t{''} to @t{”}.
+@t{``} to @t{“}, and @t{''} to @t{”}. It's possible to change the
+default quotes listed above, by customizing the variable
+@code{electric-quote-chars}, a list of four characters, where the
+items correspond to the left single quote, the right single quote, the
+left double quote and the right double quote, respectively, whose
+default value is @code{'(?‘ ?’ ?“ ?”)}.
@vindex electric-quote-paragraph
@vindex electric-quote-comment
@@ -443,7 +450,10 @@ type @kbd{C-q `} or @kbd{C-q '} instead of @kbd{`} or @kbd{'}. To
insert a curved quote even when Electric Quote is disabled or
inactive, you can type @kbd{C-x 8 [} for @t{‘}, @kbd{C-x 8 ]} for
@t{’}, @kbd{C-x 8 @{} for @t{“}, and @kbd{C-x 8 @}} for @t{”}.
-@xref{Inserting Text}.
+@xref{Inserting Text}. Note that the value of
+@code{electric-quote-chars} does not affect these keybindings, they
+are not keybindings of @code{electric-quote-mode} but bound in
+@code{global-map}.
@node Filling
@section Filling Text
diff --git a/doc/emacs/trouble.texi b/doc/emacs/trouble.texi
index 7a5defabf09..fbd13c8a58a 100644
--- a/doc/emacs/trouble.texi
+++ b/doc/emacs/trouble.texi
@@ -417,19 +417,22 @@ first @kbd{C-g} properly, then the second one will get you back to the
shell.
When you resume Emacs after a suspension caused by emergency escape,
-it asks two questions before going back to what it had been doing:
+it reports the resumption and asks a question or two before going back
+to what it had been doing:
@example
+Emacs is resuming after an emergency escape.
Auto-save? (y or n)
Abort (and dump core)? (y or n)
@end example
@noindent
-Answer each one with @kbd{y} or @kbd{n} followed by @key{RET}.
+Answer each question with @kbd{y} or @kbd{n} followed by @key{RET}.
Saying @kbd{y} to @samp{Auto-save?} causes immediate auto-saving of
all modified buffers in which auto-saving is enabled. Saying @kbd{n}
-skips this.
+skips this. This question is omitted if Emacs is in a state where
+auto-saving cannot be done safely.
Saying @kbd{y} to @samp{Abort (and dump core)?} causes Emacs to
crash, dumping core. This is to enable a wizard to figure out why