Skip to content

Commit

Permalink
fix: get_locale follows posix standard (#1264)
Browse files Browse the repository at this point in the history
* fix: get_locale follows posix standard

* refactor: more concise and legible get_locale function

Co-authored-by: Wölfchen <[email protected]>

---------

Co-authored-by: Wölfchen <[email protected]>
  • Loading branch information
mirhahn and w-lfchen authored Jan 4, 2025
1 parent 6ee1667 commit a7bd80a
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 8 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ All notable changes to eww will be listed here, starting at changes since versio
- Fix values in the `EWW_NET` variable (By: mario-kr)
- Fix the gtk `expander` widget (By: ovalkonia)
- Fix wayland monitor names support (By: dragonnn)
- `get_locale` now follows POSIX standard for locale selection (By: mirhahn, w-lfchen)

### Features
- Add OnDemand support for focusable on wayland (By: GallowsDove)
Expand Down
14 changes: 6 additions & 8 deletions crates/eww_shared_util/src/locale.rs
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
use chrono::Locale;
use std::env::var;

/// Returns the `Locale` enum based on the `LC_TIME` environment variable.
/// Returns the `Locale` enum based on the `LC_ALL`, `LC_TIME`, and `LANG` environment variables in
/// that order, which is the precedence order prescribed by Section 8.2 of POSIX.1-2017.
/// If the environment variable is not defined or is malformed use the POSIX locale.
pub fn get_locale() -> Locale {
let locale_string: String =
var("LC_TIME").map_or_else(|_| "C".to_string(), |v| v.split(".").next().unwrap_or("C").to_string());

match (&*locale_string).try_into() {
Ok(x) => x,
Err(_) => Locale::POSIX,
}
var("LC_ALL")
.or_else(|_| var("LC_TIME"))
.or_else(|_| var("LANG"))
.map_or(Locale::POSIX, |v| v.split('.').next().and_then(|x| x.try_into().ok()).unwrap_or_default())
}

0 comments on commit a7bd80a

Please sign in to comment.