mirror of
https://git.proxmox.com/git/libgit2
synced 2025-11-03 00:21:33 +00:00
preserve windows error numbers as well
This commit is contained in:
parent
567649f2ad
commit
c2408a698a
24
src/common.h
24
src/common.h
@ -73,6 +73,30 @@ void giterr_set(int error_class, const char *string, ...);
|
||||
*/
|
||||
int giterr_set_regex(const regex_t *regex, int error_code);
|
||||
|
||||
/**
|
||||
* Gets the system error code for this thread.
|
||||
*/
|
||||
GIT_INLINE(int) giterr_system_last(void)
|
||||
{
|
||||
#ifdef GIT_WIN32
|
||||
return GetLastError();
|
||||
#else
|
||||
return errno;
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the system error code for this thread.
|
||||
*/
|
||||
GIT_INLINE(void) giterr_system_set(int code)
|
||||
{
|
||||
#ifdef GIT_WIN32
|
||||
SetLastError(code);
|
||||
#else
|
||||
errno = code;
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
* Check a versioned structure for validity
|
||||
*/
|
||||
|
||||
@ -343,11 +343,11 @@ int git_futils_mkdir(
|
||||
|
||||
/* make directory */
|
||||
if (p_mkdir(make_path.ptr, mode) < 0) {
|
||||
int tmp_errno = errno;
|
||||
int tmp_errno = giterr_system_last();
|
||||
|
||||
/* ignore error if directory already exists */
|
||||
if (p_stat(make_path.ptr, &st) < 0 || !S_ISDIR(st.st_mode)) {
|
||||
errno = tmp_errno;
|
||||
giterr_system_set(tmp_errno);
|
||||
giterr_set(GITERR_OS, "Failed to make directory '%s'", make_path.ptr);
|
||||
goto done;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user