From d414dbc83beef3bfd8c8283440fadd34295ae8f4 Mon Sep 17 00:00:00 2001 From: Daniel Hofstetter Date: Tue, 17 Dec 2024 10:52:25 +0100 Subject: [PATCH] basenc: ignore case with "--base16 --decode" --- src/uu/base32/src/base_common.rs | 6 +++--- tests/by-util/test_basenc.rs | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/uu/base32/src/base_common.rs b/src/uu/base32/src/base_common.rs index 84a461963..878d07a92 100644 --- a/src/uu/base32/src/base_common.rs +++ b/src/uu/base32/src/base_common.rs @@ -11,7 +11,7 @@ use std::io::{self, ErrorKind, Read, Seek, SeekFrom}; use std::path::{Path, PathBuf}; use uucore::display::Quotable; use uucore::encoding::{ - for_base_common::{BASE32, BASE32HEX, BASE64, BASE64URL, BASE64_NOPAD, HEXUPPER}, + for_base_common::{BASE32, BASE32HEX, BASE64, BASE64URL, BASE64_NOPAD, HEXUPPER_PERMISSIVE}, Format, Z85Wrapper, BASE2LSBF, BASE2MSBF, }; use uucore::encoding::{EncodingWrapper, SupportsFastDecodeAndEncode}; @@ -226,11 +226,11 @@ pub fn get_supports_fast_decode_and_encode( match format { Format::Base16 => Box::from(EncodingWrapper::new( - HEXUPPER, + HEXUPPER_PERMISSIVE, BASE16_VALID_DECODING_MULTIPLE, BASE16_UNPADDED_MULTIPLE, // spell-checker:disable-next-line - b"0123456789ABCDEF", + b"0123456789ABCDEFabcdef", )), Format::Base2Lsbf => Box::from(EncodingWrapper::new( BASE2LSBF, diff --git a/tests/by-util/test_basenc.rs b/tests/by-util/test_basenc.rs index 85c05ad3e..c0f40cd1d 100644 --- a/tests/by-util/test_basenc.rs +++ b/tests/by-util/test_basenc.rs @@ -130,6 +130,24 @@ fn test_base16_decode() { .stdout_only("Hello, World!"); } +#[test] +fn test_base16_decode_lowercase() { + new_ucmd!() + .args(&["--base16", "-d"]) + .pipe_in("48656c6c6f2c20576f726c6421") + .succeeds() + .stdout_only("Hello, World!"); +} + +#[test] +fn test_base16_decode_and_ignore_garbage_lowercase() { + new_ucmd!() + .args(&["--base16", "-d", "-i"]) + .pipe_in("48656c6c6f2c20576f726c6421") + .succeeds() + .stdout_only("Hello, World!"); +} + #[test] fn test_base2msbf() { new_ucmd!()