1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-24 06:20:43 -08:00

Merge remote-tracking branch 'origin/master' into feature/android

This commit is contained in:
Po Lu 2023-08-05 09:06:04 +08:00
commit a5bbc51f47
22 changed files with 138 additions and 55 deletions

View file

@ -3131,6 +3131,7 @@ usage: (defadvice FUNCTION (CLASS NAME [POSITION] [ARGLIST] FLAG...)
[DOCSTRING] [INTERACTIVE-FORM]
BODY...)"
(declare (doc-string 3) (indent 2)
(obsolete "use advice-add or define-advice" "30.1")
(debug (&define name ;; thing being advised.
(name ;; class is [&or "before" "around" "after"
;; "activation" "deactivation"]

View file

@ -2141,7 +2141,7 @@ See Info node `(elisp) Integer Basics'."
'(byte-constant byte-dup byte-stack-ref byte-stack-set byte-discard
byte-discardN byte-discardN-preserve-tos
byte-symbolp byte-consp byte-stringp byte-listp byte-numberp byte-integerp
byte-eq byte-not
byte-not
byte-cons byte-list1 byte-list2 byte-list3 byte-list4 byte-listN
byte-interactive-p)
;; How about other side-effect-free-ops? Is it safe to move an
@ -2149,6 +2149,11 @@ See Info node `(elisp) Integer Basics'."
;; No, it is not, because the unwind-protect forms can alter
;; the inside of the object to which nth would apply.
;; For the same reason, byte-equal was deleted from this list.
;;
;; In particular, `byte-eq' isn't here despite `eq' being nominally
;; pure because it is currently affected by `symbols-with-pos-enabled'
;; and so cannot be sunk past an unwind op that might end a binding of
;; that variable. Yes, this is unsatisfactory.
"Byte-codes that can be moved past an unbind.")
(defconst byte-compile-side-effect-and-error-free-ops

View file

@ -1975,6 +1975,8 @@ also be compiled."
(emacs-lisp-compilation-mode))
(let ((directories (list default-directory))
(default-directory default-directory)
(ignore-files-regexp
(mapconcat #'identity byte-compile-ignore-files "\\|"))
(skip-count 0)
(fail-count 0)
(file-count 0)
@ -1995,9 +1997,7 @@ also be compiled."
(or (null arg) (eq 0 arg)
(y-or-n-p (concat "Check " source "? ")))
;; Directory is requested to be ignored
(not (string-match-p
(regexp-opt byte-compile-ignore-files)
source))
(not (string-match-p ignore-files-regexp source))
(setq directories (nconc directories (list source))))
;; It is an ordinary file. Decide whether to compile it.
(if (and (string-match emacs-lisp-file-regexp source)
@ -2007,9 +2007,7 @@ also be compiled."
(not (auto-save-file-name-p source))
(not (member source (dir-locals--all-files directory)))
;; File is requested to be ignored
(not (string-match-p
(regexp-opt byte-compile-ignore-files)
source)))
(not (string-match-p ignore-files-regexp source)))
(progn (cl-incf
(pcase (byte-recompile-file source force arg)
('no-byte-compile skip-count)

View file

@ -337,12 +337,15 @@ as the new values of the bound variables in the recursive invocation."
;; Keeping a work buffer around is more efficient than creating a
;; new temporary buffer.
(with-current-buffer (get-buffer-create " *string-pixel-width*")
;; `display-line-numbers-mode' is enabled in internal buffers
;; that breaks width calculation, so need to disable (bug#59311)
;; If `display-line-numbers-mode' is enabled in internal
;; buffers, it breaks width calculation, so disable it (bug#59311)
(when (bound-and-true-p display-line-numbers-mode)
(display-line-numbers-mode -1))
(delete-region (point-min) (point-max))
(insert string)
;; Disable line-prefix and wrap-prefix, for the same reason.
(setq line-prefix nil
wrap-prefix nil)
(insert (propertize string 'line-prefix nil 'wrap-prefix nil))
(car (buffer-text-pixel-size nil nil t)))))
;;;###autoload