aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlenn Morris2019-03-09 10:07:46 -0800
committerGlenn Morris2019-03-09 10:07:46 -0800
commit3b63afd73b541ea559aa58edc1901c8b30e2af40 (patch)
treea68afec4142bd100f3b6dfa3eb90aa2c0a71b34f
parente1819a254f28a7dcba3c395c345fe237a512e92e (diff)
parent0589de55c465627c16314519568f22daa62ff654 (diff)
downloademacs-3b63afd73b541ea559aa58edc1901c8b30e2af40.tar.gz
emacs-3b63afd73b541ea559aa58edc1901c8b30e2af40.zip
Merge from origin/emacs-26
0589de5 (origin/emacs-26) Fix markup of fake keys in the ELisp manual 82d4b98 Avoid errors in Auto Revert mode a3b1935 Mention empty strings in file name expansion, emacs lisp refe... a38da0d cc-mode.texi: Work around makeinfo alignment bug. Fix proble... 464ee80 Warn against recursive invocations of 'buffer-list-update-hoo... 60b5c10 Provide more details in doc-string of 'delete-windows-on' (Bu... f0be0f1 Improve documentation of 'delete-windows-on' f1bddc7 * lisp/frame.el (make-frame-command): Doc fix. (Bug#34715) 2848623 Avoid undefined behavior in gdb-mi.el dbf1837 * lisp/window.el (fit-frame-to-buffer): Make doc-string more ... 099ef44 Minor spelling and grammar fixes (bug#34756) 52fd400 Minor improvement of documentation of '(when CONDITION . SPEC)' f872b65 Improve documentation of 'auto-coding-functions' 04cad5e Fix visiting XML files with non-Unix EOL format a89fabe Update example major mode code in Elisp manual # Conflicts: # lisp/autorevert.el # lisp/window.el
-rw-r--r--doc/emacs/windows.texi7
-rw-r--r--doc/lispintro/emacs-lisp-intro.texi2
-rw-r--r--doc/lispref/buffers.texi4
-rw-r--r--doc/lispref/display.texi10
-rw-r--r--doc/lispref/files.texi13
-rw-r--r--doc/lispref/keymaps.texi11
-rw-r--r--doc/lispref/modes.texi29
-rw-r--r--doc/lispref/nonascii.texi15
-rw-r--r--doc/misc/cc-mode.texi28
-rw-r--r--doc/misc/ede.texi16
-rw-r--r--doc/misc/gnus-faq.texi2
-rw-r--r--doc/misc/gnus.texi2
-rw-r--r--lisp/autorevert.el2
-rw-r--r--lisp/frame.el4
-rw-r--r--lisp/gnus/gnus-art.el4
-rw-r--r--lisp/gnus/message.el2
-rw-r--r--lisp/international/mule.el25
-rw-r--r--lisp/progmodes/gdb-mi.el2
-rw-r--r--lisp/window.el24
-rw-r--r--src/buffer.c8
20 files changed, 151 insertions, 59 deletions
diff --git a/doc/emacs/windows.texi b/doc/emacs/windows.texi
index 4e6e7e399b4..ece53130531 100644
--- a/doc/emacs/windows.texi
+++ b/doc/emacs/windows.texi
@@ -262,6 +262,8 @@ Delete all windows in the selected frame except the selected window
262Delete the selected window and kill the buffer that was showing in it 262Delete the selected window and kill the buffer that was showing in it
263(@code{kill-buffer-and-window}). The last character in this key 263(@code{kill-buffer-and-window}). The last character in this key
264sequence is a zero. 264sequence is a zero.
265@item M-x delete-windows-on @key{RET} @var{buffer} @key{RET}
266Delete windows showing the specified @var{buffer}.
265@item C-x ^ 267@item C-x ^
266Make selected window taller (@code{enlarge-window}). 268Make selected window taller (@code{enlarge-window}).
267@item C-x @} 269@item C-x @}
@@ -297,6 +299,11 @@ selected window.
297whole frame. (This command cannot be used while the minibuffer window 299whole frame. (This command cannot be used while the minibuffer window
298is active; attempting to do so signals an error.) 300is active; attempting to do so signals an error.)
299 301
302 @kbd{M-x delete-windows-on} deletes windows that show a specific
303buffer. It prompts for the buffer, defaulting to the current buffer.
304With prefix argument of zero, @kbd{C-u 0}, this command deletes
305windows only on the current display's frames.
306
300@cindex resize window 307@cindex resize window
301@cindex resizing windows 308@cindex resizing windows
302@kindex C-x ^ 309@kindex C-x ^
diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi
index f292a1759fc..519decb1d04 100644
--- a/doc/lispintro/emacs-lisp-intro.texi
+++ b/doc/lispintro/emacs-lisp-intro.texi
@@ -14825,7 +14825,7 @@ According to its documentation as shown by @kbd{C-h f} (the
14825@code{describe-function} command), the @code{find-file-noselect} 14825@code{describe-function} command), the @code{find-file-noselect}
14826function reads the named file into a buffer and returns the buffer. 14826function reads the named file into a buffer and returns the buffer.
14827(Its most recent version includes an optional @var{wildcards} argument, 14827(Its most recent version includes an optional @var{wildcards} argument,
14828too, as well as another to read a file literally and an other you 14828too, as well as another to read a file literally and another to
14829suppress warning messages. These optional arguments are irrelevant.) 14829suppress warning messages. These optional arguments are irrelevant.)
14830 14830
14831However, the @code{find-file-noselect} function does not select the 14831However, the @code{find-file-noselect} function does not select the
diff --git a/doc/lispref/buffers.texi b/doc/lispref/buffers.texi
index 2dbe9c27f2d..260f159851b 100644
--- a/doc/lispref/buffers.texi
+++ b/doc/lispref/buffers.texi
@@ -935,6 +935,10 @@ This is a normal hook run whenever the buffer list changes. Functions
935(@pxref{Creating Buffers}), @code{rename-buffer} (@pxref{Buffer Names}), 935(@pxref{Creating Buffers}), @code{rename-buffer} (@pxref{Buffer Names}),
936@code{kill-buffer} (@pxref{Killing Buffers}), @code{bury-buffer} (see 936@code{kill-buffer} (@pxref{Killing Buffers}), @code{bury-buffer} (see
937above) and @code{select-window} (@pxref{Selecting Windows}). 937above) and @code{select-window} (@pxref{Selecting Windows}).
938
939Functions run by this hook should avoid calling @code{select-window}
940with a nil @var{norecord} argument or @code{with-temp-buffer} since
941either may lead to infinite recursion.
938@end defvar 942@end defvar
939 943
940@node Creating Buffers 944@node Creating Buffers
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi
index 95379b342b3..c4cb83977fc 100644
--- a/doc/lispref/display.texi
+++ b/doc/lispref/display.texi
@@ -4894,6 +4894,16 @@ and the buffer position where the @code{display} property was found,
4894respectively. Both positions can be different when @code{object} is a 4894respectively. Both positions can be different when @code{object} is a
4895string. 4895string.
4896 4896
4897Note that @var{condition} will only be evaluated when redisplay
4898examines the text where this display spec is located, so this feature
4899is best suited for conditions that are relatively stable, i.e.@:
4900yield, for each particular buffer position, the same results on every
4901evaluation. If the results change for the same text location, e.g.,
4902if the result depends on the position of point, then the conditional
4903specification might not do what you want, because redisplay examines
4904only those parts of buffer text where it has reasons to assume that
4905something changed since the last display cycle.
4906
4897@node Display Margins 4907@node Display Margins
4898@subsection Displaying in the Margins 4908@subsection Displaying in the Margins
4899@cindex display margins 4909@cindex display margins
diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi
index 5c99ea2781c..0e57cf9666f 100644
--- a/doc/lispref/files.texi
+++ b/doc/lispref/files.texi
@@ -16,7 +16,7 @@ described in @ref{Backups and Auto-Saving}.
16names. A file name is a string. Most of these functions expand file 16names. A file name is a string. Most of these functions expand file
17name arguments using the function @code{expand-file-name}, so that 17name arguments using the function @code{expand-file-name}, so that
18@file{~} is handled correctly, as are relative file names (including 18@file{~} is handled correctly, as are relative file names (including
19@file{../}). @xref{File Name Expansion}. 19@file{../} and the empty string). @xref{File Name Expansion}.
20 20
21 In addition, certain @dfn{magic} file names are handled specially. 21 In addition, certain @dfn{magic} file names are handled specially.
22For example, when a remote file name is specified, Emacs accesses the 22For example, when a remote file name is specified, Emacs accesses the
@@ -2402,6 +2402,17 @@ This is for the sake of filesystems that have the concept of a
2402superroot above the root directory @file{/}. On other filesystems, 2402superroot above the root directory @file{/}. On other filesystems,
2403@file{/../} is interpreted exactly the same as @file{/}. 2403@file{/../} is interpreted exactly the same as @file{/}.
2404 2404
2405Expanding @file{.} or the empty string returns the default directory:
2406
2407@example
2408@group
2409(expand-file-name "." "/usr/spool/")
2410 @result{} "/usr/spool"
2411(expand-file-name "" "/usr/spool/")
2412 @result{} "/usr/spool"
2413@end group
2414@end example
2415
2405Note that @code{expand-file-name} does @emph{not} expand environment 2416Note that @code{expand-file-name} does @emph{not} expand environment
2406variables; only @code{substitute-in-file-name} does that: 2417variables; only @code{substitute-in-file-name} does that:
2407 2418
diff --git a/doc/lispref/keymaps.texi b/doc/lispref/keymaps.texi
index cc0386c8fc7..6ad665a9502 100644
--- a/doc/lispref/keymaps.texi
+++ b/doc/lispref/keymaps.texi
@@ -2502,7 +2502,7 @@ can do it this way:
2502 2502
2503 Emacs usually shows a @dfn{menu bar} at the top of each frame. 2503 Emacs usually shows a @dfn{menu bar} at the top of each frame.
2504@xref{Menu Bars,,,emacs, The GNU Emacs Manual}. Menu bar items are 2504@xref{Menu Bars,,,emacs, The GNU Emacs Manual}. Menu bar items are
2505subcommands of the fake function key @code{menu-bar}, as defined 2505subcommands of the fake function key @key{MENU-BAR}, as defined
2506in the active keymaps. 2506in the active keymaps.
2507 2507
2508 To add an item to the menu bar, invent a fake function key of your 2508 To add an item to the menu bar, invent a fake function key of your
@@ -2554,9 +2554,10 @@ bar item:
2554@end example 2554@end example
2555 2555
2556@noindent 2556@noindent
2557Here, @code{edit} is the fake function key used by the global map for 2557Here, @code{edit} is the symbol produced by a fake function key, it is
2558the @samp{Edit} menu bar item. The main reason to suppress a global 2558used by the global map for the @samp{Edit} menu bar item. The main
2559menu bar item is to regain space for mode-specific items. 2559reason to suppress a global menu bar item is to regain space for
2560mode-specific items.
2560 2561
2561@defvar menu-bar-final-items 2562@defvar menu-bar-final-items
2562Normally the menu bar shows global items followed by items defined by the 2563Normally the menu bar shows global items followed by items defined by the
@@ -2601,7 +2602,7 @@ If the value is @code{grow-only}, the tool bar expands automatically,
2601but does not contract automatically. 2602but does not contract automatically.
2602 2603
2603 The tool bar contents are controlled by a menu keymap attached to a 2604 The tool bar contents are controlled by a menu keymap attached to a
2604fake function key called @code{tool-bar} (much like the way the menu 2605fake function key called @key{TOOL-BAR} (much like the way the menu
2605bar is controlled). So you define a tool bar item using 2606bar is controlled). So you define a tool bar item using
2606@code{define-key}, like this: 2607@code{define-key}, like this:
2607 2608
diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi
index 22592a57b05..3f6bee9821d 100644
--- a/doc/lispref/modes.texi
+++ b/doc/lispref/modes.texi
@@ -1237,6 +1237,7 @@ the conventions listed above:
1237 (modify-syntax-entry ?\\ ". " st) 1237 (modify-syntax-entry ?\\ ". " st)
1238 ;; Add 'p' so M-c on 'hello' leads to 'Hello', not 'hello'. 1238 ;; Add 'p' so M-c on 'hello' leads to 'Hello', not 'hello'.
1239 (modify-syntax-entry ?' "w p" st) 1239 (modify-syntax-entry ?' "w p" st)
1240 @dots{}
1240 st) 1241 st)
1241 "Syntax table used while in `text-mode'.") 1242 "Syntax table used while in `text-mode'.")
1242@end group 1243@end group
@@ -1246,6 +1247,7 @@ the conventions listed above:
1246(defvar text-mode-map 1247(defvar text-mode-map
1247 (let ((map (make-sparse-keymap))) 1248 (let ((map (make-sparse-keymap)))
1248 (define-key map "\e\t" 'ispell-complete-word) 1249 (define-key map "\e\t" 'ispell-complete-word)
1250 @dots{}
1249 map) 1251 map)
1250 "Keymap for `text-mode'. 1252 "Keymap for `text-mode'.
1251Many other modes, such as `mail-mode', `outline-mode' and 1253Many other modes, such as `mail-mode', `outline-mode' and
@@ -1289,11 +1291,11 @@ illustrate how these modes are written.
1289@smallexample 1291@smallexample
1290@group 1292@group
1291;; @r{Create mode-specific table variables.} 1293;; @r{Create mode-specific table variables.}
1292(defvar lisp-mode-abbrev-table nil) 1294(define-abbrev-table 'lisp-mode-abbrev-table ()
1293(define-abbrev-table 'lisp-mode-abbrev-table ()) 1295 "Abbrev table for Lisp mode.")
1294 1296
1295(defvar lisp-mode-syntax-table 1297(defvar lisp-mode-syntax-table
1296 (let ((table (copy-syntax-table emacs-lisp-mode-syntax-table))) 1298 (let ((table (make-syntax-table lisp--mode-syntax-table)))
1297 (modify-syntax-entry ?\[ "_ " table) 1299 (modify-syntax-entry ?\[ "_ " table)
1298 (modify-syntax-entry ?\] "_ " table) 1300 (modify-syntax-entry ?\] "_ " table)
1299 (modify-syntax-entry ?# "' 14" table) 1301 (modify-syntax-entry ?# "' 14" table)
@@ -1308,10 +1310,9 @@ each calls the following function to set various variables:
1308 1310
1309@smallexample 1311@smallexample
1310@group 1312@group
1311(defun lisp-mode-variables (&optional syntax keywords-case-insensitive) 1313(defun lisp-mode-variables (&optional syntax keywords-case-insensitive elisp)
1312 (when syntax 1314 (when syntax
1313 (set-syntax-table lisp-mode-syntax-table)) 1315 (set-syntax-table lisp-mode-syntax-table))
1314 (setq local-abbrev-table lisp-mode-abbrev-table)
1315 @dots{} 1316 @dots{}
1316@end group 1317@end group
1317@end smallexample 1318@end smallexample
@@ -1322,8 +1323,7 @@ variable to handle Lisp comments:
1322 1323
1323@smallexample 1324@smallexample
1324@group 1325@group
1325 (make-local-variable 'comment-start) 1326 (setq-local comment-start ";")
1326 (setq comment-start ";")
1327 @dots{} 1327 @dots{}
1328@end group 1328@end group
1329@end smallexample 1329@end smallexample
@@ -1337,6 +1337,7 @@ common. The following code sets up the common commands:
1337@group 1337@group
1338(defvar lisp-mode-shared-map 1338(defvar lisp-mode-shared-map
1339 (let ((map (make-sparse-keymap))) 1339 (let ((map (make-sparse-keymap)))
1340 (set-keymap-parent map prog-mode-map)
1340 (define-key map "\e\C-q" 'indent-sexp) 1341 (define-key map "\e\C-q" 'indent-sexp)
1341 (define-key map "\177" 'backward-delete-char-untabify) 1342 (define-key map "\177" 'backward-delete-char-untabify)
1342 map) 1343 map)
@@ -1351,7 +1352,7 @@ And here is the code to set up the keymap for Lisp mode:
1351@group 1352@group
1352(defvar lisp-mode-map 1353(defvar lisp-mode-map
1353 (let ((map (make-sparse-keymap)) 1354 (let ((map (make-sparse-keymap))
1354 (menu-map (make-sparse-keymap "Lisp"))) 1355 (menu-map (make-sparse-keymap "Lisp")))
1355 (set-keymap-parent map lisp-mode-shared-map) 1356 (set-keymap-parent map lisp-mode-shared-map)
1356 (define-key map "\e\C-x" 'lisp-eval-defun) 1357 (define-key map "\e\C-x" 'lisp-eval-defun)
1357 (define-key map "\C-c\C-z" 'run-lisp) 1358 (define-key map "\C-c\C-z" 'run-lisp)
@@ -1375,17 +1376,13 @@ Blank lines separate paragraphs. Semicolons start comments.
1375 1376
1376\\@{lisp-mode-map@} 1377\\@{lisp-mode-map@}
1377Note that `run-lisp' may be used either to start an inferior Lisp job 1378Note that `run-lisp' may be used either to start an inferior Lisp job
1378or to switch back to an existing one. 1379or to switch back to an existing one."
1379@end group 1380@end group
1380
1381@group 1381@group
1382Entry to this mode calls the value of `lisp-mode-hook'
1383if that value is non-nil."
1384 (lisp-mode-variables nil t) 1382 (lisp-mode-variables nil t)
1385 (set (make-local-variable 'find-tag-default-function) 1383 (setq-local find-tag-default-function 'lisp-find-tag-default)
1386 'lisp-find-tag-default) 1384 (setq-local comment-start-skip
1387 (set (make-local-variable 'comment-start-skip) 1385 "\\(\\(^\\|[^\\\\\n]\\)\\(\\\\\\\\\\)*\\)\\(;+\\|#|\\) *")
1388 "\\(\\(^\\|[^\\\\\n]\\)\\(\\\\\\\\\\)*\\)\\(;+\\|#|\\) *")
1389 (setq imenu-case-fold-search t)) 1386 (setq imenu-case-fold-search t))
1390@end group 1387@end group
1391@end smallexample 1388@end smallexample
diff --git a/doc/lispref/nonascii.texi b/doc/lispref/nonascii.texi
index ae9a8ab6323..11a77bd1479 100644
--- a/doc/lispref/nonascii.texi
+++ b/doc/lispref/nonascii.texi
@@ -1632,11 +1632,16 @@ coding system for a file based on its undecoded contents.
1632 1632
1633Each function in this list should be written to look at text in the 1633Each function in this list should be written to look at text in the
1634current buffer, but should not modify it in any way. The buffer will 1634current buffer, but should not modify it in any way. The buffer will
1635contain undecoded text of parts of the file. Each function should 1635contain the text of parts of the file. Each function should take one
1636take one argument, @var{size}, which tells it how many characters to 1636argument, @var{size}, which tells it how many characters to look at,
1637look at, starting from point. If the function succeeds in determining 1637starting from point. If the function succeeds in determining a coding
1638a coding system for the file, it should return that coding system. 1638system for the file, it should return that coding system. Otherwise,
1639Otherwise, it should return @code{nil}. 1639it should return @code{nil}.
1640
1641The functions in this list could be called either when the file is
1642visited and Emacs wants to decode its contents, and/or when the file's
1643buffer is about to be saved and Emacs wants to determine how to encode
1644its contents.
1640 1645
1641If a file has a @samp{coding:} tag, that takes precedence, so these 1646If a file has a @samp{coding:} tag, that takes precedence, so these
1642functions won't be called. 1647functions won't be called.
diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi
index 1a77a64e01c..0c77cc0ee61 100644
--- a/doc/misc/cc-mode.texi
+++ b/doc/misc/cc-mode.texi
@@ -148,7 +148,17 @@ CC Mode
148@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 148@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
149 149
150@comment Define an index for syntactic symbols. 150@comment Define an index for syntactic symbols.
151@c Version for Texinfo <= 4.x
152@ifclear txicommandconditionals
153@ifnottex @c In texi2dvi, the @defindex would create an empty cc-mode.ss
154 @c For Info, unlike tex, @syncodeindex needs a matching @defindex.
151@defindex ss 155@defindex ss
156@end ifnottex
157@end ifclear
158@c Version for Texinfo >= 5.x
159@ifset txicommandconditionals
160@defindex ss
161@end ifset
152 162
153@comment Combine key, syntactic symbol and concept indices into one. 163@comment Combine key, syntactic symbol and concept indices into one.
154@syncodeindex ss cp 164@syncodeindex ss cp
@@ -2282,6 +2292,8 @@ method, ``Top-level commands or the customization interface''.
2282 2292
2283If you make conflicting settings in several of these ways, the way 2293If you make conflicting settings in several of these ways, the way
2284that takes precedence is the one that appears latest in this list: 2294that takes precedence is the one that appears latest in this list:
2295@c Version of list for Texinfo <= 4.x
2296@ifclear txicommandconditionals
2285@itemize @w{} 2297@itemize @w{}
2286@item 2298@item
2287@table @asis 2299@table @asis
@@ -2292,6 +2304,18 @@ that takes precedence is the one that appears latest in this list:
2292@itemx File Local Variable setting 2304@itemx File Local Variable setting
2293@end table 2305@end table
2294@end itemize 2306@end itemize
2307@end ifclear
2308@c Version of list for Texinfo >= 5.x
2309@ifset txicommandconditionals
2310@itemize @asis
2311@item Style
2312@item File Style@footnote{In earlier versions of @ccmode{}, a File Style setting took precedence over any other setting apart from a File Local Variable setting.}
2313@item Top-level command or ``customization interface''
2314@item Hook
2315@item File Local Variable setting
2316@end itemize
2317@end ifset
2318
2295 2319
2296Here is a summary of the different ways of writing your configuration 2320Here is a summary of the different ways of writing your configuration
2297settings: 2321settings:
@@ -2548,7 +2572,7 @@ Basics}).
2548@item 2572@item
2549The style variable @code{c-offsets-alist} (@pxref{c-offsets-alist}) is 2573The style variable @code{c-offsets-alist} (@pxref{c-offsets-alist}) is
2550an association list with an element for each syntactic symbol. It's 2574an association list with an element for each syntactic symbol. It's
2551handled a little differently from the other style variables. It's 2575handled a little differently from the other style variables. Its
2552default global binding is the empty list @code{nil}, rather than 2576default global binding is the empty list @code{nil}, rather than
2553@code{set-from-style}. Before the style system is initialized, you 2577@code{set-from-style}. Before the style system is initialized, you
2554can add individual elements to @code{c-offsets-alist} by calling 2578can add individual elements to @code{c-offsets-alist} by calling
@@ -5286,7 +5310,7 @@ The simplest and most used kind of ``offset'' setting in
5286@defopt c-basic-offset 5310@defopt c-basic-offset
5287@vindex basic-offset @r{(c-)} 5311@vindex basic-offset @r{(c-)}
5288This style variable holds the basic offset between indentation levels. 5312This style variable holds the basic offset between indentation levels.
5289It's factory default is 4, but all the built-in styles set it 5313Its factory default is 4, but all the built-in styles set it
5290themselves, to some value between 2 (for @code{gnu} style) and 8 (for 5314themselves, to some value between 2 (for @code{gnu} style) and 8 (for
5291@code{bsd}, @code{linux}, and @code{python} styles). 5315@code{bsd}, @code{linux}, and @code{python} styles).
5292@end defopt 5316@end defopt
diff --git a/doc/misc/ede.texi b/doc/misc/ede.texi
index 6d5c1b93a94..7ab386c97a4 100644
--- a/doc/misc/ede.texi
+++ b/doc/misc/ede.texi
@@ -1038,7 +1038,7 @@ details on using @eieio{} to extending classes, and writing methods.
1038 1038
1039If you intend to extend @ede{}, it is most likely that a new target type is 1039If you intend to extend @ede{}, it is most likely that a new target type is
1040needed in one of the existing project types. The rest of this chapter 1040needed in one of the existing project types. The rest of this chapter
1041will discuss extending the @code{ede-project} class, and it's targets. 1041will discuss extending the @code{ede-project} class, and its targets.
1042See @file{project-am.el} for basic details on adding targets to it. 1042See @file{project-am.el} for basic details on adding targets to it.
1043 1043
1044For the @code{ede-project} type, the core target class is called 1044For the @code{ede-project} type, the core target class is called
@@ -1477,7 +1477,7 @@ Get the inode of the directory project @var{PROJ} is in.
1477@end deffn 1477@end deffn
1478 1478
1479@deffn Method ede-project-root :AFTER this 1479@deffn Method ede-project-root :AFTER this
1480If a project knows it's root, return it here. 1480If a project knows its root, return it here.
1481Allows for one-project-object-for-a-tree type systems. 1481Allows for one-project-object-for-a-tree type systems.
1482@end deffn 1482@end deffn
1483 1483
@@ -1486,7 +1486,7 @@ Find a subproject of @var{PROJ} that corresponds to @var{DIR}.
1486@end deffn 1486@end deffn
1487 1487
1488@deffn Method ede-project-root-directory :AFTER this &optional file 1488@deffn Method ede-project-root-directory :AFTER this &optional file
1489If a project knows it's root, return it here. 1489If a project knows its root, return it here.
1490Allows for one-project-object-for-a-tree type systems. 1490Allows for one-project-object-for-a-tree type systems.
1491Optional @var{FILE} is the file to test. It is ignored in preference 1491Optional @var{FILE} is the file to test. It is ignored in preference
1492of the anchor file for the project. 1492of the anchor file for the project.
@@ -2516,7 +2516,7 @@ In sources for @var{THIS}, change version numbers to @var{VERSION}.
2516@end deffn 2516@end deffn
2517 2517
2518@deffn Method project-delete-target :AFTER ot 2518@deffn Method project-delete-target :AFTER ot
2519Delete the current target @var{OT} from it's parent project. 2519Delete the current target @var{OT} from its parent project.
2520@end deffn 2520@end deffn
2521 2521
2522@deffn Method ede-target-sourcecode :AFTER this 2522@deffn Method ede-target-sourcecode :AFTER this
@@ -2715,7 +2715,7 @@ Converts all symbols into the objects to be used.
2715@end deffn 2715@end deffn
2716 2716
2717@deffn Method project-delete-target :AFTER this 2717@deffn Method project-delete-target :AFTER this
2718Delete the current target @var{THIS} from it's parent project. 2718Delete the current target @var{THIS} from its parent project.
2719@end deffn 2719@end deffn
2720 2720
2721@deffn Method ede-proj-makefile-target-name :AFTER this 2721@deffn Method ede-proj-makefile-target-name :AFTER this
@@ -4013,7 +4013,7 @@ Type: @code{list}
4013 4013
4014The commands used to execute this compiler. 4014The commands used to execute this compiler.
4015The object which uses this compiler will place these commands after 4015The object which uses this compiler will place these commands after
4016it's rule definition. 4016its rule definition.
4017 4017
4018@item :autoconf 4018@item :autoconf
4019Type: @code{list} @* 4019Type: @code{list} @*
@@ -4125,7 +4125,7 @@ Type: @code{list}
4125 4125
4126The commands used to execute this compiler. 4126The commands used to execute this compiler.
4127The object which uses this compiler will place these commands after 4127The object which uses this compiler will place these commands after
4128it's rule definition. 4128its rule definition.
4129 4129
4130@item :objectextention 4130@item :objectextention
4131Type: @code{string} 4131Type: @code{string}
@@ -4265,7 +4265,7 @@ Type: @code{list}
4265 4265
4266The commands used to execute this compiler. 4266The commands used to execute this compiler.
4267The object which uses this compiler will place these commands after 4267The object which uses this compiler will place these commands after
4268it's rule definition. 4268its rule definition.
4269 4269
4270@item :objectextention 4270@item :objectextention
4271Type: @code{string} 4271Type: @code{string}
diff --git a/doc/misc/gnus-faq.texi b/doc/misc/gnus-faq.texi
index e8ec5020df2..075f5218414 100644
--- a/doc/misc/gnus-faq.texi
+++ b/doc/misc/gnus-faq.texi
@@ -284,7 +284,7 @@ what's this?
284@subsubheading Answer 284@subsubheading Answer
285 285
286You get the message described in the q/a pair above while 286You get the message described in the q/a pair above while
287starting Gnus, right? It's an other symptom for the same 287starting Gnus, right? It's another symptom for the same
288problem, so read the answer above. 288problem, so read the answer above.
289 289
290@node FAQ 2-3 290@node FAQ 2-3
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index 272c8356c20..b9c91a02a3a 100644
--- a/doc/misc/gnus.texi
+++ b/doc/misc/gnus.texi
@@ -9416,7 +9416,7 @@ function must return @code{mid}, @code{mail}, @code{invalid} or
9416@item gnus-button-mid-or-mail-heuristic 9416@item gnus-button-mid-or-mail-heuristic
9417@findex gnus-button-mid-or-mail-heuristic 9417@findex gnus-button-mid-or-mail-heuristic
9418Function that guesses whether its argument is a message ID or a mail 9418Function that guesses whether its argument is a message ID or a mail
9419address. Returns @code{mid} if it's a message IDs, @code{mail} if 9419address. Returns @code{mid} if it's a message ID, @code{mail} if
9420it's a mail address, @code{ask} if unsure and @code{invalid} if the 9420it's a mail address, @code{ask} if unsure and @code{invalid} if the
9421string is invalid. 9421string is invalid.
9422 9422
diff --git a/lisp/autorevert.el b/lisp/autorevert.el
index 150693baf13..bc7c616ecb7 100644
--- a/lisp/autorevert.el
+++ b/lisp/autorevert.el
@@ -816,7 +816,7 @@ the timer when no buffers need to be checked."
816 (when (and (not global-auto-revert-mode) 816 (when (and (not global-auto-revert-mode)
817 (null auto-revert-buffer-list)) 817 (null auto-revert-buffer-list))
818 (if (timerp auto-revert-timer) 818 (if (timerp auto-revert-timer)
819 (cancel-timer auto-revert-timer)) 819 (cancel-timer auto-revert-timer))
820 (setq auto-revert-timer nil))))) 820 (setq auto-revert-timer nil)))))
821 821
822 822
diff --git a/lisp/frame.el b/lisp/frame.el
index cdb2ac4af11..dd1d5b030f5 100644
--- a/lisp/frame.el
+++ b/lisp/frame.el
@@ -736,7 +736,9 @@ If DISPLAY is nil, that stands for the selected frame's display."
736(defun make-frame-command () 736(defun make-frame-command ()
737 "Make a new frame, on the same terminal as the selected frame. 737 "Make a new frame, on the same terminal as the selected frame.
738If the terminal is a text-only terminal, this also selects the 738If the terminal is a text-only terminal, this also selects the
739new frame." 739new frame.
740
741When called from Lisp, returns the new frame."
740 (interactive) 742 (interactive)
741 (if (display-graphic-p) 743 (if (display-graphic-p)
742 (make-frame) 744 (make-frame)
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index baf44cb4830..baa8a244c07 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -7473,7 +7473,7 @@ must return `mid', `mail', `invalid' or `ask'."
7473 (2.0 . "^[A-Z][a-z][A-Z][a-z][a-z][^a-z]")) ;; ^[A-Z][a-z]{4,4} 7473 (2.0 . "^[A-Z][a-z][A-Z][a-z][a-z][^a-z]")) ;; ^[A-Z][a-z]{4,4}
7474 "An alist of (RATE . REGEXP) pairs for `gnus-button-mid-or-mail-heuristic'. 7474 "An alist of (RATE . REGEXP) pairs for `gnus-button-mid-or-mail-heuristic'.
7475 7475
7476A negative RATE indicates a message IDs, whereas a positive indicates a mail 7476A negative RATE indicates a message ID, whereas a positive indicates a mail
7477address. The REGEXP is processed with `case-fold-search' set to nil." 7477address. The REGEXP is processed with `case-fold-search' set to nil."
7478 :version "22.1" 7478 :version "22.1"
7479 :group 'gnus-article-buttons 7479 :group 'gnus-article-buttons
@@ -7482,7 +7482,7 @@ address. The REGEXP is processed with `case-fold-search' set to nil."
7482 7482
7483(defun gnus-button-mid-or-mail-heuristic (mid-or-mail) 7483(defun gnus-button-mid-or-mail-heuristic (mid-or-mail)
7484 "Guess whether MID-OR-MAIL is a message ID or a mail address. 7484 "Guess whether MID-OR-MAIL is a message ID or a mail address.
7485Returns `mid' if MID-OR-MAIL is a message IDs, `mail' if it's a mail 7485Returns `mid' if MID-OR-MAIL is a message ID, `mail' if it's a mail
7486address, `ask' if unsure and `invalid' if the string is invalid." 7486address, `ask' if unsure and `invalid' if the string is invalid."
7487 (let ((case-fold-search nil) 7487 (let ((case-fold-search nil)
7488 (list gnus-button-mid-or-mail-heuristic-alist) 7488 (list gnus-button-mid-or-mail-heuristic-alist)
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index d490f0ca74c..c491f16dd86 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -1732,7 +1732,7 @@ no, only reply back to the author."
1732 :type 'boolean) 1732 :type 'boolean)
1733 1733
1734(defcustom message-user-fqdn nil 1734(defcustom message-user-fqdn nil
1735 "Domain part of Message-Ids." 1735 "Domain part of Message-IDs."
1736 :version "22.1" 1736 :version "22.1"
1737 :group 'message-headers 1737 :group 'message-headers
1738 :link '(custom-manual "(message)News Headers") 1738 :link '(custom-manual "(message)News Headers")
diff --git a/lisp/international/mule.el b/lisp/international/mule.el
index 5393958013b..281e5297d63 100644
--- a/lisp/international/mule.el
+++ b/lisp/international/mule.el
@@ -1852,9 +1852,12 @@ or nil."
1852 1852
1853Each function in this list should be written to operate on the 1853Each function in this list should be written to operate on the
1854current buffer, but should not modify it in any way. The buffer 1854current buffer, but should not modify it in any way. The buffer
1855will contain undecoded text of parts of the file. Each function 1855will contain the text of parts of the file. Each function
1856should take one argument, SIZE, which says how many characters 1856should take one argument, SIZE, which says how many characters
1857\(starting from point) it should look at. 1857\(starting from point) it should look at. The function might be
1858called both when the file is visited and Emacs wants to decode
1859its contents, and when the file's buffer is about to be saved
1860and Emacs wants to determine how to encode its contents.
1858 1861
1859If one of these functions succeeds in determining a coding 1862If one of these functions succeeds in determining a coding
1860system, it should return that coding system. Otherwise, it 1863system, it should return that coding system. Otherwise, it
@@ -2501,10 +2504,17 @@ This function is intended to be added to `auto-coding-functions'."
2501 (let ((sym-type (coding-system-type sym)) 2504 (let ((sym-type (coding-system-type sym))
2502 (bfcs-type 2505 (bfcs-type
2503 (coding-system-type buffer-file-coding-system))) 2506 (coding-system-type buffer-file-coding-system)))
2504 ;; 'charset' will signal an error in 2507 ;; If the buffer is unibyte, its encoding is
2505 ;; coding-system-equal, since it isn't a 2508 ;; immaterial (it is just the default value of
2506 ;; coding-system. So test that up front. 2509 ;; buffer-file-coding-system), so we ignore it.
2507 (if (and (not (equal sym-type 'charset)) 2510 ;; This situation happens when this function is
2511 ;; called as part of visiting a file, as opposed
2512 ;; to when saving a buffer to a file.
2513 (if (and enable-multibyte-characters
2514 ;; 'charset' will signal an error in
2515 ;; coding-system-equal, since it isn't a
2516 ;; coding-system. So test that up front.
2517 (not (equal sym-type 'charset))
2508 (coding-system-equal 'utf-8 sym-type) 2518 (coding-system-equal 'utf-8 sym-type)
2509 (coding-system-equal 'utf-8 bfcs-type)) 2519 (coding-system-equal 'utf-8 bfcs-type))
2510 buffer-file-coding-system 2520 buffer-file-coding-system
@@ -2556,7 +2566,8 @@ This function is intended to be added to `auto-coding-functions'."
2556 (let ((sym-type (coding-system-type sym)) 2566 (let ((sym-type (coding-system-type sym))
2557 (bfcs-type 2567 (bfcs-type
2558 (coding-system-type buffer-file-coding-system))) 2568 (coding-system-type buffer-file-coding-system)))
2559 (if (and (coding-system-equal 'utf-8 sym-type) 2569 (if (and enable-multibyte-characters
2570 (coding-system-equal 'utf-8 sym-type)
2560 (coding-system-equal 'utf-8 bfcs-type)) 2571 (coding-system-equal 'utf-8 bfcs-type))
2561 buffer-file-coding-system 2572 buffer-file-coding-system
2562 sym)) 2573 sym))
diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el
index 75e2deaa4ce..716f40c1f3a 100644
--- a/lisp/progmodes/gdb-mi.el
+++ b/lisp/progmodes/gdb-mi.el
@@ -1843,7 +1843,7 @@ commands to be prefixed by \"-interpreter-exec console\".")
1843 ;; Python and Guile commands that have an argument don't enter the 1843 ;; Python and Guile commands that have an argument don't enter the
1844 ;; recursive reading loop. 1844 ;; recursive reading loop.
1845 (let* ((control-command-p (string-match gdb-control-commands-regexp string)) 1845 (let* ((control-command-p (string-match gdb-control-commands-regexp string))
1846 (command-arg (match-string 3 string)) 1846 (command-arg (and control-command-p (match-string 3 string)))
1847 (python-or-guile-p (string-match gdb-python-guile-commands-regexp 1847 (python-or-guile-p (string-match gdb-python-guile-commands-regexp
1848 string))) 1848 string)))
1849 (if (and control-command-p 1849 (if (and control-command-p
diff --git a/lisp/window.el b/lisp/window.el
index 39f4fa139bb..a8b65657a49 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -4697,6 +4697,8 @@ displayed there."
4697BUFFER-OR-NAME may be a buffer or the name of an existing buffer 4697BUFFER-OR-NAME may be a buffer or the name of an existing buffer
4698and defaults to the current buffer. 4698and defaults to the current buffer.
4699 4699
4700Interactively, prompt for the buffer.
4701
4700The following non-nil values of the optional argument FRAME 4702The following non-nil values of the optional argument FRAME
4701have special meanings: 4703have special meanings:
4702 4704
@@ -4713,9 +4715,25 @@ have special meanings:
4713Any other value of FRAME means consider all windows on all 4715Any other value of FRAME means consider all windows on all
4714frames. 4716frames.
4715 4717
4716When a window showing BUFFER-OR-NAME is dedicated and the only 4718Interactively, FRAME is the prefix argument, so you can
4717window of its frame, that frame is deleted when there are other 4719use \\[universal-argument] 0 to specify all windows only on
4718frames left." 4720the current terminal's frames.
4721
4722If a frame's root window shows the buffer specified by
4723BUFFER-OR-NAME and is dedicated to that buffer and that frame
4724does not host the active minibuffer window and there is at least
4725one other frame on that frame's terminal, delete that frame.
4726Otherwise, do not delete a frame's root window if it shows the
4727buffer specified by BUFFER-OR-NAME and do not delete any frame's
4728main window showing that buffer either. Rather, in any such
4729case, call `switch-to-prev-buffer' to show another buffer in that
4730window and make sure the window is no more dedicated to its
4731buffer.
4732
4733If the buffer specified by BUFFER-OR-NAME is shown in a
4734minibuffer window, do nothing for that window. For any window
4735that does not show that buffer, remove the buffer from that
4736window's lists of previous and next buffers."
4719 (interactive "bDelete windows on (buffer):\nP") 4737 (interactive "bDelete windows on (buffer):\nP")
4720 (let ((buffer (window-normalize-buffer buffer-or-name)) 4738 (let ((buffer (window-normalize-buffer buffer-or-name))
4721 ;; Handle the "inverted" meaning of the FRAME argument wrt other 4739 ;; Handle the "inverted" meaning of the FRAME argument wrt other
diff --git a/src/buffer.c b/src/buffer.c
index 44b33f5b60d..5fabbc253c8 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -6256,9 +6256,11 @@ The function `kill-all-local-variables' runs this before doing anything else. *
6256 6256
6257 DEFVAR_LISP ("buffer-list-update-hook", Vbuffer_list_update_hook, 6257 DEFVAR_LISP ("buffer-list-update-hook", Vbuffer_list_update_hook,
6258 doc: /* Hook run when the buffer list changes. 6258 doc: /* Hook run when the buffer list changes.
6259Functions running this hook are, `get-buffer-create', 6259Functions (implicitly) running this hook are `get-buffer-create',
6260`make-indirect-buffer', `rename-buffer', `kill-buffer', 6260`make-indirect-buffer', `rename-buffer', `kill-buffer', `bury-buffer'
6261`bury-buffer-internal' and `select-window'. */); 6261and `select-window'. Functions run by this hook should avoid calling
6262`select-window' with a nil NORECORD argument or `with-temp-buffer'
6263since either may lead to infinite recursion. */);
6262 Vbuffer_list_update_hook = Qnil; 6264 Vbuffer_list_update_hook = Qnil;
6263 DEFSYM (Qbuffer_list_update_hook, "buffer-list-update-hook"); 6265 DEFSYM (Qbuffer_list_update_hook, "buffer-list-update-hook");
6264 6266