fmt.sh
This commit is contained in:
+5
-1
@@ -89,7 +89,11 @@ pub unsafe extern "C" fn _start_rust(sp: &'static Stack) -> ! {
|
||||
platform::inner_environ.push(ptr::null_mut());
|
||||
platform::environ = platform::inner_environ.as_mut_ptr();
|
||||
|
||||
platform::exit(main(argc, argv as *const *const c_char, envp as *const *const c_char));
|
||||
platform::exit(main(
|
||||
argc,
|
||||
argv as *const *const c_char,
|
||||
envp as *const *const c_char,
|
||||
));
|
||||
}
|
||||
|
||||
#[panic_implementation]
|
||||
|
||||
+10
-2
@@ -264,7 +264,11 @@ unsafe fn find_env(name: *const c_char) -> Option<(usize, *mut c_char)> {
|
||||
for (i, item) in platform::inner_environ.iter().enumerate() {
|
||||
let mut item = *item;
|
||||
if item == ptr::null_mut() {
|
||||
assert_eq!(i, platform::inner_environ.len() - 1, "an early null pointer in environ vector");
|
||||
assert_eq!(
|
||||
i,
|
||||
platform::inner_environ.len() - 1,
|
||||
"an early null pointer in environ vector"
|
||||
);
|
||||
break;
|
||||
}
|
||||
let mut name = name;
|
||||
@@ -498,7 +502,11 @@ pub unsafe extern "C" fn putenv(s: *mut c_char) -> c_int {
|
||||
} else {
|
||||
ptr = platform::alloc(s_len as usize + 1) as *mut c_char;
|
||||
let i = platform::inner_environ.len() - 1;
|
||||
assert_eq!(platform::inner_environ[i], ptr::null_mut(), "last element in environ vector was not null");
|
||||
assert_eq!(
|
||||
platform::inner_environ[i],
|
||||
ptr::null_mut(),
|
||||
"last element in environ vector was not null"
|
||||
);
|
||||
platform::inner_environ[i] = ptr;
|
||||
platform::inner_environ.push(ptr::null_mut());
|
||||
|
||||
|
||||
+7
-1
@@ -341,7 +341,13 @@ pub unsafe extern "C" fn strftime(
|
||||
format: *const c_char,
|
||||
timeptr: *const tm,
|
||||
) -> size_t {
|
||||
strftime::strftime(true, &mut platform::UnsafeStringWriter(s as *mut u8), maxsize, format, timeptr)
|
||||
strftime::strftime(
|
||||
true,
|
||||
&mut platform::UnsafeStringWriter(s as *mut u8),
|
||||
maxsize,
|
||||
format,
|
||||
timeptr,
|
||||
)
|
||||
}
|
||||
|
||||
// #[no_mangle]
|
||||
|
||||
@@ -1,9 +1,15 @@
|
||||
use alloc::string::String;
|
||||
use platform::Write;
|
||||
use platform::types::*;
|
||||
use platform::Write;
|
||||
use tm;
|
||||
|
||||
pub unsafe fn strftime<W: Write>(toplevel: bool, mut w: &mut W, maxsize: usize, mut format: *const c_char, t: *const tm) -> size_t {
|
||||
pub unsafe fn strftime<W: Write>(
|
||||
toplevel: bool,
|
||||
mut w: &mut W,
|
||||
maxsize: usize,
|
||||
mut format: *const c_char,
|
||||
t: *const tm,
|
||||
) -> size_t {
|
||||
let mut written = 0;
|
||||
if toplevel {
|
||||
// Reserve nul byte
|
||||
@@ -52,7 +58,7 @@ pub unsafe fn strftime<W: Write>(toplevel: bool, mut w: &mut W, maxsize: usize,
|
||||
"Wednesday",
|
||||
"Thursday",
|
||||
"Friday",
|
||||
"Saturday"
|
||||
"Saturday",
|
||||
];
|
||||
const MONTHS: [&'static str; 12] = [
|
||||
"January",
|
||||
@@ -66,12 +72,12 @@ pub unsafe fn strftime<W: Write>(toplevel: bool, mut w: &mut W, maxsize: usize,
|
||||
"September",
|
||||
"October",
|
||||
"November",
|
||||
"December"
|
||||
"December",
|
||||
];
|
||||
|
||||
while *format != 0 {
|
||||
if *format as u8 != b'%' {
|
||||
w!(byte *format as u8);
|
||||
w!(byte(*format as u8));
|
||||
format = format.offset(1);
|
||||
continue;
|
||||
}
|
||||
@@ -98,7 +104,7 @@ pub unsafe fn strftime<W: Write>(toplevel: bool, mut w: &mut W, maxsize: usize,
|
||||
year += 1;
|
||||
}
|
||||
w!("{:02}", year + 19);
|
||||
},
|
||||
}
|
||||
b'd' => w!("{:02}", (*t).tm_mday),
|
||||
b'D' => w!(recurse "%m/%d/%y"),
|
||||
b'e' => w!("{:2}", (*t).tm_mday),
|
||||
@@ -129,9 +135,9 @@ pub unsafe fn strftime<W: Write>(toplevel: bool, mut w: &mut W, maxsize: usize,
|
||||
b'y' => w!("{:02}", (*t).tm_year % 100),
|
||||
b'Y' => w!("{}", (*t).tm_year + 1900),
|
||||
b'z' => w!("+0000"), // TODO
|
||||
b'Z' => w!("UTC"), // TODO
|
||||
b'Z' => w!("UTC"), // TODO
|
||||
b'+' => w!(recurse "%a %b %d %T %Z %Y"),
|
||||
_ => return 0
|
||||
_ => return 0,
|
||||
}
|
||||
|
||||
format = format.offset(1);
|
||||
|
||||
Reference in New Issue
Block a user