From: Michael Albinus Date: Sat, 23 Apr 2022 06:50:33 +0000 (+0200) Subject: Fix problem with Solaris ls in Tramp X-Git-Tag: emacs-28.1.90~110 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=a7dde05cb3a06cc1ec807a2dcbe55f6f11f29b99;p=emacs.git Fix problem with Solaris ls in Tramp * lisp/net/tramp-sh.el (tramp-sunos-unames): Move up. (tramp-sh--quoting-style-options): Handle erroneous Solaris ls. --- diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el index 54fb539a564..67f5519bbfe 100644 --- a/lisp/net/tramp-sh.el +++ b/lisp/net/tramp-sh.el @@ -1189,12 +1189,18 @@ component is used as the target of the symlink." ;; The scripts could fail, for example with huge file size. (tramp-do-file-attributes-with-ls v localname id-format)))))))) +(defconst tramp-sunos-unames (regexp-opt '("SunOS 5.10" "SunOS 5.11")) + "Regexp to determine remote SunOS.") + (defun tramp-sh--quoting-style-options (vec) "Quoting style options to be used for VEC." (or (tramp-get-ls-command-with vec "--quoting-style=literal --show-control-chars") - (tramp-get-ls-command-with vec "-w") + ;; ls on Solaris does not return an error in that case. We've got + ;; reports for "SunOS 5.11" so far. + (unless (tramp-check-remote-uname vec tramp-sunos-unames) + (tramp-get-ls-command-with vec "-w")) "")) (defun tramp-do-file-attributes-with-ls (vec localname &optional id-format) @@ -3990,9 +3996,6 @@ Returns the exit code of the `test' program." switch (tramp-shell-quote-argument localname))))) -(defconst tramp-sunos-unames (regexp-opt '("SunOS 5.10" "SunOS 5.11")) - "Regexp to determine remote SunOS.") - (defun tramp-find-executable (vec progname dirlist &optional ignore-tilde ignore-path) "Search for PROGNAME in $PATH and all directories mentioned in DIRLIST.