emacs-diffs
[Top][All Lists]
Advanced

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

feature/android 96f9fe6514a: Merge remote-tracking branch 'origin/master


From: Po Lu
Subject: feature/android 96f9fe6514a: Merge remote-tracking branch 'origin/master' into feature/android
Date: Fri, 5 May 2023 19:55:49 -0400 (EDT)

branch: feature/android
commit 96f9fe6514a2139373c50e19a77fd217ef62e6ef
Merge: 0fbe79727b0 1ef219e220c
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>

    Merge remote-tracking branch 'origin/master' into feature/android
---
 build-aux/git-hooks/post-commit      |  4 ++--
 build-aux/git-hooks/pre-push         |  4 ++--
 lisp/dired.el                        |  6 +++---
 lisp/emacs-lisp/byte-opt.el          | 39 ++++++++++++++++--------------------
 lisp/icomplete.el                    |  5 ++++-
 lisp/net/ange-ftp.el                 |  1 +
 lisp/net/tramp-sh.el                 |  2 +-
 test/lisp/emacs-lisp/cl-lib-tests.el |  4 ++--
 8 files changed, 32 insertions(+), 33 deletions(-)

diff --git a/build-aux/git-hooks/post-commit b/build-aux/git-hooks/post-commit
index 10f43b539ac..e02fee48db4 100755
--- a/build-aux/git-hooks/post-commit
+++ b/build-aux/git-hooks/post-commit
@@ -34,7 +34,7 @@
 
 ### Code:
 
-HOOKS_DIR=$(dirname $0)
+HOOKS_DIR=`dirname "$0"`
 
 # Prefer gawk if available, as it handles NUL bytes properly.
 if type gawk >/dev/null 2>&1; then
@@ -44,4 +44,4 @@ else
 fi
 
 git rev-parse HEAD | $awk -v reason=post-commit \
-                          -f $HOOKS_DIR/commit-msg-files.awk
+                          -f "$HOOKS_DIR"/commit-msg-files.awk
diff --git a/build-aux/git-hooks/pre-push b/build-aux/git-hooks/pre-push
index 8d5dde2bbaf..a342814c1e3 100755
--- a/build-aux/git-hooks/pre-push
+++ b/build-aux/git-hooks/pre-push
@@ -31,7 +31,7 @@
 
 ### Code:
 
-HOOKS_DIR=$(dirname $0)
+HOOKS_DIR=`dirname "$0"`
 
 # Prefer gawk if available, as it handles NUL bytes properly.
 if type gawk >/dev/null 2>&1; then
@@ -85,4 +85,4 @@ $awk -v origin_name="$1" '
     # Print every SHA after oldref, up to (and including) newref.
     system("git rev-list --first-parent --reverse " oldref ".." newref)
   }
-' | $awk -v reason=pre-push -f $HOOKS_DIR/commit-msg-files.awk
+' | $awk -v reason=pre-push -f "$HOOKS_DIR"/commit-msg-files.awk
diff --git a/lisp/dired.el b/lisp/dired.el
index 1c8d011d765..e70467ca53b 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -1647,9 +1647,9 @@ If HDR is non-nil, insert a header line with the 
directory name."
                 ;; save the answer in `dired-use-ls-dired'.
                 (or (setq dired-use-ls-dired
                           (eq 0 (call-process insert-directory-program
-                                               nil nil nil "--dired")))
+                                               nil nil nil "--dired" "-N")))
                     (progn
-                      (message "ls does not support --dired; \
+                      (message "ls does not support --dired -N; \
 see `dired-use-ls-dired' for more details.")
                       nil))
               dired-use-ls-dired)))
@@ -1665,7 +1665,7 @@ see `dired-use-ls-dired' for more details.")
              ;; "--dired", so we cannot add it to the `process-file'
              ;; call for wildcards.
              (when (file-remote-p dir)
-               (setq switches (string-replace "--dired" "" switches)))
+               (setq switches (string-replace "--dired -N" "" switches)))
              (let* ((default-directory (car dir-wildcard))
                     (script (format "ls %s %s" switches (cdr dir-wildcard)))
                     (remotep (file-remote-p dir))
diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el
index 0f7a3cb2665..8fe5066c49e 100644
--- a/lisp/emacs-lisp/byte-opt.el
+++ b/lisp/emacs-lisp/byte-opt.el
@@ -221,21 +221,17 @@ for speeding up processing.")
 
 (defun byte-optimize--substitutable-p (expr)
   "Whether EXPR is a constant that can be propagated."
-  ;; Only consider numbers, symbols and strings to be values for substitution
-  ;; purposes.  Numbers and symbols are immutable, and mutating string
-  ;; literals (or results from constant-evaluated string-returning functions)
-  ;; can be considered undefined.
-  ;; (What about other quoted values, like conses?)
   (or (booleanp expr)
       (numberp expr)
-      (stringp expr)
-      (and (consp expr)
-           (or (and (memq (car expr) '(quote function))
-                    (symbolp (cadr expr)))
-               ;; (internal-get-closed-var N) can be considered constant for
-               ;; const-prop purposes.
-               (and (eq (car expr) 'internal-get-closed-var)
-                    (integerp (cadr expr)))))
+      (arrayp expr)
+      (let ((head (car-safe expr)))
+        (cond ((eq head 'quote) t)
+              ;; Don't substitute #'(lambda ...) since that would enable
+              ;; uncontrolled inlining.
+              ((eq head 'function) (symbolp (cadr expr)))
+              ;; (internal-get-closed-var N) can be considered constant for
+              ;; const-prop purposes.
+              ((eq head 'internal-get-closed-var) (integerp (cadr expr)))))
       (keywordp expr)))
 
 (defmacro byte-optimize--pcase (exp &rest cases)
@@ -469,10 +465,6 @@ for speeding up processing.")
             form
           (byte-optimize-form newform for-effect))))
 
-      ;; FIXME: Strictly speaking, I think this is a bug: (closure...)
-      ;; is a *value* and shouldn't appear in the car.
-      (`((closure . ,_) . ,_) form)
-
       (`(setq ,var ,expr)
        (let ((lexvar (assq var byte-optimize--lexvars))
              (value (byte-optimize-form expr nil)))
@@ -500,7 +492,7 @@ for speeding up processing.")
        (cons fn (mapcar #'byte-optimize-form exps)))
 
       (`(,(pred (not symbolp)) . ,_)
-       (byte-compile-warn-x fn "`%s' is a malformed function" fn)
+       (byte-compile-warn-x form "`%s' is a malformed function" fn)
        form)
 
       ((guard (when for-effect
@@ -1420,10 +1412,13 @@ See Info node `(elisp) Integer Basics'."
 
 
 (defun byte-optimize-funcall (form)
-  ;; (funcall (lambda ...) ...) ==> ((lambda ...) ...)
-  ;; (funcall foo ...) ==> (foo ...)
-  (let ((fn (nth 1 form)))
-    (if (memq (car-safe fn) '(quote function))
+  ;; (funcall #'(lambda ...) ...) -> ((lambda ...) ...)
+  ;; (funcall #'SYM ...) -> (SYM ...)
+  ;; (funcall 'SYM ...)  -> (SYM ...)
+  (let* ((fn (nth 1 form))
+         (head (car-safe fn)))
+    (if (or (eq head 'function)
+            (and (eq head 'quote) (symbolp (nth 1 fn))))
        (cons (nth 1 fn) (cdr (cdr form)))
       form)))
 
diff --git a/lisp/icomplete.el b/lisp/icomplete.el
index 6ed2cbe395c..e6fdd1f1836 100644
--- a/lisp/icomplete.el
+++ b/lisp/icomplete.el
@@ -427,7 +427,10 @@ if that doesn't produce a completion match."
    for (cat . alist) in completion-category-defaults collect
    `(,cat . ,(cl-loop
               for entry in alist for (prop . val) = entry
-              if (eq prop 'styles)
+              if (and (eq prop 'styles)
+                      ;; Never step in front of 'external', as that
+                      ;; might lose us completions.
+                      (not (memq 'external val)))
               collect `(,prop . (flex ,@(delq 'flex val)))
               else collect entry))))
 
diff --git a/lisp/net/ange-ftp.el b/lisp/net/ange-ftp.el
index 1c20a27801d..16ec33f92dc 100644
--- a/lisp/net/ange-ftp.el
+++ b/lisp/net/ange-ftp.el
@@ -4242,6 +4242,7 @@ directory, so that Emacs will know its current contents."
          ((eq identification 'user) user)
          ((eq identification 'host) host)
          ((eq identification 'localname) localname)
+         ((eq identification 'hop) nil)
          (t (ange-ftp-replace-name-component file ""))))))
 
 (defun ange-ftp-load (file &optional noerror nomessage nosuffix must-suffix)
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index 94fbc588b5d..d020615af07 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -2566,7 +2566,7 @@ The method used must be an out-of-band method."
       (setq switches
            (append switches (split-string (tramp-sh--quoting-style-options 
v))))
       (unless (tramp-get-ls-command-with v "--dired")
-       (setq switches (delete "--dired" switches)))
+       (setq switches (delete "-N" (delete "--dired" switches))))
       (when wildcard
         (setq wildcard (tramp-run-real-handler
                        #'file-name-nondirectory (list localname)))
diff --git a/test/lisp/emacs-lisp/cl-lib-tests.el 
b/test/lisp/emacs-lisp/cl-lib-tests.el
index 4e1a0fd63a2..b14731c4d0a 100644
--- a/test/lisp/emacs-lisp/cl-lib-tests.el
+++ b/test/lisp/emacs-lisp/cl-lib-tests.el
@@ -530,7 +530,7 @@
 
 (ert-deftest old-struct ()
   (cl-defstruct foo x)
-  (let ((x [cl-struct-foo])
+  (let ((x (vector 'cl-struct-foo))
         (saved cl-old-struct-compat-mode))
     (cl-old-struct-compat-mode -1)
     (should (eq (type-of x) 'vector))
@@ -540,7 +540,7 @@
     (let ((cl-struct-foo (cl--struct-get-class 'foo)))
       (setf (symbol-function 'cl-struct-foo) :quick-object-witness-check)
       (should (eq (type-of x) 'foo))
-      (should (eq (type-of [foo]) 'vector)))
+      (should (eq (type-of (vector 'foo)) 'vector)))
 
     (cl-old-struct-compat-mode (if saved 1 -1))))
 



reply via email to

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