From: Eli Zaretskii Date: Thu, 7 Dec 2000 14:52:50 +0000 (+0000) Subject: (dired-insert-directory): If file-system-info is X-Git-Tag: emacs-pretest-21.0.93~100 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=fc3e23a4b48c917d37d6d3f7a72b297bf56bd23a;p=emacs.git (dired-insert-directory): If file-system-info is fboundp, call it instead of invoking dired-free-space-program. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 536f5eee03e..d1c3072201e 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2000-12-07 Eli Zaretskii + + * dired.el (dired-insert-directory): If file-system-info is + fboundp, call it instead of invoking dired-free-space-program. + 2000-12-07 Gerd Moellmann * server.el (server-visit-files): Push files on file-name-history. diff --git a/lisp/dired.el b/lisp/dired.el index 306ecb2c56c..6be3bff0984 100644 --- a/lisp/dired.el +++ b/lisp/dired.el @@ -686,24 +686,30 @@ If DIRNAME is already in a dired buffer, that buffer is used without refresh." (goto-char (point-min)) (when (re-search-forward "total [0-9]+$" nil t) (insert " free ") - (let ((beg (point))) - (condition-case nil - (if (zerop (call-process dired-free-space-program nil t nil - dired-free-space-args - (expand-file-name dir-or-list))) - (progn - (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)))) - ;; The dired-free-space-program failed; delete its output - (delete-region (- beg 7) (point))) - (error (delete-region (- beg 7) (point))))))))) + ;; Non-Posix systems don't always have dired-free-space-program, + ;; but might have an equivalent system call. + (if (fboundp 'file-system-info) + (insert + (format "%.0f" + (/ (nth 2 (file-system-info dir-or-list)) 1024))) + (let ((beg (point))) + (condition-case nil + (if (zerop (call-process dired-free-space-program nil t nil + dired-free-space-args + (expand-file-name dir-or-list))) + (progn + (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)))) + ;; The dired-free-space-program failed; delete its output + (delete-region (- beg 7) (point))) + (error (delete-region (- beg 7) (point)))))))))) ;; Quote certain characters, unless ls quoted them for us. (if (not (string-match "b" dired-actual-switches)) (save-excursion