mirror of
https://github.com/RGBCube/uutils-coreutils
synced 2025-07-28 19:47:45 +00:00
od: fix parsing of hex input ending with E
This commit is contained in:
parent
07c538f090
commit
b7154a80e1
2 changed files with 31 additions and 1 deletions
|
@ -43,7 +43,7 @@ pub fn parse_number_of_bytes(s: &str) -> Result<u64, ParseSizeError> {
|
||||||
len -= 1;
|
len -= 1;
|
||||||
}
|
}
|
||||||
#[cfg(target_pointer_width = "64")]
|
#[cfg(target_pointer_width = "64")]
|
||||||
Some('E') => {
|
Some('E') if radix != 16 => {
|
||||||
multiply = 1024 * 1024 * 1024 * 1024 * 1024 * 1024;
|
multiply = 1024 * 1024 * 1024 * 1024 * 1024 * 1024;
|
||||||
len -= 1;
|
len -= 1;
|
||||||
}
|
}
|
||||||
|
@ -84,6 +84,7 @@ fn test_parse_number_of_bytes() {
|
||||||
|
|
||||||
// hex input
|
// hex input
|
||||||
assert_eq!(15, parse_number_of_bytes("0xf").unwrap());
|
assert_eq!(15, parse_number_of_bytes("0xf").unwrap());
|
||||||
|
assert_eq!(14, parse_number_of_bytes("0XE").unwrap());
|
||||||
assert_eq!(15, parse_number_of_bytes("0XF").unwrap());
|
assert_eq!(15, parse_number_of_bytes("0XF").unwrap());
|
||||||
assert_eq!(27, parse_number_of_bytes("0x1b").unwrap());
|
assert_eq!(27, parse_number_of_bytes("0x1b").unwrap());
|
||||||
assert_eq!(16 * 1024, parse_number_of_bytes("0x10k").unwrap());
|
assert_eq!(16 * 1024, parse_number_of_bytes("0x10k").unwrap());
|
||||||
|
|
|
@ -627,6 +627,35 @@ fn test_skip_bytes() {
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_skip_bytes_hex() {
|
||||||
|
let input = "abcdefghijklmnopq"; // spell-checker:disable-line
|
||||||
|
new_ucmd!()
|
||||||
|
.arg("-c")
|
||||||
|
.arg("--skip-bytes=0xB")
|
||||||
|
.run_piped_stdin(input.as_bytes())
|
||||||
|
.no_stderr()
|
||||||
|
.success()
|
||||||
|
.stdout_is(unindent(
|
||||||
|
"
|
||||||
|
0000013 l m n o p q
|
||||||
|
0000021
|
||||||
|
",
|
||||||
|
));
|
||||||
|
new_ucmd!()
|
||||||
|
.arg("-c")
|
||||||
|
.arg("--skip-bytes=0xE")
|
||||||
|
.run_piped_stdin(input.as_bytes())
|
||||||
|
.no_stderr()
|
||||||
|
.success()
|
||||||
|
.stdout_is(unindent(
|
||||||
|
"
|
||||||
|
0000016 o p q
|
||||||
|
0000021
|
||||||
|
",
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_skip_bytes_error() {
|
fn test_skip_bytes_error() {
|
||||||
let input = "12345";
|
let input = "12345";
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue