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" nil)
      ;; 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"))))