@@ -1135,18 +1135,19 @@ pub fn last_os_error() -> ~str {
1135
1135
#[ fixed_stack_segment] ; #[ inline( never) ] ;
1136
1136
1137
1137
use libc:: types:: os:: arch:: extra:: DWORD ;
1138
- use libc:: types:: os:: arch:: extra:: LPSTR ;
1138
+ use libc:: types:: os:: arch:: extra:: LPWSTR ;
1139
1139
use libc:: types:: os:: arch:: extra:: LPVOID ;
1140
+ use libc:: types:: os:: arch:: extra:: WCHAR ;
1140
1141
1141
1142
#[ cfg( target_arch = "x86" ) ]
1142
1143
#[ link_name = "kernel32" ]
1143
1144
#[ abi = "stdcall" ]
1144
1145
extern "stdcall" {
1145
- fn FormatMessageA ( flags : DWORD ,
1146
+ fn FormatMessageW ( flags : DWORD ,
1146
1147
lpSrc : LPVOID ,
1147
1148
msgId : DWORD ,
1148
1149
langId : DWORD ,
1149
- buf : LPSTR ,
1150
+ buf : LPWSTR ,
1150
1151
nsize : DWORD ,
1151
1152
args : * c_void )
1152
1153
-> DWORD ;
@@ -1155,11 +1156,11 @@ pub fn last_os_error() -> ~str {
1155
1156
#[ cfg( target_arch = "x86_64" ) ]
1156
1157
#[ link_name = "kernel32" ]
1157
1158
extern {
1158
- fn FormatMessageA ( flags : DWORD ,
1159
+ fn FormatMessageW ( flags : DWORD ,
1159
1160
lpSrc : LPVOID ,
1160
1161
msgId : DWORD ,
1161
1162
langId : DWORD ,
1162
- buf : LPSTR ,
1163
+ buf : LPWSTR ,
1163
1164
nsize : DWORD ,
1164
1165
args : * c_void )
1165
1166
-> DWORD ;
@@ -1173,11 +1174,11 @@ pub fn last_os_error() -> ~str {
1173
1174
let langId = 0x0800 as DWORD ;
1174
1175
let err = errno ( ) as DWORD ;
1175
1176
1176
- let mut buf = [ 0 as c_char , ..TMPBUF_SZ ] ;
1177
+ let mut buf = [ 0 as WCHAR , ..TMPBUF_SZ ] ;
1177
1178
1178
1179
unsafe {
1179
1180
do buf. as_mut_buf |buf, len| {
1180
- let res = FormatMessageA ( FORMAT_MESSAGE_FROM_SYSTEM |
1181
+ let res = FormatMessageW ( FORMAT_MESSAGE_FROM_SYSTEM |
1181
1182
FORMAT_MESSAGE_IGNORE_INSERTS ,
1182
1183
ptr:: mut_null ( ) ,
1183
1184
err,
@@ -1190,9 +1191,7 @@ pub fn last_os_error() -> ~str {
1190
1191
}
1191
1192
}
1192
1193
1193
- do buf. as_imm_buf |buf, _len| {
1194
- str:: raw:: from_c_str ( buf)
1195
- }
1194
+ str:: from_utf16 ( buf)
1196
1195
}
1197
1196
}
1198
1197
0 commit comments