emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 2e20749 1/3: Merge from origin/emacs-27


From: Glenn Morris
Subject: master 2e20749 1/3: Merge from origin/emacs-27
Date: Fri, 25 Dec 2020 13:41:43 -0500 (EST)

branch: master
commit 2e20749e57164982df962c8f373e98bb40dd7d19
Merge: 1ca6add 5d46593
Author: Glenn Morris <rgm@gnu.org>
Commit: Glenn Morris <rgm@gnu.org>

    Merge from origin/emacs-27
    
    5d46593568 Support build of Emacs on ARM Macos machines
    7f8793e5f1 Update to Org 9.4.4
    7b3367a0b5 * lisp/so-long.el: Decrease use of passive voice.
    a90836c638 * doc/misc/efaq.texi (New in Emacs 27): Add section.
    711fe70dd8 * doc/misc/efaq.texi (Latest version of Emacs): Bump version.
    52b30834fb * lisp/face-remap.el (face-remap-set-base): Doc fix.  (Bug...
    b3fe0ac62e Correct argument order in comment
---
 doc/misc/efaq.texi      | 60 ++++++++++++++++++++++++++++++++++++++++++++++++-
 etc/ETAGS.EBNF          |  2 +-
 lisp/face-remap.el      | 12 +++++-----
 lisp/org/org-agenda.el  |  4 ----
 lisp/org/org-capture.el |  4 ----
 lisp/org/org-macs.el    | 41 ++++++++++++++++++---------------
 lisp/org/org-version.el |  4 ++--
 lisp/so-long.el         |  6 ++---
 8 files changed, 94 insertions(+), 39 deletions(-)

diff --git a/doc/misc/efaq.texi b/doc/misc/efaq.texi
index 83c0a19..c31de0b 100644
--- a/doc/misc/efaq.texi
+++ b/doc/misc/efaq.texi
@@ -901,6 +901,7 @@ status of its latest version.
 @menu
 * Origin of the term Emacs::
 * Latest version of Emacs::
+* New in Emacs 27::
 * New in Emacs 26::
 * New in Emacs 25::
 * New in Emacs 24::
@@ -951,7 +952,7 @@ conventions}).
 Emacs @value{EMACSVER} is the current version as of this writing.  A version
 number with two components (e.g., @samp{24.5}) indicates a released
 version; three components indicate a development
-version (e.g., @samp{27.0.50} is what will eventually become @samp{27.1}).
+version (e.g., @samp{28.0.50} is what will eventually become @samp{28.1}).
 
 Emacs is under active development, hosted at
 @uref{https://savannah.gnu.org/projects/emacs/, Savannah}.
@@ -970,6 +971,63 @@ Emacs, type @kbd{C-h C-n} (@kbd{M-x view-emacs-news}).  
You can give
 this command a prefix argument to read about which features were new
 in older versions.
 
+@node New in Emacs 27
+@section What is different about Emacs 27?
+@cindex Differences between Emacs 26 and Emacs 27
+@cindex Emacs 27, new features in
+
+@itemize
+@cindex bignum support
+@item
+Emacs now uses the GNU Multiple Precision (@acronym{GMP}) library to
+support integers whose size is too large to support natively.  The
+integers supported natively are known as ``fixnums'', while the larger
+ones are ``bignums''.  All the arithmetic, comparison, and logical
+(also known as ``bitwise'') operations where bignums make sense now
+support both fixnums and bignums.
+
+@cindex HarfBuzz
+@item
+Emacs now uses HarfBuzz as its default shaping engine.
+
+@cindex JSON, native parsing
+@item
+Native support for @acronym{JSON} parsing that is much faster than
+@file{json.el}.
+
+@item
+Cairo drawing is no longer experimental.
+
+@cindex portable dumper
+@item
+Emacs now uses a ``portable dumper'' instead of unexec.  This improves
+compatibility with memory allocation on modern systems, and in
+particular better supports the Address Space Layout Randomization
+(@acronym{ASLR}) feature, a security technique used by most modern
+operating systems.
+
+@cindex XDG convention
+@item
+Emacs can now use the @acronym{XDG} convention for init files.
+
+@cindex early init file
+@item
+Emacs can now be configured using an early init file.  The primary
+purpose is to allow customizing how the package system is initialized
+given that initialization now happens before loading the regular init
+file.
+
+@cindex tabs
+@item
+Built-in support for tabs (tab bar and tab line).
+
+@item
+Support for resizing and rotating of images without ImageMagick.
+@end itemize
+
+Consult the Emacs @file{NEWS} file (@kbd{C-h n}) for the full list of
+changes in Emacs 27.
+
 @node New in Emacs 26
 @section What is different about Emacs 26?
 @cindex Differences between Emacs 25 and Emacs 26
diff --git a/etc/ETAGS.EBNF b/etc/ETAGS.EBNF
index 80deb16..04db4e3 100644
--- a/etc/ETAGS.EBNF
+++ b/etc/ETAGS.EBNF
@@ -52,7 +52,7 @@ pattern ::= regstring                    /* a tag pattern */
 
 tagname ::= regchar regstring             /* a tag name */
 
-position ::= realposition | ","           /* charpos,linepos */
+position ::= realposition | ","           /* linepos,charpos */
 
 realposition ::= "," unsint | unsint "," | unsint "," unsint
 
diff --git a/lisp/face-remap.el b/lisp/face-remap.el
index 13bbb52..e92b89f 100644
--- a/lisp/face-remap.el
+++ b/lisp/face-remap.el
@@ -33,7 +33,7 @@
 ;;
 ;;   (face RELATIVE_SPECS_1 RELATIVE_SPECS_2 ... BASE_SPECS)
 ;;
-;; The "specs" values are a lists of face names or face attribute-value
+;; The "specs" values are lists of face names or face attribute-value
 ;; pairs, and are merged together, with earlier values taking precedence.
 ;;
 ;; The RELATIVE_SPECS_* values are added by `face-remap-add-relative'
@@ -183,13 +183,13 @@ to apply on top of the normal definition of FACE."
 This causes the remappings specified by `face-remap-add-relative'
 to apply on top of the face specification given by SPECS.
 
-The remaining arguments, SPECS, should form a list of faces.
-Each list element should be either a face name or a property list
+The remaining arguments, SPECS, specify the base of the remapping.
+Each one of SPECS should be either a face name or a property list
 of face attribute/value pairs, like in a `face' text property.
 
-If SPECS is empty, call `face-remap-reset-base' to use the normal
-definition of FACE as the base remapping; note that this is
-different from SPECS containing a single value nil, which means
+If SPECS is empty or a single face `eq' to FACE, call `face-remap-reset-base'
+to use the normal definition of FACE as the base remapping; note that
+this is different from SPECS containing a single value nil, which means
 not to inherit from the global definition of FACE at all."
   (while (and (consp specs) (not (null (car specs))) (null (cdr specs)))
     (setq specs (car specs)))
diff --git a/lisp/org/org-agenda.el b/lisp/org/org-agenda.el
index cd63b0e..1c65ca1 100644
--- a/lisp/org/org-agenda.el
+++ b/lisp/org/org-agenda.el
@@ -10752,8 +10752,4 @@ when defining today."
 
 (provide 'org-agenda)
 
-;; Local variables:
-;; generated-autoload-file: "org-loaddefs.el"
-;; End:
-
 ;;; org-agenda.el ends here
diff --git a/lisp/org/org-capture.el b/lisp/org/org-capture.el
index a9a1181..d3dc0ab 100644
--- a/lisp/org/org-capture.el
+++ b/lisp/org/org-capture.el
@@ -1947,8 +1947,4 @@ Assume sexps have been marked with
 
 (provide 'org-capture)
 
-;; Local variables:
-;; generated-autoload-file: "org-loaddefs.el"
-;; End:
-
 ;;; org-capture.el ends here
diff --git a/lisp/org/org-macs.el b/lisp/org/org-macs.el
index 506fba8..d397e3e 100644
--- a/lisp/org/org-macs.el
+++ b/lisp/org/org-macs.el
@@ -377,18 +377,25 @@ error when the user input is empty."
       'org-time-stamp-inactive)
     (apply #'completing-read args)))
 
-(defun org--mks-read-key (allowed-keys prompt)
+(defun org--mks-read-key (allowed-keys prompt navigation-keys)
   "Read a key and ensure it is a member of ALLOWED-KEYS.
+Enable keys to scroll the window if NAVIGATION-KEYS is set.
 TAB, SPC and RET are treated equivalently."
-  (let* ((key (char-to-string
-              (pcase (read-char-exclusive prompt)
-                ((or ?\s ?\t ?\r) ?\t)
-                (char char)))))
-    (if (member key allowed-keys)
-        key
-      (message "Invalid key: `%s'" key)
-      (sit-for 1)
-      (org--mks-read-key allowed-keys prompt))))
+  (setq header-line-format (when navigation-keys "Use C-n, C-p, C-v, M-v to 
navigate."))
+  (let ((char-key (read-char-exclusive prompt)))
+    (if (and navigation-keys (memq char-key '(14 16 22 134217846)))
+       (progn
+         (org-scroll char-key)
+         (org--mks-read-key allowed-keys prompt navigation-keys))
+      (let ((key (char-to-string
+                 (pcase char-key
+                   ((or ?\s ?\t ?\r) ?\t)
+                   (char char)))))
+       (if (member key allowed-keys)
+           key
+         (message "Invalid key: `%s'" key)
+         (sit-for 1)
+         (org--mks-read-key allowed-keys prompt navigation-keys))))))
 
 (defun org-mks (table title &optional prompt specials)
   "Select a member of an alist with multiple keys.
@@ -461,15 +468,13 @@ is selected, only the bare key is returned."
                ;; Display UI and let user select an entry or
                ;; a sub-level prefix.
                (goto-char (point-min))
-               (setq header-line-format nil)
                (org-fit-window-to-buffer)
-               (unless (pos-visible-in-window-p (1- (point-max)))
-                 (setq header-line-format "Use C-n, C-p or C-v to navigate.")
-                 (setq allowed-keys (append allowed-keys '("\C-n" "\C-p" 
"\C-v"))))
-               (let ((pressed (org--mks-read-key allowed-keys prompt)))
-                 (while (and (member pressed '("\C-n" "\C-p" "\C-v")))
-                   (org-scroll (string-to-char pressed))
-                   (setq pressed (org--mks-read-key allowed-keys prompt)))
+               (message "") ; With this line the prompt appears in
+                            ; the minibuffer. Else keystrokes may
+                            ; appear, which is spurious.
+               (let ((pressed (org--mks-read-key
+                               allowed-keys prompt
+                               (not (pos-visible-in-window-p (1- 
(point-max)))))))
                  (setq current (concat current pressed))
                  (cond
                   ((equal pressed "\C-g") (user-error "Abort"))
diff --git a/lisp/org/org-version.el b/lisp/org/org-version.el
index 479ca46..25b3354 100644
--- a/lisp/org/org-version.el
+++ b/lisp/org/org-version.el
@@ -5,13 +5,13 @@
 (defun org-release ()
   "The release version of Org.
 Inserted by installing Org mode or when a release is made."
-   (let ((org-release "9.4.3"))
+   (let ((org-release "9.4.4"))
      org-release))
 ;;;###autoload
 (defun org-git-version ()
   "The Git version of Org mode.
 Inserted by installing Org or when a release is made."
-   (let ((org-git-version "release_9.4.3"))
+   (let ((org-git-version "release_9.4.4"))
      org-git-version))
 
 (provide 'org-version)
diff --git a/lisp/so-long.el b/lisp/so-long.el
index 431073a..417409b 100644
--- a/lisp/so-long.el
+++ b/lisp/so-long.el
@@ -41,9 +41,9 @@
 ;; simply aren't optimised (remotely) for this scenario, so performance can
 ;; suffer significantly.
 ;;
-;; When such files are detected, the command `so-long' is automatically called,
-;; overriding certain minor modes and variables with performance implications
-;; (all configurable), in order to enhance performance in the buffer.
+;; When so-long detects such a file, it calls the command `so-long', which
+;; overrides certain minor modes and variables (you can configure the details)
+;; to improve performance in the buffer.
 ;;
 ;; The default action enables the major mode `so-long-mode' in place of the 
mode
 ;; that Emacs selected.  This ensures that the original major mode cannot 
affect



reply via email to

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