aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii2000-12-07 14:52:50 +0000
committerEli Zaretskii2000-12-07 14:52:50 +0000
commitfc3e23a4b48c917d37d6d3f7a72b297bf56bd23a (patch)
treeb310d37c8558afe80b7bc43036ea7d1fd287e993
parent0f5f7c3eb668e701d00f77d92441dd4ea91422ec (diff)
downloademacs-fc3e23a4b48c917d37d6d3f7a72b297bf56bd23a.tar.gz
emacs-fc3e23a4b48c917d37d6d3f7a72b297bf56bd23a.zip
(dired-insert-directory): If file-system-info is
fboundp, call it instead of invoking dired-free-space-program.
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/dired.el42
2 files changed, 29 insertions, 18 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 536f5eee03e..d1c3072201e 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
12000-12-07 Eli Zaretskii <eliz@is.elta.co.il>
2
3 * dired.el (dired-insert-directory): If file-system-info is
4 fboundp, call it instead of invoking dired-free-space-program.
5
12000-12-07 Gerd Moellmann <gerd@gnu.org> 62000-12-07 Gerd Moellmann <gerd@gnu.org>
2 7
3 * server.el (server-visit-files): Push files on file-name-history. 8 * 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."
686 (goto-char (point-min)) 686 (goto-char (point-min))
687 (when (re-search-forward "total [0-9]+$" nil t) 687 (when (re-search-forward "total [0-9]+$" nil t)
688 (insert " free ") 688 (insert " free ")
689 (let ((beg (point))) 689 ;; Non-Posix systems don't always have dired-free-space-program,
690 (condition-case nil 690 ;; but might have an equivalent system call.
691 (if (zerop (call-process dired-free-space-program nil t nil 691 (if (fboundp 'file-system-info)
692 dired-free-space-args 692 (insert
693 (expand-file-name dir-or-list))) 693 (format "%.0f"
694 (progn 694 (/ (nth 2 (file-system-info dir-or-list)) 1024)))
695 (goto-char beg) 695 (let ((beg (point)))
696 (forward-line 1) 696 (condition-case nil
697 (skip-chars-forward "^ \t") 697 (if (zerop (call-process dired-free-space-program nil t nil
698 (forward-word 2) 698 dired-free-space-args
699 (skip-chars-forward " \t") 699 (expand-file-name dir-or-list)))
700 (delete-region beg (point)) 700 (progn
701 (forward-word 1) 701 (goto-char beg)
702 (delete-region (point) 702 (forward-line 1)
703 (progn (forward-line 1) (point)))) 703 (skip-chars-forward "^ \t")
704 ;; The dired-free-space-program failed; delete its output 704 (forward-word 2)
705 (delete-region (- beg 7) (point))) 705 (skip-chars-forward " \t")
706 (error (delete-region (- beg 7) (point))))))))) 706 (delete-region beg (point))
707 (forward-word 1)
708 (delete-region (point)
709 (progn (forward-line 1) (point))))
710 ;; The dired-free-space-program failed; delete its output
711 (delete-region (- beg 7) (point)))
712 (error (delete-region (- beg 7) (point))))))))))
707 ;; Quote certain characters, unless ls quoted them for us. 713 ;; Quote certain characters, unless ls quoted them for us.
708 (if (not (string-match "b" dired-actual-switches)) 714 (if (not (string-match "b" dired-actual-switches))
709 (save-excursion 715 (save-excursion