|
|
@ -4,7 +4,7 @@
|
|
|
|
#[macro_use]
|
|
|
|
#[macro_use]
|
|
|
|
extern crate ucore_ulib;
|
|
|
|
extern crate ucore_ulib;
|
|
|
|
use ucore_ulib::io::getc;
|
|
|
|
use ucore_ulib::io::getc;
|
|
|
|
use ucore_ulib::syscall::{sys_fork, sys_exec, sys_wait};
|
|
|
|
use ucore_ulib::syscall::{sys_exec, sys_fork, sys_wait};
|
|
|
|
|
|
|
|
|
|
|
|
pub fn get_line(buffer: &mut [u8]) -> usize {
|
|
|
|
pub fn get_line(buffer: &mut [u8]) -> usize {
|
|
|
|
let mut pos: usize = 0;
|
|
|
|
let mut pos: usize = 0;
|
|
|
@ -34,7 +34,7 @@ pub fn get_line(buffer: &mut[u8]) -> usize {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
_ => {}
|
|
|
|
_ => {}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
pos
|
|
|
|
pos
|
|
|
@ -67,7 +67,8 @@ pub fn main() -> i32 {
|
|
|
|
if is_word {
|
|
|
|
if is_word {
|
|
|
|
offset[offset_pos] = parsed_pos;
|
|
|
|
offset[offset_pos] = parsed_pos;
|
|
|
|
offset_pos += 1;
|
|
|
|
offset_pos += 1;
|
|
|
|
parsed[parsed_pos..parsed_pos+pos-start].copy_from_slice(&cmd[start..pos]);
|
|
|
|
parsed[parsed_pos..parsed_pos + pos - start]
|
|
|
|
|
|
|
|
.copy_from_slice(&cmd[start..pos]);
|
|
|
|
parsed_pos += pos - start;
|
|
|
|
parsed_pos += pos - start;
|
|
|
|
parsed[parsed_pos] = 0;
|
|
|
|
parsed[parsed_pos] = 0;
|
|
|
|
// parsed_pos+=1;
|
|
|
|
// parsed_pos+=1;
|
|
|
@ -79,7 +80,8 @@ pub fn main() -> i32 {
|
|
|
|
is_word = false;
|
|
|
|
is_word = false;
|
|
|
|
offset[offset_pos] = parsed_pos;
|
|
|
|
offset[offset_pos] = parsed_pos;
|
|
|
|
offset_pos += 1;
|
|
|
|
offset_pos += 1;
|
|
|
|
parsed[parsed_pos..parsed_pos+pos-start].copy_from_slice(&cmd[start..pos]);
|
|
|
|
parsed[parsed_pos..parsed_pos + pos - start]
|
|
|
|
|
|
|
|
.copy_from_slice(&cmd[start..pos]);
|
|
|
|
parsed_pos += pos - start;
|
|
|
|
parsed_pos += pos - start;
|
|
|
|
parsed[parsed_pos] = 0;
|
|
|
|
parsed[parsed_pos] = 0;
|
|
|
|
parsed_pos += 1;
|
|
|
|
parsed_pos += 1;
|
|
|
|