From: Gerd Moellmann Date: Thu, 14 Oct 1999 21:53:37 +0000 (+0000) Subject: (dired-insert-directory): Insert the amount of X-Git-Tag: emacs-pretest-21.0.90~6434 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=85852dc7f5217e0361b38df5339e1589e40f5294;p=emacs.git (dired-insert-directory): Insert the amount of free space after the total size. (dired-free-space-program, dired-free-space-args): New variables. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f1e4a8c3e5c..01e3a4e19e7 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +1999-10-14 Richard M. Stallman + + * dired.el (dired-insert-directory): Insert the amount of + free space after the total size. + (dired-free-space-program, dired-free-space-args): New variables. + 1999-10-14 Karl Heuer * mail/rmail.el (rmail-pop-password-error): Add new pattern. diff --git a/lisp/dired.el b/lisp/dired.el index af5320f78f7..52d945f1238 100644 --- a/lisp/dired.el +++ b/lisp/dired.el @@ -152,6 +152,21 @@ The target is used in the prompt for file copy, rename etc." :type 'boolean :group 'dired) +(defcustom dired-free-space-program "df" + "*Program to get the amount of free space on a file system. +We assume the output has the format of `df'. +The value of this variable must be just a command name or file name; +if you want to specify options, use `dired-free-space-args'. + +A value of nil disables this feature." + :type '(choice (string :tag "Program") (const :tag "None" nil)) + :group 'dired) + +(defcustom dired-free-space-args "-Pk" + "*Options to use when running `dired-free-space-program'." + :type 'string + :group 'dired) + ;;; Hook variables (defvar dired-load-hook nil @@ -658,7 +673,25 @@ If DIRNAME is already in a dired buffer, that buffer is used without refresh." (cdr dir-or-list)) ;; Expand the file name here because it may have been abbreviated ;; in dired-noselect. - (insert-directory (expand-file-name dir-or-list) switches wildcard full-p)) + (insert-directory (expand-file-name dir-or-list) switches wildcard full-p) + (when (and full-p dired-free-space-program) + (save-excursion + (goto-char (point-min)) + (when (re-search-forward "total [0-9]+$" nil t) + (insert " free ") + (let ((beg (point))) + (call-process dired-free-space-program nil t nil + dired-free-space-args + (expand-file-name dir-or-list)) + (goto-char beg) + (forward-line 1) + (skip-chars-forward "^ \t") + (forward-word 2) + (skip-chars-forward " \t") + (delete-region beg (point)) + (forward-word 1) + (delete-region (point) + (progn (forward-line 1) (point)))))))) ;; Quote certain characters, unless ls quoted them for us. (if (not (string-match "b" dired-actual-switches)) (save-excursion