* files.el (get-free-disk-space): Return nil for remote

directories.

* net/ange-ftp.el (ange-ftp-ls): In case of wildcards, use "ls"
instead of "dir".
This commit is contained in:
Michael Albinus 2007-01-30 20:23:38 +00:00
parent a5b5e31e1c
commit 06531fc3fc
3 changed files with 37 additions and 28 deletions

View file

@ -1,3 +1,11 @@
2007-01-30 Michael Albinus <michael.albinus@gmx.de>
* files.el (get-free-disk-space): Return nil for remote
directories.
* net/ange-ftp.el (ange-ftp-ls): In case of wildcards, use "ls"
instead of "dir".
2007-01-30 Chong Yidong <cyd@stupidchicken.com>
* type-break.el (type-break-catch-up-event): New function.

View file

@ -4749,36 +4749,37 @@ preference to the program given by this variable."
"Return the amount of free space on directory DIR's file system.
The result is a string that gives the number of free 1KB blocks,
or nil if the system call or the program which retrieve the information
fail.
fail. It returns also nil when DIR is a remote directory.
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."
;; 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)
(let ((fsinfo (file-system-info dir)))
(if fsinfo
(format "%.0f" (/ (nth 2 fsinfo) 1024))))
(save-match-data
(with-temp-buffer
(when (and directory-free-space-program
(eq 0 (call-process directory-free-space-program
nil t nil
directory-free-space-args
dir)))
;; Usual format is a header line followed by a line of
;; numbers.
(goto-char (point-min))
(forward-line 1)
(if (not (eobp))
(progn
;; Move to the end of the "available blocks" number.
(skip-chars-forward "^ \t")
(forward-word 3)
;; Copy it into AVAILABLE.
(let ((end (point)))
(forward-word -1)
(buffer-substring (point) end)))))))))
(when (not (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)
(let ((fsinfo (file-system-info dir)))
(if fsinfo
(format "%.0f" (/ (nth 2 fsinfo) 1024))))
(save-match-data
(with-temp-buffer
(when (and directory-free-space-program
(eq 0 (call-process directory-free-space-program
nil t nil
directory-free-space-args
dir)))
;; Usual format is a header line followed by a line of
;; numbers.
(goto-char (point-min))
(forward-line 1)
(if (not (eobp))
(progn
;; Move to the end of the "available blocks" number.
(skip-chars-forward "^ \t")
(forward-word 3)
;; Copy it into AVAILABLE.
(let ((end (point)))
(forward-word -1)
(buffer-substring (point) end))))))))))
;; The following expression replaces `dired-move-to-filename-regexp'.
(defvar directory-listing-before-filename-regexp

View file

@ -2599,7 +2599,7 @@ away in the internal cache."
(if wildcard
(progn
(ange-ftp-cd host user (file-name-directory name))
(setq lscmd (list 'dir file temp lsargs)))
(setq lscmd (list 'ls file temp lsargs)))
(setq lscmd (list 'dir name temp lsargs)))
(unwind-protect
(if (car (setq result (ange-ftp-send-cmd