]> git.eshelyaron.com Git - emacs.git/commitdiff
insert-directory-wildcard-in-dir-p: Tweak regexp
authorTino Calancha <tino.calancha@gmail.com>
Sat, 5 Aug 2017 05:04:56 +0000 (14:04 +0900)
committerTino Calancha <tino.calancha@gmail.com>
Sat, 5 Aug 2017 05:20:28 +0000 (14:20 +0900)
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.

lisp/files.el
test/lisp/files-tests.el

index 89f6f9f44dc2bbd892c0db2847792c0dba80dac0..c9114be55a92507884c10913c06793475335c1fc 100644 (file)
@@ -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))))))
index 4583b1af3c323e81b316c8069c5941da7380e311..59c1dbcbccd08e875df17de3191b657cc9961dd3 100644 (file)
@@ -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