diff --git a/src/uu/dd/src/parseargs.rs b/src/uu/dd/src/parseargs.rs index 59836b1a1..e26b34953 100644 --- a/src/uu/dd/src/parseargs.rs +++ b/src/uu/dd/src/parseargs.rs @@ -517,9 +517,7 @@ fn parse_bytes_no_x(full: &str, s: &str) -> Result { (None, None, None) => match parser.parse_u64(s) { Ok(n) => (n, 1), Err(ParseSizeError::SizeTooBig(_)) => (u64::MAX, 1), - Err(ParseSizeError::InvalidSuffix(_) | ParseSizeError::ParseFailure(_)) => { - return Err(ParseError::InvalidNumber(full.to_string())) - } + Err(_) => return Err(ParseError::InvalidNumber(full.to_string())), }, (Some(i), None, None) => (parse_bytes_only(s, i)?, 1), (None, Some(i), None) => (parse_bytes_only(s, i)?, 2), diff --git a/src/uu/df/src/df.rs b/src/uu/df/src/df.rs index 092c83812..8602d8af7 100644 --- a/src/uu/df/src/df.rs +++ b/src/uu/df/src/df.rs @@ -189,6 +189,7 @@ impl Options { .to_string(), ), ParseSizeError::ParseFailure(s) => OptionsError::InvalidBlockSize(s), + ParseSizeError::PhysicalMem(s) => OptionsError::InvalidBlockSize(s), })?, header_mode: { if matches.get_flag(OPT_HUMAN_READABLE_BINARY) diff --git a/src/uu/du/src/du.rs b/src/uu/du/src/du.rs index 2392497a9..bd017f1d5 100644 --- a/src/uu/du/src/du.rs +++ b/src/uu/du/src/du.rs @@ -1120,7 +1120,9 @@ fn format_error_message(error: &ParseSizeError, s: &str, option: &str) -> String ParseSizeError::InvalidSuffix(_) => { format!("invalid suffix in --{} argument {}", option, s.quote()) } - ParseSizeError::ParseFailure(_) => format!("invalid --{} argument {}", option, s.quote()), + ParseSizeError::ParseFailure(_) | ParseSizeError::PhysicalMem(_) => { + format!("invalid --{} argument {}", option, s.quote()) + } ParseSizeError::SizeTooBig(_) => format!("--{} argument {} too large", option, s.quote()), } } diff --git a/src/uu/od/src/od.rs b/src/uu/od/src/od.rs index 6dd75d307..fcb72c1ae 100644 --- a/src/uu/od/src/od.rs +++ b/src/uu/od/src/od.rs @@ -626,7 +626,9 @@ fn format_error_message(error: &ParseSizeError, s: &str, option: &str) -> String ParseSizeError::InvalidSuffix(_) => { format!("invalid suffix in --{} argument {}", option, s.quote()) } - ParseSizeError::ParseFailure(_) => format!("invalid --{} argument {}", option, s.quote()), + ParseSizeError::ParseFailure(_) | ParseSizeError::PhysicalMem(_) => { + format!("invalid --{} argument {}", option, s.quote()) + } ParseSizeError::SizeTooBig(_) => format!("--{} argument {} too large", option, s.quote()), } } diff --git a/src/uu/sort/src/sort.rs b/src/uu/sort/src/sort.rs index 0c39c2442..df72ea89d 100644 --- a/src/uu/sort/src/sort.rs +++ b/src/uu/sort/src/sort.rs @@ -1845,7 +1845,9 @@ fn format_error_message(error: &ParseSizeError, s: &str, option: &str) -> String ParseSizeError::InvalidSuffix(_) => { format!("invalid suffix in --{} argument {}", option, s.quote()) } - ParseSizeError::ParseFailure(_) => format!("invalid --{} argument {}", option, s.quote()), + ParseSizeError::ParseFailure(_) | ParseSizeError::PhysicalMem(_) => { + format!("invalid --{} argument {}", option, s.quote()) + } ParseSizeError::SizeTooBig(_) => format!("--{} argument {} too large", option, s.quote()), } } diff --git a/src/uucore/src/lib/parser/parse_size.rs b/src/uucore/src/lib/parser/parse_size.rs index 9247ad378..e581ec2ad 100644 --- a/src/uucore/src/lib/parser/parse_size.rs +++ b/src/uucore/src/lib/parser/parse_size.rs @@ -327,6 +327,9 @@ pub enum ParseSizeError { /// Overflow SizeTooBig(String), + + /// Could not determine total physical memory size. + PhysicalMem(String), } impl Error for ParseSizeError { @@ -335,6 +338,7 @@ impl Error for ParseSizeError { Self::InvalidSuffix(ref s) => s, Self::ParseFailure(ref s) => s, Self::SizeTooBig(ref s) => s, + Self::PhysicalMem(ref s) => s, } } } @@ -342,7 +346,10 @@ impl Error for ParseSizeError { impl fmt::Display for ParseSizeError { fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> { let s = match self { - Self::InvalidSuffix(s) | Self::ParseFailure(s) | Self::SizeTooBig(s) => s, + Self::InvalidSuffix(s) + | Self::ParseFailure(s) + | Self::SizeTooBig(s) + | Self::PhysicalMem(s) => s, }; write!(f, "{s}") }