Commit ffb89ed5 authored by Glenn Morris's avatar Glenn Morris

Merge from origin/emacs-27

5280e118 (origin/emacs-27) ; * src/xdisp.c (pos_visible_p): Fix las...
bb1a9481 Fix posn-at-point at beginning of a display string
0c4b0336 Improve documentation of Info node movement commands
632b0119 Add Jansson dependency to Windows Build
dbfcdab8 Unbreak 'reverse-region'
c37de848 Fix typos and markup in fill column indicator docs
f61bff3e ; * CONTRIBUTE: Clarify the preferences for patch formatting.
368e1406 Avoid crashes in 'defconst'
11e3413c Fix text about Lisp archives in the Emacs FQ
4c817246 Don't use 'cl' functions in ELisp manual's examples
parents 89c744c3 5280e118
Pipeline #5942 passed with stage
in 64 minutes and 5 seconds
......@@ -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
......
......@@ -32,6 +32,7 @@
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
......
......@@ -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
......
......@@ -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}
......
......@@ -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
......
......@@ -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))
......
......@@ -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
......
......@@ -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))))
{
......
......@@ -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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment