Mercurial > emacs
changeset 80419:9c783b1fabda
(find-dired-filter): Align columns by padding file sizes.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Tue, 01 Apr 2008 16:48:24 +0000 |
parents | dd8c2bff893f |
children | 3b1f5a54fc5d |
files | lisp/find-dired.el |
diffstat | 1 files changed, 12 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- 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))))