diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 6a24494f8..4f3b63625 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2003-12-26 Christopher Faylor + + * path.cc (mount_item::build_win32): Backslashify paths in non-managed + case. + 2003-12-25 Christopher Faylor * dcrt0.cc (reent_data): Reluctantly resurrect. diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc index ee550915f..228d2c8e2 100644 --- a/winsup/cygwin/exceptions.cc +++ b/winsup/cygwin/exceptions.cc @@ -710,11 +710,10 @@ setup_handler (int sig, void *handler, struct sigaction& siga, _threadinfo *tls) for (int i = 0; i < CALL_HANDLER_RETRY; i++) { - __stack_t retaddr; __stack_t *retaddr_on_stack = tls->stackptr - 1; - if (retaddr_on_stack >= tls->stack - && (retaddr = InterlockedExchange ((LONG *) retaddr_on_stack, 0))) + if (retaddr_on_stack >= tls->stack) { + __stack_t retaddr = InterlockedExchange ((LONG *) retaddr_on_stack, 0); if (!retaddr) continue; tls->reset_exception (); diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc index 0f60be4d1..a7d95df71 100644 --- a/winsup/cygwin/path.cc +++ b/winsup/cygwin/path.cc @@ -1280,7 +1280,10 @@ mount_item::build_win32 (char *dst, const char *src, unsigned *outflags, unsigne else if ((!(flags & MOUNT_ENC) && isdrive (dst) && !dst[2]) || *p) dst[n++] = '\\'; if (!*p || !(flags & MOUNT_ENC)) - strcpy (dst + n, p); + { + strcpy (dst + n, p); + backslashify (dst, dst, 0); + } else while (*p) {