diff --git a/src/bin/fish.rs b/src/bin/fish.rs index c0cb7b382..c0b9cb689 100644 --- a/src/bin/fish.rs +++ b/src/bin/fish.rs @@ -385,7 +385,7 @@ fn throwing_main() -> i32 { set_libc_locales(/*log_ok=*/ false) }; - fish::wutil::gettext::initialize_gettext(); + fish::localization::initialize_gettext(); // Enable debug categories set in FISH_DEBUG. // This is in *addition* to the ones given via --debug. diff --git a/src/builtins/disown.rs b/src/builtins/disown.rs index 05513571b..b2ba5c699 100644 --- a/src/builtins/disown.rs +++ b/src/builtins/disown.rs @@ -4,7 +4,7 @@ use crate::io::IoStreams; use crate::parser::Parser; use crate::proc::{Job, add_disowned_job}; -use crate::{builtins::shared::HelpOnlyCmdOpts, wutil::wgettext_fmt}; +use crate::{builtins::shared::HelpOnlyCmdOpts, localization::wgettext_fmt}; use fish_wchar::wstr; use libc::SIGCONT; diff --git a/src/builtins/fish_indent.rs b/src/builtins/fish_indent.rs index 11e8c115f..443958487 100644 --- a/src/builtins/fish_indent.rs +++ b/src/builtins/fish_indent.rs @@ -894,7 +894,7 @@ fn throwing_main() -> i32 { unsafe { set_libc_locales(/*log_ok=*/ false) }; - crate::wutil::gettext::initialize_gettext(); + crate::localization::initialize_gettext(); env_init(None, true, false); // Only set these here so you can't set them via the builtin. diff --git a/src/builtins/fish_key_reader.rs b/src/builtins/fish_key_reader.rs index 892d0ad44..a435c3c39 100644 --- a/src/builtins/fish_key_reader.rs +++ b/src/builtins/fish_key_reader.rs @@ -279,7 +279,7 @@ fn throwing_main() -> i32 { set_interactive_session(true); topic_monitor_init(); threads::init(); - crate::wutil::gettext::initialize_gettext(); + crate::localization::initialize_gettext(); env_init(None, true, false); reader_init(false); if let Some(features_var) = EnvStack::globals().get(L!("fish_features")) { diff --git a/src/builtins/gettext.rs b/src/builtins/gettext.rs index 6e73269e3..7279ad747 100644 --- a/src/builtins/gettext.rs +++ b/src/builtins/gettext.rs @@ -7,7 +7,8 @@ pub fn gettext(_parser: &Parser, streams: &mut IoStreams, argv: &mut [&wstr]) -> BuiltinResult { for arg in &argv[1..] { streams.out.append( - crate::wutil::LocalizableString::from_external_source((*arg).to_owned()).localize(), + crate::localization::LocalizableString::from_external_source((*arg).to_owned()) + .localize(), ); } Ok(SUCCESS) diff --git a/src/builtins/jobs.rs b/src/builtins/jobs.rs index 096a7217d..8366b182c 100644 --- a/src/builtins/jobs.rs +++ b/src/builtins/jobs.rs @@ -4,11 +4,11 @@ use crate::common::{EscapeFlags, EscapeStringStyle, escape_string, timef}; use crate::io::IoStreams; use crate::job_group::{JobId, MaybeJobId}; +use crate::localization::{wgettext, wgettext_fmt}; use crate::parser::Parser; use crate::proc::{Job, clock_ticks_to_seconds, have_proc_stat, proc_get_jiffies}; use crate::wgetopt::{ArgType, WGetopter, WOption, wopt}; -use crate::wutil::wgettext; -use crate::wutil::{fish_wcstoi, wgettext_fmt}; +use crate::wutil::fish_wcstoi; use fish_wchar::{L, WExt, WString, wstr}; use std::num::NonZeroU32; diff --git a/src/builtins/status.rs b/src/builtins/status.rs index 2b4bd0df8..d3e7c0d99 100644 --- a/src/builtins/status.rs +++ b/src/builtins/status.rs @@ -496,12 +496,12 @@ pub fn status(parser: &Parser, streams: &mut IoStreams, args: &mut [&wstr]) -> B return Err(STATUS_CMD_ERROR); } else { if args.is_empty() { - streams.out.append(crate::wutil::gettext::status_language()); + streams.out.append(crate::localization::status_language()); return Ok(SUCCESS); } match args[0].to_string().as_str() { "list-available" => { - streams.out.append(crate::wutil::gettext::list_available_languages()); + streams.out.append(crate::localization::list_available_languages()); return Ok(SUCCESS); }, "set" => { @@ -509,7 +509,7 @@ pub fn status(parser: &Parser, streams: &mut IoStreams, args: &mut [&wstr]) -> B .iter() .map(|lang| lang.to_string()) .collect::>(); - let lints = crate::wutil::gettext::update_from_status_language_builtin(&langs); + let lints = crate::localization::update_from_status_language_builtin(&langs); let formatted_lints = lints.display_all(); if !formatted_lints.is_empty() { streams.err.append(&formatted_lints); @@ -517,7 +517,7 @@ pub fn status(parser: &Parser, streams: &mut IoStreams, args: &mut [&wstr]) -> B return Ok(SUCCESS); } "unset" => { - crate::wutil::gettext::unset_from_status_language_builtin(parser.vars()); + crate::localization::unset_from_status_language_builtin(parser.vars()); return Ok(SUCCESS); } invalid => { diff --git a/src/builtins/string.rs b/src/builtins/string.rs index 89f2b3c48..8dc2452ce 100644 --- a/src/builtins/string.rs +++ b/src/builtins/string.rs @@ -222,7 +222,11 @@ fn from(_: crate::wutil::wcstoi::Error) -> Self { macro_rules! invalid_args { ($msg:expr, $name:expr, $arg:expr) => { - StringError::InvalidArgs(crate::wutil::wgettext_fmt!($msg, $name, $arg.unwrap())) + StringError::InvalidArgs(crate::localization::wgettext_fmt!( + $msg, + $name, + $arg.unwrap() + )) }; } use invalid_args; diff --git a/src/complete.rs b/src/complete.rs index 52f53c73b..c41fc9923 100644 --- a/src/complete.rs +++ b/src/complete.rs @@ -48,10 +48,10 @@ ast::unescape_keyword, autoload::AutoloadResult, common::charptr2wcstring, + localization::{LocalizableString, localizable_string}, reader::{get_quote, is_backslashed}, util::wcsfilecmp, wcstringutil::{string_suffixes_string_case_insensitive, strip_executable_suffix}, - wutil::{LocalizableString, localizable_string}, }; use bitflags::bitflags; use fish_wchar::WExt; diff --git a/src/env/environment.rs b/src/env/environment.rs index 947309d53..bdcf5786d 100644 --- a/src/env/environment.rs +++ b/src/env/environment.rs @@ -13,6 +13,7 @@ use crate::flog::flog; use crate::global_safety::RelaxedAtomicBool; use crate::input::{FISH_BIND_MODE_VAR, init_input}; +use crate::localization::wgettext; use crate::nix::{geteuid, getpid}; use crate::null_terminated_array::OwningNullTerminatedArray; use crate::path::{ @@ -24,7 +25,7 @@ use crate::termsize; use crate::universal_notifier::default_notifier; use crate::wcstringutil::join_strings; -use crate::wutil::{fish_wcstol, wgetcwd, wgettext}; +use crate::wutil::{fish_wcstol, wgetcwd}; use libc::{c_int, uid_t}; use once_cell::sync::{Lazy, OnceCell}; diff --git a/src/env_dispatch.rs b/src/env_dispatch.rs index c10df8142..b822e602c 100644 --- a/src/env_dispatch.rs +++ b/src/env_dispatch.rs @@ -537,7 +537,7 @@ fn init_locale(vars: &EnvStack) { invalidate_numeric_locale(); #[cfg(feature = "localize-messages")] - crate::wutil::gettext::update_from_env(vars); + crate::localization::update_from_env(vars); } pub fn use_posix_spawn() -> bool { diff --git a/src/history/history.rs b/src/history/history.rs index 95bf92a23..77ee0b8e2 100644 --- a/src/history/history.rs +++ b/src/history/history.rs @@ -52,6 +52,7 @@ fs::fsync, history::file::{HistoryFile, RawHistoryFile, append_history_item_to_buffer}, io::IoStreams, + localization::wgettext_fmt, operation_context::{EXPANSION_LIMIT_BACKGROUND, OperationContext}, parse_constants::{ParseTreeFlags, StatementDecoration}, parse_util::{parse_util_detect_errors, parse_util_unescape_wildcards}, @@ -61,7 +62,7 @@ util::find_subslice, wcstringutil::subsequence_in_string, wildcard::{ANY_STRING, wildcard_match}, - wutil::{FileId, INVALID_FILE_ID, file_id_for_file, wgettext_fmt, wrealpath, wstat, wunlink}, + wutil::{FileId, INVALID_FILE_ID, file_id_for_file, wrealpath, wstat, wunlink}, }; #[derive(Clone, Copy, Debug, PartialEq, Eq)] diff --git a/src/lib.rs b/src/lib.rs index affad0031..a72f91d76 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -40,6 +40,7 @@ pub mod key; pub mod kill; pub mod locale; +pub mod localization; pub mod nix; pub mod null_terminated_array; pub mod operation_context; diff --git a/src/wutil/gettext.rs b/src/localization/mod.rs similarity index 97% rename from src/wutil/gettext.rs rename to src/localization/mod.rs index aef3ea823..814f600e9 100644 --- a/src/wutil/gettext.rs +++ b/src/localization/mod.rs @@ -307,7 +307,7 @@ fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { #[cfg(feature = "gettext-extract")] macro_rules! localizable_string { ($string:literal) => { - $crate::wutil::gettext::LocalizableString::Static(widestring::utf32str!( + $crate::localization::LocalizableString::Static(widestring::utf32str!( fish_gettext_extraction::gettext_extract!($string) )) }; @@ -316,7 +316,7 @@ macro_rules! localizable_string { #[cfg(not(feature = "gettext-extract"))] macro_rules! localizable_string { ($string:literal) => { - $crate::wutil::gettext::LocalizableString::Static(widestring::utf32str!($string)) + $crate::localization::LocalizableString::Static(widestring::utf32str!($string)) }; } pub use localizable_string; @@ -334,7 +334,7 @@ macro_rules! localizable_consts { ) => { $( $(#[$attr])* - $vis const $name: $crate::wutil::gettext::LocalizableString = + $vis const $name: $crate::localization::LocalizableString = localizable_string!($string); )* }; @@ -385,8 +385,7 @@ macro_rules! wgettext_fmt { #[cfg(test)] mod tests { - use super::LocalizableString; - use crate::prelude::*; + use super::*; use crate::tests::prelude::*; #[test] diff --git a/src/prelude.rs b/src/prelude.rs index 0dcb86996..658bc8e1f 100644 --- a/src/prelude.rs +++ b/src/prelude.rs @@ -1,5 +1,5 @@ -pub use crate::wutil::{ - LocalizableString, eprintf, localizable_consts, localizable_string, sprintf, wgettext, - wgettext_fmt, +pub use crate::localization::{ + LocalizableString, localizable_consts, localizable_string, wgettext, wgettext_fmt, }; +pub use crate::wutil::{eprintf, sprintf}; pub use fish_wchar::prelude::*; diff --git a/src/tinyexpr.rs b/src/tinyexpr.rs index 3bdc19a7d..fe2870cb7 100644 --- a/src/tinyexpr.rs +++ b/src/tinyexpr.rs @@ -32,7 +32,7 @@ use crate::{ prelude::*, - wutil::{Error as wcstodError, wcstod::wcstod_underscores, wgettext}, + wutil::{Error as wcstodError, wcstod::wcstod_underscores}, }; #[derive(Clone, Copy)] diff --git a/src/wutil/mod.rs b/src/wutil/mod.rs index 2f8114eb6..b75e271e7 100644 --- a/src/wutil/mod.rs +++ b/src/wutil/mod.rs @@ -1,7 +1,6 @@ pub mod dir_iter; pub mod errors; pub mod fileid; -pub mod gettext; mod hex_float; #[macro_use] pub mod printf; @@ -15,9 +14,6 @@ use crate::wcstringutil::{join_strings, wcs2bytes_callback}; use errno::errno; use fish_wchar::{L, WExt, WString, wstr}; -pub use gettext::{ - LocalizableString, localizable_consts, localizable_string, wgettext, wgettext_fmt, -}; use std::ffi::{CStr, OsStr}; use std::fs::{self, canonicalize}; use std::io::{self, Write};