From 911df1d76cdc1d61f01b282b169dad246089b9f1 Mon Sep 17 00:00:00 2001 From: D9nni Date: Wed, 10 Jan 2024 15:15:23 +0200 Subject: [PATCH] cksum: code improvements for cksum --raw --algorithm --- src/uu/cksum/src/cksum.rs | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/src/uu/cksum/src/cksum.rs b/src/uu/cksum/src/cksum.rs index eeda3c083..40694fac6 100644 --- a/src/uu/cksum/src/cksum.rs +++ b/src/uu/cksum/src/cksum.rs @@ -176,27 +176,21 @@ where .map_err_context(|| "failed to read input".to_string())?; if options.raw { - match options.algo_name { - ALGORITHM_OPTIONS_CRC - | ALGORITHM_OPTIONS_SYSV - | ALGORITHM_OPTIONS_BSD => { + let bytes = match options.algo_name { + ALGORITHM_OPTIONS_CRC => { let bytes = sum.parse::().unwrap().to_be_bytes(); - let mut first_nonzero = 0; - for byte in bytes { - if byte != 0 { - break; - } - first_nonzero += 1; - } - stdout().write_all(&bytes[first_nonzero..])?; + bytes.to_vec() } - _ =>{ + ALGORITHM_OPTIONS_SYSV | ALGORITHM_OPTIONS_BSD => { + let bytes = sum.parse::().unwrap().to_be_bytes(); + bytes.to_vec() + } + _ => { let bytes = decode(sum).unwrap(); - stdout().write_all(&bytes)?; + bytes } - - } - + }; + stdout().write_all(&bytes)?; return Ok(()); } // The BSD checksum output is 5 digit integer