Fix setlocale return value
This commit is contained in:
@@ -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
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user