mirror of
https://github.com/moparisthebest/wget
synced 2024-07-03 16:38:41 -04:00
Print arguments of fnmatch properly; don't use fnmatch if we're not in globbing mode.
This commit is contained in:
parent
6b4d44ff0b
commit
d26ff3ca0d
@ -1,3 +1,10 @@
|
||||
2007-12-08 Hrvoje Niksic <hniksic@xemacs.org>
|
||||
|
||||
* ftp.c (ftp_retrieve_glob): Print both arguments of fnmatch in
|
||||
fnmatch error message.
|
||||
(ftp_retrieve_glob): Don't match with fnmatch if we're only
|
||||
supposed to get one file.
|
||||
|
||||
2007-12-07 Micah Cowan <micah@cowan.name>
|
||||
|
||||
* Makefile.am: Plug in vars to include stuff from
|
||||
|
54
src/ftp.c
54
src/ftp.c
@ -1716,31 +1716,47 @@ ftp_retrieve_glob (struct url *u, ccon *con, int action)
|
||||
}
|
||||
/* Now weed out the files that do not match our globbing pattern.
|
||||
If we are dealing with a globbing pattern, that is. */
|
||||
if (*u->file && (action == GLOB_GLOBALL || action == GLOB_GETONE))
|
||||
if (*u->file)
|
||||
{
|
||||
int (*matcher) (const char *, const char *, int)
|
||||
= opt.ignore_case ? fnmatch_nocase : fnmatch;
|
||||
int matchres = 0;
|
||||
|
||||
f = start;
|
||||
while (f)
|
||||
if (action == GLOB_GLOBALL)
|
||||
{
|
||||
matchres = matcher (u->file, f->name, 0);
|
||||
int (*matcher) (const char *, const char *, int)
|
||||
= opt.ignore_case ? fnmatch_nocase : fnmatch;
|
||||
int matchres = 0;
|
||||
|
||||
f = start;
|
||||
while (f)
|
||||
{
|
||||
matchres = matcher (u->file, f->name, 0);
|
||||
if (matchres == -1)
|
||||
{
|
||||
logprintf (LOG_NOTQUIET, _("Error matching %s against %s: %s\n"),
|
||||
u->file, escnonprint (f->name), strerror (errno));
|
||||
break;
|
||||
}
|
||||
if (matchres == FNM_NOMATCH)
|
||||
f = delelement (f, &start); /* delete the element from the list */
|
||||
else
|
||||
f = f->next; /* leave the element in the list */
|
||||
}
|
||||
if (matchres == -1)
|
||||
{
|
||||
logprintf (LOG_NOTQUIET, "%s: %s\n", con->target,
|
||||
strerror (errno));
|
||||
break;
|
||||
freefileinfo (start);
|
||||
return RETRBADPATTERN;
|
||||
}
|
||||
if (matchres == FNM_NOMATCH)
|
||||
f = delelement (f, &start); /* delete the element from the list */
|
||||
else
|
||||
f = f->next; /* leave the element in the list */
|
||||
}
|
||||
if (matchres == -1)
|
||||
else if (action == GLOB_GETONE)
|
||||
{
|
||||
freefileinfo (start);
|
||||
return RETRBADPATTERN;
|
||||
int (*cmp) (const char *, const char *)
|
||||
= opt.ignore_case ? strcasecmp : strcmp;
|
||||
f = start;
|
||||
while (f)
|
||||
{
|
||||
if (0 != cmp(u->file, f->name))
|
||||
f = delelement (f, &start);
|
||||
else
|
||||
f = f->next;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (start)
|
||||
@ -1748,7 +1764,7 @@ ftp_retrieve_glob (struct url *u, ccon *con, int action)
|
||||
/* Just get everything. */
|
||||
ftp_retrieve_list (u, start, con);
|
||||
}
|
||||
else if (!start)
|
||||
else
|
||||
{
|
||||
if (action == GLOB_GLOBALL)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user