1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-28 03:27:44 +00:00

Allow echo with escapes to work with \0

Testing with gecho on macos outputs a nul character for a \0
This commit is contained in:
Zachary Dremann 2022-01-30 17:15:29 -05:00
parent 7b3cfcf708
commit d6a0b3c920
2 changed files with 11 additions and 6 deletions

View file

@ -88,10 +88,7 @@ fn print_escaped(input: &str, mut output: impl Write) -> io::Result<bool> {
start = 0; start = 0;
next next
}), }),
'0' => parse_code(&mut iter, 8, 3, 3).unwrap_or_else(|| { '0' => parse_code(&mut iter, 8, 3, 3).unwrap_or('\0'),
start = 0;
next
}),
_ => { _ => {
start = 0; start = 0;
next next

View file

@ -138,11 +138,19 @@ fn test_escape_short_octal() {
} }
#[test] #[test]
fn test_escape_no_octal() { fn test_escape_nul() {
new_ucmd!() new_ucmd!()
.args(&["-e", "foo\\0 bar"]) .args(&["-e", "foo\\0 bar"])
.succeeds() .succeeds()
.stdout_only("foo\\0 bar\n"); .stdout_only("foo\0 bar\n");
}
#[test]
fn test_escape_octal_invalid_digit() {
new_ucmd!()
.args(&["-e", "foo\\08 bar"])
.succeeds()
.stdout_only("foo\u{0}8 bar\n");
} }
#[test] #[test]