int ret_len, tmp_len;
if (!in || in_len > (size_t)INT_MAX) {
+ SET_ERRNO_FROM_WIN32_CODE(ERROR_INVALID_PARAMETERER);
return NULL;
}
assert(in_len ? in[in_len] == L'\0' : 1);
ret_len = MultiByteToWideChar(cp, flags, in, tmp_len, NULL, 0);
if (ret_len == 0) {
+ SET_ERRNO_FROM_WIN32_CODE(GetLastError());
return NULL;
}
ret = malloc(ret_len * sizeof(wchar_t));
if (!ret) {
+ SET_ERRNO_FROM_WIN32_CODE(ERROR_OUTOFMEMORY);
return NULL;
}
tmp_len = MultiByteToWideChar(cp, flags, in, tmp_len, ret, ret_len);
if (tmp_len == 0) {
free(ret);
+ SET_ERRNO_FROM_WIN32_CODE(GetLastError());
return NULL;
}
assert(in && in_len ? in[in_len] == '\0' : 1);
if (!in) {
+ SET_ERRNO_FROM_WIN32_CODE(ERROR_INVALID_PARAMETERER);
return NULL;
} else if (0 == in_len) {
/* Not binary safe. */
in_len = strlen(in);
if (in_len > (size_t)INT_MAX) {
+ SET_ERRNO_FROM_WIN32_CODE(ERROR_INVALID_PARAMETERER);
return NULL;
}
}
ret = malloc((in_len+1)*sizeof(wchar_t));
if (!ret) {
+ SET_ERRNO_FROM_WIN32_CODE(ERROR_OUTOFMEMORY);
return NULL;
}
if (-1 == k) {
free(ret);
+ SET_ERRNO_FROM_WIN32_CODE(ERROR_INVALID_PARAMETERER);
return NULL;
}
char* target;
if (!in || in_len > INT_MAX) {
+ SET_ERRNO_FROM_WIN32_CODE(ERROR_INVALID_PARAMETERER);
return NULL;
}
assert(in_len ? in[in_len] == '\0' : 1);
target_len = WideCharToMultiByte(cp, flags, in, tmp_len, NULL, 0, NULL, NULL);
if (target_len == 0) {
+ SET_ERRNO_FROM_WIN32_CODE(GetLastError());
return NULL;
}
target = malloc(target_len);
if (target == NULL) {
- SetLastError(ERROR_OUTOFMEMORY);
- _set_errno(ENOMEM);
+ SET_ERRNO_FROM_WIN32_CODE(ERROR_OUTOFMEMORY);
return NULL;
}
r = WideCharToMultiByte(cp, flags, in, tmp_len, target, target_len, NULL, NULL);
if (r == 0) {
free(target);
+ SET_ERRNO_FROM_WIN32_CODE(GetLastError());
return NULL;
}
}
}
+ SET_ERRNO_FROM_WIN32_CODE(ERROR_NOT_FOUND);
+
return NULL;
}/*}}}*/
{/*{{{*/
const struct php_win32_cp *tmp;
if (!IsValidCodePage(id)) {
+ SET_ERRNO_FROM_WIN32_CODE(ERROR_INVALID_PARAMETER);
return NULL;
}
size_t bin_len = 0;
if (!env) {
+ SET_ERRNO_FROM_WIN32_CODE(ERROR_INVALID_PARAMETER);
return NULL;
}
/* 996 */ , { ERROR_IO_INCOMPLETE , EAGAIN }
/* 997 */ , { ERROR_IO_PENDING , EAGAIN }
+ /* 1004 */ , { ERROR_INVALID_FLAGS , EINVAL }
+ /* 1113 */ , { ERROR_NO_UNICODE_TRANSLATION , EINVAL }
/* 1168 */ , { ERROR_NOT_FOUND , ENOENT }
/* 1816 */ , { ERROR_NOT_ENOUGH_QUOTA , ENOMEM }
, { ERROR_ABANDONED_WAIT_0 , EIO }