Commit 7be88b4c by Russell Belfer

Update to latest clar

parent f9500b45
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
#endif /* __MINGW32__ */ #endif /* __MINGW32__ */
static int static int
fs__dotordotdot(WCHAR *_tocheck) fs__dotordotdot(WCHAR *_tocheck)
{ {
return _tocheck[0] == '.' && return _tocheck[0] == '.' &&
...@@ -201,7 +201,7 @@ fs_copy(const char *_source, const char *_dest) ...@@ -201,7 +201,7 @@ fs_copy(const char *_source, const char *_dest)
DWORD source_attrs, dest_attrs; DWORD source_attrs, dest_attrs;
HANDLE find_handle; HANDLE find_handle;
WIN32_FIND_DATAW find_data; WIN32_FIND_DATAW find_data;
/* The input paths are UTF-8. Convert them to wide characters /* The input paths are UTF-8. Convert them to wide characters
* for use with the Windows API. */ * for use with the Windows API. */
cl_assert(MultiByteToWideChar(CP_UTF8, cl_assert(MultiByteToWideChar(CP_UTF8,
...@@ -251,17 +251,22 @@ cl_fs_cleanup(void) ...@@ -251,17 +251,22 @@ cl_fs_cleanup(void)
} }
#else #else
#include <errno.h>
#include <string.h>
static int static int
shell_out(char * const argv[]) shell_out(char * const argv[])
{ {
int status; int status, piderr;
pid_t pid; pid_t pid;
pid = fork(); pid = fork();
if (pid < 0) { if (pid < 0) {
fprintf(stderr, fprintf(stderr,
"System error: `fork()` call failed.\n"); "System error: `fork()` call failed (%d) - %s\n",
errno, strerror(errno));
exit(-1); exit(-1);
} }
...@@ -269,7 +274,10 @@ shell_out(char * const argv[]) ...@@ -269,7 +274,10 @@ shell_out(char * const argv[])
execv(argv[0], argv); execv(argv[0], argv);
} }
waitpid(pid, &status, 0); do {
piderr = waitpid(pid, &status, WUNTRACED);
} while (piderr < 0 && (errno == EAGAIN || errno == EINTR));
return WEXITSTATUS(status); return WEXITSTATUS(status);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment