Kaynağa Gözat

Asterisk can match an empty string too.

Jelmer Vernooij 7 yıl önce
ebeveyn
işleme
e553e00383
2 değiştirilmiş dosya ile 4 ekleme ve 3 silme
  1. 1 1
      dulwich/ignore.py
  2. 3 2
      dulwich/tests/test_ignore.py

+ 1 - 1
dulwich/ignore.py

@@ -60,7 +60,7 @@ def translate(pat):
         c = pat[i:i+1]
         i = i+1
         if c == b'*':
-            res = res + b'[^/]+'
+            res = res + b'[^/]*'
         elif c == b'?':
             res = res + b'.'
         elif c == b'[':

+ 3 - 2
dulwich/tests/test_ignore.py

@@ -41,6 +41,7 @@ from dulwich.repo import Repo
 
 POSITIVE_MATCH_TESTS = [
     (b"foo.c", b"*.c"),
+    (b".c", b"*.c"),
     (b"foo/foo.c", b"*.c"),
     (b"foo/foo.c", b"foo.c"),
     (b"foo.c", b"/*.c"),
@@ -66,9 +67,9 @@ NEGATIVE_MATCH_TESTS = [
 
 
 TRANSLATE_TESTS = [
-    (b"*.c", b'(?ms)(.*/)?[^/]+\\.c/?\\Z'),
+    (b"*.c", b'(?ms)(.*/)?[^/]*\\.c/?\\Z'),
     (b"foo.c", b'(?ms)(.*/)?foo\\.c/?\\Z'),
-    (b"/*.c", b'(?ms)[^/]+\\.c/?\\Z'),
+    (b"/*.c", b'(?ms)[^/]*\\.c/?\\Z'),
     (b"/foo.c", b'(?ms)foo\\.c/?\\Z'),
     (b"foo.c", b'(?ms)(.*/)?foo\\.c/?\\Z'),
     (b"foo.[ch]", b'(?ms)(.*/)?foo\\.[ch]/?\\Z'),