diff options
| author | Glenn Morris | 2021-10-08 07:50:28 -0700 |
|---|---|---|
| committer | Glenn Morris | 2021-10-08 07:50:28 -0700 |
| commit | 2bc37c14dbdf3fdf337862caa31fabfe69476e70 (patch) | |
| tree | 202441d8497712242e0c3c1f5d8a2c3bd6e40f5e | |
| parent | b506c5b217d4adf68013c15be0d1b16189de089b (diff) | |
| parent | af01b674cec1ea7e9dd801f40c1ca8221f5cc8da (diff) | |
| download | emacs-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.txt | 6 | ||||
| -rw-r--r-- | etc/TODO | 19 | ||||
| -rw-r--r-- | lisp/progmodes/xref.el | 14 | ||||
| -rw-r--r-- | lisp/tab-bar.el | 42 | ||||
| -rw-r--r-- | lisp/textmodes/reftex-toc.el | 4 | ||||
| -rwxr-xr-x | make-dist | 6 | ||||
| -rw-r--r-- | src/Makefile.in | 2 | ||||
| -rw-r--r-- | src/buffer.c | 2 | ||||
| -rw-r--r-- | src/composite.h | 4 | ||||
| -rw-r--r-- | src/term.c | 2 |
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 | |||
| 45 | 2. Regenerate the etc/AUTHORS file: | 51 | 2. 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 |
| @@ -444,6 +444,25 @@ consistency checks that make sure the new code computes the same results | |||
| 444 | as the old code. And once that works well, we can remove the old code | 444 | as the old code. And once that works well, we can remove the old code |
| 445 | and old fields. | 445 | and old fields. |
| 446 | 446 | ||
| 447 | ** Implement Unicode-compliant display of "default-ignorable" characters | ||
| 448 | See the "Characters Ignored for Display" section of paragraph 5.21 in | ||
| 449 | the Unicode Standard for the details. | ||
| 450 | |||
| 451 | The implementation would import the data from Unicode UCD file | ||
| 452 | DerivedCoreProperties.txt, and provide a minor mode that arranges for | ||
| 453 | the characters with the Default_Ignorable_Code_Point (DI) property to | ||
| 454 | be hidden on display. One way of implementing that could be via | ||
| 455 | glyphless-char-display-control; that one is global, but maybe there's | ||
| 456 | a way of making it buffer-local. Alternatively, this could be | ||
| 457 | implemented in C in the display engine. | ||
| 458 | |||
| 459 | An additional aspect of this is the display of U+00AD SOFT HYPHEN as | ||
| 460 | invisible except at line boundaries. Note that this would need to | ||
| 461 | support hard (physical) newlines in the buffer as well as soft | ||
| 462 | wrapping of long lines under 'visual-line-mode'. The algorithm for | ||
| 463 | selecting the wrap point may also need be changed to break at the soft | ||
| 464 | hyphen. | ||
| 465 | |||
| 447 | ** FFI (foreign function interface) | 466 | ** FFI (foreign function interface) |
| 448 | See eg https://lists.gnu.org/r/emacs-devel/2013-10/msg00246.html | 467 | See 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. |
| 1354 | ARG and FROM-NUMBER have the same meaning as in `tab-bar-new-tab'." | 1354 | ARG 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 |
| @@ -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 | ||
| 374 | if [ $with_info = yes ]; then | 374 | if [ $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. */) | |||
| 1434 | DEFUN ("restore-buffer-modified-p", Frestore_buffer_modified_p, | 1434 | DEFUN ("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. |
| 1437 | This function also locks and unlocks the file visited by the buffer, | 1437 | This function also locks or unlocks the file visited by the buffer, |
| 1438 | if both `buffer-file-truename' and `buffer-file-name' are non-nil. | 1438 | if both `buffer-file-truename' and `buffer-file-name' are non-nil. |
| 1439 | 1439 | ||
| 1440 | It is not ensured that mode lines will be updated to show the modified | 1440 | 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 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; |