From 9afb160372291b3adaa3549d6e40a597ad5c9a47 Mon Sep 17 00:00:00 2001 From: demenik Date: Mon, 15 Dec 2025 16:23:55 +0100 Subject: [PATCH] fix: Fix string escaption for external editor exec args --- home/editors/godot.nix | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/home/editors/godot.nix b/home/editors/godot.nix index f1590c1..3249457 100644 --- a/home/editors/godot.nix +++ b/home/editors/godot.nix @@ -15,7 +15,7 @@ activation.configureGodot = let configDir = "${config.xdg.configHome}/godot"; - execFlags = "--server ./.godothost --remote-send \\\":n {file}{line}G{col}|\\\""; + execFlags = pkgs.lib.escapeShellArg ''"--server ./.godothost --remote-send \":e {file} | call cursor({line},{col})\""''; in lib.hm.dag.entryAfter ["writeBoundary"] # bash @@ -36,8 +36,11 @@ local key="$1" local value="$2" + local sed_value="''${value//\\/\\\\}" + sed_value="''${sed_value//&/\\&}" + if grep -q "^$key =" "$SETTINGS_FILE"; then - sed "s#^$key =.*#$key = $value#" "$SETTINGS_FILE" > "$SETTINGS_FILE.tmp" && mv "$SETTINGS_FILE.tmp" "$SETTINGS_FILE" + sed "s#^$key =.*#$key = $sed_value#" "$SETTINGS_FILE" > "$SETTINGS_FILE.tmp" && mv "$SETTINGS_FILE.tmp" "$SETTINGS_FILE" else if grep -q '\[resource\]' "$SETTINGS_FILE"; then echo "$key = $value" >> "$SETTINGS_FILE" @@ -48,7 +51,7 @@ # External editor (nvim) update_setting "text_editor/external/use_external_editor" "true" update_setting "text_editor/external/exec_path" "\"${pkgs.neovim}/bin/nvim\"" - update_setting "text_editor/external/exec_flags" "\"${execFlags}\"" + update_setting "text_editor/external/exec_flags" ${execFlags} # Catppuccin Mocha interface theme update_setting "interface/theme/preset" "\"Custom\""