From 882e2c391e9dc0bedb3ffdc549862294cf174ec8 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Sun, 9 Feb 2014 11:54:19 -0800 Subject: [PATCH] Fix the signature of CreateSymbolicLinkW Closes #12123 --- src/libnative/io/file.rs | 2 +- src/libstd/libc.rs | 18 ++++++++++-------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/libnative/io/file.rs b/src/libnative/io/file.rs index 25fb2809e764a..255d4da33b8b4 100644 --- a/src/libnative/io/file.rs +++ b/src/libnative/io/file.rs @@ -746,7 +746,7 @@ pub fn symlink(src: &CString, dst: &CString) -> IoResult<()> { super::mkerr_winbool(as_utf16_p(src.as_str().unwrap(), |src| { as_utf16_p(dst.as_str().unwrap(), |dst| { unsafe { libc::CreateSymbolicLinkW(dst, src, 0) } - }) + }) as libc::BOOL })) } diff --git a/src/libstd/libc.rs b/src/libstd/libc.rs index 057d618f44490..39383f993924c 100644 --- a/src/libstd/libc.rs +++ b/src/libstd/libc.rs @@ -970,6 +970,7 @@ pub mod types { pub type BOOL = c_int; pub type BYTE = u8; + pub type BOOLEAN = BYTE; pub type CCHAR = c_char; pub type CHAR = c_char; @@ -3984,15 +3985,16 @@ pub mod funcs { pub mod kernel32 { use libc::types::os::arch::c95::{c_uint}; - use libc::types::os::arch::extra::{BOOL, DWORD, SIZE_T, HMODULE}; - use libc::types::os::arch::extra::{LPCWSTR, LPWSTR, LPCSTR, LPSTR, LPCH, - LPDWORD, LPVOID, - LPCVOID, LPOVERLAPPED}; - use libc::types::os::arch::extra::{LPSECURITY_ATTRIBUTES, LPSTARTUPINFO, + use libc::types::os::arch::extra::{BOOL, DWORD, SIZE_T, HMODULE, + LPCWSTR, LPWSTR, LPCSTR, LPSTR, + LPCH, LPDWORD, LPVOID, + LPCVOID, LPOVERLAPPED, + LPSECURITY_ATTRIBUTES, + LPSTARTUPINFO, LPPROCESS_INFORMATION, LPMEMORY_BASIC_INFORMATION, - LPSYSTEM_INFO}; - use libc::types::os::arch::extra::{HANDLE, LPHANDLE, LARGE_INTEGER, + LPSYSTEM_INFO, BOOLEAN, + HANDLE, LPHANDLE, LARGE_INTEGER, PLARGE_INTEGER, LPFILETIME}; extern "system" { @@ -4105,7 +4107,7 @@ pub mod funcs { dwFlags: DWORD) -> BOOL; pub fn CreateSymbolicLinkW(lpSymlinkFileName: LPCWSTR, lpTargetFileName: LPCWSTR, - dwFlags: DWORD) -> BOOL; + dwFlags: DWORD) -> BOOLEAN; pub fn CreateHardLinkW(lpSymlinkFileName: LPCWSTR, lpTargetFileName: LPCWSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES)