aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlenn Morris2021-10-08 07:50:28 -0700
committerGlenn Morris2021-10-08 07:50:28 -0700
commit2bc37c14dbdf3fdf337862caa31fabfe69476e70 (patch)
tree202441d8497712242e0c3c1f5d8a2c3bd6e40f5e
parentb506c5b217d4adf68013c15be0d1b16189de089b (diff)
parentaf01b674cec1ea7e9dd801f40c1ca8221f5cc8da (diff)
downloademacs-2bc37c14dbdf3fdf337862caa31fabfe69476e70.tar.gz
emacs-2bc37c14dbdf3fdf337862caa31fabfe69476e70.zip
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...
-rw-r--r--admin/make-tarball.txt6
-rw-r--r--etc/TODO19
-rw-r--r--lisp/progmodes/xref.el14
-rw-r--r--lisp/tab-bar.el42
-rw-r--r--lisp/textmodes/reftex-toc.el4
-rwxr-xr-xmake-dist6
-rw-r--r--src/Makefile.in2
-rw-r--r--src/buffer.c2
-rw-r--r--src/composite.h4
-rw-r--r--src/term.c2
10 files changed, 73 insertions, 28 deletions
diff --git a/admin/make-tarball.txt b/admin/make-tarball.txt
index ae007d76b03..22276080c5d 100644
--- a/admin/make-tarball.txt
+++ b/admin/make-tarball.txt
@@ -42,6 +42,12 @@ General steps (for each step, check for possible errors):
42 because some of the commands below run Make, so they need 42 because some of the commands below run Make, so they need
43 Makefiles to be present. 43 Makefiles to be present.
44 44
45 For Emacs 28, and as long as --with-native-compilation is not the
46 default, the tree needs to be configured with native-compilation
47 enabled, to ensure all the pertinent *.elc files will end up in
48 the tarball. Otherwise, the *.eln files might not build correctly
49 on the user's system.
50
452. Regenerate the etc/AUTHORS file: 512. Regenerate the etc/AUTHORS file:
46 M-: (require 'authors) RET 52 M-: (require 'authors) RET
47 M-x authors RET 53 M-x authors RET
diff --git a/etc/TODO b/etc/TODO
index ffc5ef304b1..cd06b1ea26e 100644
--- a/etc/TODO
+++ b/etc/TODO
@@ -444,6 +444,25 @@ consistency checks that make sure the new code computes the same results
444as the old code. And once that works well, we can remove the old code 444as the old code. And once that works well, we can remove the old code
445and old fields. 445and old fields.
446 446
447** Implement Unicode-compliant display of "default-ignorable" characters
448See the "Characters Ignored for Display" section of paragraph 5.21 in
449the Unicode Standard for the details.
450
451The implementation would import the data from Unicode UCD file
452DerivedCoreProperties.txt, and provide a minor mode that arranges for
453the characters with the Default_Ignorable_Code_Point (DI) property to
454be hidden on display. One way of implementing that could be via
455glyphless-char-display-control; that one is global, but maybe there's
456a way of making it buffer-local. Alternatively, this could be
457implemented in C in the display engine.
458
459An additional aspect of this is the display of U+00AD SOFT HYPHEN as
460invisible except at line boundaries. Note that this would need to
461support hard (physical) newlines in the buffer as well as soft
462wrapping of long lines under 'visual-line-mode'. The algorithm for
463selecting the wrap point may also need be changed to break at the soft
464hyphen.
465
447** FFI (foreign function interface) 466** FFI (foreign function interface)
448See eg https://lists.gnu.org/r/emacs-devel/2013-10/msg00246.html 467See eg https://lists.gnu.org/r/emacs-devel/2013-10/msg00246.html
449 468
diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el
index f4716fe9a64..0d51019f735 100644
--- a/lisp/progmodes/xref.el
+++ b/lisp/progmodes/xref.el
@@ -74,6 +74,20 @@
74(require 'ring) 74(require 'ring)
75(require 'project) 75(require 'project)
76 76
77(eval-and-compile
78 (when (version< emacs-version "28")
79 ;; etags.el in Emacs 26 and 27 uses EIEIO, and its location type
80 ;; inherits from `xref-location'.
81 (require 'eieio)
82
83 ;; Suppressing byte-compilation warnings (in Emacs 28+) about
84 ;; `defclass' not being defined, which happens because the
85 ;; `require' statement above is not evaluated either.
86 ;; FIXME: Use `with-suppressed-warnings' when we stop supporting Emacs 26.
87 (with-no-warnings
88 (defclass xref-location () ()
89 :documentation "(Obsolete) location represents a position in a file or buffer."))))
90
77(defgroup xref nil "Cross-referencing commands." 91(defgroup xref nil "Cross-referencing commands."
78 :version "25.1" 92 :version "25.1"
79 :group 'tools) 93 :group 'tools)
diff --git a/lisp/tab-bar.el b/lisp/tab-bar.el
index b08b7442677..ccecdbc0440 100644
--- a/lisp/tab-bar.el
+++ b/lisp/tab-bar.el
@@ -311,7 +311,7 @@ that closes only when clicked on the close button."
311 `(menu-item "Duplicate" (lambda () (interactive) 311 `(menu-item "Duplicate" (lambda () (interactive)
312 (tab-bar-duplicate-tab 312 (tab-bar-duplicate-tab
313 nil ,tab-number)) 313 nil ,tab-number))
314 :help "Duplicate the tab")) 314 :help "Clone the tab"))
315 (define-key-after menu [detach-tab] 315 (define-key-after menu [detach-tab]
316 `(menu-item "Detach" (lambda () (interactive) 316 `(menu-item "Detach" (lambda () (interactive)
317 (tab-bar-detach-tab 317 (tab-bar-detach-tab
@@ -1350,7 +1350,7 @@ If FROM-NUMBER is a tab number, a new tab is created from that tab."
1350 (tab-bar-new-tab-to))) 1350 (tab-bar-new-tab-to)))
1351 1351
1352(defun tab-bar-duplicate-tab (&optional arg from-number) 1352(defun tab-bar-duplicate-tab (&optional arg from-number)
1353 "Duplicate the current tab to ARG positions to the right. 1353 "Clone the current tab to ARG positions to the right.
1354ARG and FROM-NUMBER have the same meaning as in `tab-bar-new-tab'." 1354ARG and FROM-NUMBER have the same meaning as in `tab-bar-new-tab'."
1355 (interactive "P") 1355 (interactive "P")
1356 (let ((tab-bar-new-tab-choice nil) 1356 (let ((tab-bar-new-tab-choice nil)
@@ -2243,24 +2243,26 @@ When `switch-to-buffer-obey-display-actions' is non-nil,
2243 2243
2244;;; Short aliases and keybindings 2244;;; Short aliases and keybindings
2245 2245
2246(defalias 'tab-new 'tab-bar-new-tab) 2246(defalias 'tab-new 'tab-bar-new-tab)
2247(defalias 'tab-new-to 'tab-bar-new-tab-to) 2247(defalias 'tab-new-to 'tab-bar-new-tab-to)
2248(defalias 'tab-duplicate 'tab-bar-duplicate-tab) 2248(defalias 'tab-duplicate 'tab-bar-duplicate-tab)
2249(defalias 'tab-close 'tab-bar-close-tab) 2249(defalias 'tab-detach 'tab-bar-detach-tab)
2250(defalias 'tab-close-other 'tab-bar-close-other-tabs) 2250(defalias 'tab-window-detach 'tab-bar-move-window-to-tab)
2251(defalias 'tab-close-group 'tab-bar-close-group-tabs) 2251(defalias 'tab-close 'tab-bar-close-tab)
2252(defalias 'tab-undo 'tab-bar-undo-close-tab) 2252(defalias 'tab-close-other 'tab-bar-close-other-tabs)
2253(defalias 'tab-select 'tab-bar-select-tab) 2253(defalias 'tab-close-group 'tab-bar-close-group-tabs)
2254(defalias 'tab-switch 'tab-bar-switch-to-tab) 2254(defalias 'tab-undo 'tab-bar-undo-close-tab)
2255(defalias 'tab-next 'tab-bar-switch-to-next-tab) 2255(defalias 'tab-select 'tab-bar-select-tab)
2256(defalias 'tab-previous 'tab-bar-switch-to-prev-tab) 2256(defalias 'tab-switch 'tab-bar-switch-to-tab)
2257(defalias 'tab-last 'tab-bar-switch-to-last-tab) 2257(defalias 'tab-next 'tab-bar-switch-to-next-tab)
2258(defalias 'tab-recent 'tab-bar-switch-to-recent-tab) 2258(defalias 'tab-previous 'tab-bar-switch-to-prev-tab)
2259(defalias 'tab-move 'tab-bar-move-tab) 2259(defalias 'tab-last 'tab-bar-switch-to-last-tab)
2260(defalias 'tab-move-to 'tab-bar-move-tab-to) 2260(defalias 'tab-recent 'tab-bar-switch-to-recent-tab)
2261(defalias 'tab-rename 'tab-bar-rename-tab) 2261(defalias 'tab-move 'tab-bar-move-tab)
2262(defalias 'tab-group 'tab-bar-change-tab-group) 2262(defalias 'tab-move-to 'tab-bar-move-tab-to)
2263(defalias 'tab-list 'tab-switcher) 2263(defalias 'tab-rename 'tab-bar-rename-tab)
2264(defalias 'tab-group 'tab-bar-change-tab-group)
2265(defalias 'tab-list 'tab-switcher)
2264 2266
2265(define-key tab-prefix-map "n" 'tab-duplicate) 2267(define-key tab-prefix-map "n" 'tab-duplicate)
2266(define-key tab-prefix-map "N" 'tab-new-to) 2268(define-key tab-prefix-map "N" 'tab-new-to)
diff --git a/lisp/textmodes/reftex-toc.el b/lisp/textmodes/reftex-toc.el
index 7ca2fb827e8..b5f53ba86e7 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."
856 (label (car toc)) newlabel) 856 (label (car toc)) newlabel)
857 (if (not (stringp label)) 857 (if (not (stringp label))
858 (error "This is not a label entry")) 858 (error "This is not a label entry"))
859 (setq newlabel (read-string (format "Rename label \"%s\" to:" label))) 859 (setq newlabel (read-string (format "Rename label \"%s\" to: " label)))
860 (if (assoc newlabel (symbol-value reftex-docstruct-symbol)) 860 (if (assoc newlabel (symbol-value reftex-docstruct-symbol))
861 (if (not (y-or-n-p 861 (if (not (y-or-n-p
862 (format-message "Label `%s' exists. Use anyway? " label))) 862 (format-message "Label `%s' exists. Use anyway? " newlabel)))
863 (error "Abort"))) 863 (error "Abort")))
864 (save-excursion 864 (save-excursion
865 (save-window-excursion 865 (save-window-excursion
diff --git a/make-dist b/make-dist
index 7074bb801be..eb040150d9d 100755
--- a/make-dist
+++ b/make-dist
@@ -366,9 +366,9 @@ possibly_non_vc_files="
366 src/config.in 366 src/config.in
367"$( 367"$(
368 find admin doc etc lisp \ 368 find admin doc etc lisp \
369 \( -name '*.el' -o -name '*.elc' -o -name '*.map' -o -name '*.stamp' \ 369 \( -name '*.el' -o -name '*.elc' -o -name '*.map' -o -name '*.stamp' \
370 -o -name '*.texi' -o -name '*.tex' -o -name '*.txt' \) \ 370 -o -name '*.texi' -o -name '*.tex' -o -name '*.txt' -o -name '*.pdf' \) \
371 ! -name 'site-init*' ! -name 'site-load*' ! -name 'default*' 371 ! -name 'site-init*' ! -name 'site-load*' ! -name 'default*'
372) || exit 372) || exit
373 373
374if [ $with_info = yes ]; then 374if [ $with_info = yes ]; then
diff --git a/src/Makefile.in b/src/Makefile.in
index b8d0e7b54ce..0326b4a8f22 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -804,7 +804,7 @@ elnlisp := $(addprefix ${lispsource}/,${elnlisp}) $(lisp:.elc=.eln)
804 THEFILE=$< $<n 804 THEFILE=$< $<n
805 805
806../native-lisp: | $(pdmp) 806../native-lisp: | $(pdmp)
807 if test ! -d $@; then \ 807 @if test ! -d $@; then \
808 mkdir $@ && $(MAKE) $(AM_V_NO_PD) $(elnlisp); \ 808 mkdir $@ && $(MAKE) $(AM_V_NO_PD) $(elnlisp); \
809 if test $(SYSTEM_TYPE) = cygwin; then \ 809 if test $(SYSTEM_TYPE) = cygwin; then \
810 find $@ -name '*.eln' | rebase -v -O -T -; \ 810 find $@ -name '*.eln' | rebase -v -O -T -; \
diff --git a/src/buffer.c b/src/buffer.c
index c5b2736ae3a..648d7227d8b 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -1434,7 +1434,7 @@ and `buffer-file-truename' are non-nil. */)
1434DEFUN ("restore-buffer-modified-p", Frestore_buffer_modified_p, 1434DEFUN ("restore-buffer-modified-p", Frestore_buffer_modified_p,
1435 Srestore_buffer_modified_p, 1, 1, 0, 1435 Srestore_buffer_modified_p, 1, 1, 0,
1436 doc: /* Like `set-buffer-modified-p', but doesn't redisplay buffer's mode line. 1436 doc: /* Like `set-buffer-modified-p', but doesn't redisplay buffer's mode line.
1437This function also locks and unlocks the file visited by the buffer, 1437This function also locks or unlocks the file visited by the buffer,
1438if both `buffer-file-truename' and `buffer-file-name' are non-nil. 1438if both `buffer-file-truename' and `buffer-file-name' are non-nil.
1439 1439
1440It is not ensured that mode lines will be updated to show the modified 1440It is not ensured that mode lines will be updated to show the modified
diff --git a/src/composite.h b/src/composite.h
index 67e87201bf2..945f2612915 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)
254#define LGSTRING_HEADER(lgs) AREF (lgs, 0) 254#define LGSTRING_HEADER(lgs) AREF (lgs, 0)
255#define LGSTRING_SET_HEADER(lgs, header) ASET (lgs, 0, header) 255#define LGSTRING_SET_HEADER(lgs, header) ASET (lgs, 0, header)
256 256
257/* LGSTRING_FONT retrieves the font used for LGSTRING, if we are going
258 to display it on a GUI frame. On text-mode frames, that slot
259 stores the coding-system that should be used to write output to the
260 frame's terminal. */
257#define LGSTRING_FONT(lgs) AREF (LGSTRING_HEADER (lgs), 0) 261#define LGSTRING_FONT(lgs) AREF (LGSTRING_HEADER (lgs), 0)
258#define LGSTRING_CHAR(lgs, i) AREF (LGSTRING_HEADER (lgs), (i) + 1) 262#define LGSTRING_CHAR(lgs, i) AREF (LGSTRING_HEADER (lgs), (i) + 1)
259#define LGSTRING_CHAR_LEN(lgs) (ASIZE (LGSTRING_HEADER (lgs)) - 1) 263#define LGSTRING_CHAR_LEN(lgs) (ASIZE (LGSTRING_HEADER (lgs)) - 1)
diff --git a/src/term.c b/src/term.c
index 0858f816851..6f0b827cfc8 100644
--- a/src/term.c
+++ b/src/term.c
@@ -550,7 +550,7 @@ encode_terminal_code (struct glyph *src, int src_len,
550 if (src->type == COMPOSITE_GLYPH) 550 if (src->type == COMPOSITE_GLYPH)
551 { 551 {
552 struct composition *cmp; 552 struct composition *cmp;
553 Lisp_Object gstring; 553 Lisp_Object gstring UNINIT;
554 int i; 554 int i;
555 555
556 nbytes = buf - encode_terminal_src; 556 nbytes = buf - encode_terminal_src;