mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
fix Windows warnings
This commit is contained in:

committed by
Alexander Medvednikov

parent
e577b40743
commit
1dadf9d966
@ -162,9 +162,10 @@ fn v_ptr_free(ptr voidptr) {
|
||||
|
||||
pub fn is_atty(fd int) int {
|
||||
$if windows {
|
||||
mut mode := 0
|
||||
C.GetConsoleMode(C._get_osfhandle(fd), &mode)
|
||||
return mode
|
||||
mut mode := u32(0)
|
||||
osfh := voidptr(C._get_osfhandle(fd))
|
||||
C.GetConsoleMode(osfh, voidptr(&mode))
|
||||
return int(mode)
|
||||
} $else {
|
||||
return C.isatty(fd)
|
||||
}
|
||||
|
@ -32,5 +32,13 @@ fn C.realpath(byteptr, byteptr) &char
|
||||
// Windows
|
||||
fn C._setmode(int, int)
|
||||
fn C._fileno(int) int
|
||||
|
||||
|
||||
fn C._get_osfhandle(fd int) C.intptr_t
|
||||
fn C.GetModuleFileNameW(hModule voidptr, lpFilename &u16, nSize u32) u32
|
||||
fn C.CreatePipe(hReadPipe &voidptr, hWritePipe &voidptr, lpPipeAttributes voidptr, nSize u32) bool
|
||||
fn C.SetHandleInformation(hObject voidptr, dwMask u32, dwFlags u32) bool
|
||||
fn C.ExpandEnvironmentStringsW(lpSrc &u16, lpDst &u16, nSize u32) u32
|
||||
fn C.CreateProcessW(lpApplicationName &u16, lpCommandLine &u16, lpProcessAttributes voidptr, lpThreadAttributes voidptr, bInheritHandles bool, dwCreationFlags u32, lpEnvironment voidptr, lpCurrentDirectory &u16, lpStartupInfo voidptr, lpProcessInformation voidptr) bool
|
||||
fn C.ReadFile(hFile voidptr, lpBuffer voidptr, nNumberOfBytesToRead u32, lpNumberOfBytesRead voidptr, lpOverlapped voidptr) bool
|
||||
fn C.GetFileAttributesW(lpFileName byteptr) u32
|
||||
fn C.RegQueryValueExW(hKey voidptr, lpValueName &u16, lpReserved &u32, lpType &u32, lpData byteptr, lpcbData &u32) int
|
||||
fn C.RegOpenKeyExW(hKey voidptr, lpSubKey &u16, ulOptions u32, samDesired u32, phkResult voidptr) int
|
||||
|
@ -96,17 +96,17 @@ const (
|
||||
)
|
||||
|
||||
pub fn (_str string) to_wide() &u16 {
|
||||
$if windows {
|
||||
num_chars := int(C.MultiByteToWideChar(CP_UTF8, 0, _str.str, _str.len, 0, 0))
|
||||
mut wstr := &u16(malloc((num_chars + 1) * 2)) // sizeof(wchar_t)
|
||||
if wstr > 0 {
|
||||
C.MultiByteToWideChar(CP_UTF8, 0, _str.str, _str.len, wstr, num_chars)
|
||||
C.memset(&byte(wstr) + num_chars * 2, 0, 2)
|
||||
}
|
||||
return wstr
|
||||
} $else {
|
||||
return 0
|
||||
}
|
||||
$if windows {
|
||||
num_chars := int(C.MultiByteToWideChar(CP_UTF8, 0, _str.str, _str.len, 0, 0))
|
||||
mut wstr := &u16(malloc((num_chars + 1) * 2)) // sizeof(wchar_t)
|
||||
if !isnil(wstr) {
|
||||
C.MultiByteToWideChar(CP_UTF8, 0, _str.str, _str.len, wstr, num_chars)
|
||||
C.memset(&byte(wstr) + num_chars * 2, 0, 2)
|
||||
}
|
||||
return wstr
|
||||
} $else {
|
||||
return 0
|
||||
}
|
||||
}
|
||||
|
||||
pub fn string_from_wide(_wstr &u16) string {
|
||||
@ -122,7 +122,7 @@ pub fn string_from_wide2(_wstr &u16, len int) string {
|
||||
$if windows {
|
||||
num_chars := int(C.WideCharToMultiByte(CP_UTF8, 0, _wstr, len, 0, 0, 0, 0))
|
||||
mut str_to := &byte(malloc(num_chars + 1))
|
||||
if str_to > 0 {
|
||||
if !isnil(str_to) {
|
||||
C.WideCharToMultiByte(CP_UTF8, 0, _wstr, len, str_to, num_chars, 0, 0)
|
||||
C.memset(&byte(str_to) + num_chars, 0, 1)
|
||||
}
|
||||
|
Reference in New Issue
Block a user