mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-30 12:21:25 -08:00
Merge from origin/emacs-27
5280e118c0(origin/emacs-27) ; * src/xdisp.c (pos_visible_p): Fix las...bb1a9481c9Fix posn-at-point at beginning of a display string0c4b033670Improve documentation of Info node movement commands632b0119e1Add Jansson dependency to Windows Builddbfcdab837Unbreak 'reverse-region'c37de84845Fix typos and markup in fill column indicator docsf61bff3ee9; * CONTRIBUTE: Clarify the preferences for patch formatting.368e140660Avoid crashes in 'defconst'11e3413cffFix text about Lisp archives in the Emacs FQ4c81724675Don't use 'cl' functions in ELisp manual's examples
This commit is contained in:
commit
ffb89ed5f0
9 changed files with 67 additions and 40 deletions
15
CONTRIBUTE
15
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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
18
lisp/info.el
18
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))
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue