summaryrefslogtreecommitdiff
path: root/lisp/files.el
diff options
context:
space:
mode:
authorChong Yidong <cyd@gnu.org>2012-04-01 10:44:24 +0800
committerChong Yidong <cyd@gnu.org>2012-04-01 10:44:24 +0800
commit42ee526b1adbe2ba7766203980a9d7089aae1a68 (patch)
tree303bd603e8cca49ac61d124442c636ffaef714b2 /lisp/files.el
parent40f86458ccc6edbfd82c0b430fa24c627623321f (diff)
Rename file-subdir-of-p to file-in-directory-p.
* lisp/files.el (file-in-directory-p): Rename from file-subdir-of-p. Handle root directory properly. (copy-directory): Caller changed. * lisp/dired-aux.el (dired-copy-file-recursive, dired-create-files): * lisp/net/tramp.el (tramp-file-name-for-operation): Callers changed. * doc/lispref/files.texi (Kinds of Files): file-subdir-of-p renamed to file-in-directory-p.
Diffstat (limited to 'lisp/files.el')
-rw-r--r--lisp/files.el30
1 files changed, 15 insertions, 15 deletions
diff --git a/lisp/files.el b/lisp/files.el
index cc1386b1bbb..0673b4fe56b 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -5015,20 +5015,20 @@ If FILE1 or FILE2 does not exist, the return value is unspecified."
(setq f2-attr (file-attributes (file-truename file2)))
(equal f1-attr f2-attr))))))
-(defun file-subdir-of-p (dir1 dir2)
- "Return non-nil if DIR1 is a subdirectory of DIR2.
-A directory is considered to be a subdirectory of itself.
-Return nil if top directory DIR2 is not an existing directory."
- (let ((handler (or (find-file-name-handler dir1 'file-subdir-of-p)
- (find-file-name-handler dir2 'file-subdir-of-p))))
+(defun file-in-directory-p (file dir)
+ "Return non-nil if FILE is in DIR or a subdirectory of DIR.
+A directory is considered to be \"in\" itself.
+Return nil if DIR is not an existing directory."
+ (let ((handler (or (find-file-name-handler file 'file-in-directory-p)
+ (find-file-name-handler dir 'file-in-directory-p))))
(if handler
- (funcall handler 'file-subdir-of-p dir1 dir2)
- (when (file-directory-p dir2) ; Top dir must exist.
- (setq dir1 (file-truename dir1)
- dir2 (file-truename dir2))
- (let ((ls1 (or (split-string dir1 "/" t) '("/")))
- (ls2 (or (split-string dir2 "/" t) '("/")))
- (root (if (string-match "\\`/" dir1) "/" ""))
+ (funcall handler 'file-in-directory-p file dir)
+ (when (file-directory-p dir) ; DIR must exist.
+ (setq file (file-truename file)
+ dir (file-truename dir))
+ (let ((ls1 (split-string file "/" t))
+ (ls2 (split-string dir "/" t))
+ (root (if (string-match "\\`/" file) "/" ""))
(mismatch nil))
(while (and ls1 ls2 (not mismatch))
(if (string-equal (car ls1) (car ls2))
@@ -5037,7 +5037,7 @@ Return nil if top directory DIR2 is not an existing directory."
(setq ls1 (cdr ls1)
ls2 (cdr ls2)))
(unless mismatch
- (file-equal-p root dir2)))))))
+ (file-equal-p root dir)))))))
(defun copy-directory (directory newname &optional keep-time parents copy-contents)
"Copy DIRECTORY to NEWNAME. Both args must be strings.
@@ -5065,7 +5065,7 @@ directly into NEWNAME instead."
(format "Copy directory %s to: " dir)
default-directory default-directory nil nil)
current-prefix-arg t nil)))
- (when (file-subdir-of-p newname directory)
+ (when (file-in-directory-p newname directory)
(error "Cannot copy `%s' into its subdirectory `%s'"
directory newname))
;; If default-directory is a remote directory, make sure we find its