Fix setlocale return value

This commit is contained in:
jD91mZM2
2018-06-22 14:49:02 +02:00
parent 996445a6a3
commit 0a3c8abe95
2 changed files with 6 additions and 4 deletions
+5 -3
View File
@@ -9,6 +9,7 @@ use core::ptr;
use platform::types::*;
const EMPTY_PTR: *const c_char = "\0" as *const _ as *const c_char;
static mut C_LOCALE: [c_char; 2] = [b'C' as c_char, 0];
#[repr(C)]
#[no_mangle]
@@ -61,10 +62,11 @@ pub extern "C" fn localeconv() -> *const lconv {
}
#[no_mangle]
pub extern "C" fn setlocale(_option: c_int, val: *const c_char) -> *const c_char {
pub unsafe extern "C" fn setlocale(_option: c_int, val: *const c_char) -> *mut c_char {
if val.is_null() {
return "C\0".as_ptr() as *const c_char;
// Can't use string``
return C_LOCALE.as_mut_ptr() as *mut c_char;
}
// TODO actually implement
ptr::null()
ptr::null_mut()
}
+1 -1
View File
@@ -4,7 +4,7 @@
int main() {
// TODO: Implement locale properly and test it here
const char* val = setlocale(LC_ALL, NULL);
char* val = setlocale(LC_ALL, NULL);
if (strcmp(val, "C") == 0) {
puts("success!");
} else {