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>
|
2007-12-07 Micah Cowan <micah@cowan.name>
|
||||||
|
|
||||||
* Makefile.am: Plug in vars to include stuff from
|
* 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.
|
/* Now weed out the files that do not match our globbing pattern.
|
||||||
If we are dealing with a globbing pattern, that is. */
|
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)
|
if (action == GLOB_GLOBALL)
|
||||||
= opt.ignore_case ? fnmatch_nocase : fnmatch;
|
|
||||||
int matchres = 0;
|
|
||||||
|
|
||||||
f = start;
|
|
||||||
while (f)
|
|
||||||
{
|
{
|
||||||
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)
|
if (matchres == -1)
|
||||||
{
|
{
|
||||||
logprintf (LOG_NOTQUIET, "%s: %s\n", con->target,
|
freefileinfo (start);
|
||||||
strerror (errno));
|
return RETRBADPATTERN;
|
||||||
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)
|
else if (action == GLOB_GETONE)
|
||||||
{
|
{
|
||||||
freefileinfo (start);
|
int (*cmp) (const char *, const char *)
|
||||||
return RETRBADPATTERN;
|
= 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)
|
if (start)
|
||||||
@ -1748,7 +1764,7 @@ ftp_retrieve_glob (struct url *u, ccon *con, int action)
|
|||||||
/* Just get everything. */
|
/* Just get everything. */
|
||||||
ftp_retrieve_list (u, start, con);
|
ftp_retrieve_list (u, start, con);
|
||||||
}
|
}
|
||||||
else if (!start)
|
else
|
||||||
{
|
{
|
||||||
if (action == GLOB_GLOBALL)
|
if (action == GLOB_GLOBALL)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user