From: Michael Albinus Date: Sat, 21 Nov 2020 15:00:17 +0000 (+0100) Subject: Fix Bug#44481 X-Git-Tag: emacs-27.1.90~42 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=3ceee398192e312faa3ea073365c49bcce9ef61b;p=emacs.git Fix Bug#44481 * lisp/net/tramp.el (tramp-system-name): New defconst. (tramp-default-host, tramp-restricted-shell-hosts-alist) (tramp-local-host-regexp): * lisp/net/tramp-sh.el (tramp-maybe-open-connection): Use it. (Bug#44481) --- diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el index 4dca040aebb..a70d3aaf846 100644 --- a/lisp/net/tramp-sh.el +++ b/lisp/net/tramp-sh.el @@ -5022,7 +5022,7 @@ connection if a previous connection has died for some reason." (setenv "PS1" tramp-initial-end-of-output) (unless (stringp tramp-encoding-shell) (tramp-error vec 'file-error "`tramp-encoding-shell' not set")) - (let* ((current-host (system-name)) + (let* ((current-host tramp-system-name) (target-alist (tramp-compute-multi-hops vec)) ;; We will apply `tramp-ssh-controlmaster-options' ;; only for the first hop. diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index 08bc0ffdd7d..5a08fa89339 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -173,6 +173,12 @@ See the variable `tramp-encoding-shell' for more information." :version "24.1" :type '(choice (const nil) string)) +;; Since Emacs 26.1, `system-name' can return `nil' at build time if +;; Emacs is compiled with "--no-build-details". We do expect it to be +;; a string. (Bug#44481) +(defconst tramp-system-name (or (system-name) "") + "The system name Tramp is running locally.") + (defvar tramp-methods nil "Alist of methods for remote files. This is a list of entries of the form (NAME PARAM1 PARAM2 ...). @@ -410,7 +416,7 @@ empty string for the method name." (choice :tag " Host regexp" regexp sexp) (choice :tag " User name" string (const nil))))) -(defcustom tramp-default-host (system-name) +(defcustom tramp-default-host tramp-system-name "Default host to use for transferring files. Useful for su and sudo methods mostly." :type 'string) @@ -465,8 +471,8 @@ interpreted as a regular expression which always matches." (defcustom tramp-restricted-shell-hosts-alist (when (memq system-type '(windows-nt)) (list (format "\\`\\(%s\\|%s\\)\\'" - (regexp-quote (downcase (system-name))) - (regexp-quote (upcase (system-name)))))) + (regexp-quote (downcase tramp-system-name)) + (regexp-quote (upcase tramp-system-name))))) "List of hosts, which run a restricted shell. This is a list of regular expressions, which denote hosts running a restricted shell like \"rbash\". Those hosts can be used as @@ -479,7 +485,7 @@ host runs a restricted shell, it shall be added to this list, too." (concat "\\`" (regexp-opt - (list "localhost" "localhost6" (system-name) "127.0.0.1" "::1") t) + (list "localhost" "localhost6" tramp-system-name "127.0.0.1" "::1") t) "\\'") "Host names which are regarded as local host. If the local host runs a chrooted environment, set this to nil."