summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTino Calancha <tino.calancha@gmail.com>2017-08-05 14:04:56 +0900
committerTino Calancha <tino.calancha@gmail.com>2017-08-05 14:20:28 +0900
commit055e2a1906a2f02c7b77537cbb4df858b00b39d9 (patch)
treec8cfbf37db8d31d2d2619ceaf0f2425ec889909a
parent12d7757a794edaf6ad81ee468dc99998ecf5d4ac (diff)
downloademacs-055e2a1906a2f02c7b77537cbb4df858b00b39d9.tar.gz
emacs-055e2a1906a2f02c7b77537cbb4df858b00b39d9.tar.bz2
emacs-055e2a1906a2f02c7b77537cbb4df858b00b39d9.zip
insert-directory-wildcard-in-dir-p: Tweak regexp
This function must return non-nil for a wildcard like '/*/*.txt'. * lisp/files.el (insert-directory-wildcard-in-dir-p): Adjust regexp. * test/lisp/files-tests.el (files-tests--insert-directory-wildcard-in-dir-p): Add test.
-rw-r--r--lisp/files.el2
-rw-r--r--test/lisp/files-tests.el18
2 files changed, 19 insertions, 1 deletions
diff --git a/lisp/files.el b/lisp/files.el
index 89f6f9f44dc..c9114be55a9 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -6566,7 +6566,7 @@ Valid wildcards are '*', '?', '[abc]' and '[a-z]'."
ls-lisp-support-shell-wildcards)
(string-match (concat "[" wildcards "]") (file-name-directory dir))
(not (file-exists-p dir))) ; Prefer an existing file to wildcards.
- (let ((regexp (format "\\`\\([^%s]+/\\)\\([^%s]*[%s].*\\)"
+ (let ((regexp (format "\\`\\([^%s]*/\\)\\([^%s]*[%s].*\\)"
wildcards wildcards wildcards)))
(string-match regexp dir)
(cons (match-string 1 dir) (match-string 2 dir))))))
diff --git a/test/lisp/files-tests.el b/test/lisp/files-tests.el
index 4583b1af3c3..59c1dbcbccd 100644
--- a/test/lisp/files-tests.el
+++ b/test/lisp/files-tests.el
@@ -313,5 +313,23 @@ be invoked with the right arguments."
`((verify-visited-file-modtime ,buffer-visiting-file)
(verify-visited-file-modtime nil))))))))
+(ert-deftest files-tests--insert-directory-wildcard-in-dir-p ()
+ (let ((alist (list (cons "/home/user/*/.txt" (cons "/home/user/" "*/.txt"))
+ (cons "/home/user/.txt" nil)
+ (cons "/home/*/.txt" (cons "/home/" "*/.txt"))
+ (cons "/home/*/" (cons "/home/" "*/"))
+ (cons "/*/.txt" (cons "/" "*/.txt"))
+ ;;
+ (cons "c:/tmp/*/*.txt" (cons "c:/tmp/" "*/*.txt"))
+ (cons "c:/tmp/*.txt" nil)
+ (cons "c:/tmp/*/" (cons "c:/tmp/" "*/"))
+ (cons "c:/*/*.txt" (cons "c:/" "*/*.txt")))))
+ (dolist (path-res alist)
+ (should
+ (equal
+ (cdr path-res)
+ (insert-directory-wildcard-in-dir-p (car path-res)))))))
+
+
(provide 'files-tests)
;;; files-tests.el ends here