array_header *candidates = NULL;
fnames *fnew;
-@@ -1309,11 +1310,19 @@
+@@ -1309,13 +1310,21 @@
}
candidates = ap_make_array(p, 1, sizeof(fnames));
while ((dir_entry = readdir(dirp)) != NULL) {
+ slen = strlen(dir_entry->d_name);
/* strip out '.' and '..' */
if (strcmp(dir_entry->d_name, ".") &&
-- strcmp(dir_entry->d_name, "..")) {
+ strcmp(dir_entry->d_name, "..") &&
+ (!ispatt ||
+- !ap_fnmatch(pattern,dir_entry->d_name, FNM_PERIOD)) ) {
- fnew = (fnames *) ap_push_array(candidates);
-- fnew->fname = ap_make_full_path(p, fname, dir_entry->d_name);
-+ strcmp(dir_entry->d_name, "..") &&
+- fnew->fname = ap_make_full_path(p, path, dir_entry->d_name);
++ !ap_fnmatch(pattern,dir_entry->d_name, FNM_PERIOD)) &&
+ (dir_entry->d_name)[slen-1] != '~') {
+ if (slen < 8 || strcmp((dir_entry->d_name + slen - 7), ".rpmnew")) {
+ if (slen < 9 ||
+ strcmp((dir_entry->d_name + slen - 8), ".rpmorig") &&
+ strcmp((dir_entry->d_name + slen - 8), ".rpmsave")) {
+ fnew = (fnames *) ap_push_array(candidates);
-+ fnew->fname = ap_make_full_path(p, fname, dir_entry->d_name);
++ fnew->fname = ap_make_full_path(p, path, dir_entry->d_name);
+ }
+ }
}
while ((c = getopt(argc, argv, "D:C:c:Xd:f:vVlLz:Z:wiuStThk:n:W:")) != -1) {
#else /* !WIN32 */
-- while ((c = getopt(argc, argv, "D:C:c:Xd:fF:vVlLesStTh")) != -1) {
-+ while ((c = getopt(argc, argv, "D:C:c:Xd:fF:vVlLesStTh4"
+- while ((c = getopt(argc, argv, "D:C:c:Xd:Ff:vVlLesStTh")) != -1) {
++ while ((c = getopt(argc, argv, "D:C:c:Xd:Ff:vVlLesStTh4"
+#ifdef INET6
+ "6"
+#endif