]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix problem with Solaris ls in Tramp
authorMichael Albinus <michael.albinus@gmx.de>
Sat, 23 Apr 2022 06:50:33 +0000 (08:50 +0200)
committerMichael Albinus <michael.albinus@gmx.de>
Sat, 23 Apr 2022 06:50:33 +0000 (08:50 +0200)
* lisp/net/tramp-sh.el (tramp-sunos-unames): Move up.
(tramp-sh--quoting-style-options): Handle erroneous Solaris ls.

lisp/net/tramp-sh.el

index 54fb539a564db8b66ed14722875415ce7a495ebd..67f5519bbfeeefd225fba1f044bd9ce9f22e6c0c 100644 (file)
@@ -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.