aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/curl/lib/curl_multibyte.c
diff options
context:
space:
mode:
authorshadchin <shadchin@yandex-team.ru>2022-04-09 12:33:15 +0300
committershadchin <shadchin@yandex-team.ru>2022-04-09 12:33:15 +0300
commit3416ae92be9b12575d51845887e8489e773047d3 (patch)
treeae20f37194e8c35ce06338fab3936124450dd1a7 /contrib/libs/curl/lib/curl_multibyte.c
parent41c0ca282300b7347a4551d1793b605ac1593733 (diff)
downloadydb-3416ae92be9b12575d51845887e8489e773047d3.tar.gz
CONTRIB-2513 Update contrib/libs/curl to 7.78.0
ref:b290831c3e739ee8c89b5e4f10cc434f557bc92f
Diffstat (limited to 'contrib/libs/curl/lib/curl_multibyte.c')
-rw-r--r--contrib/libs/curl/lib/curl_multibyte.c50
1 files changed, 28 insertions, 22 deletions
diff --git a/contrib/libs/curl/lib/curl_multibyte.c b/contrib/libs/curl/lib/curl_multibyte.c
index 16418bee4c..e9d2a8cb88 100644
--- a/contrib/libs/curl/lib/curl_multibyte.c
+++ b/contrib/libs/curl/lib/curl_multibyte.c
@@ -102,14 +102,16 @@ int curlx_win32_open(const char *filename, int oflag, ...)
va_end(param);
#ifdef _UNICODE
- if(filename_w)
+ if(filename_w) {
result = _wopen(filename_w, oflag, pmode);
- free(filename_w);
- if(result != -1)
- return result;
-#endif
-
+ free(filename_w);
+ }
+ else
+ errno = EINVAL;
+ return result;
+#else
return (_open)(filename, oflag, pmode);
+#endif
}
FILE *curlx_win32_fopen(const char *filename, const char *mode)
@@ -120,19 +122,20 @@ FILE *curlx_win32_fopen(const char *filename, const char *mode)
wchar_t *mode_w = curlx_convert_UTF8_to_wchar(mode);
if(filename_w && mode_w)
result = _wfopen(filename_w, mode_w);
+ else
+ errno = EINVAL;
free(filename_w);
free(mode_w);
- if(result)
- return result;
-#endif
-
+ return result;
+#else
return (fopen)(filename, mode);
+#endif
}
int curlx_win32_stat(const char *path, struct_stat *buffer)
{
- int result = -1;
#ifdef _UNICODE
+ int result = -1;
wchar_t *path_w = curlx_convert_UTF8_to_wchar(path);
if(path_w) {
#if defined(USE_WIN32_SMALL_FILES)
@@ -141,31 +144,34 @@ int curlx_win32_stat(const char *path, struct_stat *buffer)
result = _wstati64(path_w, buffer);
#endif
free(path_w);
- if(result != -1)
- return result;
}
-#endif /* _UNICODE */
-
+ else
+ errno = EINVAL;
+ return result;
+#else
#if defined(USE_WIN32_SMALL_FILES)
- result = _stat(path, buffer);
+ return _stat(path, buffer);
#else
- result = _stati64(path, buffer);
+ return _stati64(path, buffer);
+#endif
#endif
- return result;
}
int curlx_win32_access(const char *path, int mode)
{
#if defined(_UNICODE)
+ int result = -1;
wchar_t *path_w = curlx_convert_UTF8_to_wchar(path);
if(path_w) {
- int result = _waccess(path_w, mode);
+ result = _waccess(path_w, mode);
free(path_w);
- if(result != -1)
- return result;
}
-#endif /* _UNICODE */
+ else
+ errno = EINVAL;
+ return result;
+#else
return _access(path, mode);
+#endif
}
#endif /* USE_WIN32_LARGE_FILES || USE_WIN32_SMALL_FILES */