mirror of
https://github.com/nushell/nushell
synced 2024-12-26 04:53:09 +00:00
fix conflict between filesize and hexadecimal numbers (#9309)
closes #9278 # Description removes ambiguity between the `b` the filesize `bytes` unit and `b` the hex digit
This commit is contained in:
parent
3005fe10e5
commit
cc04b9a916
2 changed files with 11 additions and 0 deletions
|
@ -2217,6 +2217,12 @@ pub fn parse_filesize(working_set: &mut StateWorkingSet, span: Span) -> Expressi
|
|||
|
||||
let bytes = working_set.get_span_contents(span);
|
||||
|
||||
// the hex digit `b` might be mistaken for the unit `b`, so check that first
|
||||
if bytes.starts_with(b"0x") {
|
||||
working_set.error(ParseError::Expected("filesize with valid units", span));
|
||||
return garbage(span);
|
||||
}
|
||||
|
||||
match parse_unit_value(bytes, span, FILESIZE_UNIT_GROUPS, Type::Filesize, |x| {
|
||||
x.to_uppercase()
|
||||
}) {
|
||||
|
|
|
@ -561,3 +561,8 @@ fn filesize_with_underscores_2() -> TestResult {
|
|||
fn filesize_with_underscores_3() -> TestResult {
|
||||
fail_test("42m_b", "executable was not found")
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn filesize_is_not_hex() -> TestResult {
|
||||
run_test("0x42b", "1067")
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue