prompt bug fix

This commit is contained in:
2026-10-13 14:35:00 +02:00
parent 9e96aaa411
commit afe1a1b610
5 changed files with 358 additions and 239 deletions
+14
View File
@@ -119,6 +119,20 @@ Versions follow `MAJOR.MINOR.PATCH-REVISION_STAGE_N` (e.g. `3.99.1-4_rc_1`).
child, validates the PID and refuses the current shell; `ppn` matched PIDs
and names such as `kde-bash` (now exact); `ppg`/`gpid` fallbacks no longer
match their own `awk`; `PPU_DEFAULT_FORMAT` documented with its real value.
- `prompt.sh` (security): a git branch, conda environment or virtualenv named
like `x$(command)` was **executed** each time the prompt was drawn, because the
names were copied into `PS1`; the context segment is now referenced as a
variable and never re-expanded.
- `prompt.sh`: the exit status shown in the prompt was always `0` (the nested
function definitions at the top of `set_prompt` reset `$?`; they are now
defined once at load time); `PROMPT_COLOR_*` overrides of the `[prompt]`
section never beat the theme and `$ColorName` values were emptied by
`parse_conf` in a fresh login shell (now resolved, validated, and re-applied
after `set_theme`); `set_theme --preview` left the previewed colours behind
when none were set before, and a switch to a partial theme kept the previous
theme's colours; the prompt no longer forks `date` twice per command
(`$EPOCHREALTIME`) and runs one `git status` instead of three git commands,
without taking the index lock.
- `compress.sh`: option flags and loop variables no longer leak into the
interactive shell.