# HG changeset patch # User Chong Yidong # Date 1250382688 0 # Node ID 3a381ae2eb0e5e3f780377b6e9cd7dbc33d85d05 # Parent a43e99d78f43192db7b7fb096af1a0647f863f2f * files.el (get-free-disk-space): Change fallback default directory to /. Expand DIR argument before switching to fallback. Suggested by Kevin Ryde (Bug#2631, Bug#3911). diff -r a43e99d78f43 -r 3a381ae2eb0e lisp/ChangeLog --- a/lisp/ChangeLog Sat Aug 15 22:02:59 2009 +0000 +++ b/lisp/ChangeLog Sun Aug 16 00:31:28 2009 +0000 @@ -1,3 +1,9 @@ +2009-08-16 Chong Yidong + + * files.el (get-free-disk-space): Change fallback default + directory to /. Expand DIR argument before switching to fallback. + Suggested by Kevin Ryde (Bug#2631, Bug#3911). + 2009-08-15 Chong Yidong * files.el (load-library): Doc fix. diff -r a43e99d78f43 -r 3a381ae2eb0e lisp/files.el --- a/lisp/files.el Sat Aug 15 22:02:59 2009 +0000 +++ b/lisp/files.el Sun Aug 16 00:31:28 2009 +0000 @@ -5386,7 +5386,7 @@ This function calls `file-system-info' if it is available, or invokes the program specified by `directory-free-space-program' if that is non-nil." - (when (not (file-remote-p dir)) + (unless (file-remote-p dir) ;; Try to find the number of free blocks. Non-Posix systems don't ;; always have df, but might have an equivalent system call. (if (fboundp 'file-system-info) @@ -5396,12 +5396,14 @@ (save-match-data (with-temp-buffer (when (and directory-free-space-program - (let ((default-directory - (if (and (not (file-remote-p default-directory)) - (file-directory-p default-directory) - (file-readable-p default-directory)) - default-directory - (expand-file-name "~/")))) + ;; Avoid failure if the default directory does + ;; not exist (Bug#2631, Bug#3911). + (let ((default-directory default-directory)) + (setq dir (expand-file-name dir)) + (unless (and (not (file-remote-p default-directory)) + (file-directory-p default-directory) + (file-readable-p default-directory)) + (setq default-directory "/")) (eq (call-process directory-free-space-program nil t nil directory-free-space-args