# HG changeset patch # User Chong Yidong # Date 1207068504 0 # Node ID 9c783b1fabdacc6f0f3caa20dd420ae48a6ecf49 # Parent dd8c2bff893f770b60b994737cf318ba5e8ea431 (find-dired-filter): Align columns by padding file sizes. diff -r dd8c2bff893f -r 9c783b1fabda lisp/find-dired.el --- a/lisp/find-dired.el Tue Apr 01 16:48:04 2008 +0000 +++ b/lisp/find-dired.el Tue Apr 01 16:48:24 2008 +0000 @@ -239,7 +239,11 @@ (defun find-dired-filter (proc string) ;; Filter for \\[find-dired] processes. (let ((buf (process-buffer proc)) - (inhibit-read-only t)) + (inhibit-read-only t) + (l-opt (and (consp find-ls-option) + (string-match "l" (cdr find-ls-option)))) + (size-regexp + "^ +[^ \t\r\n]+ +[^ \t\r\n]+ +[^ \t\r\n]+ +[^ \t\r\n]+ +\\([0-9]+\\)")) (if (buffer-name buf) ; not killed? (save-excursion (set-buffer buf) @@ -262,6 +266,12 @@ (goto-char (- end 3)) ; no error if < 0 (while (search-forward " ./" nil t) (delete-region (point) (- (point) 2))) + ;; Make output line up by padding the file size + (when l-opt + (goto-char (- end 3)) + (when (re-search-forward size-regexp nil t) + (replace-match (format "%10s" (match-string 1)) + nil nil nil 1))) ;; Find all the complete lines in the unprocessed ;; output and process it to add text properties. (goto-char (point-max)) @@ -269,8 +279,7 @@ (progn (dired-insert-set-properties (process-mark proc) (1+ (point))) - (move-marker (process-mark proc) (1+ (point))))) - )))) + (move-marker (process-mark proc) (1+ (point))))))))) ;; The buffer has been killed. (delete-process proc))))