Merge from origin/emacs-28

af01b674ce (origin/emacs-28) ; Fix spacing in previous commit
915e044d60 Use the correct label in the warning
6e83a4100a ; * admin/make-tarball.txt: Should configure --with-native...
525602d682 ; * etc/TODO (display): Add entry about Default_Ignorables.
65de510c16 ; Fix 'restore-buffer-modified-p' doc string typo
9d8202b45e Add Emacs 27 compatibility hack
89d64fca75 Pacify GCC 10.3 -Wmaybe-uninitialized
bb8ef1aa30 * lisp/tab-bar.el (tab-detach, tab-window-detach): New ali...
7ae70054aa ; * src/composite.h (LGSTRING_FONT): Add comment about its...
1af00e67d6 Include the refcards in the release tarball
3c29fb705c ; * src/Makefile.in (../native-lisp): Make the long recipe...
This commit is contained in:
Glenn Morris 2021-10-08 07:50:28 -07:00
commit 2bc37c14db
10 changed files with 73 additions and 28 deletions

View file

@ -42,6 +42,12 @@ General steps (for each step, check for possible errors):
because some of the commands below run Make, so they need
Makefiles to be present.
For Emacs 28, and as long as --with-native-compilation is not the
default, the tree needs to be configured with native-compilation
enabled, to ensure all the pertinent *.elc files will end up in
the tarball. Otherwise, the *.eln files might not build correctly
on the user's system.
2. Regenerate the etc/AUTHORS file:
M-: (require 'authors) RET
M-x authors RET

View file

@ -444,6 +444,25 @@ consistency checks that make sure the new code computes the same results
as the old code. And once that works well, we can remove the old code
and old fields.
** Implement Unicode-compliant display of "default-ignorable" characters
See the "Characters Ignored for Display" section of paragraph 5.21 in
the Unicode Standard for the details.
The implementation would import the data from Unicode UCD file
DerivedCoreProperties.txt, and provide a minor mode that arranges for
the characters with the Default_Ignorable_Code_Point (DI) property to
be hidden on display. One way of implementing that could be via
glyphless-char-display-control; that one is global, but maybe there's
a way of making it buffer-local. Alternatively, this could be
implemented in C in the display engine.
An additional aspect of this is the display of U+00AD SOFT HYPHEN as
invisible except at line boundaries. Note that this would need to
support hard (physical) newlines in the buffer as well as soft
wrapping of long lines under 'visual-line-mode'. The algorithm for
selecting the wrap point may also need be changed to break at the soft
hyphen.
** FFI (foreign function interface)
See eg https://lists.gnu.org/r/emacs-devel/2013-10/msg00246.html

View file

@ -74,6 +74,20 @@
(require 'ring)
(require 'project)
(eval-and-compile
(when (version< emacs-version "28")
;; etags.el in Emacs 26 and 27 uses EIEIO, and its location type
;; inherits from `xref-location'.
(require 'eieio)
;; Suppressing byte-compilation warnings (in Emacs 28+) about
;; `defclass' not being defined, which happens because the
;; `require' statement above is not evaluated either.
;; FIXME: Use `with-suppressed-warnings' when we stop supporting Emacs 26.
(with-no-warnings
(defclass xref-location () ()
:documentation "(Obsolete) location represents a position in a file or buffer."))))
(defgroup xref nil "Cross-referencing commands."
:version "25.1"
:group 'tools)

View file

@ -311,7 +311,7 @@ that closes only when clicked on the close button."
`(menu-item "Duplicate" (lambda () (interactive)
(tab-bar-duplicate-tab
nil ,tab-number))
:help "Duplicate the tab"))
:help "Clone the tab"))
(define-key-after menu [detach-tab]
`(menu-item "Detach" (lambda () (interactive)
(tab-bar-detach-tab
@ -1350,7 +1350,7 @@ If FROM-NUMBER is a tab number, a new tab is created from that tab."
(tab-bar-new-tab-to)))
(defun tab-bar-duplicate-tab (&optional arg from-number)
"Duplicate the current tab to ARG positions to the right.
"Clone the current tab to ARG positions to the right.
ARG and FROM-NUMBER have the same meaning as in `tab-bar-new-tab'."
(interactive "P")
(let ((tab-bar-new-tab-choice nil)
@ -2243,24 +2243,26 @@ When `switch-to-buffer-obey-display-actions' is non-nil,
;;; Short aliases and keybindings
(defalias 'tab-new 'tab-bar-new-tab)
(defalias 'tab-new-to 'tab-bar-new-tab-to)
(defalias 'tab-duplicate 'tab-bar-duplicate-tab)
(defalias 'tab-close 'tab-bar-close-tab)
(defalias 'tab-close-other 'tab-bar-close-other-tabs)
(defalias 'tab-close-group 'tab-bar-close-group-tabs)
(defalias 'tab-undo 'tab-bar-undo-close-tab)
(defalias 'tab-select 'tab-bar-select-tab)
(defalias 'tab-switch 'tab-bar-switch-to-tab)
(defalias 'tab-next 'tab-bar-switch-to-next-tab)
(defalias 'tab-previous 'tab-bar-switch-to-prev-tab)
(defalias 'tab-last 'tab-bar-switch-to-last-tab)
(defalias 'tab-recent 'tab-bar-switch-to-recent-tab)
(defalias 'tab-move 'tab-bar-move-tab)
(defalias 'tab-move-to 'tab-bar-move-tab-to)
(defalias 'tab-rename 'tab-bar-rename-tab)
(defalias 'tab-group 'tab-bar-change-tab-group)
(defalias 'tab-list 'tab-switcher)
(defalias 'tab-new 'tab-bar-new-tab)
(defalias 'tab-new-to 'tab-bar-new-tab-to)
(defalias 'tab-duplicate 'tab-bar-duplicate-tab)
(defalias 'tab-detach 'tab-bar-detach-tab)
(defalias 'tab-window-detach 'tab-bar-move-window-to-tab)
(defalias 'tab-close 'tab-bar-close-tab)
(defalias 'tab-close-other 'tab-bar-close-other-tabs)
(defalias 'tab-close-group 'tab-bar-close-group-tabs)
(defalias 'tab-undo 'tab-bar-undo-close-tab)
(defalias 'tab-select 'tab-bar-select-tab)
(defalias 'tab-switch 'tab-bar-switch-to-tab)
(defalias 'tab-next 'tab-bar-switch-to-next-tab)
(defalias 'tab-previous 'tab-bar-switch-to-prev-tab)
(defalias 'tab-last 'tab-bar-switch-to-last-tab)
(defalias 'tab-recent 'tab-bar-switch-to-recent-tab)
(defalias 'tab-move 'tab-bar-move-tab)
(defalias 'tab-move-to 'tab-bar-move-tab-to)
(defalias 'tab-rename 'tab-bar-rename-tab)
(defalias 'tab-group 'tab-bar-change-tab-group)
(defalias 'tab-list 'tab-switcher)
(define-key tab-prefix-map "n" 'tab-duplicate)
(define-key tab-prefix-map "N" 'tab-new-to)

View file

@ -856,10 +856,10 @@ label prefix determines the wording of a reference."
(label (car toc)) newlabel)
(if (not (stringp label))
(error "This is not a label entry"))
(setq newlabel (read-string (format "Rename label \"%s\" to:" label)))
(setq newlabel (read-string (format "Rename label \"%s\" to: " label)))
(if (assoc newlabel (symbol-value reftex-docstruct-symbol))
(if (not (y-or-n-p
(format-message "Label `%s' exists. Use anyway? " label)))
(format-message "Label `%s' exists. Use anyway? " newlabel)))
(error "Abort")))
(save-excursion
(save-window-excursion

View file

@ -366,9 +366,9 @@ possibly_non_vc_files="
src/config.in
"$(
find admin doc etc lisp \
\( -name '*.el' -o -name '*.elc' -o -name '*.map' -o -name '*.stamp' \
-o -name '*.texi' -o -name '*.tex' -o -name '*.txt' \) \
! -name 'site-init*' ! -name 'site-load*' ! -name 'default*'
\( -name '*.el' -o -name '*.elc' -o -name '*.map' -o -name '*.stamp' \
-o -name '*.texi' -o -name '*.tex' -o -name '*.txt' -o -name '*.pdf' \) \
! -name 'site-init*' ! -name 'site-load*' ! -name 'default*'
) || exit
if [ $with_info = yes ]; then

View file

@ -804,7 +804,7 @@ elnlisp := $(addprefix ${lispsource}/,${elnlisp}) $(lisp:.elc=.eln)
THEFILE=$< $<n
../native-lisp: | $(pdmp)
if test ! -d $@; then \
@if test ! -d $@; then \
mkdir $@ && $(MAKE) $(AM_V_NO_PD) $(elnlisp); \
if test $(SYSTEM_TYPE) = cygwin; then \
find $@ -name '*.eln' | rebase -v -O -T -; \

View file

@ -1434,7 +1434,7 @@ and `buffer-file-truename' are non-nil. */)
DEFUN ("restore-buffer-modified-p", Frestore_buffer_modified_p,
Srestore_buffer_modified_p, 1, 1, 0,
doc: /* Like `set-buffer-modified-p', but doesn't redisplay buffer's mode line.
This function also locks and unlocks the file visited by the buffer,
This function also locks or unlocks the file visited by the buffer,
if both `buffer-file-truename' and `buffer-file-name' are non-nil.
It is not ensured that mode lines will be updated to show the modified

View file

@ -254,6 +254,10 @@ composition_valid_p (ptrdiff_t start, ptrdiff_t end, Lisp_Object prop)
#define LGSTRING_HEADER(lgs) AREF (lgs, 0)
#define LGSTRING_SET_HEADER(lgs, header) ASET (lgs, 0, header)
/* LGSTRING_FONT retrieves the font used for LGSTRING, if we are going
to display it on a GUI frame. On text-mode frames, that slot
stores the coding-system that should be used to write output to the
frame's terminal. */
#define LGSTRING_FONT(lgs) AREF (LGSTRING_HEADER (lgs), 0)
#define LGSTRING_CHAR(lgs, i) AREF (LGSTRING_HEADER (lgs), (i) + 1)
#define LGSTRING_CHAR_LEN(lgs) (ASIZE (LGSTRING_HEADER (lgs)) - 1)

View file

@ -550,7 +550,7 @@ encode_terminal_code (struct glyph *src, int src_len,
if (src->type == COMPOSITE_GLYPH)
{
struct composition *cmp;
Lisp_Object gstring;
Lisp_Object gstring UNINIT;
int i;
nbytes = buf - encode_terminal_src;