@@ -287,6 +287,7 @@ pub struct GlobalSettings {
287287 threads : String ,
288288 line_ending : LineEnding ,
289289 buffer_size : usize ,
290+ buffer_size_is_explicit : bool ,
290291 compress_prog : Option < String > ,
291292 merge_batch_size : usize ,
292293 precomputed : Precomputed ,
@@ -398,6 +399,7 @@ impl Default for GlobalSettings {
398399 threads : String :: new ( ) ,
399400 line_ending : LineEnding :: Newline ,
400401 buffer_size : FALLBACK_AUTOMATIC_BUF_SIZE ,
402+ buffer_size_is_explicit : false ,
401403 compress_prog : None ,
402404 merge_batch_size : default_merge_batch_size ( ) ,
403405 precomputed : Precomputed :: default ( ) ,
@@ -1331,13 +1333,15 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
13311333 }
13321334 }
13331335
1334- settings. buffer_size = matches. get_one :: < String > ( options:: BUF_SIZE ) . map_or_else (
1335- || Ok ( automatic_buffer_size ( & files) ) ,
1336- |s| {
1337- GlobalSettings :: parse_byte_count ( s)
1338- . map_err ( |e| USimpleError :: new ( 2 , format_error_message ( & e, s, options:: BUF_SIZE ) ) )
1339- } ,
1340- ) ?;
1336+ if let Some ( size_str) = matches. get_one :: < String > ( options:: BUF_SIZE ) {
1337+ settings. buffer_size = GlobalSettings :: parse_byte_count ( size_str) . map_err ( |e| {
1338+ USimpleError :: new ( 2 , format_error_message ( & e, size_str, options:: BUF_SIZE ) )
1339+ } ) ?;
1340+ settings. buffer_size_is_explicit = true ;
1341+ } else {
1342+ settings. buffer_size = automatic_buffer_size ( & files) ;
1343+ settings. buffer_size_is_explicit = false ;
1344+ }
13411345
13421346 let mut tmp_dir = TmpDirWrapper :: new (
13431347 matches
0 commit comments