* path.cc (cwdstuff::set): Avoid removing a nonexistent trailing slash.
This commit is contained in:
parent
0072a41129
commit
9971adf5aa
@ -1,3 +1,7 @@
|
|||||||
|
2009-05-28 Christopher Faylor <me+cygwin@cgf.cx>
|
||||||
|
|
||||||
|
* path.cc (cwdstuff::set): Avoid removing a nonexistent trailing slash.
|
||||||
|
|
||||||
2009-05-20 Eric Blake <ebb9@byu.net>
|
2009-05-20 Eric Blake <ebb9@byu.net>
|
||||||
|
|
||||||
* net.cc (gethostby_helper): Use correct signedness.
|
* net.cc (gethostby_helper): Use correct signedness.
|
||||||
|
@ -63,7 +63,6 @@ extern "C"
|
|||||||
const char *cygwin_inet_ntop (int, const void *, char *, socklen_t);
|
const char *cygwin_inet_ntop (int, const void *, char *, socklen_t);
|
||||||
int dn_length1(const unsigned char *, const unsigned char *,
|
int dn_length1(const unsigned char *, const unsigned char *,
|
||||||
const unsigned char *);
|
const unsigned char *);
|
||||||
|
|
||||||
} /* End of "C" section */
|
} /* End of "C" section */
|
||||||
|
|
||||||
const struct in6_addr in6addr_any = {{IN6ADDR_ANY_INIT}};
|
const struct in6_addr in6addr_any = {{IN6ADDR_ANY_INIT}};
|
||||||
@ -119,7 +118,6 @@ inet_netof (struct in_addr in)
|
|||||||
else
|
else
|
||||||
res = (i & IN_CLASSC_NET) >> IN_CLASSC_NSHIFT;
|
res = (i & IN_CLASSC_NET) >> IN_CLASSC_NSHIFT;
|
||||||
|
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3180,8 +3180,9 @@ cwdstuff::set (PUNICODE_STRING nat_cwd, const char *posix_cwd, bool doit)
|
|||||||
pdir->Length + 2);
|
pdir->Length + 2);
|
||||||
RtlCopyUnicodeString (&win32, pdir);
|
RtlCopyUnicodeString (&win32, pdir);
|
||||||
RtlReleasePebLock ();
|
RtlReleasePebLock ();
|
||||||
/* Remove trailing slash. */
|
/* Remove trailing slash if one exists. FIXME: Is there a better way to
|
||||||
if (win32.Length > 3 * sizeof (WCHAR))
|
do this? */
|
||||||
|
if (win32.Length > 3 * sizeof (WCHAR) && win32.Buffer[win32.Length - 1] == L'\\')
|
||||||
win32.Length -= sizeof (WCHAR);
|
win32.Length -= sizeof (WCHAR);
|
||||||
posix_cwd = NULL;
|
posix_cwd = NULL;
|
||||||
}
|
}
|
||||||
@ -3197,15 +3198,17 @@ cwdstuff::set (PUNICODE_STRING nat_cwd, const char *posix_cwd, bool doit)
|
|||||||
upath.Buffer[0] = L'\\';
|
upath.Buffer[0] = L'\\';
|
||||||
upath.Length = len * sizeof (WCHAR);
|
upath.Length = len * sizeof (WCHAR);
|
||||||
}
|
}
|
||||||
else if (upath.Length > 3 * sizeof (WCHAR))
|
/* Remove trailing slash if one exists. FIXME: Is there a better way to
|
||||||
upath.Length -= sizeof (WCHAR); /* Strip trailing backslash */
|
do this? */
|
||||||
|
else if (upath.Length > 3 * sizeof (WCHAR) && upath.Buffer[upath.Length] == L'\\')
|
||||||
|
upath.Length -= sizeof (WCHAR);
|
||||||
RtlInitEmptyUnicodeString (&win32,
|
RtlInitEmptyUnicodeString (&win32,
|
||||||
(PWCHAR) crealloc_abort (win32.Buffer,
|
(PWCHAR) crealloc_abort (win32.Buffer,
|
||||||
upath.Length + 2),
|
upath.Length + 2),
|
||||||
upath.Length + 2);
|
upath.Length + 2);
|
||||||
RtlCopyUnicodeString (&win32, &upath);
|
RtlCopyUnicodeString (&win32, &upath);
|
||||||
}
|
}
|
||||||
/* Make sure it's NUL-termniated. */
|
/* Make sure it's NUL-terminated. */
|
||||||
win32.Buffer[win32.Length / sizeof (WCHAR)] = L'\0';
|
win32.Buffer[win32.Length / sizeof (WCHAR)] = L'\0';
|
||||||
if (!doit) /* Virtual path */
|
if (!doit) /* Virtual path */
|
||||||
drive_length = 0;
|
drive_length = 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user