From: Michael Albinus Date: Tue, 30 Jan 2007 20:23:38 +0000 (+0000) Subject: * files.el (get-free-disk-space): Return nil for remote X-Git-Tag: emacs-pretest-22.0.94~498 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=06531fc3fc5d8c975d3edc9d8b77118f88b742d7;p=emacs.git * 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". --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 103b9f5dba2..8c8ca712940 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,11 @@ +2007-01-30 Michael Albinus + + * 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 * type-break.el (type-break-catch-up-event): New function. diff --git a/lisp/files.el b/lisp/files.el index f671f1ae0c4..36f9e0353fb 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -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 diff --git a/lisp/net/ange-ftp.el b/lisp/net/ange-ftp.el index 19041d046db..08efbb1e107 100644 --- a/lisp/net/ange-ftp.el +++ b/lisp/net/ange-ftp.el @@ -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