From b41d591cded43ed1f0ecdf7565236521ac6c109d Mon Sep 17 00:00:00 2001 From: vishakha1411 Date: Mon, 6 Apr 2026 08:06:10 +0530 Subject: [PATCH] date: fix %#P case-swap on lowercase am/pm --- src/uu/date/src/format_modifiers.rs | 5 ++++- tests/by-util/test_date.rs | 1 - 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/uu/date/src/format_modifiers.rs b/src/uu/date/src/format_modifiers.rs index 8c18c3cca..8fffaf1ce 100644 --- a/src/uu/date/src/format_modifiers.rs +++ b/src/uu/date/src/format_modifiers.rs @@ -337,7 +337,10 @@ fn apply_modifiers( .all(|c| !c.is_alphabetic() || c.is_uppercase()) { result = result.to_lowercase(); - } else { + } else if !result + .chars() + .all(|c| !c.is_alphabetic() || c.is_lowercase()) + { result = result.to_uppercase(); } } diff --git a/tests/by-util/test_date.rs b/tests/by-util/test_date.rs index de347a17d..919a096d0 100644 --- a/tests/by-util/test_date.rs +++ b/tests/by-util/test_date.rs @@ -1888,7 +1888,6 @@ fn test_date_input_trailing_tz_abbrev_rezones() { } #[test] -#[ignore = "https://github.com/uutils/coreutils/issues/11659 — GNU date treats the `#` case-swap flag as no-op on `%P` (already-lowercase alt); uutils uppercases it to `PM`."] fn test_date_strftime_case_flag_on_alt_ampm() { // `%P` is GNU's lowercase am/pm. `%#P` should stay lowercase in GNU; uutils flips to `PM`. new_ucmd!()