aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTino Calancha2017-08-05 14:04:56 +0900
committerTino Calancha2017-08-05 14:20:28 +0900
commit055e2a1906a2f02c7b77537cbb4df858b00b39d9 (patch)
treec8cfbf37db8d31d2d2619ceaf0f2425ec889909a
parent12d7757a794edaf6ad81ee468dc99998ecf5d4ac (diff)
downloademacs-055e2a1906a2f02c7b77537cbb4df858b00b39d9.tar.gz
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]'."
6566 ls-lisp-support-shell-wildcards) 6566 ls-lisp-support-shell-wildcards)
6567 (string-match (concat "[" wildcards "]") (file-name-directory dir)) 6567 (string-match (concat "[" wildcards "]") (file-name-directory dir))
6568 (not (file-exists-p dir))) ; Prefer an existing file to wildcards. 6568 (not (file-exists-p dir))) ; Prefer an existing file to wildcards.
6569 (let ((regexp (format "\\`\\([^%s]+/\\)\\([^%s]*[%s].*\\)" 6569 (let ((regexp (format "\\`\\([^%s]*/\\)\\([^%s]*[%s].*\\)"
6570 wildcards wildcards wildcards))) 6570 wildcards wildcards wildcards)))
6571 (string-match regexp dir) 6571 (string-match regexp dir)
6572 (cons (match-string 1 dir) (match-string 2 dir)))))) 6572 (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."
313 `((verify-visited-file-modtime ,buffer-visiting-file) 313 `((verify-visited-file-modtime ,buffer-visiting-file)
314 (verify-visited-file-modtime nil)))))))) 314 (verify-visited-file-modtime nil))))))))
315 315
316(ert-deftest files-tests--insert-directory-wildcard-in-dir-p ()
317 (let ((alist (list (cons "/home/user/*/.txt" (cons "/home/user/" "*/.txt"))
318 (cons "/home/user/.txt" nil)
319 (cons "/home/*/.txt" (cons "/home/" "*/.txt"))
320 (cons "/home/*/" (cons "/home/" "*/"))
321 (cons "/*/.txt" (cons "/" "*/.txt"))
322 ;;
323 (cons "c:/tmp/*/*.txt" (cons "c:/tmp/" "*/*.txt"))
324 (cons "c:/tmp/*.txt" nil)
325 (cons "c:/tmp/*/" (cons "c:/tmp/" "*/"))
326 (cons "c:/*/*.txt" (cons "c:/" "*/*.txt")))))
327 (dolist (path-res alist)
328 (should
329 (equal
330 (cdr path-res)
331 (insert-directory-wildcard-in-dir-p (car path-res)))))))
332
333
316(provide 'files-tests) 334(provide 'files-tests)
317;;; files-tests.el ends here 335;;; files-tests.el ends here