aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlenn Morris2020-06-26 07:50:38 -0700
committerGlenn Morris2020-06-26 07:50:38 -0700
commitffb89ed5f07491e33fc79d8b4be49d9deba2ad4a (patch)
treec2305304aca119da0e4d692aad5b964ef0ba2cf6
parent89c744c380b2aed28ebf2bd8f991461d60cff934 (diff)
parent5280e118c07d738321f61b3f2bc3cd27a5ac8dbc (diff)
downloademacs-ffb89ed5f07491e33fc79d8b4be49d9deba2ad4a.tar.gz
emacs-ffb89ed5f07491e33fc79d8b4be49d9deba2ad4a.zip
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
-rw-r--r--CONTRIBUTE15
-rwxr-xr-xadmin/nt/dist-build/build-dep-zips.py1
-rw-r--r--doc/emacs/display.texi33
-rw-r--r--doc/lispref/control.texi6
-rw-r--r--doc/misc/efaq.texi21
-rw-r--r--lisp/info.el18
-rw-r--r--lisp/sort.el5
-rw-r--r--src/eval.c1
-rw-r--r--src/xdisp.c7
9 files changed, 67 insertions, 40 deletions
diff --git a/CONTRIBUTE b/CONTRIBUTE
index d9502dcac35..26efbd7e5aa 100644
--- a/CONTRIBUTE
+++ b/CONTRIBUTE
@@ -53,9 +53,18 @@ archives.
53 53
54To email a patch you can use a shell command like 'git format-patch -1' 54To email a patch you can use a shell command like 'git format-patch -1'
55to create a file, and then attach the file to your email. This nicely 55to create a file, and then attach the file to your email. This nicely
56packages the patch's commit message and changes. To send just one 56packages the patch's commit message and changes, and makes sure the
57such patch without additional remarks, you can use a command like 57format and whitespace are not munged in transit by the various mail
58'git send-email --to=bug-gnu-emacs@gnu.org 0001-DESCRIPTION.patch'. 58agents. To send just one such patch without additional remarks, it is
59also possible to use a command like
60
61 git send-email --to=bug-gnu-emacs@gnu.org 0001-DESCRIPTION.patch'.
62
63However, we prefer the 'git format-patch' method with attachment, as
64doing so delivers patches in the correct and easily-recognizable format
65more reliably, and makes the job of applying the patches easier and less
66error-prone. It also allows to send patches whose author is someone
67other than the email sender.
59 68
60Once the cumulative amount of your submissions exceeds about 15 lines 69Once the cumulative amount of your submissions exceeds about 15 lines
61of non-trivial changes, we will need you to assign to the FSF the 70of 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 b0345a42cf3..7047d28346d 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"
32PKG_REQ='''mingw-w64-x86_64-giflib 32PKG_REQ='''mingw-w64-x86_64-giflib
33mingw-w64-x86_64-gnutls 33mingw-w64-x86_64-gnutls
34mingw-w64-x86_64-harfbuzz 34mingw-w64-x86_64-harfbuzz
35mingw-w64-x86_64-jansson
35mingw-w64-x86_64-lcms2 36mingw-w64-x86_64-lcms2
36mingw-w64-x86_64-libjpeg-turbo 37mingw-w64-x86_64-libjpeg-turbo
37mingw-w64-x86_64-libpng 38mingw-w64-x86_64-libpng
diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi
index 536f4cb5daa..a2ace00cbbc 100644
--- a/doc/emacs/display.texi
+++ b/doc/emacs/display.texi
@@ -1174,19 +1174,20 @@ right-to-left paragraphs.
1174@findex display-fill-column-indicator-mode 1174@findex display-fill-column-indicator-mode
1175@findex global-display-fill-column-indicator-mode 1175@findex global-display-fill-column-indicator-mode
1176 Emacs can add an indicator to display a fill column position. The 1176 Emacs can add an indicator to display a fill column position. The
1177fill column indicator is a useful functionality specially in 1177fill column indicator is a useful functionality especially in
1178prog-mode to indicate the position of an specific column. 1178@code{prog-mode} to indicate the position of a specific column.
1179 1179
1180 You can set the buffer-local variables @code{display-fill-column-indicator} 1180 You can set the buffer-local variables
1181and @code{display-fill-column-indicator-character} to activate the 1181@code{display-fill-column-indicator} and
1182indicator and controls how the indicator looks. 1182@code{display-fill-column-indicator-character} to activate the
1183indicator and control how it looks, respectively.
1183 1184
1184Alternatively you can type @w{@kbd{M-x display-fill-column-indicator-mode}} 1185Alternatively you can type @w{@kbd{M-x display-fill-column-indicator-mode}}
1185or @w{@kbd{M-x global-display-fill-column-indicator-mode}} which enables the 1186or @w{@kbd{M-x global-display-fill-column-indicator-mode}} which
1186indicator locally and globally respectively and also chooses the 1187enables the indicator locally or globally, respectively, and also
1187character to use if none is set already. It is possible to use the 1188chooses the character to use if none is already set. It is possible
1188first one to activate the indicator in a hook or the second one to 1189to use the first one to activate the indicator in a hook and the
1189enable it globally. 1190second one to enable it globally.
1190 1191
1191There are 2 buffer local variables and 1 face to customize this mode: 1192There are 2 buffer local variables and 1 face to customize this mode:
1192 1193
@@ -1203,20 +1204,20 @@ Any other value disables the indicator. The default value is @code{t}.
1203@item display-fill-column-indicator-character 1204@item display-fill-column-indicator-character
1204@vindex display-fill-column-indicator-character 1205@vindex display-fill-column-indicator-character
1205Specifies the character used for the indicator. This character can be 1206Specifies the character used for the indicator. This character can be
1206any valid char including unicode ones if the actual font supports 1207any valid character including Unicode ones if the font supports them.
1207them.
1208 1208
1209When the mode is enabled through the functions 1209When the mode is enabled through the functions
1210@code{display-fill-column-indicator-mode} or 1210@code{display-fill-column-indicator-mode} or
1211@code{global-display-fill-column-indicator-mode}, the initialization 1211@code{global-display-fill-column-indicator-mode}, the initialization
1212functions check if this variable is @code{non-nil}, otherwise the 1212functions check if this variable is non-@code{nil}, otherwise the
1213initialization tries to set it to U+2502 or @samp{|}. 1213initialization tries to set it to @code{U+2502} or @samp{|}.
1214 1214
1215@item fill-column-indicator 1215@item fill-column-indicator
1216@vindex fill-column-indicator 1216@vindex fill-column-indicator
1217Specifies the face used to display the indicator. It inherits its 1217Specifies the face used to display the indicator. It inherits its
1218default values from shadow but without background color. To change 1218default values from the face @code{shadow} but without background
1219the indicator color you need to set only the foreground color of this face. 1219color. To change the indicator color you need only set the foreground
1220color of this face.
1220@end table 1221@end table
1221 1222
1222@vindex indicate-buffer-boundaries 1223@vindex indicate-buffer-boundaries
diff --git a/doc/lispref/control.texi b/doc/lispref/control.texi
index 01ae94ea7dd..d2419f415bf 100644
--- a/doc/lispref/control.texi
+++ b/doc/lispref/control.texi
@@ -959,8 +959,9 @@ For example, the following is invalid:
959 959
960@example 960@example
961@group 961@group
962(require 'cl-lib)
962(pcase (read-number "Enter an integer: ") 963(pcase (read-number "Enter an integer: ")
963 ((or (and (pred evenp) 964 ((or (and (pred cl-evenp)
964 e-num) ; @r{bind @code{e-num} to @var{expval}} 965 e-num) ; @r{bind @code{e-num} to @var{expval}}
965 o-num) ; @r{bind @code{o-num} to @var{expval}} 966 o-num) ; @r{bind @code{o-num} to @var{expval}}
966 (list e-num o-num))) 967 (list e-num o-num)))
@@ -984,9 +985,10 @@ Reworking the above example:
984 985
985@example 986@example
986@group 987@group
988(require 'cl-lib)
987(pcase (read-number "Enter an integer: ") 989(pcase (read-number "Enter an integer: ")
988 ((and num ; @r{line 1} 990 ((and num ; @r{line 1}
989 (or (and (pred evenp) ; @r{line 2} 991 (or (and (pred cl-evenp) ; @r{line 2}
990 (let spin 'even)) ; @r{line 3} 992 (let spin 'even)) ; @r{line 3}
991 (let spin 'odd))) ; @r{line 4} 993 (let spin 'odd))) ; @r{line 4}
992 (list spin num))) ; @r{line 5} 994 (list spin num))) ; @r{line 5}
diff --git a/doc/misc/efaq.texi b/doc/misc/efaq.texi
index 8f7ed715b52..82467048a08 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
3477available, and then Emacs can automatically download and install the 3477available, and then Emacs can automatically download and install the
3478packages that you select. @xref{Packages,,, emacs, The GNU Emacs Manual}. 3478packages that you select. @xref{Packages,,, emacs, The GNU Emacs Manual}.
3479 3479
3480There are other, non-GNU, Emacs Lisp package servers, including: 3480There are other Emacs Lisp package archives. To use additional
3481@uref{https://melpa.org, MELPA}; and 3481archives, you can customize the @code{package-archives} variable.
3482@uref{https://marmalade-repo.org, Marmalade}. To use additional 3482Those archives have no affiliation with GNU Emacs, and we do not
3483package servers, customize the @code{package-archives} variable. Be 3483monitor how they are maintained. They may pay close attention to
3484aware that installing a package can run arbitrary code, so only add 3484correctness and safety of the code, or they may give only cursory
3485sources that you trust. Also, packages hosted on non-GNU package 3485attention.
3486servers may encourage or require you to install and use non-free 3486
3487software; for example, MELPA is known to host some packages that do 3487Also, packages hosted on these other archives may encourage or require
3488this. 3488you to install and use other nonfree programs. Unless you can verify
3489that a package is free software, and that it functions without
3490installing any nonfree software, we recommend for your freedom's sake
3491that you stay away from it.
3489 3492
3490The @uref{https://lists.gnu.org/mailman/listinfo/gnu-emacs-sources, 3493The @uref{https://lists.gnu.org/mailman/listinfo/gnu-emacs-sources,
3491GNU Emacs sources mailing list}, which is gatewayed to the 3494GNU Emacs sources mailing list}, which is gatewayed to the
diff --git a/lisp/info.el b/lisp/info.el
index d579ecc5a3b..78f88947c79 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."
2265 (match-string-no-properties 1))) 2265 (match-string-no-properties 1)))
2266 2266
2267(defun Info-next () 2267(defun Info-next ()
2268 "Go to the next node of this node." 2268 "Go to the \"next\" node, staying on the same hierarchical level.
2269This command doesn't descend into sub-nodes, like \\<Info-mode-map>\\[Info-forward-node] does."
2269 (interactive) 2270 (interactive)
2270 ;; In case another window is currently selected 2271 ;; In case another window is currently selected
2271 (save-window-excursion 2272 (save-window-excursion
@@ -2273,7 +2274,8 @@ End of submatch 0, 1, and 3 are the same, so you can safely concat."
2273 (Info-goto-node (Info-extract-pointer "next")))) 2274 (Info-goto-node (Info-extract-pointer "next"))))
2274 2275
2275(defun Info-prev () 2276(defun Info-prev ()
2276 "Go to the previous node of this node." 2277 "Go to the \"previous\" node, staying on the same hierarchical level.
2278This command doesn't go up to the parent node, like \\<Info-mode-map>\\[Info-backward-node] does."
2277 (interactive) 2279 (interactive)
2278 ;; In case another window is currently selected 2280 ;; In case another window is currently selected
2279 (save-window-excursion 2281 (save-window-excursion
@@ -2887,7 +2889,13 @@ N is the digit argument used to invoke this command."
2887 (Info-goto-node (Info-extract-menu-counting nil))))) 2889 (Info-goto-node (Info-extract-menu-counting nil)))))
2888 2890
2889(defun Info-forward-node (&optional not-down not-up no-error) 2891(defun Info-forward-node (&optional not-down not-up no-error)
2890 "Go forward one node, considering all nodes as forming one sequence." 2892 "Go forward one node, considering all nodes as forming one sequence.
2893Interactively, if the current node has sub-nodes, descend into the first
2894sub-node; otherwise go to the \"next\" node, if it exists, else go \"up\"
2895to the parent node.
2896When called from Lisp, NOT-DOWN non-nil means don't descend into sub-nodes,
2897NOT-UP non-nil means don't go to parent nodes, and NO-ERROR non-nil means
2898don't signal a user-error if there's no node to go to."
2891 (interactive) 2899 (interactive)
2892 (goto-char (point-min)) 2900 (goto-char (point-min))
2893 (forward-line 1) 2901 (forward-line 1)
@@ -2922,7 +2930,9 @@ N is the digit argument used to invoke this command."
2922 (t (user-error "No pointer forward from this node"))))) 2930 (t (user-error "No pointer forward from this node")))))
2923 2931
2924(defun Info-backward-node () 2932(defun Info-backward-node ()
2925 "Go backward one node, considering all nodes as forming one sequence." 2933 "Go backward one node, considering all nodes as forming one sequence.
2934If the current node has a \"previous\" node, go to it, descending into its
2935last sub-node, if any; otherwise go \"up\" to the parent node."
2926 (interactive) 2936 (interactive)
2927 (let ((prevnode (Info-extract-pointer "prev[ious]*" t)) 2937 (let ((prevnode (Info-extract-pointer "prev[ious]*" t))
2928 (upnode (Info-extract-pointer "up" t)) 2938 (upnode (Info-extract-pointer "up" t))
diff --git a/lisp/sort.el b/lisp/sort.el
index de0e1b9519d..f878db24a3c 100644
--- a/lisp/sort.el
+++ b/lisp/sort.el
@@ -554,9 +554,6 @@ is the one that ends before END."
554 (if (> beg end) 554 (if (> beg end)
555 (let (mid) (setq mid end end beg beg mid))) 555 (let (mid) (setq mid end end beg beg mid)))
556 (save-excursion 556 (save-excursion
557 (when (or (< (line-beginning-position) beg)
558 (< end (line-end-position)))
559 (user-error "There are no full lines in the region"))
560 ;; Put beg at the start of a line and end and the end of one -- 557 ;; Put beg at the start of a line and end and the end of one --
561 ;; the largest possible region which fits this criteria. 558 ;; the largest possible region which fits this criteria.
562 (goto-char beg) 559 (goto-char beg)
@@ -568,6 +565,8 @@ is the one that ends before END."
568 ;; reversal; it isn't difficult to add it afterward. 565 ;; reversal; it isn't difficult to add it afterward.
569 (or (and (eolp) (not (bolp))) (progn (forward-line -1) (end-of-line))) 566 (or (and (eolp) (not (bolp))) (progn (forward-line -1) (end-of-line)))
570 (setq end (point-marker)) 567 (setq end (point-marker))
568 (when (<= end beg)
569 (user-error "There are no full lines in the region"))
571 ;; The real work. This thing cranks through memory on large regions. 570 ;; The real work. This thing cranks through memory on large regions.
572 (let (ll (do t)) 571 (let (ll (do t))
573 (while do 572 (while do
diff --git a/src/eval.c b/src/eval.c
index 959adea6467..9daae92e55a 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -831,6 +831,7 @@ usage: (defconst SYMBOL INITVALUE [DOCSTRING]) */)
831 Lisp_Object sym, tem; 831 Lisp_Object sym, tem;
832 832
833 sym = XCAR (args); 833 sym = XCAR (args);
834 CHECK_SYMBOL (sym);
834 Lisp_Object docstring = Qnil; 835 Lisp_Object docstring = Qnil;
835 if (!NILP (XCDR (XCDR (args)))) 836 if (!NILP (XCDR (XCDR (args))))
836 { 837 {
diff --git a/src/xdisp.c b/src/xdisp.c
index bd0711471a2..e454fd7b83f 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,
1871 top_x = it3.current_x - it3.pixel_width; 1871 top_x = it3.current_x - it3.pixel_width;
1872 /* Account for line-number display, if IT3 still 1872 /* Account for line-number display, if IT3 still
1873 didn't. This can happen if START - 1 is the 1873 didn't. This can happen if START - 1 is the
1874 first character on its display line. */ 1874 first or the last character on its display line. */
1875 if (!it3.line_number_produced_p 1875 if (it3.lnum_pixel_width > 0)
1876 && it.line_number_produced_p) 1876 top_x += it3.lnum_pixel_width;
1877 else if (it.line_number_produced_p)
1877 top_x += it.lnum_pixel_width; 1878 top_x += it.lnum_pixel_width;
1878 /* Normally, we would exit the above loop because we 1879 /* Normally, we would exit the above loop because we
1879 found the display element whose character 1880 found the display element whose character