[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