diff --git a/src/header/fmtmsg/mod.rs b/src/header/fmtmsg/mod.rs index 235ea40068..56e983e5c2 100644 --- a/src/header/fmtmsg/mod.rs +++ b/src/header/fmtmsg/mod.rs @@ -77,7 +77,7 @@ unsafe fn strcolcmp(mut lstr: *const c_char, mut bstr: *const c_char) -> c_int { lstr = lstr.add(1); bstr = bstr.add(1); } - if *lstr != 0 || (*bstr != 0 && *bstr != b':' as c_char) { + if *lstr != 0 || (*bstr != 0 && *bstr != b':'.cast_signed()) { 1 } else { 0 diff --git a/src/header/getopt/mod.rs b/src/header/getopt/mod.rs index 1cc310a677..bf003e4191 100644 --- a/src/header/getopt/mod.rs +++ b/src/header/getopt/mod.rs @@ -61,7 +61,7 @@ pub unsafe extern "C" fn getopt_long( let current_arg = unsafe { *argv.offset(optind as isize) }; if unsafe { current_arg.is_null() - || *current_arg != b'-' as c_char + || *current_arg != b'-'.cast_signed() || *current_arg.offset(1) == 0 } { -1 @@ -74,7 +74,7 @@ pub unsafe extern "C" fn getopt_long( // remove the '-' let current_arg = unsafe { current_arg.offset(1) }; - if unsafe { *current_arg == b'-' as c_char } && !longopts.is_null() { + if unsafe { *current_arg == b'-'.cast_signed() } && !longopts.is_null() { let current_arg = unsafe { current_arg.offset(1) }; // is a long option for i in 0.. { @@ -86,7 +86,7 @@ pub unsafe extern "C" fn getopt_long( let mut end = 0; while { let c = unsafe { *current_arg.offset(end) }; - c != 0 && c != b'=' as c_char + c != 0 && c != b'='.cast_signed() } { end += 1; } @@ -101,18 +101,18 @@ pub unsafe extern "C" fn getopt_long( if opt.has_arg == optional_argument { unsafe { - if *current_arg.offset(end) == b'=' as c_char { + if *current_arg.offset(end) == b'='.cast_signed() { optarg = current_arg.offset(end + 1); } } } else if opt.has_arg == required_argument { unsafe { - if *current_arg.offset(end) == b'=' as c_char { + if *current_arg.offset(end) == b'='.cast_signed() { optarg = current_arg.offset(end + 1); } else if optind < argc { optarg = *argv.offset(optind as isize); optind += 1; - } else if *optstring == b':' as c_char { + } else if *optstring == b':'.cast_signed() { return c_int::from(b':'); } else { stdio::fputs((*argv).cast_const(), &raw mut *stdio::stderr); @@ -183,7 +183,7 @@ unsafe fn parse_arg( CURRENT_OPT = ptr::null_mut(); optopt = c_int::from(*current_arg); - let errch = if *optstring == b':' as c_char { + let errch = if *optstring == b':'.cast_signed() { b':' } else { if opterr != 0 { @@ -231,7 +231,7 @@ unsafe fn find_option(ch: c_char, optstring: *const c_char) -> Option *mut c_char { return c".".as_ptr().cast_mut(); } let mut end = unsafe { strlen(str) as isize - 1 }; - while end >= 0 && unsafe { *str.offset(end) == b'/' as c_char } { + while end >= 0 && unsafe { *str.offset(end) == b'/'.cast_signed() } { end -= 1; } if end == -1 { return c"/".as_ptr().cast_mut(); } let mut begin = end; - while begin >= 0 && unsafe { *str.offset(begin) != b'/' as c_char } { + while begin >= 0 && unsafe { *str.offset(begin) != b'/'.cast_signed() } { begin -= 1; } unsafe { @@ -36,13 +36,13 @@ pub unsafe extern "C" fn dirname(str: *mut c_char) -> *mut c_char { return c".".as_ptr().cast_mut(); } let mut end = unsafe { strlen(str) as isize - 1 }; - while end > 0 && unsafe { *str.offset(end) == b'/' as c_char } { + while end > 0 && unsafe { *str.offset(end) == b'/'.cast_signed() } { end -= 1; } - while end >= 0 && unsafe { *str.offset(end) != b'/' as c_char } { + while end >= 0 && unsafe { *str.offset(end) != b'/'.cast_signed() } { end -= 1; } - while end > 0 && unsafe { *str.offset(end) == b'/' as c_char } { + while end > 0 && unsafe { *str.offset(end) == b'/'.cast_signed() } { end -= 1; } if end == -1 { diff --git a/src/header/locale/mod.rs b/src/header/locale/mod.rs index d8f9e54bd3..b6dd7aa33f 100644 --- a/src/header/locale/mod.rs +++ b/src/header/locale/mod.rs @@ -15,7 +15,7 @@ use crate::{ }; // Can't use &str because of the mutability -static mut C_LOCALE: [c_char; 2] = [b'C' as c_char, 0]; +static mut C_LOCALE: [c_char; 2] = [b'C'.cast_signed(), 0]; mod constants; use constants::*; diff --git a/src/header/stdio/mod.rs b/src/header/stdio/mod.rs index 93e717c827..11e18a428b 100644 --- a/src/header/stdio/mod.rs +++ b/src/header/stdio/mod.rs @@ -553,9 +553,9 @@ pub unsafe extern "C" fn flockfile(file: *mut FILE) { #[unsafe(no_mangle)] pub unsafe extern "C" fn fopen(filename: *const c_char, mode: *const c_char) -> *mut FILE { let initial_mode = unsafe { *mode }; - if initial_mode != b'r' as c_char - && initial_mode != b'w' as c_char - && initial_mode != b'a' as c_char + if initial_mode != b'r'.cast_signed() + && initial_mode != b'w'.cast_signed() + && initial_mode != b'a'.cast_signed() { platform::ERRNO.set(errno::EINVAL); return ptr::null_mut(); @@ -1291,7 +1291,7 @@ pub unsafe extern "C" fn tempnam(dir: *const c_char, pfx: *const c_char) -> *mut if !out_buf.is_null() { // copy the directory name and prefix into the allocated buffer unsafe { out_buf.copy_from_nonoverlapping(dirname, dirname_len) }; - unsafe { *out_buf.add(dirname_len) = b'/' as _ }; + unsafe { *out_buf.add(dirname_len) = b'/'.cast_signed() }; unsafe { out_buf .add(dirname_len + 1) @@ -1350,7 +1350,7 @@ pub unsafe extern "C" fn tmpnam(s: *mut c_char) -> *mut c_char { s }; - unsafe { *buf = b'/' as _ }; + unsafe { *buf = b'/'.cast_signed() }; unsafe { #[allow(deprecated)] tmpnam_inner(buf, 1) diff --git a/src/header/stdlib/mod.rs b/src/header/stdlib/mod.rs index 5477101ea1..ee7a3c1026 100644 --- a/src/header/stdlib/mod.rs +++ b/src/header/stdlib/mod.rs @@ -421,13 +421,13 @@ unsafe fn find_env(search: *const c_char) -> Option<(usize, *mut c_char)> { for (i, mut item) in platform::environ_iter().enumerate() { let mut search = search; loop { - let end_of_query = unsafe { *search } == 0 || unsafe { *search } == b'=' as c_char; + let end_of_query = unsafe { *search } == 0 || unsafe { *search } == b'='.cast_signed(); if unsafe { *item } == 0 { //TODO: environ has an item without value, is this a problem? break; } - if unsafe { *item } == b'=' as c_char || end_of_query { - if unsafe { *item } == b'=' as c_char && end_of_query { + if unsafe { *item } == b'='.cast_signed() || end_of_query { + if unsafe { *item } == b'='.cast_signed() && end_of_query { // Both keys env here return Some((i, unsafe { item.add(1) })); } else { @@ -475,7 +475,7 @@ pub unsafe extern "C" fn getsubopt( let mut found_comma = false; while unsafe { *cursor } != 0 { - if unsafe { *cursor } == b',' as c_char { + if unsafe { *cursor } == b','.cast_signed() { unsafe { *cursor = 0 }; unsafe { *optionp = cursor.add(1) }; found_comma = true; @@ -496,7 +496,7 @@ pub unsafe extern "C" fn getsubopt( if unsafe { strncmp(start, token, token_len) } == 0 { let suffix_char = unsafe { *start.add(token_len) }; - if suffix_char == b'=' as c_char { + if suffix_char == b'='.cast_signed() { unsafe { *valuep = start.add(token_len + 1) }; return i as c_int; } else if suffix_char == 0 { @@ -754,7 +754,7 @@ where } for i in (len - suffix_len - 6)..(len - suffix_len) { - if unsafe { *name.offset(i as isize) } != b'X' as c_char { + if unsafe { *name.offset(i as isize) } != b'X'.cast_signed() { platform::ERRNO.set(errno::EINVAL); return None; } @@ -1258,7 +1258,7 @@ unsafe fn copy_kv( value_len: usize, ) { unsafe { core::ptr::copy_nonoverlapping(key, existing, key_len) }; - unsafe { core::ptr::write(existing.add(key_len), b'=' as c_char) }; + unsafe { core::ptr::write(existing.add(key_len), b'='.cast_signed()) }; unsafe { core::ptr::copy_nonoverlapping(value, existing.add(key_len + 1), value_len) }; unsafe { core::ptr::write(existing.add(key_len + 1 + value_len), 0) }; } @@ -1365,8 +1365,8 @@ pub unsafe extern "C" fn srandom(seed: c_uint) { pub fn is_positive(ch: c_char) -> Option<(bool, isize)> { match ch { 0 => None, - ch if ch == b'+' as c_char => Some((true, 1)), - ch if ch == b'-' as c_char => Some((false, 1)), + ch if ch == b'+'.cast_signed() => Some((true, 1)), + ch if ch == b'-'.cast_signed() => Some((false, 1)), _ => Some((true, 0)), } } @@ -1391,7 +1391,7 @@ pub unsafe fn detect_base(s: *const c_char) -> Option<(c_int, isize)> { } pub unsafe fn convert_octal(s: *const c_char) -> Option<(c_ulong, isize, bool)> { - if unsafe { *s } != 0 && unsafe { *s } == b'0' as c_char { + if unsafe { *s } != 0 && unsafe { *s } == b'0'.cast_signed() { if let Some((val, idx, overflow)) = unsafe { convert_integer(s.offset(1), 8) } { Some((val, idx + 1, overflow)) } else { @@ -1404,10 +1404,10 @@ pub unsafe fn convert_octal(s: *const c_char) -> Option<(c_ulong, isize, bool)> } pub unsafe fn convert_hex(s: *const c_char) -> Option<(c_ulong, isize, bool)> { - if (unsafe { *s } != 0 && unsafe { *s } == b'0' as c_char) + if (unsafe { *s } != 0 && unsafe { *s } == b'0'.cast_signed()) && (unsafe { *s.offset(1) } != 0 - && (unsafe { *s.offset(1) } == b'x' as c_char - || unsafe { *s.offset(1) } == b'X' as c_char)) + && (unsafe { *s.offset(1) } == b'x'.cast_signed() + || unsafe { *s.offset(1) } == b'X'.cast_signed())) { unsafe { convert_integer(s.offset(2), 16) } .map(|(val, idx, overflow)| (val, idx + 2, overflow))