Commit cea78adf authored by Koichi Arakawa's avatar Koichi Arakawa Committed by Michael Albinus

Fix Tramp's directory-files-and-attributes-with-stat (Bug#37228)

* lisp/net/tramp-sh.el
(tramp-do-directory-files-and-attributes-with-stat): Handle file
names with spaces.  (Bug#37228)

Copyright-paperwork-exempt: yes
parent 44f15b63
...@@ -1759,11 +1759,14 @@ of." ...@@ -1759,11 +1759,14 @@ of."
;; We must care about file names with spaces, or starting with ;; We must care about file names with spaces, or starting with
;; "-"; this would confuse xargs. "ls -aQ" might be a ;; "-"; this would confuse xargs. "ls -aQ" might be a
;; solution, but it does not work on all remote systems. ;; solution, but it does not work on all remote systems.
;; Therefore, we use \000 as file separator.
;; `tramp-sh--quoting-style-options' do not work for file names
;; with spaces piped to "xargs".
;; Apostrophes in the stat output are masked as ;; Apostrophes in the stat output are masked as
;; `tramp-stat-marker', in order to make a proper shell escape ;; `tramp-stat-marker', in order to make a proper shell escape
;; of them in file names. ;; of them in file names.
"cd %s && echo \"(\"; (%s %s -a | " "cd %s && echo \"(\"; (%s %s -a | tr '\\n\\r' '\\000\\000' | "
"xargs %s -c " "xargs -0 %s -c "
"'(%s%%n%s (%s%%N%s) %%h %s %s %%X %%Y %%Z %%s %s%%A%s t %%i -1)' " "'(%s%%n%s (%s%%N%s) %%h %s %s %%X %%Y %%Z %%s %s%%A%s t %%i -1)' "
"-- 2>/dev/null | sed -e 's/\"/\\\\\"/g' -e 's/%s/\"/g'); echo \")\"")) "-- 2>/dev/null | sed -e 's/\"/\\\\\"/g' -e 's/%s/\"/g'); echo \")\""))
(tramp-shell-quote-argument localname) (tramp-shell-quote-argument localname)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment