[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 2bc37c1: Merge from origin/emacs-28
From: |
Glenn Morris |
Subject: |
master 2bc37c1: Merge from origin/emacs-28 |
Date: |
Fri, 8 Oct 2021 10:57:29 -0400 (EDT) |
branch: master
commit 2bc37c14dbdf3fdf337862caa31fabfe69476e70
Merge: b506c5b af01b67
Author: Glenn Morris <rgm@gnu.org>
Commit: Glenn Morris <rgm@gnu.org>
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...
---
admin/make-tarball.txt | 6 ++++++
etc/TODO | 19 +++++++++++++++++++
lisp/progmodes/xref.el | 14 ++++++++++++++
lisp/tab-bar.el | 42 ++++++++++++++++++++++--------------------
lisp/textmodes/reftex-toc.el | 4 ++--
make-dist | 6 +++---
src/Makefile.in | 2 +-
src/buffer.c | 2 +-
src/composite.h | 4 ++++
src/term.c | 2 +-
10 files changed, 73 insertions(+), 28 deletions(-)
diff --git a/admin/make-tarball.txt b/admin/make-tarball.txt
index ae007d76..2227608 100644
--- a/admin/make-tarball.txt
+++ b/admin/make-tarball.txt
@@ -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
diff --git a/etc/TODO b/etc/TODO
index ffc5ef3..cd06b1e 100644
--- a/etc/TODO
+++ b/etc/TODO
@@ -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
diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el
index f4716fe..0d51019 100644
--- a/lisp/progmodes/xref.el
+++ b/lisp/progmodes/xref.el
@@ -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)
diff --git a/lisp/tab-bar.el b/lisp/tab-bar.el
index b08b744..ccecdbc 100644
--- a/lisp/tab-bar.el
+++ b/lisp/tab-bar.el
@@ -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)
diff --git a/lisp/textmodes/reftex-toc.el b/lisp/textmodes/reftex-toc.el
index 7ca2fb8..b5f53ba 100644
--- a/lisp/textmodes/reftex-toc.el
+++ b/lisp/textmodes/reftex-toc.el
@@ -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
diff --git a/make-dist b/make-dist
index 7074bb8..eb04015 100755
--- a/make-dist
+++ b/make-dist
@@ -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
diff --git a/src/Makefile.in b/src/Makefile.in
index b8d0e7b..0326b4a 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -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 -; \
diff --git a/src/buffer.c b/src/buffer.c
index c5b2736..648d722 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -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
diff --git a/src/composite.h b/src/composite.h
index 67e8720..945f261 100644
--- a/src/composite.h
+++ b/src/composite.h
@@ -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)
diff --git a/src/term.c b/src/term.c
index 0858f81..6f0b827 100644
--- a/src/term.c
+++ b/src/term.c
@@ -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;