return;
}
- /* Test for pattern "^aa*" */
- assertEqualIntA(m, 0, archive_match_include_pattern(m, "^aa*"));
+ /* Test for pattern "aa*" */
+ assertEqualIntA(m, 0, archive_match_include_pattern(m, "aa*"));
/* Test with 'aa1234', which should not be excluded. */
archive_entry_copy_pathname(ae, "aa1234");
return;
}
- /* Test for pattern "^aa*" */
- assertEqualIntA(m, 0, archive_match_include_pattern_w(m, L"^aa*"));
+ /* Test for pattern "aa*" */
+ assertEqualIntA(m, 0, archive_match_include_pattern_w(m, L"aa*"));
/* Test with 'aa1234', which should not be excluded. */
archive_entry_copy_pathname(ae, "aa1234");
}
assertEqualIntA(m, 0, archive_match_exclude_pattern(m, "^aaa*"));
- assertEqualIntA(m, 0, archive_match_include_pattern_w(m, L"^aa*"));
- assertEqualIntA(m, 0, archive_match_include_pattern(m, "^a1*"));
+ assertEqualIntA(m, 0, archive_match_include_pattern_w(m, L"aa*"));
+ assertEqualIntA(m, 0, archive_match_include_pattern(m, "a1*"));
/* Test with 'aa1234', which should not be excluded. */
archive_entry_copy_pathname(ae, "aa1234");
/* Verify unmatched inclusion patterns. */
assertEqualIntA(m, ARCHIVE_OK,
archive_match_path_unmatched_inclusions_next(m, &mp));
- assertEqualString("^a1*", mp);
+ assertEqualString("a1*", mp);
assertEqualIntA(m, ARCHIVE_EOF,
archive_match_path_unmatched_inclusions_next(m, &mp));
/* Verify unmatched inclusion patterns again in Wide-Char. */
assertEqualIntA(m, ARCHIVE_OK,
archive_match_path_unmatched_inclusions_next_w(m, &wp));
- assertEqualWString(L"^a1*", wp);
+ assertEqualWString(L"a1*", wp);
assertEqualIntA(m, ARCHIVE_EOF,
archive_match_path_unmatched_inclusions_next_w(m, &wp));
assertEqualInt(0, archive_pathmatch_w(L"a/b/c", NULL, 0));
/* Empty pattern only matches empty string. */
+ assertEqualInt(1, archive_pathmatch(NULL,NULL, 0));
+ assertEqualInt(1, archive_pathmatch(NULL,"", 0));
+ assertEqualInt(0, archive_pathmatch(NULL,"a", 0));
+ assertEqualInt(1, archive_pathmatch("",NULL, 0));
assertEqualInt(1, archive_pathmatch("","", 0));
assertEqualInt(0, archive_pathmatch("","a", 0));
assertEqualInt(1, archive_pathmatch("*","", 0));
assertEqualInt(0, archive_pathmatch("a", "ab", 0));
assertEqualInt(0, archive_pathmatch("a", "ab", 0));
assertEqualInt(1, archive_pathmatch("a?c", "abc", 0));
+ assertEqualInt(1, archive_pathmatch("*a", "/a", 0));
+ assertEqualInt(1, archive_pathmatch("*a", "a", 0));
/* SUSv2: ? matches / */
assertEqualInt(1, archive_pathmatch("a?c", "a/c", 0));
assertEqualInt(1, archive_pathmatch("a?*c*", "a/c", 0));
assertEqualInt(1, archive_pathmatch("*a*", "a/c", 0));
assertEqualInt(1, archive_pathmatch("*a*", "/a/c", 0));
+ assertEqualInt(0, archive_pathmatch("*a", "/a/c", 0));
+ assertEqualInt(0, archive_pathmatch("*a", "a/c", 0));
assertEqualInt(1, archive_pathmatch("*a*", "defaaaaaaa", 0));
assertEqualInt(0, archive_pathmatch("a*", "defghi", 0));
assertEqualInt(0, archive_pathmatch("*a*", "defghi", 0));
failure("Trailing '/.' is still the same directory.");
assertEqualInt(1, archive_pathmatch("./abc*/./def", "abc/def/.", 0));
+ /* Anchor characters without flags not special. */
+ assertEqualInt(0, archive_pathmatch("^abc", "abc", 0));
+ assertEqualInt(1, archive_pathmatch("^abc", "^abc", 0));
+ assertEqualInt(0, archive_pathmatch("abc$", "abc", 0));
+ assertEqualInt(1, archive_pathmatch("abc$", "abc$", 0));
+ assertEqualInt(0, archive_pathmatch("^abc$", "abc", 0));
+ assertEqualInt(1, archive_pathmatch("^abc$", "^abc$", 0));
+
/* Matches not anchored at beginning. */
assertEqualInt(0,
archive_pathmatch("bcd", "abcd", PATHMATCH_NO_ANCHOR_START));