[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 987d2f9: Implement a new function `directory-name-p
From: |
Lars Ingebrigtsen |
Subject: |
[Emacs-diffs] master 987d2f9: Implement a new function `directory-name-p' |
Date: |
Sat, 13 Dec 2014 15:10:10 +0000 |
branch: master
commit 987d2f9421bc854893673c234c02479583476785
Author: Lars Magne Ingebrigtsen <address@hidden>
Commit: Lars Magne Ingebrigtsen <address@hidden>
Implement a new function `directory-name-p'
* doc/lispref/files.texi (Relative File Names): Mention
`directory-name-p'.
* etc/NEWS: Mention directory-name-p.
(directory-name-p): New function.
(directory-files-recursively): Use it.
---
doc/lispref/ChangeLog | 4 ++++
doc/lispref/files.texi | 5 +++++
etc/ChangeLog | 4 ++++
etc/NEWS | 5 +++++
lisp/ChangeLog | 2 ++
lisp/files.el | 7 ++++++-
6 files changed, 26 insertions(+), 1 deletions(-)
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog
index 8f06881..0d8458f 100644
--- a/doc/lispref/ChangeLog
+++ b/doc/lispref/ChangeLog
@@ -1,3 +1,7 @@
+2014-12-13 Lars Magne Ingebrigtsen <address@hidden>
+
+ * files.texi (Relative File Names): Mention `directory-name-p'.
+
2014-12-13 Eli Zaretskii <address@hidden>
* text.texi (Comparing Text): Prevent a text string from being
diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi
index 92bb718..b79d5df 100644
--- a/doc/lispref/files.texi
+++ b/doc/lispref/files.texi
@@ -2020,6 +2020,11 @@ form.
@end example
@end defun
address@hidden directory-name-p filename
+This function returns address@hidden if @var{filename} ends with a
+forward slash (@samp{/}) character.
address@hidden defun
+
@node Directory Names
@subsection Directory Names
@cindex directory name
diff --git a/etc/ChangeLog b/etc/ChangeLog
index f56fb4e..5e02fce 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,7 @@
+2014-12-13 Lars Magne Ingebrigtsen <address@hidden>
+
+ * NEWS: Mention directory-name-p.
+
2014-12-09 Lars Magne Ingebrigtsen <address@hidden>
* NEWS: Mention directory-files-recursively.
diff --git a/etc/NEWS b/etc/NEWS
index 58a5836..58e4b0e 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -140,6 +140,11 @@ library function `ftw'.
** A new function `directory-files-recursively' returns all matching
files (recursively) under a directory.
+** The new `directory-name-p' can be used to check whether a file
+name (as returned from, for instance, `file-name-all-completions' is
+a directory file name. It returns non-nil if the last character in
+the name is a forward slash.
+
* Editing Changes in Emacs 25.1
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index bc75718..6955c3c 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -2,6 +2,8 @@
* files.el (directory-files-recursively): Really check whether
files are symlinks.
+ (directory-name-p): New function.
+ (directory-files-recursively): Use it.
2014-12-13 Artur Malabarba <address@hidden>
diff --git a/lisp/files.el b/lisp/files.el
index 2ab740d..d55ef1a 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -761,6 +761,11 @@ prevented. Directory entries are sorted with
string-lessp."
(file-name-nondirectory dir)
args))))
+(defsubst directory-name-p (name)
+ "Return non-nil if NAME ends with a slash character."
+ (and (> (length name) 0)
+ (char-equal (aref name (1- (length name))) ?/)))
+
(defun directory-files-recursively (dir match &optional include-directories)
"Return all files under DIR that have file names matching MATCH (a regexp).
This function works recursively. Files are returned in \"depth first\"
@@ -771,7 +776,7 @@ If INCLUDE-DIRECTORIES, also include directories that have
matching names."
(dolist (file (sort (file-name-all-completions "" dir)
'string<))
(unless (member file '("./" "../"))
- (if (= (aref file (1- (length file))) ?/)
+ (if (directory-name-p file)
(let* ((leaf (substring file 0 (1- (length file))))
(path (expand-file-name leaf dir)))
;; Don't follow symlinks to other directories.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master 987d2f9: Implement a new function `directory-name-p',
Lars Ingebrigtsen <=