changeset 26026:ed3c9dd47f31

(dired-insert-directory): Insert the amount of free space after the total size. (dired-free-space-program, dired-free-space-args): New variables.
author Gerd Moellmann <gerd@gnu.org>
date Thu, 14 Oct 1999 21:51:12 +0000
parents 1fc4552789ee
children 33465d50a59c
files lisp/dired.el
diffstat 1 files changed, 34 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/dired.el	Thu Oct 14 21:29:47 1999 +0000
+++ b/lisp/dired.el	Thu Oct 14 21:51:12 1999 +0000
@@ -152,6 +152,21 @@
   :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 @@
 	 (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