* path.cc (path_conv::check): Deal more robustly with foo/ behavior.
This commit is contained in:
parent
db77b1b43e
commit
947ab99ee9
|
@ -1,3 +1,7 @@
|
||||||
|
Fri Jun 15 14:34:19 2001 Christopher Faylor <cgf@cygnus.com>
|
||||||
|
|
||||||
|
* path.cc (path_conv::check): Deal more robustly with foo/ behavior.
|
||||||
|
|
||||||
Fri Jun 15 11:15:00 2001 Corinna Vinschen <corinna@vinschen.de>
|
Fri Jun 15 11:15:00 2001 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* fhandler_tape.cc (fhandler_dev_tape::tape_status): Set size
|
* fhandler_tape.cc (fhandler_dev_tape::tape_status): Set size
|
||||||
|
|
|
@ -411,18 +411,18 @@ path_conv::check (const char *src, unsigned opt,
|
||||||
{
|
{
|
||||||
MALLOC_CHECK;
|
MALLOC_CHECK;
|
||||||
assert (src);
|
assert (src);
|
||||||
char *p = strrchr (src, '/');
|
|
||||||
|
char *p = strrchr (src, '\0');
|
||||||
/* Detect if the user was looking for a directory. We have to strip the
|
/* Detect if the user was looking for a directory. We have to strip the
|
||||||
trailing slash initially and add it back on at the end due to Windows
|
trailing slash initially and add it back on at the end due to Windows
|
||||||
brain damage. */
|
brain damage. */
|
||||||
if (p)
|
if (--p > src)
|
||||||
{
|
{
|
||||||
if (p[1] == '\0' || strcmp (p, "/.") == 0)
|
if (isdirsep (*p))
|
||||||
|
need_directory = 1;
|
||||||
|
else if (--p > src && p[1] == '.' && isdirsep (*p))
|
||||||
need_directory = 1;
|
need_directory = 1;
|
||||||
}
|
}
|
||||||
else if ((p = strrchr (src, '\\')) &&
|
|
||||||
(p[1] == '\0' || strcmp (p, "\\.") == 0))
|
|
||||||
need_directory = 1;
|
|
||||||
|
|
||||||
is_relpath = !isabspath (src);
|
is_relpath = !isabspath (src);
|
||||||
error = normalize_posix_path (src, path_copy);
|
error = normalize_posix_path (src, path_copy);
|
||||||
|
|
Loading…
Reference in New Issue