diff --git a/rust/src/zstd_cli.rs b/rust/src/zstd_cli.rs index 047203683..5af604de9 100644 --- a/rust/src/zstd_cli.rs +++ b/rust/src/zstd_cli.rs @@ -680,7 +680,7 @@ fn program_basename(value: &OsStr) -> String { #[cfg(feature = "compression")] fn max_c_level_for_help() -> i32 { - unsafe { ZSTD_maxCLevel() } + DEFAULT_MAX_CLEVEL } #[cfg(not(feature = "compression"))] @@ -688,6 +688,16 @@ const fn max_c_level_for_help() -> i32 { 19 } +#[cfg(feature = "compression")] +fn max_c_level_for_ultra() -> i32 { + unsafe { ZSTD_maxCLevel() } +} + +#[cfg(not(feature = "compression"))] +const fn max_c_level_for_ultra() -> i32 { + 19 +} + fn write_basic_usage(out: &mut W, program_name: &str) { let max_level = max_c_level_for_help(); let _ = writeln!( @@ -830,7 +840,7 @@ fn write_advanced_usage(out: &mut W, program_name: &str) { let _ = writeln!( out, " --ultra Enable levels beyond 19, up to {}; requires more memory.", - max_c_level_for_help() + max_c_level_for_ultra() ); let _ = writeln!( out, @@ -2926,6 +2936,11 @@ mod tests { assert_eq!(cli.compression_format, CompressionFormat::Zstd); } + #[test] + fn normal_help_ceiling_excludes_ultra_levels() { + assert_eq!(max_c_level_for_help(), 19); + } + #[test] fn format_option_selects_frame_type_and_suffix() { let cli = parse(&["zstd", "--format=gzip", "input"]);