emacs-diffs
[Top][All Lists]
Advanced

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

feature/android ba87d2c28b1 4/4: Merge remote-tracking branch 'origin/ma


From: Po Lu
Subject: feature/android ba87d2c28b1 4/4: Merge remote-tracking branch 'origin/master' into feature/android
Date: Sun, 19 Feb 2023 22:41:44 -0500 (EST)

branch: feature/android
commit ba87d2c28b1366083e96650fa3ede7041f44067e
Merge: 34ba481c8ea cac13e36054
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>

    Merge remote-tracking branch 'origin/master' into feature/android
---
 lisp/imenu.el                           |  21 +--
 lisp/net/tramp-smb.el                   |   4 +-
 lisp/progmodes/elisp-mode.el            |   4 +
 test/lisp/net/tramp-tests.el            | 243 +++++++++++++++++---------------
 test/lisp/progmodes/elisp-mode-tests.el |   5 +
 5 files changed, 150 insertions(+), 127 deletions(-)

diff --git a/lisp/imenu.el b/lisp/imenu.el
index 25a02004570..fd23a65c7b3 100644
--- a/lisp/imenu.el
+++ b/lisp/imenu.el
@@ -756,9 +756,11 @@ Returns t for rescan and otherwise an element or 
subelement of INDEX-ALIST."
   (setq index-alist (imenu--split-submenus index-alist))
   (let* ((menu (imenu--split-menu index-alist (or title (buffer-name))))
         (map (imenu--create-keymap (car menu)
-                                   (cdr (if (< 1 (length (cdr menu)))
-                                            menu
-                                          (car (cdr menu)))))))
+                                    (cdr (if (and (null (cddr menu))
+                                                  (stringp (caadr menu))
+                                                  (consp (cdadr menu)))
+                                             (cadr menu)
+                                           menu)))))
     (popup-menu map event)))
 
 (defun imenu-choose-buffer-index (&optional prompt alist)
@@ -854,13 +856,12 @@ A trivial interface to `imenu-add-to-menubar' suitable 
for use in a hook."
                                         (buffer-name)))
                (menu1 (imenu--create-keymap
                        (car menu)
-                      (cdr (if (or (< 1 (length (cdr menu)))
-                                    ;; Have we a non-nested single entry?
-                                    (atom (cdadr menu))
-                                    (atom (cadadr menu)))
-                               menu
-                             (car (cdr menu))))
-                      'imenu--menubar-select)))
+                       (cdr (if (and (null (cddr menu))
+                                     (stringp (caadr menu))
+                                     (consp (cdadr menu)))
+                                (cadr menu)
+                              menu))
+                       'imenu--menubar-select)))
          (setcdr imenu--menubar-keymap (cdr menu1)))))))
 
 (defun imenu--menubar-select (item)
diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el
index b2272f804e0..2a69465224f 100644
--- a/lisp/net/tramp-smb.el
+++ b/lisp/net/tramp-smb.el
@@ -757,7 +757,7 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are 
completely ignored."
   "Read ACL data from connection buffer."
   (unless (process-live-p proc)
     ;; Accept pending output.
-    (while (tramp-accept-process-output proc))
+    (while (tramp-accept-process-output proc 0))
     (with-current-buffer (tramp-get-connection-buffer vec)
       ;; There might be a hidden password prompt.
       (widen)
@@ -1361,7 +1361,7 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are 
completely ignored."
   "Set ACL data."
   (unless (process-live-p proc)
     ;; Accept pending output.
-    (while (tramp-accept-process-output proc))
+    (while (tramp-accept-process-output proc 0))
     (tramp-message
      vec 10 "\n%s" (tramp-get-buffer-string (tramp-get-connection-buffer vec)))
     (throw 'tramp-action 'ok)))
diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el
index 1c339d08148..f7cd9e90926 100644
--- a/lisp/progmodes/elisp-mode.el
+++ b/lisp/progmodes/elisp-mode.el
@@ -943,6 +943,10 @@ namespace but with lower confidence."
                                  cl-defmethod cl-defgeneric)))
             ;; (defun FUNC (... IDENT
             'variable)
+           ((and (eql j 2)
+                 (eq j-head 'defclass))
+            ;; (defclass CLASS (... IDENT
+            'function)
            ((eq j-head 'cond)
             ;; (cond ... (... IDENT
             'variable)
diff --git a/test/lisp/net/tramp-tests.el b/test/lisp/net/tramp-tests.el
index d29e48c0774..97fada91fa2 100644
--- a/test/lisp/net/tramp-tests.el
+++ b/test/lisp/net/tramp-tests.el
@@ -4642,8 +4642,8 @@ This tests also `make-symbolic-link', `file-truename' and 
`add-name-to-file'."
   "Check interactive completion with different `completion-styles'."
   (tramp-cleanup-connection tramp-test-vec nil 'keep-password)
 
-  ;; Method and host name in completion mode.  This kind of completion
-  ;; does not work on MS Windows.
+  ;; Method, user and host name in completion mode.  This kind of
+  ;; completion does not work on MS Windows.
   (unless (memq system-type '(cygwin windows-nt))
     (let ((method (file-remote-p ert-remote-temporary-file-directory 'method))
          (user (file-remote-p ert-remote-temporary-file-directory 'user))
@@ -4673,119 +4673,132 @@ This tests also `make-symbolic-link', `file-truename' 
and `add-name-to-file'."
                      '(emacs21 emacs22 basic partial-completion substring flex)
                   '(basic)))
 
-              (let (;; Force the real minibuffer in batch mode.
-                    (executing-kbd-macro t)
-                    (completion-styles `(,style))
-                    (completions-format 'one-column)
-                    completion-category-defaults
-                    completion-category-overrides
-                    ;; This is needed for the `simplified' syntax,
-                    (tramp-default-method method)
-                    (method-string
-                     (unless (string-empty-p tramp-method-regexp)
-                       (concat method tramp-postfix-method-format)))
-                   ;; This is needed for the IPv6 host name syntax.
-                   (ipv6-prefix
-                    (and (string-match-p tramp-ipv6-regexp host)
-                         tramp-prefix-ipv6-format))
-                   (ipv6-postfix
-                    (and (string-match-p tramp-ipv6-regexp host)
-                         tramp-postfix-ipv6-format))
-                   ;; The hop string fits only the initial syntax.
-                   (hop (and (eq tramp-syntax orig-syntax) hop))
-                    test result completions)
-
-               (dolist
-                   (test-and-result
-                    ;; These are triples (TEST-STRING RESULT-CHECK
-                    ;; COMPLETION-CHECK).
-                    (append
-                     ;; Complete method name.
-                     (unless (string-empty-p tramp-method-regexp)
-                       `((,(concat
-                             tramp-prefix-format hop
-                             (substring-no-properties
-                             method 0 (min 2 (length method))))
-                          ,(concat tramp-prefix-format method-string)
-                          ,method-string)))
-                     ;; Complete user name.
-                     (unless (tramp-string-empty-or-nil-p user)
-                       `((,(concat
-                             tramp-prefix-format hop method-string
-                             (substring-no-properties
-                             user 0 (min 2 (length user))))
-                          ,(concat
-                             tramp-prefix-format method-string
-                            user tramp-postfix-user-format)
-                          ,(concat
-                            user tramp-postfix-user-format))))
-                     ;; Complete host name.
-                     (unless (tramp-string-empty-or-nil-p host)
-                       `((,(concat
-                             tramp-prefix-format hop method-string
-                            ipv6-prefix
-                            (substring-no-properties
-                             host 0 (min 2 (length host))))
-                          ,(concat
-                             tramp-prefix-format method-string
-                            ipv6-prefix host
-                            ipv6-postfix tramp-postfix-host-format)
-                          ,(concat
-                            ipv6-prefix host
-                            ipv6-postfix tramp-postfix-host-format))))
-                     ;; Complete user and host name.
-                     (unless (or (tramp-string-empty-or-nil-p user)
-                                 (tramp-string-empty-or-nil-p host))
-                       `((,(concat
-                             tramp-prefix-format hop method-string
-                            user tramp-postfix-user-format
-                            ipv6-prefix
-                            (substring-no-properties
-                             host 0 (min 2 (length host))))
-                          ,(concat
-                             tramp-prefix-format method-string
-                            user tramp-postfix-user-format
-                            ipv6-prefix host
-                            ipv6-postfix tramp-postfix-host-format)
-                          ,(concat
-                            ipv6-prefix host
-                            ipv6-postfix tramp-postfix-host-format))))))
-
-                  (ignore-errors (kill-buffer "*Completions*"))
-                  ;; (and (bufferp trace-buffer) (kill-buffer trace-buffer))
-                  (discard-input)
-                  (setq test (car test-and-result)
-                        unread-command-events
-                        (mapcar #'identity (concat test "\t\t\n"))
-                        completions nil
-                        result (read-file-name "Prompt: "))
-
-                  (if (not (get-buffer "*Completions*"))
-                      (progn
-                        ;; (tramp--test-message
-                        ;;  "syntax: %s style: %s test: %s result: %s"
-                        ;;  syntax style test result)
-                        (should (string-prefix-p (cadr test-and-result) 
result)))
-
-                    (with-current-buffer "*Completions*"
-                     ;; We must remove leading `default-directory'.
-                     (goto-char (point-min))
-                     (let ((inhibit-read-only t))
-                       (while (re-search-forward "//" nil 'noerror)
-                         (delete-region (line-beginning-position) (point))))
-                     (goto-char (point-min))
-                     (re-search-forward
-                       (rx bol (1+ nonl) "possible completions:" eol))
-                     (forward-line 1)
-                      (setq completions
-                            (split-string
-                             (buffer-substring-no-properties (point) 
(point-max))
-                             (rx (any "\r\n")) 'omit)))
-
-                    ;; (tramp--test-message
-                    ;;  "syntax: %s style: %s test: %s result: %s completions: 
%S"
-                    ;;  syntax style test result completions)
-                    (should (member (caddr test-and-result) completions)))))))
+             (when (assoc style completion-styles-alist)
+               (let (;; Force the real minibuffer in batch mode.
+                      (executing-kbd-macro noninteractive)
+                      (completion-styles `(,style))
+                      (completions-format 'one-column)
+                      completion-category-defaults
+                      completion-category-overrides
+                      ;; This is needed for the `simplified' syntax,
+                      (tramp-default-method method)
+                      (method-string
+                       (unless (string-empty-p tramp-method-regexp)
+                        (concat method tramp-postfix-method-format)))
+                     ;; This is needed for the IPv6 host name syntax.
+                     (ipv6-prefix
+                      (and (string-match-p tramp-ipv6-regexp host)
+                           tramp-prefix-ipv6-format))
+                     (ipv6-postfix
+                      (and (string-match-p tramp-ipv6-regexp host)
+                           tramp-postfix-ipv6-format))
+                     ;; The hop string fits only the initial syntax.
+                     (hop (and (eq tramp-syntax orig-syntax) hop))
+                      test result completions)
+
+                 (dolist
+                     (test-and-result
+                      ;; These are triples (TEST-STRING RESULT-CHECK
+                      ;; COMPLETION-CHECK).
+                      (append
+                       ;; Complete method name.
+                       (unless (string-empty-p tramp-method-regexp)
+                         `((,(concat
+                               tramp-prefix-format hop
+                               (substring-no-properties
+                               method 0 (min 2 (length method))))
+                            ,(concat tramp-prefix-format method-string)
+                            ,method-string)))
+                       ;; Complete user name.
+                       (unless (tramp-string-empty-or-nil-p user)
+                         `((,(concat
+                               tramp-prefix-format hop method-string
+                               (substring-no-properties
+                               user 0 (min 2 (length user))))
+                            ,(concat
+                               tramp-prefix-format method-string
+                              user tramp-postfix-user-format)
+                            ,(concat
+                              user tramp-postfix-user-format))))
+                       ;; Complete host name.
+                       (unless (tramp-string-empty-or-nil-p host)
+                         `((,(concat
+                               tramp-prefix-format hop method-string
+                              ipv6-prefix
+                              (substring-no-properties
+                               host 0 (min 2 (length host))))
+                            ,(concat
+                               tramp-prefix-format method-string
+                              ipv6-prefix host
+                              ipv6-postfix tramp-postfix-host-format)
+                            ,(concat
+                              ipv6-prefix host
+                              ipv6-postfix tramp-postfix-host-format))))
+                       ;; Complete user and host name.
+                       (unless (or (tramp-string-empty-or-nil-p user)
+                                   (tramp-string-empty-or-nil-p host))
+                         `((,(concat
+                               tramp-prefix-format hop method-string
+                              user tramp-postfix-user-format
+                              ipv6-prefix
+                              (substring-no-properties
+                               host 0 (min 2 (length host))))
+                            ,(concat
+                               tramp-prefix-format method-string
+                              user tramp-postfix-user-format
+                              ipv6-prefix host
+                              ipv6-postfix tramp-postfix-host-format)
+                            ,(concat
+                              ipv6-prefix host
+                              ipv6-postfix tramp-postfix-host-format))))))
+
+                    (ignore-errors (kill-buffer "*Completions*"))
+                    ;; (and (bufferp trace-buffer) (kill-buffer trace-buffer))
+                    (discard-input)
+                    (setq test (car test-and-result)
+                          unread-command-events
+                          (mapcar #'identity (concat test "\t\t\n"))
+                          completions nil
+                          result (read-file-name "Prompt: "))
+
+                    (if (or (not (get-buffer "*Completions*"))
+                           (string-match-p
+                            (if (string-empty-p tramp-method-regexp)
+                                (rx (| (regexp tramp-postfix-user-regexp)
+                                       (regexp tramp-postfix-host-regexp))
+                                    eos)
+                              (rx (| (regexp tramp-postfix-method-regexp)
+                                     (regexp tramp-postfix-user-regexp)
+                                     (regexp tramp-postfix-host-regexp))
+                                  eos))
+                            result))
+                       (progn
+                          ;; (tramp--test-message
+                          ;;  "syntax: %s style: %s test: %s result: %s"
+                          ;;  syntax style test result)
+                          (should (string-prefix-p (cadr test-and-result) 
result)))
+
+                      (with-current-buffer "*Completions*"
+                       ;; We must remove leading `default-directory'.
+                       (goto-char (point-min))
+                       (let ((inhibit-read-only t))
+                         (while (re-search-forward "//" nil 'noerror)
+                           (delete-region (line-beginning-position) (point))))
+                       (goto-char (point-min))
+                       (re-search-forward
+                        (rx bol (0+ nonl)
+                            (any "Pp") "ossible completions"
+                            (0+ nonl) eol))
+                       (forward-line 1)
+                       (setq completions
+                              (split-string
+                               (buffer-substring-no-properties (point) 
(point-max))
+                               (rx (any "\r\n")) 'omit)))
+
+                      ;; (tramp--test-message
+                      ;;  "syntax: %s style: %s test: %s result: %s 
completions: %S"
+                      ;;  syntax style test result completions)
+                      (should (member (caddr test-and-result) 
completions))))))))
 
        ;; Cleanup.
        ;; (tramp--test-message "%s" (tramp-get-buffer-string trace-buffer))
diff --git a/test/lisp/progmodes/elisp-mode-tests.el 
b/test/lisp/progmodes/elisp-mode-tests.el
index 57b39a49801..5b6ef88dceb 100644
--- a/test/lisp/progmodes/elisp-mode-tests.el
+++ b/test/lisp/progmodes/elisp-mode-tests.el
@@ -1003,6 +1003,11 @@ evaluation of BODY."
     (should (equal (elisp--xref-infer-namespace p5) 'variable))
     (should (equal (elisp--xref-infer-namespace p6) 'function)))
 
+  (elisp-mode-test--with-buffer
+      (concat "(defclass child-class ({p1}parent-1 {p2}parent-2))\n")
+    (should (equal (elisp--xref-infer-namespace p1) 'function))
+    (should (equal (elisp--xref-infer-namespace p2) 'function)))
+
   (elisp-mode-test--with-buffer
       (concat "(require '{p1}alpha)\n"
               "(fboundp '{p2}beta)\n"



reply via email to

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