emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 3b63afd: Merge from origin/emacs-26


From: Glenn Morris
Subject: [Emacs-diffs] master 3b63afd: Merge from origin/emacs-26
Date: Sat, 9 Mar 2019 13:07:56 -0500 (EST)

branch: master
commit 3b63afd73b541ea559aa58edc1901c8b30e2af40
Merge: e1819a2 0589de5
Author: Glenn Morris <address@hidden>
Commit: Glenn Morris <address@hidden>

    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
---
 doc/emacs/windows.texi              |  7 +++++++
 doc/lispintro/emacs-lisp-intro.texi |  2 +-
 doc/lispref/buffers.texi            |  4 ++++
 doc/lispref/display.texi            | 10 ++++++++++
 doc/lispref/files.texi              | 13 ++++++++++++-
 doc/lispref/keymaps.texi            | 11 ++++++-----
 doc/lispref/modes.texi              | 29 +++++++++++++----------------
 doc/lispref/nonascii.texi           | 15 ++++++++++-----
 doc/misc/cc-mode.texi               | 28 ++++++++++++++++++++++++++--
 doc/misc/ede.texi                   | 16 ++++++++--------
 doc/misc/gnus-faq.texi              |  2 +-
 doc/misc/gnus.texi                  |  2 +-
 lisp/autorevert.el                  |  2 +-
 lisp/frame.el                       |  4 +++-
 lisp/gnus/gnus-art.el               |  4 ++--
 lisp/gnus/message.el                |  2 +-
 lisp/international/mule.el          | 25 ++++++++++++++++++-------
 lisp/progmodes/gdb-mi.el            |  2 +-
 lisp/window.el                      | 24 +++++++++++++++++++++---
 src/buffer.c                        |  8 +++++---
 20 files changed, 151 insertions(+), 59 deletions(-)

diff --git a/doc/emacs/windows.texi b/doc/emacs/windows.texi
index 4e6e7e3..ece5313 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
 Delete the selected window and kill the buffer that was showing in it
 (@code{kill-buffer-and-window}).  The last character in this key
 sequence is a zero.
address@hidden M-x delete-windows-on @key{RET} @var{buffer} @key{RET}
+Delete windows showing the specified @var{buffer}.
 @item C-x ^
 Make selected window taller (@code{enlarge-window}).
 @item C-x @}
@@ -297,6 +299,11 @@ selected window.
 whole frame.  (This command cannot be used while the minibuffer window
 is active; attempting to do so signals an error.)
 
+  @kbd{M-x delete-windows-on} deletes windows that show a specific
+buffer.  It prompts for the buffer, defaulting to the current buffer.
+With prefix argument of zero, @kbd{C-u 0}, this command deletes
+windows only on the current display's frames.
+
 @cindex resize window
 @cindex resizing windows
 @kindex C-x ^
diff --git a/doc/lispintro/emacs-lisp-intro.texi 
b/doc/lispintro/emacs-lisp-intro.texi
index f292a17..519decb 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
 @code{describe-function} command), the @code{find-file-noselect}
 function reads the named file into a buffer and returns the buffer.
 (Its most recent version includes an optional @var{wildcards} argument,
-too, as well as another to read a file literally and an other you
+too, as well as another to read a file literally and another to
 suppress warning messages.  These optional arguments are irrelevant.)
 
 However, the @code{find-file-noselect} function does not select the
diff --git a/doc/lispref/buffers.texi b/doc/lispref/buffers.texi
index 2dbe9c2..260f159 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
 (@pxref{Creating Buffers}), @code{rename-buffer} (@pxref{Buffer Names}),
 @code{kill-buffer} (@pxref{Killing Buffers}), @code{bury-buffer} (see
 above) and @code{select-window} (@pxref{Selecting Windows}).
+
+Functions run by this hook should avoid calling @code{select-window}
+with a nil @var{norecord} argument or @code{with-temp-buffer} since
+either may lead to infinite recursion.
 @end defvar
 
 @node Creating Buffers
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi
index 95379b3..c4cb839 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,
 respectively.  Both positions can be different when @code{object} is a
 string.
 
+Note that @var{condition} will only be evaluated when redisplay
+examines the text where this display spec is located, so this feature
+is best suited for conditions that are relatively stable, i.e.@:
+yield, for each particular buffer position, the same results on every
+evaluation.  If the results change for the same text location, e.g.,
+if the result depends on the position of point, then the conditional
+specification might not do what you want, because redisplay examines
+only those parts of buffer text where it has reasons to assume that
+something changed since the last display cycle.
+
 @node Display Margins
 @subsection Displaying in the Margins
 @cindex display margins
diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi
index 5c99ea2..0e57cf9 100644
--- a/doc/lispref/files.texi
+++ b/doc/lispref/files.texi
@@ -16,7 +16,7 @@ described in @ref{Backups and Auto-Saving}.
 names.  A file name is a string.  Most of these functions expand file
 name arguments using the function @code{expand-file-name}, so that
 @file{~} is handled correctly, as are relative file names (including
address@hidden/}).  @xref{File Name Expansion}.
address@hidden/} and the empty string).  @xref{File Name Expansion}.
 
   In addition, certain @dfn{magic} file names are handled specially.
 For 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
 superroot above the root directory @file{/}.  On other filesystems,
 @file{/../} is interpreted exactly the same as @file{/}.
 
+Expanding @file{.} or the empty string returns the default directory:
+
address@hidden
address@hidden
+(expand-file-name "." "/usr/spool/")
+     @result{} "/usr/spool"
+(expand-file-name "" "/usr/spool/")
+     @result{} "/usr/spool"
address@hidden group
address@hidden example
+
 Note that @code{expand-file-name} does @emph{not} expand environment
 variables; only @code{substitute-in-file-name} does that:
 
diff --git a/doc/lispref/keymaps.texi b/doc/lispref/keymaps.texi
index cc0386c..6ad665a 100644
--- a/doc/lispref/keymaps.texi
+++ b/doc/lispref/keymaps.texi
@@ -2502,7 +2502,7 @@ can do it this way:
 
   Emacs usually shows a @dfn{menu bar} at the top of each frame.
 @xref{Menu Bars,,,emacs, The GNU Emacs Manual}.  Menu bar items are
-subcommands of the fake function key @code{menu-bar}, as defined
+subcommands of the fake function key @key{MENU-BAR}, as defined
 in the active keymaps.
 
   To add an item to the menu bar, invent a fake function key of your
@@ -2554,9 +2554,10 @@ bar item:
 @end example
 
 @noindent
-Here, @code{edit} is the fake function key used by the global map for
-the @samp{Edit} menu bar item.  The main reason to suppress a global
-menu bar item is to regain space for mode-specific items.
+Here, @code{edit} is the symbol produced by a fake function key, it is
+used by the global map for the @samp{Edit} menu bar item.  The main
+reason to suppress a global menu bar item is to regain space for
+mode-specific items.
 
 @defvar menu-bar-final-items
 Normally 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,
 but does not contract automatically.
 
   The tool bar contents are controlled by a menu keymap attached to a
-fake function key called @code{tool-bar} (much like the way the menu
+fake function key called @key{TOOL-BAR} (much like the way the menu
 bar is controlled).  So you define a tool bar item using
 @code{define-key}, like this:
 
diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi
index 22592a5..3f6bee9 100644
--- a/doc/lispref/modes.texi
+++ b/doc/lispref/modes.texi
@@ -1237,6 +1237,7 @@ the conventions listed above:
     (modify-syntax-entry ?\\ ".   " st)
     ;; Add 'p' so M-c on 'hello' leads to 'Hello', not 'hello'.
     (modify-syntax-entry ?' "w p" st)
+    @dots{}
     st)
   "Syntax table used while in `text-mode'.")
 @end group
@@ -1246,6 +1247,7 @@ the conventions listed above:
 (defvar text-mode-map
   (let ((map (make-sparse-keymap)))
     (define-key map "\e\t" 'ispell-complete-word)
+    @dots{}
     map)
   "Keymap for `text-mode'.
 Many other modes, such as `mail-mode', `outline-mode' and
@@ -1289,11 +1291,11 @@ illustrate how these modes are written.
 @smallexample
 @group
 ;; @r{Create mode-specific table variables.}
-(defvar lisp-mode-abbrev-table nil)
-(define-abbrev-table 'lisp-mode-abbrev-table ())
+(define-abbrev-table 'lisp-mode-abbrev-table ()
+  "Abbrev table for Lisp mode.")
 
 (defvar lisp-mode-syntax-table
-  (let ((table (copy-syntax-table emacs-lisp-mode-syntax-table)))
+  (let ((table (make-syntax-table lisp--mode-syntax-table)))
     (modify-syntax-entry ?\[ "_   " table)
     (modify-syntax-entry ?\] "_   " table)
     (modify-syntax-entry ?# "' 14" table)
@@ -1308,10 +1310,9 @@ each calls the following function to set various 
variables:
 
 @smallexample
 @group
-(defun lisp-mode-variables (&optional syntax keywords-case-insensitive)
+(defun lisp-mode-variables (&optional syntax keywords-case-insensitive elisp)
   (when syntax
     (set-syntax-table lisp-mode-syntax-table))
-  (setq local-abbrev-table lisp-mode-abbrev-table)
   @dots{}
 @end group
 @end smallexample
@@ -1322,8 +1323,7 @@ variable to handle Lisp comments:
 
 @smallexample
 @group
-  (make-local-variable 'comment-start)
-  (setq comment-start ";")
+  (setq-local comment-start ";")
   @dots{}
 @end group
 @end smallexample
@@ -1337,6 +1337,7 @@ common.  The following code sets up the common commands:
 @group
 (defvar lisp-mode-shared-map
   (let ((map (make-sparse-keymap)))
+    (set-keymap-parent map prog-mode-map)
     (define-key map "\e\C-q" 'indent-sexp)
     (define-key map "\177" 'backward-delete-char-untabify)
     map)
@@ -1351,7 +1352,7 @@ And here is the code to set up the keymap for Lisp mode:
 @group
 (defvar lisp-mode-map
   (let ((map (make-sparse-keymap))
-       (menu-map (make-sparse-keymap "Lisp")))
+        (menu-map (make-sparse-keymap "Lisp")))
     (set-keymap-parent map lisp-mode-shared-map)
     (define-key map "\e\C-x" 'lisp-eval-defun)
     (define-key map "\C-c\C-z" 'run-lisp)
@@ -1375,17 +1376,13 @@ Blank lines separate paragraphs.  Semicolons start 
comments.
 
 address@hidden@}
 Note that `run-lisp' may be used either to start an inferior Lisp job
-or to switch back to an existing one.
+or to switch back to an existing one."
 @end group
-
 @group
-Entry to this mode calls the value of `lisp-mode-hook'
-if that value is non-nil."
   (lisp-mode-variables nil t)
-  (set (make-local-variable 'find-tag-default-function)
-       'lisp-find-tag-default)
-  (set (make-local-variable 'comment-start-skip)
-       "\\(\\(^\\|[^\\\\\n]\\)\\(\\\\\\\\\\)*\\)\\(;+\\|#|\\) *")
+  (setq-local find-tag-default-function 'lisp-find-tag-default)
+  (setq-local comment-start-skip
+              "\\(\\(^\\|[^\\\\\n]\\)\\(\\\\\\\\\\)*\\)\\(;+\\|#|\\) *")
   (setq imenu-case-fold-search t))
 @end group
 @end smallexample
diff --git a/doc/lispref/nonascii.texi b/doc/lispref/nonascii.texi
index ae9a8ab..11a77bd 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.
 
 Each function in this list should be written to look at text in the
 current buffer, but should not modify it in any way.  The buffer will
-contain undecoded text of parts of the file.  Each function should
-take one argument, @var{size}, which tells it how many characters to
-look at, starting from point.  If the function succeeds in determining
-a coding system for the file, it should return that coding system.
-Otherwise, it should return @code{nil}.
+contain the text of parts of the file.  Each function should take one
+argument, @var{size}, which tells it how many characters to look at,
+starting from point.  If the function succeeds in determining a coding
+system for the file, it should return that coding system.  Otherwise,
+it should return @code{nil}.
+
+The functions in this list could be called either when the file is
+visited and Emacs wants to decode its contents, and/or when the file's
+buffer is about to be saved and Emacs wants to determine how to encode
+its contents.
 
 If a file has a @samp{coding:} tag, that takes precedence, so these
 functions won't be called.
diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi
index 1a77a64..0c77cc0 100644
--- a/doc/misc/cc-mode.texi
+++ b/doc/misc/cc-mode.texi
@@ -148,7 +148,17 @@ CC Mode
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
 @comment Define an index for syntactic symbols.
address@hidden Version for Texinfo <= 4.x
address@hidden txicommandconditionals
address@hidden @c In texi2dvi, the @defindex would create an empty cc-mode.ss
+          @c For Info, unlike tex, @syncodeindex needs a matching @defindex.
 @defindex ss
address@hidden ifnottex
address@hidden ifclear
address@hidden Version for Texinfo >= 5.x
address@hidden txicommandconditionals
address@hidden ss
address@hidden ifset
 
 @comment Combine key, syntactic symbol and concept indices into one.
 @syncodeindex ss cp
@@ -2282,6 +2292,8 @@ method, ``Top-level commands or the customization 
interface''.
 
 If you make conflicting settings in several of these ways, the way
 that takes precedence is the one that appears latest in this list:
address@hidden Version of list for Texinfo <= 4.x
address@hidden txicommandconditionals
 @itemize @w{}
 @item
 @table @asis
@@ -2292,6 +2304,18 @@ that takes precedence is the one that appears latest in 
this list:
 @itemx File Local Variable setting
 @end table
 @end itemize
address@hidden ifclear
address@hidden Version of list for Texinfo >= 5.x
address@hidden txicommandconditionals
address@hidden @asis
address@hidden Style
address@hidden File address@hidden earlier versions of @ccmode{}, a File Style 
setting took precedence over any other setting apart from a File Local Variable 
setting.}
address@hidden Top-level command or ``customization interface''
address@hidden Hook
address@hidden File Local Variable setting
address@hidden itemize
address@hidden ifset
+
 
 Here is a summary of the different ways of writing your configuration
 settings:
@@ -2548,7 +2572,7 @@ Basics}).
 @item
 The style variable @code{c-offsets-alist} (@pxref{c-offsets-alist}) is
 an association list with an element for each syntactic symbol.  It's
-handled a little differently from the other style variables.  It's
+handled a little differently from the other style variables.  Its
 default global binding is the empty list @code{nil}, rather than
 @code{set-from-style}.  Before the style system is initialized, you
 can add individual elements to @code{c-offsets-alist} by calling
@@ -5286,7 +5310,7 @@ The simplest and most used kind of ``offset'' setting in
 @defopt c-basic-offset
 @vindex basic-offset @r{(c-)}
 This style variable holds the basic offset between indentation levels.
-It's factory default is 4, but all the built-in styles set it
+Its factory default is 4, but all the built-in styles set it
 themselves, to some value between 2 (for @code{gnu} style) and 8 (for
 @code{bsd}, @code{linux}, and @code{python} styles).
 @end defopt
diff --git a/doc/misc/ede.texi b/doc/misc/ede.texi
index 6d5c1b9..7ab386c 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.
 
 If you intend to extend @ede{}, it is most likely that a new target type is
 needed in one of the existing project types.  The rest of this chapter
-will discuss extending the @code{ede-project} class, and it's targets.
+will discuss extending the @code{ede-project} class, and its targets.
 See @file{project-am.el} for basic details on adding targets to it.
 
 For 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.
 @end deffn
 
 @deffn Method ede-project-root :AFTER this
-If a project knows it's root, return it here.
+If a project knows its root, return it here.
 Allows for one-project-object-for-a-tree type systems.
 @end deffn
 
@@ -1486,7 +1486,7 @@ Find a subproject of @var{PROJ} that corresponds to 
@var{DIR}.
 @end deffn
 
 @deffn Method ede-project-root-directory :AFTER this &optional file
-If a project knows it's root, return it here.
+If a project knows its root, return it here.
 Allows for one-project-object-for-a-tree type systems.
 Optional @var{FILE} is the file to test.  It is ignored in preference
 of the anchor file for the project.
@@ -2516,7 +2516,7 @@ In sources for @var{THIS}, change version numbers to 
@var{VERSION}.
 @end deffn
 
 @deffn Method project-delete-target :AFTER ot
-Delete the current target @var{OT} from it's parent project.
+Delete the current target @var{OT} from its parent project.
 @end deffn
 
 @deffn Method ede-target-sourcecode :AFTER this
@@ -2715,7 +2715,7 @@ Converts all symbols into the objects to be used.
 @end deffn
 
 @deffn Method project-delete-target :AFTER this
-Delete the current target @var{THIS} from it's parent project.
+Delete the current target @var{THIS} from its parent project.
 @end deffn
 
 @deffn Method ede-proj-makefile-target-name :AFTER this
@@ -4013,7 +4013,7 @@ Type: @code{list}
 
 The commands used to execute this compiler.
 The object which uses this compiler will place these commands after
-it's rule definition.
+its rule definition.
 
 @item :autoconf
 Type: @code{list} @*
@@ -4125,7 +4125,7 @@ Type: @code{list}
 
 The commands used to execute this compiler.
 The object which uses this compiler will place these commands after
-it's rule definition.
+its rule definition.
 
 @item :objectextention
 Type: @code{string}
@@ -4265,7 +4265,7 @@ Type: @code{list}
 
 The commands used to execute this compiler.
 The object which uses this compiler will place these commands after
-it's rule definition.
+its rule definition.
 
 @item :objectextention
 Type: @code{string}
diff --git a/doc/misc/gnus-faq.texi b/doc/misc/gnus-faq.texi
index e8ec502..075f521 100644
--- a/doc/misc/gnus-faq.texi
+++ b/doc/misc/gnus-faq.texi
@@ -284,7 +284,7 @@ what's this?
 @subsubheading Answer
 
 You get the message described in the q/a pair above while
-starting Gnus, right? It's an other symptom for the same
+starting Gnus, right? It's another symptom for the same
 problem, so read the answer above.
 
 @node FAQ 2-3
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index 272c835..b9c91a0 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
 @item gnus-button-mid-or-mail-heuristic
 @findex gnus-button-mid-or-mail-heuristic
 Function that guesses whether its argument is a message ID or a mail
-address.  Returns @code{mid} if it's a message IDs, @code{mail} if
+address.  Returns @code{mid} if it's a message ID, @code{mail} if
 it's a mail address, @code{ask} if unsure and @code{invalid} if the
 string is invalid.
 
diff --git a/lisp/autorevert.el b/lisp/autorevert.el
index 150693b..bc7c616 100644
--- a/lisp/autorevert.el
+++ b/lisp/autorevert.el
@@ -816,7 +816,7 @@ the timer when no buffers need to be checked."
       (when (and (not global-auto-revert-mode)
                 (null auto-revert-buffer-list))
         (if (timerp auto-revert-timer)
-           (cancel-timer auto-revert-timer))
+            (cancel-timer auto-revert-timer))
        (setq auto-revert-timer nil)))))
 
 
diff --git a/lisp/frame.el b/lisp/frame.el
index cdb2ac4..dd1d5b0 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."
 (defun make-frame-command ()
   "Make a new frame, on the same terminal as the selected frame.
 If the terminal is a text-only terminal, this also selects the
-new frame."
+new frame.
+
+When called from Lisp, returns the new frame."
   (interactive)
   (if (display-graphic-p)
       (make-frame)
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index baf44cb..baa8a24 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -7473,7 +7473,7 @@ must return `mid', `mail', `invalid' or `ask'."
     (2.0   . "^[A-Z][a-z][A-Z][a-z][a-z][^a-z]")) ;; ^[A-Z][a-z]{4,4}
   "An alist of (RATE . REGEXP) pairs for `gnus-button-mid-or-mail-heuristic'.
 
-A negative RATE indicates a message IDs, whereas a positive indicates a mail
+A negative RATE indicates a message ID, whereas a positive indicates a mail
 address.  The REGEXP is processed with `case-fold-search' set to nil."
   :version "22.1"
   :group 'gnus-article-buttons
@@ -7482,7 +7482,7 @@ address.  The REGEXP is processed with `case-fold-search' 
set to nil."
 
 (defun gnus-button-mid-or-mail-heuristic (mid-or-mail)
   "Guess whether MID-OR-MAIL is a message ID or a mail address.
-Returns `mid' if MID-OR-MAIL is a message IDs, `mail' if it's a mail
+Returns `mid' if MID-OR-MAIL is a message ID, `mail' if it's a mail
 address, `ask' if unsure and `invalid' if the string is invalid."
   (let ((case-fold-search nil)
        (list gnus-button-mid-or-mail-heuristic-alist)
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index d490f0c..c491f16 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -1732,7 +1732,7 @@ no, only reply back to the author."
   :type 'boolean)
 
 (defcustom message-user-fqdn nil
-  "Domain part of Message-Ids."
+  "Domain part of Message-IDs."
   :version "22.1"
   :group 'message-headers
   :link '(custom-manual "(message)News Headers")
diff --git a/lisp/international/mule.el b/lisp/international/mule.el
index 5393958..281e529 100644
--- a/lisp/international/mule.el
+++ b/lisp/international/mule.el
@@ -1852,9 +1852,12 @@ or nil."
 
 Each function in this list should be written to operate on the
 current buffer, but should not modify it in any way.  The buffer
-will contain undecoded text of parts of the file.  Each function
+will contain the text of parts of the file.  Each function
 should take one argument, SIZE, which says how many characters
-\(starting from point) it should look at.
+\(starting from point) it should look at.  The function might be
+called both when the file is visited and Emacs wants to decode
+its contents, and when the file's buffer is about to be saved
+and Emacs wants to determine how to encode its contents.
 
 If one of these functions succeeds in determining a coding
 system, it should return that coding system.  Otherwise, it
@@ -2501,10 +2504,17 @@ This function is intended to be added to 
`auto-coding-functions'."
                   (let ((sym-type (coding-system-type sym))
                         (bfcs-type
                          (coding-system-type buffer-file-coding-system)))
-                    ;; 'charset' will signal an error in
-                    ;; coding-system-equal, since it isn't a
-                    ;; coding-system.  So test that up front.
-                    (if (and (not (equal sym-type 'charset))
+                    ;; If the buffer is unibyte, its encoding is
+                    ;; immaterial (it is just the default value of
+                    ;; buffer-file-coding-system), so we ignore it.
+                    ;; This situation happens when this function is
+                    ;; called as part of visiting a file, as opposed
+                    ;; to when saving a buffer to a file.
+                    (if (and enable-multibyte-characters
+                             ;; 'charset' will signal an error in
+                             ;; coding-system-equal, since it isn't a
+                             ;; coding-system.  So test that up front.
+                             (not (equal sym-type 'charset))
                              (coding-system-equal 'utf-8 sym-type)
                              (coding-system-equal 'utf-8 bfcs-type))
                         buffer-file-coding-system
@@ -2556,7 +2566,8 @@ This function is intended to be added to 
`auto-coding-functions'."
             (let ((sym-type (coding-system-type sym))
                   (bfcs-type
                    (coding-system-type buffer-file-coding-system)))
-              (if (and (coding-system-equal 'utf-8 sym-type)
+              (if (and enable-multibyte-characters
+                       (coding-system-equal 'utf-8 sym-type)
                        (coding-system-equal 'utf-8 bfcs-type))
                   buffer-file-coding-system
                sym))
diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el
index 75e2dea..716f40c 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\".")
   ;; Python and Guile commands that have an argument don't enter the
   ;; recursive reading loop.
   (let* ((control-command-p (string-match gdb-control-commands-regexp string))
-         (command-arg (match-string 3 string))
+         (command-arg (and control-command-p (match-string 3 string)))
          (python-or-guile-p (string-match gdb-python-guile-commands-regexp
                                           string)))
     (if (and control-command-p
diff --git a/lisp/window.el b/lisp/window.el
index 39f4fa1..a8b6565 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -4697,6 +4697,8 @@ displayed there."
 BUFFER-OR-NAME may be a buffer or the name of an existing buffer
 and defaults to the current buffer.
 
+Interactively, prompt for the buffer.
+
 The following non-nil values of the optional argument FRAME
 have special meanings:
 
@@ -4713,9 +4715,25 @@ have special meanings:
 Any other value of FRAME means consider all windows on all
 frames.
 
-When a window showing BUFFER-OR-NAME is dedicated and the only
-window of its frame, that frame is deleted when there are other
-frames left."
+Interactively, FRAME is the prefix argument, so you can
+use \\[universal-argument] 0 to specify all windows only on
+the current terminal's frames.
+
+If a frame's root window shows the buffer specified by
+BUFFER-OR-NAME and is dedicated to that buffer and that frame
+does not host the active minibuffer window and there is at least
+one other frame on that frame's terminal, delete that frame.
+Otherwise, do not delete a frame's root window if it shows the
+buffer specified by BUFFER-OR-NAME and do not delete any frame's
+main window showing that buffer either.  Rather, in any such
+case, call `switch-to-prev-buffer' to show another buffer in that
+window and make sure the window is no more dedicated to its
+buffer.
+
+If the buffer specified by BUFFER-OR-NAME is shown in a
+minibuffer window, do nothing for that window.  For any window
+that does not show that buffer, remove the buffer from that
+window's lists of previous and next buffers."
   (interactive "bDelete windows on (buffer):\nP")
   (let ((buffer (window-normalize-buffer buffer-or-name))
        ;; Handle the "inverted" meaning of the FRAME argument wrt other
diff --git a/src/buffer.c b/src/buffer.c
index 44b33f5..5fabbc2 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.  *
 
   DEFVAR_LISP ("buffer-list-update-hook", Vbuffer_list_update_hook,
               doc: /* Hook run when the buffer list changes.
-Functions running this hook are, `get-buffer-create',
-`make-indirect-buffer', `rename-buffer', `kill-buffer',
-`bury-buffer-internal' and `select-window'.  */);
+Functions (implicitly) running this hook are `get-buffer-create',
+`make-indirect-buffer', `rename-buffer', `kill-buffer', `bury-buffer'
+and `select-window'.  Functions run by this hook should avoid calling
+`select-window' with a nil NORECORD argument or `with-temp-buffer'
+since either may lead to infinite recursion.  */);
   Vbuffer_list_update_hook = Qnil;
   DEFSYM (Qbuffer_list_update_hook, "buffer-list-update-hook");
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]