|
@@ -27,7 +27,7 @@ const MB_LEN_MAX: c_int = 4;
|
|
|
|
|
|
#[repr(C)]
|
|
#[repr(C)]
|
|
#[derive(Clone, Copy)]
|
|
#[derive(Clone, Copy)]
|
|
-pub struct mbstate_t {}
|
|
|
|
|
|
+pub struct mbstate_t;
|
|
|
|
|
|
#[no_mangle]
|
|
#[no_mangle]
|
|
pub unsafe extern "C" fn btowc(c: c_int) -> wint_t {
|
|
pub unsafe extern "C" fn btowc(c: c_int) -> wint_t {
|
|
@@ -38,7 +38,7 @@ pub unsafe extern "C" fn btowc(c: c_int) -> wint_t {
|
|
|
|
|
|
let uc = c as u8;
|
|
let uc = c as u8;
|
|
let c = uc as c_char;
|
|
let c = uc as c_char;
|
|
- let mut ps: mbstate_t = mbstate_t {};
|
|
|
|
|
|
+ let mut ps: mbstate_t = mbstate_t;
|
|
let mut wc: wchar_t = 0;
|
|
let mut wc: wchar_t = 0;
|
|
let saved_errno = platform::errno;
|
|
let saved_errno = platform::errno;
|
|
let status = mbrtowc(&mut wc, &c as (*const c_char), 1, &mut ps);
|
|
let status = mbrtowc(&mut wc, &c as (*const c_char), 1, &mut ps);
|
|
@@ -52,7 +52,7 @@ pub unsafe extern "C" fn btowc(c: c_int) -> wint_t {
|
|
#[no_mangle]
|
|
#[no_mangle]
|
|
pub unsafe extern "C" fn fputwc(wc: wchar_t, stream: *mut FILE) -> wint_t {
|
|
pub unsafe extern "C" fn fputwc(wc: wchar_t, stream: *mut FILE) -> wint_t {
|
|
//Convert wchar_t to multibytes first
|
|
//Convert wchar_t to multibytes first
|
|
- static mut INTERNAL: mbstate_t = mbstate_t {};
|
|
|
|
|
|
+ static mut INTERNAL: mbstate_t = mbstate_t;
|
|
let mut bytes: [c_char; MB_CUR_MAX as usize] = [0; MB_CUR_MAX as usize];
|
|
let mut bytes: [c_char; MB_CUR_MAX as usize] = [0; MB_CUR_MAX as usize];
|
|
|
|
|
|
let amount = wcrtomb(bytes.as_mut_ptr(), wc, &mut INTERNAL);
|
|
let amount = wcrtomb(bytes.as_mut_ptr(), wc, &mut INTERNAL);
|
|
@@ -96,7 +96,7 @@ pub unsafe extern "C" fn mbsinit(ps: *const mbstate_t) -> c_int {
|
|
|
|
|
|
#[no_mangle]
|
|
#[no_mangle]
|
|
pub unsafe extern "C" fn mbrlen(s: *const c_char, n: usize, ps: *mut mbstate_t) -> usize {
|
|
pub unsafe extern "C" fn mbrlen(s: *const c_char, n: usize, ps: *mut mbstate_t) -> usize {
|
|
- static mut INTERNAL: mbstate_t = mbstate_t {};
|
|
|
|
|
|
+ static mut INTERNAL: mbstate_t = mbstate_t;
|
|
mbrtowc(ptr::null_mut(), s, n, &mut INTERNAL)
|
|
mbrtowc(ptr::null_mut(), s, n, &mut INTERNAL)
|
|
}
|
|
}
|
|
|
|
|
|
@@ -108,7 +108,7 @@ pub unsafe extern "C" fn mbrtowc(
|
|
n: usize,
|
|
n: usize,
|
|
ps: *mut mbstate_t,
|
|
ps: *mut mbstate_t,
|
|
) -> usize {
|
|
) -> usize {
|
|
- static mut INTERNAL: mbstate_t = mbstate_t {};
|
|
|
|
|
|
+ static mut INTERNAL: mbstate_t = mbstate_t;
|
|
|
|
|
|
if ps.is_null() {
|
|
if ps.is_null() {
|
|
let ps = &mut INTERNAL;
|
|
let ps = &mut INTERNAL;
|
|
@@ -131,7 +131,7 @@ pub unsafe extern "C" fn mbsnrtowcs(
|
|
dst_len: usize,
|
|
dst_len: usize,
|
|
ps: *mut mbstate_t,
|
|
ps: *mut mbstate_t,
|
|
) -> usize {
|
|
) -> usize {
|
|
- static mut INTERNAL: mbstate_t = mbstate_t {};
|
|
|
|
|
|
+ static mut INTERNAL: mbstate_t = mbstate_t;
|
|
|
|
|
|
if ps.is_null() {
|
|
if ps.is_null() {
|
|
let ps = &mut INTERNAL;
|
|
let ps = &mut INTERNAL;
|