From 9258275fe6917adb7c7f1a142f2b22aef1a9a52a Mon Sep 17 00:00:00 2001 From: Johannes Altmanninger Date: Mon, 25 Aug 2025 10:03:52 +0200 Subject: [PATCH] config_paths: fix compiled-in locale dir for installed, non-embed builds Commit bf65b9e3a74 (Change `gettext` paths to be relocatable (#11195), 2025-03-30) broke the locale path. Commit c3740b85be4 (config_paths: fix compiled-in locale dir, 2025-06-12) fixed what it calls "case 4", but "case 2" is also affected; fix that. Before/after: $ ~/.local/opt/fish/bin/fish -d config paths.locale: /home/johannes/.local/opt/fish/share/fish/locale $ ~/.local/opt/fish/bin/fish -d config paths.locale: /home/johannes/.local/opt/fish/share/locale See https://github.com/fish-shell/fish-shell/issues/11683#issuecomment-3218190662 (cherry picked from commit 21a07f08a3666a278cb1904914e1ef6834f03a67) --- src/env/config_paths.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/env/config_paths.rs b/src/env/config_paths.rs index 47851b262..598eaf70d 100644 --- a/src/env/config_paths.rs +++ b/src/env/config_paths.rs @@ -64,7 +64,8 @@ fn determine_config_directory_paths(argv0: impl AsRef) -> ConfigPaths { let data = base_path.join("share/fish/install"); #[cfg(not(feature = "installable"))] let data = base_path.join("share/fish"); - let locale = Some(data.join("locale")); + let locale = + (!cfg!(feature = "installable")).then(|| base_path.join("share/locale")); paths = ConfigPaths { // One obvious path is ~/.local (with fish in ~/.local/bin/). // If we picked ~/.local/share/fish as our data path,