emacs-diffs
[Top][All Lists]
Advanced

[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;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]