From: Tino Calancha Date: Sat, 5 Aug 2017 05:04:56 +0000 (+0900) Subject: insert-directory-wildcard-in-dir-p: Tweak regexp X-Git-Tag: emacs-26.0.90~517^2~23 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=055e2a1906a2f02c7b77537cbb4df858b00b39d9;p=emacs.git 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. --- 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