[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/path-iterator e266320 04/10: In path-iterator, add new
From: |
Stefan Monnier |
Subject: |
[elpa] externals/path-iterator e266320 04/10: In path-iterator, add new function and test |
Date: |
Tue, 1 Dec 2020 16:43:57 -0500 (EST) |
branch: externals/path-iterator
commit e266320523cc85592c9b036dc9ebdfd51ccaa2eb
Author: Stephen Leake <stephen_leake@stephe-leake.org>
Commit: Stephen Leake <stephen_leake@stephe-leake.org>
In path-iterator, add new function and test
* packages/path-iterator/path-iterator-test.el (path-iter-all-files): New
test.
* packages/path-iterator/path-iterator.el (path-iter-all-files): New.
---
path-iterator-resources/alice-1/foo-file1.text | 1 +
path-iterator-resources/bob-1/bob-2/foo-file2.text | 1 +
path-iterator-resources/bob-1/bob-3/foo-file3.text | 1 +
path-iterator-test.el | 19 ++++++++++++++++++-
path-iterator.el | 17 +++++++++++++++++
5 files changed, 38 insertions(+), 1 deletion(-)
diff --git a/path-iterator-resources/alice-1/foo-file1.text
b/path-iterator-resources/alice-1/foo-file1.text
new file mode 100644
index 0000000..d83a9f4
--- /dev/null
+++ b/path-iterator-resources/alice-1/foo-file1.text
@@ -0,0 +1 @@
+alice-1/foo-file1.text
diff --git a/path-iterator-resources/bob-1/bob-2/foo-file2.text
b/path-iterator-resources/bob-1/bob-2/foo-file2.text
new file mode 100644
index 0000000..6bd9bdb
--- /dev/null
+++ b/path-iterator-resources/bob-1/bob-2/foo-file2.text
@@ -0,0 +1 @@
+bob-1/foo-file2.text
diff --git a/path-iterator-resources/bob-1/bob-3/foo-file3.text
b/path-iterator-resources/bob-1/bob-3/foo-file3.text
new file mode 100644
index 0000000..2a3b1e9
--- /dev/null
+++ b/path-iterator-resources/bob-1/bob-3/foo-file3.text
@@ -0,0 +1 @@
+bob-2/foo-file5.text
diff --git a/path-iterator-test.el b/path-iterator-test.el
index 09c01da..780e744 100644
--- a/path-iterator-test.el
+++ b/path-iterator-test.el
@@ -158,7 +158,7 @@ iterator built from PATH-NON-RECURSIVE, PATH-RECURSIVE,
IGNORE-FUNCTION."
(let ((default-directory path-iter-root-dir))
(should
(equal
- (path-iter-to-truename
+ (path-iter--to-truename
(list
nil
(concat path-iter-root-dir "/alice-1")))
@@ -168,5 +168,22 @@ iterator built from PATH-NON-RECURSIVE, PATH-RECURSIVE,
IGNORE-FUNCTION."
)))
+(ert-deftest path-iter-all-files ()
+ (let ((iter
+ (make-path-iterator
+ :user-path-non-recursive nil
+ :user-path-recursive (list path-iter-root-dir))))
+
+ (should
+ (equal
+ (path-iter-all-files iter)
+ (list
+ (concat path-iter-root-dir "/bob-1/bob-3/foo-file3.text")
+ (concat path-iter-root-dir "/bob-1/bob-2/foo-file2.text")
+ (concat path-iter-root-dir "/alice-1/foo-file1.text")
+ (concat path-iter-root-dir "/file-0.text")
+ )))
+ ))
+
(provide 'path-iterator-test)
;;; path-iterator.el ends here
diff --git a/path-iterator.el b/path-iterator.el
index ca208e4..1c57ce3 100644
--- a/path-iterator.el
+++ b/path-iterator.el
@@ -285,5 +285,22 @@ Return a list of absolute filenames or nil if none found."
(file-name-all-completions filename dir)))
result))
+(defun path-iter-all-files (iter)
+ "Return all filenames in ITER (a `path-iterator' object."
+ (let (result)
+ (path-iter-restart iter)
+
+ (while (not (path-iter-done iter))
+ (let ((dir (path-iter-next iter)))
+ (mapc
+ (lambda (absfile)
+ (when (and (not (string-equal "." (substring absfile -1)))
+ (not (string-equal ".." (substring absfile -2)))
+ (not (file-directory-p absfile)))
+ (push absfile result)))
+ (directory-files dir t))
+ ))
+ result))
+
(provide 'path-iterator)
;;; path-iterator.el ends here.
- [elpa] branch externals/path-iterator created (now a981172), Stefan Monnier, 2020/12/01
- [elpa] externals/path-iterator b52f084 01/10: Add package path-iterator, version 0, Stefan Monnier, 2020/12/01
- [elpa] externals/path-iterator df995c1 02/10: In path-iterator, fix header comment syntax, add Commentary, Stefan Monnier, 2020/12/01
- [elpa] externals/path-iterator e266320 04/10: In path-iterator, add new function and test,
Stefan Monnier <=
- [elpa] externals/path-iterator a981172 10/10: * .gitignore: New file, Stefan Monnier, 2020/12/01
- [elpa] externals/path-iterator a8f6f40 03/10: Improve uniquify-files; add tests. Add path-iterator tests, Stefan Monnier, 2020/12/01
- [elpa] externals/path-iterator df6a5e2 09/10: Release path-iterator.el, uniquify-files.el, Stefan Monnier, 2020/12/01
- [elpa] externals/path-iterator dc2e0cb 05/10: Improve path-iterator, Stefan Monnier, 2020/12/01
- [elpa] externals/path-iterator e3a6a86 06/10: Improve path-iterator handline of duplicate directories, Stefan Monnier, 2020/12/01
- [elpa] externals/path-iterator 0e59874 07/10: In uniquify-files, factor out file-complete.el, Stefan Monnier, 2020/12/01
- [elpa] externals/path-iterator 92c5173 08/10: In ada-mode, wisi; release ada-mode 6.1.1, wisi 2.1.1, Stefan Monnier, 2020/12/01