mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-20 18:17:20 +00:00
Merge from origin/emacs-27
0e936f18f8
(origin/emacs-27) Fix build failure with --with-cairo --wi...c34f7e884b
Add new node "Package Statuses" to manualfdee034ac8
* lisp/isearch.el: Fix corner cases of isearch-lazy-count.7b14329d86
; * lisp/simple.el (messages-buffer): Doc fix. (Bug#39124)7ec66a59e3
Document spacing issues with Xft for some fonts08cd247fbd
; * etc/NEWS: Fix typo.d645628e3c
Always use lexical-binding in lisp-interaction-mode (bug#3...c42198f78c
; *etc/NEWS: Fix typo.0ed9cfa7dc
vc-dir: ensure we don't use a pager with git37e0d00c14
Improve ERC's matching of nicks and URLs (bug#38257)d47b157969
Handle tab-bar clicks on a GPM-capable console.e4791f3f8e
;* etc/TODO: Update. # Conflicts: # etc/NEWS
This commit is contained in:
commit
d672ad60e3
@ -1099,6 +1099,7 @@ Hyperlinking and Navigation Features
|
||||
Emacs Lisp Packages
|
||||
|
||||
* Package Menu:: Buffer for viewing and managing packages.
|
||||
* Package Statuses:: Which statuses a package can have.
|
||||
* Package Installation:: Options for package installation.
|
||||
* Package Files:: Where packages are installed.
|
||||
|
||||
|
@ -32,6 +32,7 @@ Manual}.
|
||||
|
||||
@menu
|
||||
* Package Menu:: Buffer for viewing and managing packages.
|
||||
* Package Statuses:: Which statuses a package can have.
|
||||
* Package Installation:: Options for package installation.
|
||||
* Package Files:: Where packages are installed.
|
||||
@end menu
|
||||
@ -57,19 +58,12 @@ The package's version number (e.g., @samp{11.86}).
|
||||
The package's status---normally one of @samp{available} (can be
|
||||
downloaded from the package archive), @samp{installed},
|
||||
@c @samp{unsigned} (installed, but not signed; @pxref{Package Signing}),
|
||||
or @samp{built-in} (included in Emacs by default). The status
|
||||
@samp{external} means the package is not built-in and not from the
|
||||
directory specified by @code{package-user-dir} (@pxref{Package
|
||||
Files}). External packages are treated much like built-in: they
|
||||
cannot be deleted through the package menu, and are not considered for
|
||||
upgrading.
|
||||
or @samp{built-in} (included in Emacs by default).
|
||||
@xref{Package Statuses}.
|
||||
|
||||
The status can also be @samp{new}. This is equivalent to
|
||||
@samp{available}, except that it means the package became newly
|
||||
available on the package archive after your last invocation of
|
||||
@kbd{M-x list-packages}. In other instances, a package may have the
|
||||
status @samp{held}, @samp{disabled}, or @samp{obsolete}.
|
||||
@xref{Package Installation}.
|
||||
@item
|
||||
Which package archive this package is from, if you have more than one
|
||||
package archive enabled.
|
||||
|
||||
@item
|
||||
A short description of the package.
|
||||
@ -139,7 +133,7 @@ current line by an @kbd{i} or @kbd{d} command
|
||||
Mark all package with a newer available version for upgrading
|
||||
(@code{package-menu-mark-upgrades}). This places an installation mark
|
||||
on the new available versions, and a deletion mark on the old
|
||||
installed versions.
|
||||
installed versions (marked with status @samp{obsolete}).
|
||||
|
||||
@item x
|
||||
@kindex x @r{(Package Menu)}
|
||||
@ -195,6 +189,60 @@ from lower-priority archives (@code{package-menu-toggle-hiding}).
|
||||
For example, you can install a package by typing @kbd{i} on the line
|
||||
listing that package, followed by @kbd{x}.
|
||||
|
||||
@node Package Statuses
|
||||
@section Package Statuses
|
||||
@cindex package status
|
||||
|
||||
A package can have one of the following statuses:
|
||||
|
||||
@table @samp
|
||||
@item available
|
||||
The package is not installed, but can be downloaded and installed from
|
||||
the package archive.
|
||||
|
||||
@item avail-obso
|
||||
The package is available for installation, but a newer version is also
|
||||
available. Packages with this status are hidden by default.
|
||||
|
||||
@item built-in
|
||||
The package is included in Emacs by default. It cannot be deleted
|
||||
through the package menu, and is not considered for upgrading.
|
||||
|
||||
@item dependency
|
||||
The package was installed automatically to satisfy a dependency of
|
||||
another package.
|
||||
|
||||
@item disabled
|
||||
The package has been disabled using the @code{package-load-list}
|
||||
variable.
|
||||
|
||||
@item external
|
||||
The package is not built-in and not from the directory specified by
|
||||
@code{package-user-dir} (@pxref{Package Files}). External packages
|
||||
are treated much like @samp{built-in} packages and cannot be deleted.
|
||||
|
||||
@item held
|
||||
The package is held, @xref{Package Installation}.
|
||||
|
||||
@item incompat
|
||||
The package cannot be installed for some reason, for example because
|
||||
it depends on uninstallable packages.
|
||||
|
||||
@item installed
|
||||
The package is installed.
|
||||
|
||||
@item new
|
||||
Equivalent to @samp{available}, except that the package became newly
|
||||
available on the package archive after your last invocation of
|
||||
@kbd{M-x list-packages}.
|
||||
|
||||
@item obsolete
|
||||
The package is an outdated installed version; in addition to this
|
||||
version of the package, a newer version is also installed.
|
||||
|
||||
@c @samp{unsigned} (installed, but not signed; @pxref{Package Signing}),
|
||||
@end table
|
||||
|
||||
@node Package Installation
|
||||
@section Package Installation
|
||||
|
||||
|
@ -1187,6 +1187,9 @@ When evaluating Emacs Lisp code directly using an @code{eval} call,
|
||||
lexical binding is enabled if the @var{lexical} argument to
|
||||
@code{eval} is non-@code{nil}. @xref{Eval}.
|
||||
|
||||
Lexical binding is also enabled in Lisp Interaction and IELM
|
||||
mode, used in the @file{*scratch*} and @file{*ielm*} buffers.
|
||||
|
||||
@cindex special variables
|
||||
Even when lexical binding is enabled, certain variables will
|
||||
continue to be dynamically bound. These are called @dfn{special
|
||||
|
21
etc/NEWS.27
21
etc/NEWS.27
@ -337,8 +337,9 @@ answers, but also function keys like 'F1', character events such as
|
||||
'C-M-h', and control characters like 'C-h'.
|
||||
|
||||
** Lexical binding is now used when evaluating interactive Elisp forms.
|
||||
More specifically, lexical-binding is now used for 'M-:', '--eval', as
|
||||
well as in the "*scratch*" and "*ielm*" buffers.
|
||||
More specifically, 'lexical-binding' is now used for 'M-:', '--eval',
|
||||
as well as in 'lisp-interaction-mode' and 'ielm-mode', used in the
|
||||
"*scratch*" and "*ielm*" buffers.
|
||||
|
||||
---
|
||||
** The new user option 'tooltip-resize-echo-area' avoids truncating
|
||||
@ -781,8 +782,8 @@ cases that have plagued it for years, and on the other experiments indicated
|
||||
that it doesn't bring any measurable benefit.
|
||||
|
||||
---
|
||||
*** The 'g' keystroke in *Compile-Log* buffers has been bound to a new
|
||||
command that will recompile the file previously compiled with 'M-x
|
||||
*** The 'g' keystroke in "*Compile-Log*" buffers has been bound to a
|
||||
new command that will recompile the file previously compiled with 'M-x
|
||||
byte-compile-file' and the like.
|
||||
|
||||
** compile.el
|
||||
@ -1569,6 +1570,18 @@ and its value has been changed to Duck Duck Go.
|
||||
The user option to use instead to alter text to be sent is now
|
||||
'erc-pre-send-functions'.
|
||||
|
||||
---
|
||||
*** Improve matching/highlighting of nicknames.
|
||||
Open and close parenthesis and apostrophe are not considered valid
|
||||
nick characters anymore, matching the given grammar in RFC 2812
|
||||
section 2.3.1. This enables correct matching and highlighting of
|
||||
nicks when they are surrounded by parentheses, like "(nick)", and when
|
||||
adjacent to an apostrophe, like "nick's".
|
||||
|
||||
---
|
||||
*** Set 'erc-button-url-regexp' to 'browse-url-button-regexp'
|
||||
which better handles surrounding pair of parentheses.
|
||||
|
||||
** EUDC
|
||||
|
||||
---
|
||||
|
12
etc/PROBLEMS
12
etc/PROBLEMS
@ -728,6 +728,18 @@ and ps-mule to print Unicode characters.
|
||||
|
||||
You may have bad fonts.
|
||||
|
||||
** Under X, some characters are unexpectedly wide.
|
||||
|
||||
e.g. recent versions of Inconsolata show this issue for almost all of
|
||||
its characters. Due to what is probably an Xft bug, the determination
|
||||
of the width of some characters is incorrect. One workaround is to
|
||||
build emacs with Cairo enabled ("configure --with-cairo" and have the
|
||||
appropriate Cairo development packages installed) as this
|
||||
configuration does not suffer from this problem. See
|
||||
<https://github.com/googlefonts/Inconsolata/issues/42> and
|
||||
<https://lists.gnu.org/archive/html/bug-gnu-emacs/2020-01/msg00456.html>
|
||||
for more discussion.
|
||||
|
||||
** Under X, an unexpected monospace font is used as the default font.
|
||||
|
||||
When compiled with XFT, Emacs tries to use a default font named
|
||||
|
43
etc/TODO
43
etc/TODO
@ -384,6 +384,12 @@ specified filters, specified timers, and specified hooks.
|
||||
|
||||
** Install mmc@maruska.dyndns.org's no-flicker change.
|
||||
|
||||
https://lists.gnu.org/archive/html/emacs-devel/2005-12/msg00699.html
|
||||
|
||||
I don't know if this is still relevant. I can't reach the URLs in
|
||||
the above message thread and double-buffering may have solved some
|
||||
of the problems.
|
||||
|
||||
** Add a "current vertical pixel level" value that goes with point,
|
||||
so that motion commands can also move through tall images.
|
||||
This value would be to point as window-vscroll is to window-start.
|
||||
@ -537,11 +543,6 @@ from the emacsclient process.
|
||||
** Provide an optional feature which computes a scroll bar slider's
|
||||
size and its position from lines instead of characters.
|
||||
|
||||
** Allow unknown image types to be rendered via an external program
|
||||
converting them to, say, PBM (in the same way as PostScript?). [does
|
||||
doc-view.el do this, or could it be extended to do this?
|
||||
Does ImageMagick obsolete this idea?]
|
||||
|
||||
** Allow displaying an X window from an external program in a buffer,
|
||||
e.g. to render graphics from Java applets. [gerd and/or wmperry
|
||||
thought this was feasible.]
|
||||
@ -555,6 +556,8 @@ from the emacsclient process.
|
||||
|
||||
** Use the XIE X extension, if available, for image display.
|
||||
|
||||
(Obsolete as XIE is now considered obsolete itself.)
|
||||
|
||||
** Make monochrome images display using the foreground and background
|
||||
colors of the applicable faces.
|
||||
|
||||
@ -679,6 +682,10 @@ simple buttons to webkit (effectively, a web browser).
|
||||
Currently, xwidgets works only for the gtk+ framework but it is
|
||||
designed to be compatible with multiple Emacs ports.
|
||||
|
||||
(See the scratch/nsxwidget branch, and the discussion around
|
||||
Objective-C code and GCC at
|
||||
https://lists.gnu.org/archive/html/emacs-devel/2019-08/msg00072.html)
|
||||
|
||||
**** Respect 'frame-inhibit-implied-resize'
|
||||
|
||||
When the variable 'frame-inhibit-implied-resize' is non-nil, frames
|
||||
@ -855,32 +862,6 @@ all build versions.
|
||||
|
||||
*** Bugs
|
||||
|
||||
**** Incorrect translation of Super modifier with Ctrl or Meta on macOS
|
||||
|
||||
When pressing 'M-s-a', Emacs replies "M-s-å is undefined". What
|
||||
happened is a mix of Emacs view that Meta and Super has been pressed,
|
||||
and macOS view that ALT-a should yield "å" (U+00E5 LATIN SMALL LETTER
|
||||
A WITH RING ABOVE).
|
||||
|
||||
The bug reports suggest two different patches; unfortunately, neither
|
||||
works properly. For example:
|
||||
|
||||
Use a Swedish keyboard layout
|
||||
|
||||
(setq ns-alternate-modifier nil)
|
||||
|
||||
"CMD-ALT-9"
|
||||
|
||||
Today, this correctly yields that s-] is undefined. With either
|
||||
of the two patches, Emacs responds that s-9 was pressed.
|
||||
|
||||
More investigation is needed to fix this problem.
|
||||
|
||||
Links:
|
||||
- https://debbugs.gnu.org/19977
|
||||
- https://debbugs.gnu.org/21330
|
||||
- https://debbugs.gnu.org/21551
|
||||
|
||||
**** Toggling the toolbar in fullheight or maximized modes
|
||||
|
||||
The toolbar, in the NS interface, is not considered part of the text
|
||||
|
@ -41,6 +41,7 @@
|
||||
(require 'erc)
|
||||
(require 'wid-edit)
|
||||
(require 'erc-fill)
|
||||
(require 'browse-url)
|
||||
|
||||
;;; Minor Mode
|
||||
|
||||
@ -87,12 +88,9 @@ above them."
|
||||
:type 'face
|
||||
:group 'erc-faces)
|
||||
|
||||
(defcustom erc-button-url-regexp
|
||||
(concat "\\(www\\.\\|\\(s?https?\\|"
|
||||
"ftp\\|file\\|gopher\\|news\\|telnet\\|wais\\|mailto\\):\\)"
|
||||
"\\(//[-a-zA-Z0-9_.]+:[0-9]*\\)?"
|
||||
"[-a-zA-Z0-9_=!?#$@~`%&*+\\/:;.,()]+[-a-zA-Z0-9_=#$@~`%&*+\\/()]")
|
||||
(defcustom erc-button-url-regexp browse-url-button-regexp
|
||||
"Regular expression that matches URLs."
|
||||
:version "27.1"
|
||||
:group 'erc-button
|
||||
:type 'regexp)
|
||||
|
||||
@ -223,14 +221,11 @@ PAR is a number of a regexp grouping whose text will be passed to
|
||||
|
||||
(defvar erc-button-syntax-table
|
||||
(let ((table (make-syntax-table)))
|
||||
(modify-syntax-entry ?\( "w" table)
|
||||
(modify-syntax-entry ?\) "w" table)
|
||||
(modify-syntax-entry ?\[ "w" table)
|
||||
(modify-syntax-entry ?\] "w" table)
|
||||
(modify-syntax-entry ?\{ "w" table)
|
||||
(modify-syntax-entry ?\} "w" table)
|
||||
(modify-syntax-entry ?` "w" table)
|
||||
(modify-syntax-entry ?' "w" table)
|
||||
(modify-syntax-entry ?^ "w" table)
|
||||
(modify-syntax-entry ?- "w" table)
|
||||
(modify-syntax-entry ?_ "w" table)
|
||||
|
@ -246,14 +246,11 @@ and other miscellaneous functions."
|
||||
;; just put it in erc.el
|
||||
(defvar erc-match-syntax-table
|
||||
(let ((table (make-syntax-table)))
|
||||
(modify-syntax-entry ?\( "w" table)
|
||||
(modify-syntax-entry ?\) "w" table)
|
||||
(modify-syntax-entry ?\[ "w" table)
|
||||
(modify-syntax-entry ?\] "w" table)
|
||||
(modify-syntax-entry ?\{ "w" table)
|
||||
(modify-syntax-entry ?\} "w" table)
|
||||
(modify-syntax-entry ?` "w" table)
|
||||
(modify-syntax-entry ?' "w" table)
|
||||
(modify-syntax-entry ?^ "w" table)
|
||||
(modify-syntax-entry ?- "w" table)
|
||||
(modify-syntax-entry ?_ "w" table)
|
||||
|
@ -1225,6 +1225,9 @@ used to set the value of `isearch-regexp-function'."
|
||||
isearch-pre-scroll-point nil
|
||||
isearch-pre-move-point nil
|
||||
|
||||
isearch-lazy-count-current nil
|
||||
isearch-lazy-count-total nil
|
||||
|
||||
;; Save the original value of `minibuffer-message-timeout', and
|
||||
;; set it to nil so that isearch's messages don't get timed out.
|
||||
isearch-original-minibuffer-message-timeout minibuffer-message-timeout
|
||||
@ -3776,7 +3779,7 @@ by other Emacs features."
|
||||
isearch-lazy-highlight-window-end))))))
|
||||
;; something important did indeed change
|
||||
(lazy-highlight-cleanup t (not (equal isearch-string ""))) ;stop old timer
|
||||
(when isearch-lazy-count
|
||||
(when (and isearch-lazy-count isearch-mode (null isearch-message-function))
|
||||
(when (or (equal isearch-string "")
|
||||
;; Check if this place was reached by a condition above
|
||||
;; other than changed window boundaries (that shouldn't
|
||||
@ -3794,7 +3797,7 @@ by other Emacs features."
|
||||
(clrhash isearch-lazy-count-hash)
|
||||
(setq isearch-lazy-count-current nil
|
||||
isearch-lazy-count-total nil)
|
||||
(funcall (or isearch-message-function #'isearch-message))))
|
||||
(isearch-message)))
|
||||
(setq isearch-lazy-highlight-window-start-changed nil)
|
||||
(setq isearch-lazy-highlight-window-end-changed nil)
|
||||
(setq isearch-lazy-highlight-error isearch-error)
|
||||
|
@ -933,7 +933,8 @@ Paragraphs are separated only by blank lines.
|
||||
Semicolons start comments.
|
||||
|
||||
\\{lisp-interaction-mode-map}"
|
||||
:abbrev-table nil)
|
||||
:abbrev-table nil
|
||||
(setq-local lexical-binding t))
|
||||
|
||||
;;; Emacs Lisp Byte-Code mode
|
||||
|
||||
|
@ -8953,7 +8953,7 @@ and setting it to nil."
|
||||
|
||||
(defun messages-buffer ()
|
||||
"Return the \"*Messages*\" buffer.
|
||||
If it does not exist, create and it switch it to `messages-buffer-mode'."
|
||||
If it does not exist, create it and switch it to `messages-buffer-mode'."
|
||||
(or (get-buffer "*Messages*")
|
||||
(with-current-buffer (get-buffer-create "*Messages*")
|
||||
(messages-buffer-mode)
|
||||
|
@ -1435,8 +1435,7 @@ please check its value")
|
||||
(if (get-buffer "*scratch*")
|
||||
(with-current-buffer "*scratch*"
|
||||
(if (eq major-mode 'fundamental-mode)
|
||||
(funcall initial-major-mode))
|
||||
(setq-local lexical-binding t)))
|
||||
(funcall initial-major-mode))))
|
||||
|
||||
;; Load library for our terminal type.
|
||||
;; User init file can set term-file-prefix to nil to prevent this.
|
||||
@ -2317,7 +2316,6 @@ A fancy display is used on graphic displays, normal otherwise."
|
||||
(or (get-buffer "*scratch*")
|
||||
(with-current-buffer (get-buffer-create "*scratch*")
|
||||
(set-buffer-major-mode (current-buffer))
|
||||
(setq-local lexical-binding t)
|
||||
(current-buffer))))
|
||||
|
||||
(defun command-line-1 (args-left)
|
||||
|
@ -81,9 +81,7 @@
|
||||
'((default
|
||||
:inherit tab-line-tab)
|
||||
(((class color) (min-colors 88))
|
||||
:background "grey85")
|
||||
(t
|
||||
:inverse-video t))
|
||||
:background "grey85"))
|
||||
"Tab line face for tab with current buffer in selected window."
|
||||
:version "27.1"
|
||||
:group 'tab-line-faces)
|
||||
|
@ -1785,13 +1785,12 @@ The difference to vc-do-command is that this function always invokes
|
||||
(process-environment
|
||||
(append
|
||||
`("GIT_DIR"
|
||||
"PAGER="
|
||||
;; Avoid repository locking during background operations
|
||||
;; (bug#21559).
|
||||
,@(when revert-buffer-in-progress-p
|
||||
'("GIT_OPTIONAL_LOCKS=0")))
|
||||
process-environment)))
|
||||
(apply 'process-file vc-git-program nil buffer nil command args)))
|
||||
(apply 'process-file vc-git-program nil buffer nil "--no-pager" command args)))
|
||||
|
||||
(defun vc-git--out-ok (command &rest args)
|
||||
(zerop (apply 'vc-git--call '(t nil) command args)))
|
||||
|
@ -6235,7 +6235,7 @@ pbm_load (struct frame *f, struct image *img)
|
||||
PNG
|
||||
***********************************************************************/
|
||||
|
||||
#if defined (HAVE_PNG) || defined (HAVE_NS) || defined (USE_CAIRO)
|
||||
#if defined (HAVE_PNG) || defined (HAVE_NS)
|
||||
|
||||
/* Indices of image specification fields in png_format, below. */
|
||||
|
||||
@ -6286,10 +6286,10 @@ png_image_p (Lisp_Object object)
|
||||
return fmt[PNG_FILE].count + fmt[PNG_DATA].count == 1;
|
||||
}
|
||||
|
||||
#endif /* HAVE_PNG || HAVE_NS || USE_CAIRO */
|
||||
#endif /* HAVE_PNG || HAVE_NS */
|
||||
|
||||
|
||||
#if (defined HAVE_PNG && !defined HAVE_NS) || defined USE_CAIRO
|
||||
#if defined HAVE_PNG && !defined HAVE_NS
|
||||
|
||||
# ifdef WINDOWSNT
|
||||
/* PNG library details. */
|
||||
@ -10164,7 +10164,7 @@ static struct image_type const image_types[] =
|
||||
{ SYMBOL_INDEX (Qsvg), svg_image_p, svg_load, image_clear_image,
|
||||
IMAGE_TYPE_INIT (init_svg_functions) },
|
||||
#endif
|
||||
#if defined HAVE_PNG || defined HAVE_NS || defined USE_CAIRO
|
||||
#if defined HAVE_PNG || defined HAVE_NS
|
||||
{ SYMBOL_INDEX (Qpng), png_image_p, png_load, image_clear_image,
|
||||
IMAGE_TYPE_INIT (init_png_functions) },
|
||||
#endif
|
||||
|
@ -2568,6 +2568,14 @@ handle_one_term_event (struct tty_display_info *tty, Gpm_Event *event,
|
||||
else {
|
||||
f->mouse_moved = 0;
|
||||
term_mouse_click (&ie, event, f);
|
||||
if (tty_handle_tab_bar_click (f, event->x, event->y,
|
||||
(ie.modifiers & down_modifier) != 0, &ie))
|
||||
{
|
||||
/* tty_handle_tab_bar_click stores 2 events in the event
|
||||
queue, so we are done here. */
|
||||
count += 2;
|
||||
return count;
|
||||
}
|
||||
}
|
||||
|
||||
done:
|
||||
|
@ -13516,6 +13516,10 @@ tty_handle_tab_bar_click (struct frame *f, int x, int y, bool down_p,
|
||||
f->last_tab_bar_item = prop_idx;
|
||||
else
|
||||
{
|
||||
/* Force reset of up_modifier bit from the event modifiers. */
|
||||
if (event->modifiers & up_modifier)
|
||||
event->modifiers &= ~up_modifier;
|
||||
|
||||
/* Generate a TAB_BAR_EVENT event. */
|
||||
Lisp_Object frame;
|
||||
Lisp_Object key = AREF (f->tab_bar_items,
|
||||
|
Loading…
Reference in New Issue
Block a user