[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] emacs/lisp/net ange-ftp.el
From: |
Michael Albinus |
Subject: |
[Emacs-diffs] emacs/lisp/net ange-ftp.el |
Date: |
Sun, 29 Nov 2009 20:04:08 +0000 |
CVSROOT: /sources/emacs
Module name: emacs
Changes by: Michael Albinus <albinus> 09/11/29 20:04:08
Modified files:
lisp/net : ange-ftp.el
Log message:
* net/ange-ftp.el (ange-ftp-parse-filename): Use `save-match-data'.
(ange-ftp-directory-files-and-attributes)
(ange-ftp-real-directory-files-and-attributes): New defuns.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/net/ange-ftp.el?cvsroot=emacs&r1=1.115&r2=1.116
Patches:
Index: ange-ftp.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/net/ange-ftp.el,v
retrieving revision 1.115
retrieving revision 1.116
diff -u -b -r1.115 -r1.116
--- ange-ftp.el 31 Oct 2009 02:19:45 -0000 1.115
+++ ange-ftp.el 29 Nov 2009 20:04:08 -0000 1.116
@@ -2672,10 +2672,11 @@
(defmacro ange-ftp-parse-filename ()
;;Extract the filename from the current line of a dired-like listing.
- `(let ((eol (progn (end-of-line) (point))))
+ `(save-match-data
+ (let ((eol (progn (end-of-line) (point))))
(beginning-of-line)
(if (re-search-forward directory-listing-before-filename-regexp eol t)
- (buffer-substring (point) eol))))
+ (buffer-substring (point) eol)))))
;; This deals with the F switch. Should also do something about
;; unquoting names obtained with the SysV b switch and the GNU Q
@@ -3421,6 +3422,17 @@
(nreverse files)))
(apply 'ange-ftp-real-directory-files directory full match v19-args)))
+(defun ange-ftp-directory-files-and-attributes
+ (directory &optional full match nosort id-format)
+ (setq directory (expand-file-name directory))
+ (if (ange-ftp-ftp-name directory)
+ (mapcar
+ (lambda (file)
+ (cons file (file-attributes (expand-file-name file directory))))
+ (ange-ftp-directory-files directory full match nosort))
+ (ange-ftp-real-directory-files-and-attributes
+ directory full match nosort id-format)))
+
(defun ange-ftp-file-attributes (file &optional id-format)
(setq file (expand-file-name file))
(let ((parsed (ange-ftp-ftp-name file)))
@@ -4359,6 +4371,8 @@
(put 'delete-directory 'ange-ftp 'ange-ftp-delete-directory)
(put 'insert-file-contents 'ange-ftp 'ange-ftp-insert-file-contents)
(put 'directory-files 'ange-ftp 'ange-ftp-directory-files)
+(put 'directory-files-and-attributes 'ange-ftp
+ 'ange-ftp-directory-files-and-attributes)
(put 'file-directory-p 'ange-ftp 'ange-ftp-file-directory-p)
(put 'file-writable-p 'ange-ftp 'ange-ftp-file-writable-p)
(put 'file-readable-p 'ange-ftp 'ange-ftp-file-readable-p)
@@ -4436,6 +4450,8 @@
(ange-ftp-run-real-handler 'insert-file-contents args))
(defun ange-ftp-real-directory-files (&rest args)
(ange-ftp-run-real-handler 'directory-files args))
+(defun ange-ftp-real-directory-files-and-attributes (&rest args)
+ (ange-ftp-run-real-handler 'directory-files-and-attributes args))
(defun ange-ftp-real-file-directory-p (&rest args)
(ange-ftp-run-real-handler 'file-directory-p args))
(defun ange-ftp-real-file-writable-p (&rest args)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] emacs/lisp/net ange-ftp.el,
Michael Albinus <=