emacs-diffs
[Top][All Lists]
Advanced

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

master 30abcda: Some Tramp fixes


From: Michael Albinus
Subject: master 30abcda: Some Tramp fixes
Date: Fri, 7 Feb 2020 05:56:22 -0500 (EST)

branch: master
commit 30abcda54e1b0e15fc10b3db1c2b9f89ca521bfa
Author: Michael Albinus <address@hidden>
Commit: Michael Albinus <address@hidden>

    Some Tramp fixes
    
    * lisp/net/tramp.el (tramp-connectable-p):
    * lisp/net/tramp-cache.el (tramp-list-connections):
    * lisp/net/tramp-gvfs.el (tramp-gvfs-enabled):
    Bind `tramp-verbose' to 0.
    
    * lisp/net/tramp-sh.el (tramp-remote-path, tramp-find-executable):
    Fix docstring.
    (tramp-open-shell): Read prompt when moving "~/.editrc".
---
 lisp/net/tramp-cache.el | 19 ++++++++++---------
 lisp/net/tramp-gvfs.el  |  3 ++-
 lisp/net/tramp-sh.el    | 26 ++++++++++++++++++--------
 lisp/net/tramp.el       |  4 ++--
 4 files changed, 32 insertions(+), 20 deletions(-)

diff --git a/lisp/net/tramp-cache.el b/lisp/net/tramp-cache.el
index 1998042..94eeb83 100644
--- a/lisp/net/tramp-cache.el
+++ b/lisp/net/tramp-cache.el
@@ -411,15 +411,16 @@ used to cache connection properties of the local machine."
 ;;;###tramp-autoload
 (defun tramp-list-connections ()
   "Return all known `tramp-file-name' structs according to `tramp-cache'."
-    (let (result tramp-verbose)
-      (maphash
-       (lambda (key _value)
-        (when (and (tramp-file-name-p key)
-                   (null (tramp-file-name-localname key))
-                   (tramp-connection-property-p key "process-buffer"))
-          (push key result)))
-       tramp-cache-data)
-      result))
+  (let ((tramp-verbose 0)
+       result)
+    (maphash
+     (lambda (key _value)
+       (when (and (tramp-file-name-p key)
+                 (null (tramp-file-name-localname key))
+                 (tramp-connection-property-p key "process-buffer"))
+        (push key result)))
+     tramp-cache-data)
+    result))
 
 (defun tramp-dump-connection-properties ()
   "Write persistent connection properties into file 
`tramp-persistency-file-name'."
diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el
index 6e11673..0d800cb 100644
--- a/lisp/net/tramp-gvfs.el
+++ b/lisp/net/tramp-gvfs.el
@@ -2466,7 +2466,8 @@ This uses \"avahi-browse\" in case D-Bus is not enabled 
in Avahi."
 
 (when tramp-gvfs-enabled
   ;; Suppress D-Bus error messages and Tramp traces.
-  (let (tramp-gvfs-dbus-event-vector tramp-verbose fun)
+  (let ((tramp-verbose 0)
+       tramp-gvfs-dbus-event-vector fun)
     ;; Add completion functions for services announced by DNS-SD.
     ;; See <http://www.dns-sd.org/ServiceTypes.html> for valid service types.
     (zeroconf-init tramp-gvfs-zeroconf-domain)
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index 2e87930..5a3abc3 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -491,8 +491,8 @@ The string is used in `tramp-methods'.")
 For every remote host, this variable will be set buffer local,
 keeping the list of existing directories on that host.
 
-You can use `~' in this list, but when searching for a shell which groks
-tilde expansion, all directory names starting with `~' will be ignored.
+You can use \"~\" in this list, but when searching for a shell which groks
+tilde expansion, all directory names starting with \"~\" will be ignored.
 
 `Default Directories' represent the list of directories given by
 the command \"getconf PATH\".  It is recommended to use this
@@ -3953,7 +3953,7 @@ hosts, or files, disagree."
 First arg VEC specifies the connection, PROGNAME is the program
 to search for, and DIRLIST gives the list of directories to
 search.  If IGNORE-TILDE is non-nil, directory names starting
-with `~' will be ignored.  If IGNORE-PATH is non-nil, searches
+with \"~\" will be ignored.  If IGNORE-PATH is non-nil, searches
 only in DIRLIST.
 
 Returns the absolute file name of PROGNAME, if found, and nil otherwise.
@@ -4103,18 +4103,26 @@ file exists and nonzero exit status otherwise."
   (with-tramp-progress-reporter
       vec 5 (format-message "Opening remote shell `%s'" shell)
     ;; Find arguments for this shell.
-    (let ((extra-args (tramp-get-sh-extra-args shell)))
+    (let ((extra-args (tramp-get-sh-extra-args shell))
+         (p (tramp-get-connection-process vec)))
       ;; The readline library can disturb Tramp.  For example, the
       ;; very recent version of libedit, the *BSD implementation of
       ;; readline, confuses Tramp.  So we disable line editing.  Since
       ;; $EDITRC is not supported on all target systems, we must move
       ;; ~/.editrc temporarily somewhere else.  For bash and zsh we
       ;; have disabled this already during shell invocation, see
-      ;; `tramp-sh-extra-args'.  Bug#39399.
+      ;; `tramp-sh-extra-args' (Bug#39399).
+      ;; The shell prompt might not be set yet, so we must read any
+      ;; prompt via `tramp-barf-if-no-shell-prompt'.
       (unless extra-args
-       (tramp-send-command vec "rm -f ~/.editrc.tramp" t)
-       (tramp-send-command vec "mv -f ~/.editrc ~/.editrc.tramp" t)
-       (tramp-send-command vec "echo 'edit off' >~/.editrc" t))
+       (tramp-send-command vec "rm -f ~/.editrc.tramp" t t)
+       (tramp-barf-if-no-shell-prompt p 10 "Couldn't find remote shell prompt")
+       (tramp-send-command
+        vec "test -e ~/.editrc && mv -f ~/.editrc ~/.editrc.tramp" t t)
+       (tramp-barf-if-no-shell-prompt p 10 "Couldn't find remote shell prompt")
+       (tramp-send-command vec "echo 'edit off' >~/.editrc" t t)
+       (tramp-barf-if-no-shell-prompt
+        p 10 "Couldn't find remote shell prompt"))
       ;; It is useful to set the prompt in the following command
       ;; because some people have a setting for $PS1 which /bin/sh
       ;; doesn't know about and thus /bin/sh will display a strange
@@ -4150,7 +4158,9 @@ file exists and nonzero exit status otherwise."
            (tramp-shell-quote-argument tramp-end-of-output)
            shell (or extra-args ""))
        t)
+      ;; Reset ~/.editrc.
       (unless extra-args
+       (tramp-send-command vec "rm -f ~/.editrc" t)
        (tramp-send-command
         vec "test -e ~/.editrc.tramp && mv -f ~/.editrc.tramp ~/.editrc" t))
       ;; Check proper HISTFILE setting.  We give up when not working.
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index a38b3c6..19d36c3 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -2555,7 +2555,7 @@ Add operations defined in `HANDLER-alist' to 
`tramp-file-name-handler'."
   "Check, whether it is possible to connect the remote host w/o side-effects.
 This is true, if either the remote host is already connected, or if we are
 not in completion mode."
-  (let (tramp-verbose
+  (let ((tramp-verbose 0)
        (vec
         (cond
          ((tramp-file-name-p vec-or-filename) vec-or-filename)
@@ -3431,7 +3431,7 @@ User is always nil."
     (with-tramp-progress-reporter v 0 (format "Opening directory %s" filename)
       (let (ls-lisp-use-insert-directory-program start)
        ;; Silence byte compiler.
-       ls-lisp-use-insert-directory-program
+       (ignore ls-lisp-use-insert-directory-program)
        (tramp-run-real-handler
         #'insert-directory
         (list filename switches wildcard full-directory-p))



reply via email to

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