Function: tramp-adb-sh-fix-ls-output
tramp-adb-sh-fix-ls-output is a byte-compiled function defined in
tramp-adb.el.gz.
Signature
(tramp-adb-sh-fix-ls-output &optional SORT-BY-TIME)
Documentation
Insert dummy 0 in empty size columns.
Android's "ls" command doesn't insert size column for directories: Emacs dired can't find files.
Source Code
;; Defined in /usr/src/emacs/lisp/net/tramp-adb.el.gz
(defun tramp-adb-sh-fix-ls-output (&optional sort-by-time)
"Insert dummy 0 in empty size columns.
Android's \"ls\" command doesn't insert size column for directories:
Emacs dired can't find files."
(save-excursion
;; Insert missing size.
(goto-char (point-min))
(while
(search-forward-regexp
(rx blank (group blank (regexp tramp-adb-ls-date-year-regexp) blank))
nil t)
(replace-match "0\\1" "\\1")
;; Insert missing "/".
(when (looking-at-p
(rx (regexp tramp-adb-ls-date-time-regexp) (+ blank) eol))
(end-of-line)
(insert "/")))
;; Sort entries.
(let* ((lines (split-string (buffer-string) "\n" t))
(sorted-lines
(sort
lines
(if sort-by-time
#'tramp-adb-ls-output-time-less-p
#'tramp-adb-ls-output-name-less-p))))
(delete-region (point-min) (point-max))
(insert " " (string-join sorted-lines "\n ")))
;; Add final newline.
(goto-char (point-max))
(unless (bolp) (insert "\n"))))