From ca1ba63a0aa877a252be3d7225e14a32a2c104cf Mon Sep 17 00:00:00 2001 From: oech3 <79379754+oech3@users.noreply.github.com> Date: Thu, 23 Apr 2026 13:09:12 +0900 Subject: [PATCH] date: use cfg unix --- src/uu/date/src/locale.rs | 18 ++----------- src/uucore/src/lib/features/i18n/datetime.rs | 18 ++----------- tests/by-util/test_date.rs | 27 +++----------------- 3 files changed, 7 insertions(+), 56 deletions(-) diff --git a/src/uu/date/src/locale.rs b/src/uu/date/src/locale.rs index d5a044c734b..1095831237c 100644 --- a/src/uu/date/src/locale.rs +++ b/src/uu/date/src/locale.rs @@ -12,14 +12,7 @@ macro_rules! cfg_langinfo { ($($item:item)*) => { $( - #[cfg(any( - target_os = "linux", - target_vendor = "apple", - target_os = "freebsd", - target_os = "netbsd", - target_os = "openbsd", - target_os = "dragonfly" - ))] + #[cfg(all(unix, not(target_os = "android"), not(target_os = "redox")))] $item )* } @@ -117,14 +110,7 @@ cfg_langinfo! { } /// On platforms without nl_langinfo support, use 24-hour format by default -#[cfg(not(any( - target_os = "linux", - target_vendor = "apple", - target_os = "freebsd", - target_os = "netbsd", - target_os = "openbsd", - target_os = "dragonfly" -)))] +#[cfg(any(not(unix), target_os = "android", target_os = "redox"))] pub fn get_locale_default_format() -> &'static str { "%a %b %e %X %Z %Y" } diff --git a/src/uucore/src/lib/features/i18n/datetime.rs b/src/uucore/src/lib/features/i18n/datetime.rs index ce52013605f..d3ec48baf61 100644 --- a/src/uucore/src/lib/features/i18n/datetime.rs +++ b/src/uucore/src/lib/features/i18n/datetime.rs @@ -169,14 +169,7 @@ pub fn get_locale_months() -> Option<&'static [Vec; 12]> { } /// Unix implementation using nl_langinfo for exact match with `locale abmon` output. -#[cfg(any( - target_os = "linux", - target_vendor = "apple", - target_os = "freebsd", - target_os = "netbsd", - target_os = "openbsd", - target_os = "dragonfly" -))] +#[cfg(all(unix, not(target_os = "android"), not(target_os = "redox")))] fn get_locale_months_inner() -> Option<[Vec; 12]> { use nix::libc; use std::ffi::CStr; @@ -228,14 +221,7 @@ fn get_locale_months_inner() -> Option<[Vec; 12]> { } /// Non-Unix fallback using ICU DateTimeFormatter. -#[cfg(not(any( - target_os = "linux", - target_vendor = "apple", - target_os = "freebsd", - target_os = "netbsd", - target_os = "openbsd", - target_os = "dragonfly" -)))] +#[cfg(any(not(unix), target_os = "android", target_os = "redox"))] fn get_locale_months_inner() -> Option<[Vec; 12]> { let (locale, _) = get_time_locale(); let locale_prefs = locale.clone().into(); diff --git a/tests/by-util/test_date.rs b/tests/by-util/test_date.rs index 7096e2040ee..df750852daa 100644 --- a/tests/by-util/test_date.rs +++ b/tests/by-util/test_date.rs @@ -1398,14 +1398,7 @@ fn test_date_locale_hour_c_locale() { } #[test] -#[cfg(any( - target_os = "linux", - target_vendor = "apple", - target_os = "freebsd", - target_os = "netbsd", - target_os = "openbsd", - target_os = "dragonfly" -))] +#[cfg(unix)] fn test_date_locale_hour_en_us() { // en_US locale typically uses 12-hour format when available // Note: If locale is not installed on system, falls back to C locale (24-hour) @@ -1440,14 +1433,7 @@ fn test_date_explicit_format_overrides_locale() { // Comprehensive locale formatting tests to verify actual locale format strings are used #[test] -#[cfg(any( - target_os = "linux", - target_vendor = "apple", - target_os = "freebsd", - target_os = "netbsd", - target_os = "openbsd", - target_os = "dragonfly" -))] +#[cfg(unix)] fn test_date_locale_leading_zeros_en_us() { // Test for leading zeros in en_US locale // en_US uses %I (01-12) with leading zeros, not %l (1-12) without @@ -1576,14 +1562,7 @@ fn test_date_locale_format_not_hardcoded() { } #[test] -#[cfg(any( - target_os = "linux", - target_vendor = "apple", - target_os = "freebsd", - target_os = "netbsd", - target_os = "openbsd", - target_os = "dragonfly" -))] +#[cfg(unix)] fn test_date_locale_en_us_vs_c_difference() { // Verify that en_US and C locales produce different outputs // (if en_US locale is available on the system)