emacs-diffs
[Top][All Lists]
Advanced

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

master ffb89ed: Merge from origin/emacs-27


From: Glenn Morris
Subject: master ffb89ed: Merge from origin/emacs-27
Date: Fri, 26 Jun 2020 10:55:41 -0400 (EDT)

branch: master
commit ffb89ed5f07491e33fc79d8b4be49d9deba2ad4a
Merge: 89c744c 5280e11
Author: Glenn Morris <rgm@gnu.org>
Commit: Glenn Morris <rgm@gnu.org>

    Merge from origin/emacs-27
    
    5280e118c0 (origin/emacs-27) ; * src/xdisp.c (pos_visible_p): Fix las...
    bb1a9481c9 Fix posn-at-point at beginning of a display string
    0c4b033670 Improve documentation of Info node movement commands
    632b0119e1 Add Jansson dependency to Windows Build
    dbfcdab837 Unbreak 'reverse-region'
    c37de84845 Fix typos and markup in fill column indicator docs
    f61bff3ee9 ; * CONTRIBUTE: Clarify the preferences for patch formatting.
    368e140660 Avoid crashes in 'defconst'
    11e3413cff Fix text about Lisp archives in the Emacs FQ
    4c81724675 Don't use 'cl' functions in ELisp manual's examples
---
 CONTRIBUTE                            | 15 ++++++++++++---
 admin/nt/dist-build/build-dep-zips.py |  1 +
 doc/emacs/display.texi                | 33 +++++++++++++++++----------------
 doc/lispref/control.texi              |  6 ++++--
 doc/misc/efaq.texi                    | 21 ++++++++++++---------
 lisp/info.el                          | 18 ++++++++++++++----
 lisp/sort.el                          |  5 ++---
 src/eval.c                            |  1 +
 src/xdisp.c                           |  7 ++++---
 9 files changed, 67 insertions(+), 40 deletions(-)

diff --git a/CONTRIBUTE b/CONTRIBUTE
index d9502dc..26efbd7 100644
--- a/CONTRIBUTE
+++ b/CONTRIBUTE
@@ -53,9 +53,18 @@ archives.
 
 To email a patch you can use a shell command like 'git format-patch -1'
 to create a file, and then attach the file to your email.  This nicely
-packages the patch's commit message and changes.  To send just one
-such patch without additional remarks, you can use a command like
-'git send-email --to=bug-gnu-emacs@gnu.org 0001-DESCRIPTION.patch'.
+packages the patch's commit message and changes, and makes sure the
+format and whitespace are not munged in transit by the various mail
+agents.  To send just one such patch without additional remarks, it is
+also possible to use a command like
+
+  git send-email --to=bug-gnu-emacs@gnu.org 0001-DESCRIPTION.patch'.
+
+However, we prefer the 'git format-patch' method with attachment, as
+doing so delivers patches in the correct and easily-recognizable format
+more reliably, and makes the job of applying the patches easier and less
+error-prone.  It also allows to send patches whose author is someone
+other than the email sender.
 
 Once the cumulative amount of your submissions exceeds about 15 lines
 of non-trivial changes, we will need you to assign to the FSF the
diff --git a/admin/nt/dist-build/build-dep-zips.py 
b/admin/nt/dist-build/build-dep-zips.py
index b0345a4..7047d28 100755
--- a/admin/nt/dist-build/build-dep-zips.py
+++ b/admin/nt/dist-build/build-dep-zips.py
@@ -32,6 +32,7 @@ EMACS_MAJOR_VERSION="28"
 PKG_REQ='''mingw-w64-x86_64-giflib
 mingw-w64-x86_64-gnutls
 mingw-w64-x86_64-harfbuzz
+mingw-w64-x86_64-jansson
 mingw-w64-x86_64-lcms2
 mingw-w64-x86_64-libjpeg-turbo
 mingw-w64-x86_64-libpng
diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi
index 536f4cb..a2ace00 100644
--- a/doc/emacs/display.texi
+++ b/doc/emacs/display.texi
@@ -1174,19 +1174,20 @@ right-to-left paragraphs.
 @findex display-fill-column-indicator-mode
 @findex global-display-fill-column-indicator-mode
   Emacs can add an indicator to display a fill column position.  The
-fill column indicator is a useful functionality specially in
-prog-mode to indicate the position of an specific column.
+fill column indicator is a useful functionality especially in
+@code{prog-mode} to indicate the position of a specific column.
 
-  You can set the buffer-local variables @code{display-fill-column-indicator}
-and @code{display-fill-column-indicator-character} to activate the
-indicator and controls how the indicator looks.
+  You can set the buffer-local variables
+@code{display-fill-column-indicator} and
+@code{display-fill-column-indicator-character} to activate the
+indicator and control how it looks, respectively.
 
 Alternatively you can type @w{@kbd{M-x display-fill-column-indicator-mode}}
-or @w{@kbd{M-x global-display-fill-column-indicator-mode}} which enables the
-indicator locally and globally respectively and also chooses the
-character to use if none is set already.  It is possible to use the
-first one to activate the indicator in a hook or the second one to
-enable it globally.
+or @w{@kbd{M-x global-display-fill-column-indicator-mode}} which
+enables the indicator locally or globally, respectively, and also
+chooses the character to use if none is already set.  It is possible
+to use the first one to activate the indicator in a hook and the
+second one to enable it globally.
 
 There are 2 buffer local variables and 1 face to customize this mode:
 
@@ -1203,20 +1204,20 @@ Any other value disables the indicator.  The default 
value is @code{t}.
 @item display-fill-column-indicator-character
 @vindex display-fill-column-indicator-character
 Specifies the character used for the indicator.  This character can be
-any valid char including unicode ones if the actual font supports
-them.
+any valid character including Unicode ones if the font supports them.
 
 When the mode is enabled through the functions
 @code{display-fill-column-indicator-mode} or
 @code{global-display-fill-column-indicator-mode}, the initialization
-functions check if this variable is @code{non-nil}, otherwise the
-initialization tries to set it to U+2502 or @samp{|}.
+functions check if this variable is non-@code{nil}, otherwise the
+initialization tries to set it to @code{U+2502} or @samp{|}.
 
 @item fill-column-indicator
 @vindex fill-column-indicator
 Specifies the face used to display the indicator.  It inherits its
-default values from shadow but without background color.  To change
-the indicator color you need to set only the foreground color of this face.
+default values from the face @code{shadow} but without background
+color.  To change the indicator color you need only set the foreground
+color of this face.
 @end table
 
 @vindex indicate-buffer-boundaries
diff --git a/doc/lispref/control.texi b/doc/lispref/control.texi
index 01ae94e..d2419f4 100644
--- a/doc/lispref/control.texi
+++ b/doc/lispref/control.texi
@@ -959,8 +959,9 @@ For example, the following is invalid:
 
 @example
 @group
+(require 'cl-lib)
 (pcase (read-number "Enter an integer: ")
-  ((or (and (pred evenp)
+  ((or (and (pred cl-evenp)
             e-num)      ; @r{bind @code{e-num} to @var{expval}}
        o-num)           ; @r{bind @code{o-num} to @var{expval}}
    (list e-num o-num)))
@@ -984,9 +985,10 @@ Reworking the above example:
 
 @example
 @group
+(require 'cl-lib)
 (pcase (read-number "Enter an integer: ")
   ((and num                                ; @r{line 1}
-        (or (and (pred evenp)              ; @r{line 2}
+        (or (and (pred cl-evenp)           ; @r{line 2}
                  (let spin 'even))         ; @r{line 3}
             (let spin 'odd)))              ; @r{line 4}
    (list spin num)))                       ; @r{line 5}
diff --git a/doc/misc/efaq.texi b/doc/misc/efaq.texi
index 8f7ed71..8246704 100644
--- a/doc/misc/efaq.texi
+++ b/doc/misc/efaq.texi
@@ -3477,15 +3477,18 @@ You can browse the resulting @file{*Packages*} buffer 
to see what is
 available, and then Emacs can automatically download and install the
 packages that you select.  @xref{Packages,,, emacs, The GNU Emacs Manual}.
 
-There are other, non-GNU, Emacs Lisp package servers, including:
-@uref{https://melpa.org, MELPA}; and
-@uref{https://marmalade-repo.org, Marmalade}.  To use additional
-package servers, customize the @code{package-archives} variable.  Be
-aware that installing a package can run arbitrary code, so only add
-sources that you trust.  Also, packages hosted on non-GNU package
-servers may encourage or require you to install and use non-free
-software; for example, MELPA is known to host some packages that do
-this.
+There are other Emacs Lisp package archives.  To use additional
+archives, you can customize the @code{package-archives} variable.
+Those archives have no affiliation with GNU Emacs, and we do not
+monitor how they are maintained.  They may pay close attention to
+correctness and safety of the code, or they may give only cursory
+attention.
+
+Also, packages hosted on these other archives may encourage or require
+you to install and use other nonfree programs.  Unless you can verify
+that a package is free software, and that it functions without
+installing any nonfree software, we recommend for your freedom's sake
+that you stay away from it.
 
 The @uref{https://lists.gnu.org/mailman/listinfo/gnu-emacs-sources,
 GNU Emacs sources mailing list}, which is gatewayed to the
diff --git a/lisp/info.el b/lisp/info.el
index d579ecc..78f8894 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -2265,7 +2265,8 @@ End of submatch 0, 1, and 3 are the same, so you can 
safely concat."
        (match-string-no-properties 1)))
 
 (defun Info-next ()
-  "Go to the next node of this node."
+  "Go to the \"next\" node, staying on the same hierarchical level.
+This command doesn't descend into sub-nodes, like 
\\<Info-mode-map>\\[Info-forward-node] does."
   (interactive)
   ;; In case another window is currently selected
   (save-window-excursion
@@ -2273,7 +2274,8 @@ End of submatch 0, 1, and 3 are the same, so you can 
safely concat."
     (Info-goto-node (Info-extract-pointer "next"))))
 
 (defun Info-prev ()
-  "Go to the previous node of this node."
+  "Go to the \"previous\" node, staying on the same hierarchical level.
+This command doesn't go up to the parent node, like 
\\<Info-mode-map>\\[Info-backward-node] does."
   (interactive)
   ;; In case another window is currently selected
   (save-window-excursion
@@ -2887,7 +2889,13 @@ N is the digit argument used to invoke this command."
       (Info-goto-node (Info-extract-menu-counting nil)))))
 
 (defun Info-forward-node (&optional not-down not-up no-error)
-  "Go forward one node, considering all nodes as forming one sequence."
+  "Go forward one node, considering all nodes as forming one sequence.
+Interactively, if the current node has sub-nodes, descend into the first
+sub-node; otherwise go to the \"next\" node, if it exists, else go \"up\"
+to the parent node.
+When called from Lisp, NOT-DOWN non-nil means don't descend into sub-nodes,
+NOT-UP non-nil means don't go to parent nodes, and NO-ERROR non-nil means
+don't signal a user-error if there's no node to go to."
   (interactive)
   (goto-char (point-min))
   (forward-line 1)
@@ -2922,7 +2930,9 @@ N is the digit argument used to invoke this command."
          (t (user-error "No pointer forward from this node")))))
 
 (defun Info-backward-node ()
-  "Go backward one node, considering all nodes as forming one sequence."
+  "Go backward one node, considering all nodes as forming one sequence.
+If the current node has a \"previous\" node, go to it, descending into its
+last sub-node, if any; otherwise go \"up\" to the parent node."
   (interactive)
   (let ((prevnode (Info-extract-pointer "prev[ious]*" t))
        (upnode (Info-extract-pointer "up" t))
diff --git a/lisp/sort.el b/lisp/sort.el
index de0e1b9..f878db2 100644
--- a/lisp/sort.el
+++ b/lisp/sort.el
@@ -554,9 +554,6 @@ is the one that ends before END."
   (if (> beg end)
       (let (mid) (setq mid end end beg beg mid)))
   (save-excursion
-    (when (or (< (line-beginning-position) beg)
-              (< end (line-end-position)))
-      (user-error "There are no full lines in the region"))
     ;; Put beg at the start of a line and end and the end of one --
     ;; the largest possible region which fits this criteria.
     (goto-char beg)
@@ -568,6 +565,8 @@ is the one that ends before END."
     ;; reversal; it isn't difficult to add it afterward.
     (or (and (eolp) (not (bolp))) (progn (forward-line -1) (end-of-line)))
     (setq end (point-marker))
+    (when (<= end beg)
+      (user-error "There are no full lines in the region"))
     ;; The real work.  This thing cranks through memory on large regions.
     (let (ll (do t))
       (while do
diff --git a/src/eval.c b/src/eval.c
index 959adea..9daae92 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -831,6 +831,7 @@ usage: (defconst SYMBOL INITVALUE [DOCSTRING])  */)
   Lisp_Object sym, tem;
 
   sym = XCAR (args);
+  CHECK_SYMBOL (sym);
   Lisp_Object docstring = Qnil;
   if (!NILP (XCDR (XCDR (args))))
     {
diff --git a/src/xdisp.c b/src/xdisp.c
index bd07114..e454fd7 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -1871,9 +1871,10 @@ pos_visible_p (struct window *w, ptrdiff_t charpos, int 
*x, int *y,
                  top_x = it3.current_x - it3.pixel_width;
                  /* Account for line-number display, if IT3 still
                     didn't.  This can happen if START - 1 is the
-                    first character on its display line.  */
-                 if (!it3.line_number_produced_p
-                     && it.line_number_produced_p)
+                    first or the last character on its display line.  */
+                 if (it3.lnum_pixel_width > 0)
+                   top_x += it3.lnum_pixel_width;
+                 else if (it.line_number_produced_p)
                    top_x += it.lnum_pixel_width;
                  /* Normally, we would exit the above loop because we
                     found the display element whose character



reply via email to

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