mirror of
https://git.proxmox.com/git/libgit2
synced 2025-08-15 15:06:16 +00:00
Merge pull request #2092 from libgit2/rb/update-clar
Update to latest clar
This commit is contained in:
commit
40e10630cf
@ -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)
|
|||||||
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)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#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[])
|
|||||||
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user