# HG changeset patch # User Gerd Moellmann # Date 939937872 0 # Node ID ed3c9dd47f310befcb5c90bcfb16aecc533d71ed # Parent 1fc4552789ee9518b57ef4bf6e0fee4baab4b5dc (dired-insert-directory): Insert the amount of free space after the total size. (dired-free-space-program, dired-free-space-args): New variables. diff -r 1fc4552789ee -r ed3c9dd47f31 lisp/dired.el --- 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