diff options
author | Tino Calancha <tino.calancha@gmail.com> | 2017-08-05 14:04:56 +0900 |
---|---|---|
committer | Tino Calancha <tino.calancha@gmail.com> | 2017-08-05 14:20:28 +0900 |
commit | 055e2a1906a2f02c7b77537cbb4df858b00b39d9 (patch) | |
tree | c8cfbf37db8d31d2d2619ceaf0f2425ec889909a | |
parent | 12d7757a794edaf6ad81ee468dc99998ecf5d4ac (diff) | |
download | emacs-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.el | 2 | ||||
-rw-r--r-- | test/lisp/files-tests.el | 18 |
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 |