fish_config prompt save: don't define right prompt unnecessarily

If no "fish_right_prompt" is defined, then we also don't need to
define and save an empty one.  We can do nothing, which seems cleaner.
It's also what "fish_config prompt choose" does.  Git blame shows no
explicit reason for for this inconsistency.

Probably the implicit reason is that when both styles where introduced
(both in 69074c1591 (fish_config: Remove right prompt in `choose` and
`save`, 2021-09-26)), that was before the "fish_config prompt choose:
make right prompt hack less weird" commit, so the "prompt choose"
code path didn't know whether the prompt existed until after checking,
hence "--erase" was more suitable.. but that inconsistency is gone.
This commit is contained in:
Johannes Altmanninger
2025-10-13 17:51:54 +02:00
parent 5792df9738
commit 37e0a5ae8d
2 changed files with 8 additions and 4 deletions

View File

@@ -130,7 +130,11 @@ function fish_config --description "Launch fish's web based configuration"
funcsave fish_prompt
or return
funcsave fish_right_prompt 2>/dev/null
if functions -q fish_right_prompt
funcsave fish_right_prompt
else
rm -f $__fish_config_dir/functions/fish_right_prompt.fish
end
return
end
@@ -362,7 +366,8 @@ function __fish_config_prompt_save
# if necessary.
function fish_prompt
end
function fish_right_prompt
if functions -q fish_right_prompt
functions --erase fish_right_prompt
end
source $argv[1] # N.B We're passed either stdin or argv.
end