diff options
| author | Glenn Morris | 2020-06-26 07:50:38 -0700 |
|---|---|---|
| committer | Glenn Morris | 2020-06-26 07:50:38 -0700 |
| commit | ffb89ed5f07491e33fc79d8b4be49d9deba2ad4a (patch) | |
| tree | c2305304aca119da0e4d692aad5b964ef0ba2cf6 | |
| parent | 89c744c380b2aed28ebf2bd8f991461d60cff934 (diff) | |
| parent | 5280e118c07d738321f61b3f2bc3cd27a5ac8dbc (diff) | |
| download | emacs-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-- | CONTRIBUTE | 15 | ||||
| -rwxr-xr-x | admin/nt/dist-build/build-dep-zips.py | 1 | ||||
| -rw-r--r-- | doc/emacs/display.texi | 33 | ||||
| -rw-r--r-- | doc/lispref/control.texi | 6 | ||||
| -rw-r--r-- | doc/misc/efaq.texi | 21 | ||||
| -rw-r--r-- | lisp/info.el | 18 | ||||
| -rw-r--r-- | lisp/sort.el | 5 | ||||
| -rw-r--r-- | src/eval.c | 1 | ||||
| -rw-r--r-- | src/xdisp.c | 7 |
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 | ||
| 54 | To email a patch you can use a shell command like 'git format-patch -1' | 54 | To email a patch you can use a shell command like 'git format-patch -1' |
| 55 | to create a file, and then attach the file to your email. This nicely | 55 | to create a file, and then attach the file to your email. This nicely |
| 56 | packages the patch's commit message and changes. To send just one | 56 | packages the patch's commit message and changes, and makes sure the |
| 57 | such patch without additional remarks, you can use a command like | 57 | format and whitespace are not munged in transit by the various mail |
| 58 | 'git send-email --to=bug-gnu-emacs@gnu.org 0001-DESCRIPTION.patch'. | 58 | agents. To send just one such patch without additional remarks, it is |
| 59 | also possible to use a command like | ||
| 60 | |||
| 61 | git send-email --to=bug-gnu-emacs@gnu.org 0001-DESCRIPTION.patch'. | ||
| 62 | |||
| 63 | However, we prefer the 'git format-patch' method with attachment, as | ||
| 64 | doing so delivers patches in the correct and easily-recognizable format | ||
| 65 | more reliably, and makes the job of applying the patches easier and less | ||
| 66 | error-prone. It also allows to send patches whose author is someone | ||
| 67 | other than the email sender. | ||
| 59 | 68 | ||
| 60 | Once the cumulative amount of your submissions exceeds about 15 lines | 69 | Once the cumulative amount of your submissions exceeds about 15 lines |
| 61 | of non-trivial changes, we will need you to assign to the FSF the | 70 | 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 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" | |||
| 32 | PKG_REQ='''mingw-w64-x86_64-giflib | 32 | PKG_REQ='''mingw-w64-x86_64-giflib |
| 33 | mingw-w64-x86_64-gnutls | 33 | mingw-w64-x86_64-gnutls |
| 34 | mingw-w64-x86_64-harfbuzz | 34 | mingw-w64-x86_64-harfbuzz |
| 35 | mingw-w64-x86_64-jansson | ||
| 35 | mingw-w64-x86_64-lcms2 | 36 | mingw-w64-x86_64-lcms2 |
| 36 | mingw-w64-x86_64-libjpeg-turbo | 37 | mingw-w64-x86_64-libjpeg-turbo |
| 37 | mingw-w64-x86_64-libpng | 38 | mingw-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 |
| 1177 | fill column indicator is a useful functionality specially in | 1177 | fill column indicator is a useful functionality especially in |
| 1178 | prog-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 |
| 1181 | and @code{display-fill-column-indicator-character} to activate the | 1181 | @code{display-fill-column-indicator} and |
| 1182 | indicator and controls how the indicator looks. | 1182 | @code{display-fill-column-indicator-character} to activate the |
| 1183 | indicator and control how it looks, respectively. | ||
| 1183 | 1184 | ||
| 1184 | Alternatively you can type @w{@kbd{M-x display-fill-column-indicator-mode}} | 1185 | Alternatively you can type @w{@kbd{M-x display-fill-column-indicator-mode}} |
| 1185 | or @w{@kbd{M-x global-display-fill-column-indicator-mode}} which enables the | 1186 | or @w{@kbd{M-x global-display-fill-column-indicator-mode}} which |
| 1186 | indicator locally and globally respectively and also chooses the | 1187 | enables the indicator locally or globally, respectively, and also |
| 1187 | character to use if none is set already. It is possible to use the | 1188 | chooses the character to use if none is already set. It is possible |
| 1188 | first one to activate the indicator in a hook or the second one to | 1189 | to use the first one to activate the indicator in a hook and the |
| 1189 | enable it globally. | 1190 | second one to enable it globally. |
| 1190 | 1191 | ||
| 1191 | There are 2 buffer local variables and 1 face to customize this mode: | 1192 | There 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 |
| 1205 | Specifies the character used for the indicator. This character can be | 1206 | Specifies the character used for the indicator. This character can be |
| 1206 | any valid char including unicode ones if the actual font supports | 1207 | any valid character including Unicode ones if the font supports them. |
| 1207 | them. | ||
| 1208 | 1208 | ||
| 1209 | When the mode is enabled through the functions | 1209 | When 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 |
| 1212 | functions check if this variable is @code{non-nil}, otherwise the | 1212 | functions check if this variable is non-@code{nil}, otherwise the |
| 1213 | initialization tries to set it to U+2502 or @samp{|}. | 1213 | initialization 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 |
| 1217 | Specifies the face used to display the indicator. It inherits its | 1217 | Specifies the face used to display the indicator. It inherits its |
| 1218 | default values from shadow but without background color. To change | 1218 | default values from the face @code{shadow} but without background |
| 1219 | the indicator color you need to set only the foreground color of this face. | 1219 | color. To change the indicator color you need only set the foreground |
| 1220 | color 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 | |||
| 3477 | available, and then Emacs can automatically download and install the | 3477 | available, and then Emacs can automatically download and install the |
| 3478 | packages that you select. @xref{Packages,,, emacs, The GNU Emacs Manual}. | 3478 | packages that you select. @xref{Packages,,, emacs, The GNU Emacs Manual}. |
| 3479 | 3479 | ||
| 3480 | There are other, non-GNU, Emacs Lisp package servers, including: | 3480 | There are other Emacs Lisp package archives. To use additional |
| 3481 | @uref{https://melpa.org, MELPA}; and | 3481 | archives, you can customize the @code{package-archives} variable. |
| 3482 | @uref{https://marmalade-repo.org, Marmalade}. To use additional | 3482 | Those archives have no affiliation with GNU Emacs, and we do not |
| 3483 | package servers, customize the @code{package-archives} variable. Be | 3483 | monitor how they are maintained. They may pay close attention to |
| 3484 | aware that installing a package can run arbitrary code, so only add | 3484 | correctness and safety of the code, or they may give only cursory |
| 3485 | sources that you trust. Also, packages hosted on non-GNU package | 3485 | attention. |
| 3486 | servers may encourage or require you to install and use non-free | 3486 | |
| 3487 | software; for example, MELPA is known to host some packages that do | 3487 | Also, packages hosted on these other archives may encourage or require |
| 3488 | this. | 3488 | you to install and use other nonfree programs. Unless you can verify |
| 3489 | that a package is free software, and that it functions without | ||
| 3490 | installing any nonfree software, we recommend for your freedom's sake | ||
| 3491 | that you stay away from it. | ||
| 3489 | 3492 | ||
| 3490 | The @uref{https://lists.gnu.org/mailman/listinfo/gnu-emacs-sources, | 3493 | The @uref{https://lists.gnu.org/mailman/listinfo/gnu-emacs-sources, |
| 3491 | GNU Emacs sources mailing list}, which is gatewayed to the | 3494 | GNU 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. |
| 2269 | This 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. |
| 2278 | This 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. |
| 2893 | Interactively, if the current node has sub-nodes, descend into the first | ||
| 2894 | sub-node; otherwise go to the \"next\" node, if it exists, else go \"up\" | ||
| 2895 | to the parent node. | ||
| 2896 | When called from Lisp, NOT-DOWN non-nil means don't descend into sub-nodes, | ||
| 2897 | NOT-UP non-nil means don't go to parent nodes, and NO-ERROR non-nil means | ||
| 2898 | don'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. |
| 2934 | If the current node has a \"previous\" node, go to it, descending into its | ||
| 2935 | last 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 |