emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master 08e1438: Merge from origin/emacs-26


From: Glenn Morris
Subject: [Emacs-diffs] master 08e1438: Merge from origin/emacs-26
Date: Wed, 27 Dec 2017 13:00:35 -0500 (EST)

branch: master
commit 08e1438a3bf781ce85c7af75f1fa73cb826ba3dd
Merge: da94ea9 fd35804
Author: Glenn Morris <address@hidden>
Commit: Glenn Morris <address@hidden>

    Merge from origin/emacs-26
    
    fd35804971 (origin/emacs-26) * doc/lispref/strings.texi (Case Convers...
    89e257d71b * doc/misc/speedbar.texi (Top): Fix grammar.
    a31ab5ffb5 * lisp/subr.el (with-silent-modifications): Doc fixes.
    2ebc8dc3b6 Fix curved quotes in printed manual
    e4a881b5cf Say that "gnus-cloud" is a parody name
    13c59d0a83 More improvements for text.texi
    7850b7620e Adjudicate review comments for the "Text" chapter of user ...
    d7d3b14a99 * lisp/url/url-http.el (url-http-wait-for-headers-change-f...
    f3819ad13e In C-h k <mouse-n>, alert user to existence of any matchin...
    99054fbef9 * net/eww.el (eww): Handle URLs without host part.
    de89c0b641 Make C-h c/k S-mouse-1 display message for mouse-appearanc...
    720ed0b533 Avoid crashes when ':eval' deletes our frame
    9105c9aa34 Fix scrolling up in pixel-scroll.el
    b882d4ef11 Fix problems with ligatures in PDF version of ELisp manual
    289dd53bb3 (elisp-flymake-byte-compile): Handle killed buffer in sent...
    cf36c82127 Avoid some overfull lines in PDF lispref
    b07b56a351 Avoid some overfull lines in PDF manual
    6b3118f025 * doc/emacs/arevert-xtra.texi (Auto Reverting the Buffer M...
    7ffb7b1e01 ; lispref nil/t markup fixes
    
    # Conflicts:
    #   doc/emacs/text.texi
---
 doc/emacs/arevert-xtra.texi  |   8 +++-
 doc/emacs/cal-xtra.texi      |   1 +
 doc/emacs/display.texi       |   4 +-
 doc/emacs/search.texi        |   3 +-
 doc/emacs/text.texi          | 102 ++++++++++++++++++++++++-------------------
 doc/lispref/commands.texi    |   6 +--
 doc/lispref/display.texi     |   9 ++--
 doc/lispref/frames.texi      |   9 ++--
 doc/lispref/sequences.texi   |   2 +-
 doc/lispref/strings.texi     |  14 ++++++
 doc/lispref/syntax.texi      |   9 ++--
 doc/lispref/variables.texi   |   6 +--
 doc/lispref/windows.texi     |  12 +++--
 doc/misc/gnus.texi           |   5 ++-
 doc/misc/speedbar.texi       |   2 +-
 lisp/gnus/gnus-cloud.el      |   4 ++
 lisp/help.el                 |  70 +++++++++++++++++++++++++++--
 lisp/net/eww.el              |   7 +--
 lisp/pixel-scroll.el         |  10 ++---
 lisp/progmodes/elisp-mode.el |   8 ++--
 lisp/subr.el                 |   4 +-
 lisp/url/url-http.el         |   2 +-
 src/xdisp.c                  |   8 ++++
 23 files changed, 214 insertions(+), 91 deletions(-)

diff --git a/doc/emacs/arevert-xtra.texi b/doc/emacs/arevert-xtra.texi
index 936930e..3adc87b 100644
--- a/doc/emacs/arevert-xtra.texi
+++ b/doc/emacs/arevert-xtra.texi
@@ -47,7 +47,13 @@ explained in the corresponding sections.
 @subsection Auto Reverting the Buffer Menu
 
 If auto-reverting of non-file buffers is enabled, the Buffer Menu
-(@pxref{Several Buffers}) automatically reverts every
address@hidden
+(@pxref{Several Buffers,,, emacs, the Emacs Manual})
address@hidden iftex
address@hidden
+(@pxref{Several Buffers})
address@hidden ifnottex
+automatically reverts every
 @code{auto-revert-interval} seconds, whether there is a need for it or
 not.  (It would probably take longer to check whether there is a need
 than to actually revert.)
diff --git a/doc/emacs/cal-xtra.texi b/doc/emacs/cal-xtra.texi
index da4e9a0..6b8be48 100644
--- a/doc/emacs/cal-xtra.texi
+++ b/doc/emacs/cal-xtra.texi
@@ -495,6 +495,7 @@ must absolutely not match more than a portion of the first 
word of the
 diary entry.  For example, the default value of
 @code{diary-european-date-forms} is:
 
address@hidden backup line is a fraction too wide in PDF, but it looks ok.
 @example
 ((day "/" month "[^/0-9]")
  (day "/" month "/" year "[^0-9]")
diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi
index 5860bac..28f6dae 100644
--- a/doc/emacs/display.texi
+++ b/doc/emacs/display.texi
@@ -1763,8 +1763,8 @@ Any other address@hidden value is treated as @code{t}.
 @findex display-line-numbers-mode
 @findex global-display-line-numbers-mode
 @vindex display-line-numbers-type
-A convenient way of turning on display of line numbers is @address@hidden
-display-line-numbers-mode @key{RET}}}.  This mode has a globalized
+The command @kbd{M-x display-line-numbers-mode} provides a
+convenient way to turn on display of line numbers.  This mode has a globalized
 variant, @code{global-display-line-numbers-mode}.  The user option
 @code{display-line-numbers-type} controls which sub-mode of
 line-number display, described above, will these modes activate.
diff --git a/doc/emacs/search.texi b/doc/emacs/search.texi
index c485368..d4b2478 100644
--- a/doc/emacs/search.texi
+++ b/doc/emacs/search.texi
@@ -1735,7 +1735,8 @@ a multi-file incremental search is activated 
automatically.
 @cindex match (face name)
 @vindex list-matching-lines-default-context-lines
 @vindex list-matching-lines-jump-to-current-line
address@hidden list-matching-lines-current-line-face (face name)
address@hidden Too long.
address@hidden @cindex list-matching-lines-current-line-face (face name)
 @kindex M-s o
 @findex occur
 @item M-x occur
diff --git a/doc/emacs/text.texi b/doc/emacs/text.texi
index 7aa859d..5891698 100644
--- a/doc/emacs/text.texi
+++ b/doc/emacs/text.texi
@@ -22,13 +22,17 @@ are also often useful for editing programs.
 the file contains ordinary text, use Text mode, which customizes Emacs
 in small ways for the syntactic conventions of text.  Outline mode
 provides special commands for operating on text with an outline
-structure.  Org mode extends Outline mode and turn Emacs into a
-full-fledged organizer: you can manage TODO lists, store notes and
-publish them in many formats.
+structure.  @xref{Outline Mode}.
 
address@hidden
address@hidden Mode}.
address@hidden iftex
+  Org mode extends Outline mode and turns Emacs into a full-fledged
+organizer: you can manage TODO lists, store notes and publish them in
+many formats.
address@hidden
address@hidden, The Org Manual,,org, The Org Manual}.
address@hidden ifinfo
address@hidden
+See the Org Info manual, which is distributed with Emacs.
address@hidden ifnotinfo
 
 @cindex nXML mode
 @cindex mode, XML
@@ -324,6 +328,12 @@ that start a new paragraph and are contained in it must 
match only
 in Fundamental mode, @code{paragraph-start} is @address@hidden"\f\\|[
 \t]*$"}}, and @code{paragraph-separate} is @address@hidden"[ \t\f]*$"}}.
 
+  Note that @code{paragraph-start} and @code{paragraph-separate} are
+matched against the text at the left margin, which is not necessarily
+the beginning of the line, so these regexps should not use @samp{^} as
+an anchor, to ensure that the paragraph functions will work equally
+within a region of text indented by a margin setting.
+
 @node Pages
 @section Pages
 
@@ -414,22 +424,31 @@ beginning of a line.
 @cindex curved quotes
 @cindex guillemets
 @findex electric-quote-mode
address@hidden The funny quoting below is to make the printed version look
address@hidden correct.  FIXME.
   One common way to quote is the typewriter convention, which quotes
 using straight apostrophes @t{'like this'} or double-quotes @t{"like
 this"}.  Another common way is the curved quote convention, which uses
-left and right single or double quotation marks @t{‘like this’} or
address@hidden this”}.  In text files, typewriter quotes are simple and
+left and right single or double quotation marks address@hidden this}' or
address@hidden this}''@footnote{
+The curved single quote characters are U+2018 LEFT SINGLE QUOTATION
+MARK and U+2018 RIGHT SINGLE QUOTATION MARK; the curved double quotes
+are U+201C LEFT DOUBLE QUOTATION MARK and U+201D RIGHT DOUBLE
+QUOTATION MARK.  On text terminals which cannot display these
+characters, the Info reader might show them as the typewriter ASCII
+quote characters.
+}.  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{’},
address@hidden to @t{“}, and @t{''} to @t{”}.  It's possible to change the
+type characters it optionally converts @t{`} to ‘, @t{'} to ',
address@hidden to ``, and @t{''} to ''.  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{'(?‘ ?’ ?“ ?”)}.
+default value is @code{'(address@hidden address@hidden'} address@hidden 
address@hidden''})}.
 
 @vindex electric-quote-paragraph
 @vindex electric-quote-comment
@@ -450,13 +469,14 @@ curved double quote depending on context: @t{“} at the 
beginning of
 the buffer or after a line break, whitespace, opening parenthesis, or
 quote character, and @t{”} otherwise.
 
-  Electric Quote mode is disabled by default.  To toggle it, type
address@hidden electric-quote-mode}.  To toggle it in a single buffer, use
address@hidden electric-quote-local-mode}.  To suppress it for a single use,
+  Electric Quote mode is disabled by default.  To toggle it in a
+single buffer, use @kbd{M-x electric-quote-local-mode}.
+To toggle it globally, type
address@hidden electric-quote-mode}.  To suppress it for a single use,
 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
address@hidden, @kbd{C-x 8 @{} for @t{“}, and @kbd{C-x 8 @}} for @t{”}.
address@hidden, @kbd{C-x 8 @{} for ``, and @kbd{C-x 8 @}} for ''.
 @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
@@ -485,8 +505,8 @@ text.
 @cindex mode, Auto Fill
 
   @dfn{Auto Fill} mode is a buffer-local minor mode (@pxref{Minor
-Modes}) in which lines are broken automatically when they become too
-wide.  Breaking happens only when you type a @key{SPC} or @key{RET}.
+Modes}) in which lines are broken automatically at spaces when the
+line becomes too wide.
 
 @table @kbd
 @item M-x auto-fill-mode
@@ -498,14 +518,12 @@ In Auto Fill mode, break lines when appropriate.
 
 @findex auto-fill-mode
   The mode command @kbd{M-x auto-fill-mode} toggles Auto Fill mode in
-the current buffer.  With a positive numeric argument, it enables Auto
-Fill mode, and with a negative argument it disables it.  If
address@hidden is called from Lisp with an omitted or
address@hidden argument, it enables Auto Fill mode.  To enable Auto Fill
-mode automatically in certain major modes, add @code{auto-fill-mode}
-to the mode hooks (@pxref{Major Modes}).  When Auto Fill mode is
-enabled, the mode indicator @samp{Fill} appears in the mode line
-(@pxref{Mode Line}).
+the current buffer.  Like any other minor mode, with a positive
+numeric argument, it enables Auto Fill mode, and with a negative
+argument it disables it.  To enable Auto Fill mode automatically in
+certain major modes, add @code{auto-fill-mode} to the mode hooks
+(@pxref{Major Modes}).  When Auto Fill mode is enabled, the mode
+indicator @samp{Fill} appears in the mode line (@pxref{Mode Line}).
 
   Auto Fill mode breaks lines automatically at spaces whenever they
 get longer than the desired width.  This line breaking occurs only
@@ -1043,42 +1061,36 @@ forward to heading lines.
 
 @table @kbd
 @item C-c C-n
address@hidden outline-next-visible-heading
address@hidden C-c C-n @r{(Outline mode)}
 Move point to the next visible heading line
 (@code{outline-next-visible-heading}).
 @item C-c C-p
address@hidden outline-previous-visible-heading
address@hidden C-c C-p @r{(Outline mode)}
 Move point to the previous visible heading line
 (@code{outline-previous-visible-heading}).
 @item C-c C-f
address@hidden outline-forward-same-level
address@hidden C-c C-f @r{(Outline mode)}
 Move point to the next visible heading line at the same level
 as the one point is on (@code{outline-forward-same-level}).
 @item C-c C-b
address@hidden outline-backward-same-level
address@hidden C-c C-b @r{(Outline mode)}
 Move point to the previous visible heading line at the same level
 (@code{outline-backward-same-level}).
 @item C-c C-u
address@hidden outline-up-heading
address@hidden C-c C-u @r{(Outline mode)}
 Move point up to a lower-level (more inclusive) visible heading line
 (@code{outline-up-heading}).
 @end table
 
address@hidden outline-next-visible-heading
address@hidden outline-previous-visible-heading
address@hidden C-c C-n @r{(Outline mode)}
address@hidden C-c C-p @r{(Outline mode)}
-  @kbd{C-c C-n} (@code{outline-next-visible-heading}) moves down to
-the next heading line.  @kbd{C-c C-p}
-(@code{outline-previous-visible-heading}) moves similarly backward.
-Both accept numeric arguments as repeat counts.
-
address@hidden outline-up-heading
address@hidden outline-forward-same-level
address@hidden outline-backward-same-level
address@hidden C-c C-f @r{(Outline mode)}
address@hidden C-c C-b @r{(Outline mode)}
address@hidden C-c C-u @r{(Outline mode)}
-  @kbd{C-c C-f} (@code{outline-forward-same-level}) and @kbd{C-c C-b}
-(@code{outline-backward-same-level}) move from one heading line to
-another visible heading at the same depth in the outline.  @kbd{C-c
-C-u} (@code{outline-up-heading}) moves backward to another heading
-that is less deeply nested.
+  All of the above commands accept numeric arguments as repeat counts.
+For example, @kbd{C-c C-f}, when given an argument, moves forward that
+many visible heading lines on the same level, and @kbd{C-c C-u} with
+an argument moves out of that many nested levels.
 
 @node Outline Visibility
 @subsection Outline Visibility Commands
diff --git a/doc/lispref/commands.texi b/doc/lispref/commands.texi
index 16b58d3..a958cfd 100644
--- a/doc/lispref/commands.texi
+++ b/doc/lispref/commands.texi
@@ -2634,9 +2634,9 @@ The return value is the matching value from @var{choices}.
 @lisp
 (read-multiple-choice
  "Continue connecting?"
- '((?a "always" "Accept this certificate this session and for all future 
sessions.")
-   (?s "session only" "Accept this certificate this session only.")
-   (?n "no" "Refuse to use this certificate, and close the connection.")))
+ '((?a "always" "Accept certificate for this and future sessions.")
+   (?s "session only" "Accept certificate this session only.")
+   (?n "no" "Refuse to use certificate, close connection.")))
 @end lisp
 
 The @code{read-multiple-choice-face} face is used to highlight the
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi
index 50069e3..bf70717 100644
--- a/doc/lispref/display.texi
+++ b/doc/lispref/display.texi
@@ -50,7 +50,7 @@ screen is corrupted.
 
 @defun redraw-frame &optional frame
 This function clears and redisplays frame @var{frame}.  If @var{frame}
-is omitted or nil, it redraws the selected frame.
+is omitted or @code{nil}, it redraws the selected frame.
 @end defun
 
   Even more powerful is @code{redraw-display}:
@@ -1994,7 +1994,7 @@ defaults to the selected one.
 If the optional argument @var{first} is an integer, it denotes the index
 (starting with 0) of the first line of @var{window}'s glyph matrix to be
 returned.  Note that if @var{window} has a header line, the line with
-index 0 is that header line.  If @var{first} is nil, the first line to
+index 0 is that header line.  If @var{first} is @code{nil}, the first line to
 be considered is determined by the value of the optional argument
 @var{body}: If @var{body} is address@hidden, this means to start with
 the first line of @var{window}'s body, skipping any header line, if
@@ -2003,7 +2003,7 @@ present.  Otherwise, this function will start with the 
first line of
 
 If the optional argument @var{last} is an integer, it denotes the index
 of the last line of @var{window}'s glyph matrix that shall be returned.
-If @var{last} is nil, the last line to be considered is determined by
+If @var{last} is @code{nil}, the last line to be considered is determined by
 the value of @var{body}: If @var{body} is address@hidden, this means to
 use the last line of @var{window}'s body, omitting @var{window}'s mode
 line, if present.  Otherwise, this means to use the last line of
@@ -5543,7 +5543,8 @@ inserts an image with a circle:
 @lisp
 (let ((svg (svg-create 400 400 :stroke-width 10)))
   (svg-gradient svg "gradient1" 'linear '((0 . "red") (100 . "blue")))
-  (svg-circle svg 200 200 100 :gradient "gradient1" :stroke-color "green")
+  (svg-circle svg 200 200 100 :gradient "gradient1"
+                  :stroke-color "green")
   (insert-image (svg-image svg)))
 @end lisp
 
diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi
index ec75361..1d4671b 100644
--- a/doc/lispref/frames.texi
+++ b/doc/lispref/frames.texi
@@ -1569,7 +1569,7 @@ window-system window in the stacking (Z-) order of the 
frame's display.
 
 If this is @code{above}, the frame's window-system window is displayed
 above all other window-system windows that do not have the @code{above}
-property set.  If this is nil, the frame's window is displayed below all
+property set.  If this is @code{nil}, the frame's window is displayed below all
 windows that have the @code{above} property set and above all windows
 that have the @code{below} property set.  If this is @code{below}, the
 frame's window is displayed below all windows that do not have the
@@ -1716,7 +1716,8 @@ file as, for example
 
 @example
 (setq default-frame-alist
-    '((fullscreen . fullboth) (fullscreen-restore . fullheight)))
+    '((fullscreen . fullboth)
+      (fullscreen-restore . fullheight)))
 @end example
 
 This will give a new frame full height after typing in it @key{F11} for
@@ -1898,7 +1899,7 @@ These parameters supply forms of interactions between 
different frames.
 @item parent-frame
 If address@hidden, this means that this frame is a child frame
 (@pxref{Child Frames}), and this parameter specifies its parent frame.
-If nil, this means that this frame is a normal, top-level frame.
+If @code{nil}, this means that this frame is a normal, top-level frame.
 
 @vindex delete-before, a frame parameter
 @item delete-before
@@ -2120,7 +2121,7 @@ this parameter.
 If address@hidden, this frame's window-system window is drawn without
 decorations, like the title, minimize/maximize boxes and external
 borders.  This usually means that the window cannot be dragged, resized,
-iconified, maximized or deleted with the mouse.  If nil, the frame's
+iconified, maximized or deleted with the mouse.  If @code{nil}, the frame's
 window is usually drawn with all the elements listed above unless their
 display has been suspended via window manager settings.
 
diff --git a/doc/lispref/sequences.texi b/doc/lispref/sequences.texi
index 8d56e02..b3c90af 100644
--- a/doc/lispref/sequences.texi
+++ b/doc/lispref/sequences.texi
@@ -1634,7 +1634,7 @@ argument @var{b} is given, the result of this operation 
is stored into
 @end defun
 
 @defun bool-vector-subsetp a b
-Return @code{t} if every @code{t} value in @var{a} is also t in
+Return @code{t} if every @code{t} value in @var{a} is also @code{t} in
 @var{b}, @code{nil} otherwise.  All arguments should be bool vectors of the
 same length.
 @end defun
diff --git a/doc/lispref/strings.texi b/doc/lispref/strings.texi
index 31734c5..5755e2f 100644
--- a/doc/lispref/strings.texi
+++ b/doc/lispref/strings.texi
@@ -1204,6 +1204,7 @@ a character, functions are unable to perform proper 
substitution and
 result may differ compared to treating a one-character string.  For
 example:
 
address@hidden
 @example
 @group
 (upcase "fi")  ; note: single character, ligature "fi"
@@ -1214,6 +1215,19 @@ example:
      @result{} 64257  ; i.e. ?fi
 @end group
 @end example
address@hidden ifnottex
address@hidden
address@hidden
address@hidden
+(upcase "@r{fi}")  ; note: single character, ligature "fi"
+     @result{} "FI"
address@hidden group
address@hidden
+(upcase address@hidden)
+     @result{} 64257  ; i.e. address@hidden
address@hidden group
address@hidden example
address@hidden iftex
 
   To avoid this, a character must first be converted into a string,
 using @code{string} function, before being passed to one of the casing
diff --git a/doc/lispref/syntax.texi b/doc/lispref/syntax.texi
index b37f2b2..566270f 100644
--- a/doc/lispref/syntax.texi
+++ b/doc/lispref/syntax.texi
@@ -1099,12 +1099,13 @@ bidi-class}).
   (let ((category-table (make-category-table))
         ;; Create a char-table which gives the 'bidi-class' Unicode
         ;; property for each character.
-        (uniprop-table (unicode-property-table-internal 'bidi-class)))
+        (uniprop-table
+         (unicode-property-table-internal 'bidi-class)))
     (define-category ?R "Characters of bidi-class R, AL, or RLO"
                      category-table)
-    ;; Modify the category entry of each character whose 'bidi-class'
-    ;; Unicode property is R, AL, or RLO -- these have a
-    ;; right-to-left directionality.
+    ;; Modify the category entry of each character whose
+    ;; 'bidi-class' Unicode property is R, AL, or RLO --
+    ;; these have a right-to-left directionality.
     (map-char-table
      #'(lambda (key val)
          (if (memq val '(R AL RLO))
diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi
index 5bee0f9..ad497a8 100644
--- a/doc/lispref/variables.texi
+++ b/doc/lispref/variables.texi
@@ -825,7 +825,7 @@ This function arranges for @var{watch-function} to be 
called whenever
 @var{operation} is a symbol representing the kind of change, one of:
 `set', `let', `unlet', `makunbound', and `defvaralias'.
 @var{where} is a buffer if the buffer-local value of the variable is
-being changed, nil otherwise.
+being changed, @code{nil} otherwise.
 @end defun
 
 @defun remove-variable-watch symbol watch-function
@@ -2061,7 +2061,7 @@ identifying a connection and the application using this 
connection.
 Property names might be @code{:application}, @code{:protocol},
 @code{:user} and @code{:machine}.  The property value of
 @code{:application} is a symbol, all other property values are
-strings.  All properties are optional; if @var{criteria} is nil, it
+strings.  All properties are optional; if @var{criteria} is @code{nil}, it
 always applies.  Example:
 
 @example
@@ -2079,7 +2079,7 @@ always applies.  Example:
 @end group
 @end example
 
-  If @var{criteria} is nil, it applies for all remote connections.
+  If @var{criteria} is @code{nil}, it applies for all remote connections.
 Therefore, the example above would be equivalent to
 
 @example
diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi
index d73b410..30a3c4a 100644
--- a/doc/lispref/windows.texi
+++ b/doc/lispref/windows.texi
@@ -3391,7 +3391,8 @@ producing the frame layout sketched above.
 @example
 @group
 (defvar parameters
-  '(window-parameters . ((no-other-window . t) (no-delete-other-windows . t))))
+  '(window-parameters . ((no-other-window . t)
+                         (no-delete-other-windows . t))))
 
 (setq fit-window-to-buffer-horizontally t)
 (setq window-resize-pixelwise t)
@@ -3404,10 +3405,13 @@ producing the frame layout sketched above.
    ("\\*Tags List\\*" display-buffer-in-side-window
     (side . right) (slot . 0) (window-width . fit-window-to-buffer)
     (preserve-size . (t . nil)) ,parameters)
-   ("\\*\\(?:help\\|grep\\|Completions\\)\\*" display-buffer-in-side-window
-    (side . bottom) (slot . -1) (preserve-size . (nil . t)) ,parameters)
+   ("\\*\\(?:help\\|grep\\|Completions\\)\\*"
+    display-buffer-in-side-window
+    (side . bottom) (slot . -1) (preserve-size . (nil . t))
+    ,parameters)
    ("\\*\\(?:shell\\|compilation\\)\\*" display-buffer-in-side-window
-    (side . bottom) (slot . 1) (preserve-size . (nil . t)) ,parameters)))
+    (side . bottom) (slot . 1) (preserve-size . (nil . t))
+    ,parameters)))
 @end group
 @end example
 
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index a2a879d..ea54d2b 100644
--- a/doc/misc/gnus.texi
+++ b/doc/misc/gnus.texi
@@ -26202,7 +26202,10 @@ marks, so you have to do it locally.
 
 The Gnus Cloud package stores the marks, plus any files you choose, on
 an IMAP server in a special folder. It's like a
-DropTorrentSyncBoxOakTree(TM).
+DropTorrentSyncBoxOakTree(TM)address@hidden name ``Gnus Cloud''
+parodizes but otherwise has little to do with ``cloud computing'', a
address@hidden://www.gnu.org/philosophy/words-to-avoid.html#CloudComputing,
+misleading term normally best avoided}.}
 
 @menu
 * Gnus Cloud Setup::
diff --git a/doc/misc/speedbar.texi b/doc/misc/speedbar.texi
index ca0bc1f..ba46f43 100644
--- a/doc/misc/speedbar.texi
+++ b/doc/misc/speedbar.texi
@@ -49,7 +49,7 @@ packages, and web browsers.
 Speedbar displays a narrow frame in which a tree view is shown.  This
 tree view defaults to containing a list of files and directories.  Files
 can be ``expanded'' to list tags inside. Directories can be expanded to
-list the files within itself.  Each file or tag can be jumped to
+list the files within them.  Each file or tag can be jumped to
 immediately.
 
 Speedbar expands upon ``explorer'' windows by maintaining context with the
diff --git a/lisp/gnus/gnus-cloud.el b/lisp/gnus/gnus-cloud.el
index 409fc53..7e8d5e3 100644
--- a/lisp/gnus/gnus-cloud.el
+++ b/lisp/gnus/gnus-cloud.el
@@ -22,6 +22,10 @@
 
 ;;; Commentary:
 
+;; The name gnus-cloud parodizes but otherwise has little to do with
+;; "cloud computing", a misleading term normally best avoided.  See:
+;; https://www.gnu.org/philosophy/words-to-avoid.html#CloudComputing
+
 ;;; Code:
 
 (eval-when-compile (require 'cl))
diff --git a/lisp/help.el b/lisp/help.el
index 212e367..fa7f6b0 100644
--- a/lisp/help.el
+++ b/lisp/help.el
@@ -717,7 +717,7 @@ with `mouse-movement' events."
         (cursor-in-echo-area t)
         saved-yank-menu)
     (unwind-protect
-        (let (key down-ev)
+        (let (key keys down-ev discarded-up)
           ;; If yank-menu is empty, populate it temporarily, so that
           ;; "Select and Paste" menu can generate a complete event.
           (when (null (cdr yank-menu))
@@ -731,6 +731,7 @@ Describe the following key, mouse click, or menu item: "))
                  (or
                   (and no-mouse-movement
                        (string-match "mouse-movement" keyname))
+                  (progn (push key keys) nil)
                   (and (string-match "\\(mouse\\|down\\|click\\|drag\\)"
                                      keyname)
                        (progn
@@ -738,14 +739,36 @@ Describe the following key, mouse click, or menu item: "))
                          ;; spuriously trigger the `sit-for'.
                          (sleep-for 0.01)
                          (while (read-event nil nil 0.01))
-                         (not (sit-for (/ double-click-time 1000.0) t))))))))
+                         (not (sit-for
+                               (if (numberp double-click-time)
+                                   (/ double-click-time 1000.0)
+                                 3.0)
+                               t))))))))
+          ;; When we have a sequence of mouse events, discard the most
+          ;; recent ones till we find one with a binding.
+          (let ((keys-1 keys))
+            (while (and keys-1
+                        (not (key-binding (car keys-1))))
+              ;; If we discard the last event, and this was a mouse
+              ;; up, remember this.
+              (if (and (eq keys-1 keys)
+                       (vectorp (car keys-1))
+                       (let* ((last-idx (1- (length (car keys-1))))
+                              (last (aref (car keys-1) last-idx)))
+                         (and (eventp last)
+                              (memq 'click (event-modifiers last)))))
+                  (setq discarded-up t))
+              (setq keys-1 (cdr keys-1)))
+            (if keys-1
+                (setq key (car keys-1))))
           (list
            key
            ;; If KEY is a down-event, read and include the
            ;; corresponding up-event.  Note that there are also
            ;; down-events on scroll bars and mode lines: the actual
            ;; event then is in the second element of the vector.
-           (and (vectorp key)
+           (and (not discarded-up) ; Don't attempt to ignore the up-event 
twice.
+                (vectorp key)
                 (let ((last-idx (1- (length key))))
                   (and (eventp (aref key last-idx))
                        (memq 'down (event-modifiers (aref key last-idx)))))
@@ -769,6 +792,28 @@ Describe the following key, mouse click, or menu item: "))
         (setq yank-menu (copy-sequence saved-yank-menu))
         (fset 'yank-menu (cons 'keymap yank-menu))))))
 
+(defun help-downify-mouse-event-type (base)
+  "Add \"down-\" to BASE if it is not already there.
+BASE is a symbol, a mouse event type.  If the modification is done,
+return the new symbol.  Otherwise return nil."
+  (let ((base-s (symbol-name base)))
+    ;; Note: the order of the components in the following string is
+    ;; determined by `apply_modifiers_uncached' in src/keyboard.c.
+    (string-match "\\(A-\\)?\
+\\(C-\\)?\
+\\(H-\\)?\
+\\(M-\\)?\
+\\(S-\\)?\
+\\(s-\\)?\
+\\(double-\\)?\
+\\(triple-\\)?\
+\\(up-\\)?\
+\\(\\(down-\\)?\\)\
+\\(drag-\\)?" base-s)
+    (when (and (null (match-beginning 11)) ; "down-"
+               (null (match-beginning 12))) ; "drag-"
+      (intern (replace-match "down-" t t base-s 10)) )))
+
 (defun describe-key (&optional key untranslated up-event)
   "Display documentation of the function invoked by KEY.
 KEY can be any kind of a key sequence; it can include keyboard events,
@@ -828,6 +873,25 @@ temporarily enables it to allow getting help on disabled 
items and buttons."
             (princ (format " (found in %s)" key-locus))))
         (princ ", which is ")
        (describe-function-1 defn)
+        (when (vectorp key)
+          (let* ((last (1- (length key)))
+                 (elt (aref key last))
+                 (elt-1 (copy-sequence elt))
+                 key-1 down-event-type)
+            (when (and (listp elt-1)
+                       (symbolp (car elt-1))
+                       (setq down-event-type (help-downify-mouse-event-type
+                                              (car elt-1))))
+              (setcar elt-1 down-event-type)
+              (setq key-1 (vector elt-1))
+              (when (key-binding key-1)
+                (princ (format "
+
+For documentation of the corresponding mouse down event <%s>,
+click and hold the mouse button longer than %s second(s)."
+                               down-event-type (if (numberp double-click-time)
+                                                   (/ double-click-time 1000.0)
+                                                 3)))))))
        (when up-event
          (unless (or (null defn-up)
                      (integerp defn-up)
diff --git a/lisp/net/eww.el b/lisp/net/eww.el
index bff592c..fcd2b98 100644
--- a/lisp/net/eww.el
+++ b/lisp/net/eww.el
@@ -261,9 +261,10 @@ word(s) will be searched for via `eww-search-prefix'."
   ;; IDNA characters.  If not, transform to punycode to indicate that
   ;; there may be funny business going on.
   (let ((parsed (url-generic-parse-url url)))
-    (unless (puny-highly-restrictive-domain-p (url-host parsed))
-      (setf (url-host parsed) (puny-encode-domain (url-host parsed)))
-      (setq url (url-recreate-url parsed))))
+    (when (url-host parsed)
+      (unless (puny-highly-restrictive-domain-p (url-host parsed))
+        (setf (url-host parsed) (puny-encode-domain (url-host parsed)))
+        (setq url (url-recreate-url parsed)))))
   (plist-put eww-data :url url)
   (plist-put eww-data :title "")
   (eww-update-header-line-format)
diff --git a/lisp/pixel-scroll.el b/lisp/pixel-scroll.el
index f64a439..7024487 100644
--- a/lisp/pixel-scroll.el
+++ b/lisp/pixel-scroll.el
@@ -110,11 +110,11 @@ This is an alternative of `scroll-up'.  Scope moves 
downward."
                        pixel-resolution-fine-flag
                      (frame-char-height))
                  (pixel-line-height))))
-      (while (pixel-point-at-top-p amt) ; prevent too late (multi tries)
-        (vertical-motion 1))            ; move point downward
-      (if (pixel-eob-at-top-p)          ; when end-of-the-buffer is close
-          (scroll-up 1)                 ; relay on robust method
-        (pixel-scroll-pixel-up amt))))) ; move scope downward
+      (if (pixel-eob-at-top-p)            ; when end-of-the-buffer is close
+          (scroll-up 1)                   ; relay on robust method
+        (while (pixel-point-at-top-p amt) ; prevent too late (multi tries)
+          (vertical-motion 1))            ; move point downward
+        (pixel-scroll-pixel-up amt)))))   ; move scope downward
 
 (defun pixel-scroll-down (&optional arg)
   "Scroll text of selected window down ARG lines.
diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el
index 5c55331..a8be691 100644
--- a/lisp/progmodes/elisp-mode.el
+++ b/lisp/progmodes/elisp-mode.el
@@ -1700,9 +1700,11 @@ current buffer state and calls REPORT-FN when done."
           (when (eq (process-status proc) 'exit)
             (unwind-protect
                 (cond
-                 ((not (eq proc (with-current-buffer source-buffer
-                                  elisp-flymake--byte-compile-process)))
-                  (flymake-log :warning "byte-compile process %s obsolete" 
proc))
+                 ((not (and (buffer-live-p source-buffer)
+                            (eq proc (with-current-buffer source-buffer
+                                       elisp-flymake--byte-compile-process))))
+                  (flymake-log :warning
+                               "byte-compile process %s obsolete" proc))
                  ((zerop (process-exit-status proc))
                   (elisp-flymake--byte-compile-done report-fn
                                                     source-buffer
diff --git a/lisp/subr.el b/lisp/subr.el
index e97ae54..67209b4 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -3478,8 +3478,8 @@ See also `with-temp-file' and `with-output-to-string'."
 
 (defmacro with-silent-modifications (&rest body)
   "Execute BODY, pretending it does not modify the buffer.
-This macro is Typically used around modifications of
-text-properties which do not really affect the buffer's content.
+This macro is typically used around modifications of
+text properties which do not really affect the buffer's content.
 If BODY performs real modifications to the buffer's text, other
 than cosmetic ones, undo data may become corrupted.
 
diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el
index 51f158e..f9cf32c 100644
--- a/lisp/url/url-http.el
+++ b/lisp/url/url-http.el
@@ -1384,7 +1384,7 @@ The return value of this function is the retrieval 
buffer."
                (error "error: %s" e)))
           (error "error: gnutls support needed!")))
        (t
-        (message "error response: %d" url-http-response-status)
+        (url-http-debug "error response: %d" url-http-response-status)
         (url-http-activate-callback))))))
 
 (defun url-http-async-sentinel (proc why)
diff --git a/src/xdisp.c b/src/xdisp.c
index 7d13338..d723c2a 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -23685,6 +23685,14 @@ display_mode_element (struct it *it, int depth, int 
field_width, int precision,
              {
                Lisp_Object spec;
                spec = safe__eval (true, XCAR (XCDR (elt)));
+               /* The :eval form could delete the frame stored in the
+                  iterator, which will cause a crash if we try to
+                  access faces and other fields (e.g., FRAME_KBOARD)
+                  on that frame.  This is a nonsensical thing to do,
+                  and signaling an error from redisplay might be
+                  dangerous, but we cannot continue with an invalid frame.  */
+               if (!FRAME_LIVE_P (it->f))
+                 signal_error (":eval deleted the frame being displayed", elt);
                n += display_mode_element (it, depth, field_width - n,
                                           precision - n, spec, props,
                                           risky);



reply via email to

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