Zsh moves texts when the prompt is too long
On Catalina 10.15.3 zsh is version zsh 5.7.1 (x86_64-apple-darwin19.0)
.
Compiling version 5.7.1 from upstream source shows the same error while version 5.8 does not. As you can see below when setting PROMPT='%~X
the X
is deleted on pressing tab on dir
in 5.7.1 but not 5.8.
The NEWS
file supplied with 5.8 source says changes were made to completion functions which may explain this but in any case this bug appears to be fixed.
Several changes have been made to the way completion functions track 'precommands' (such as `command` and `env`) and determine whether the command being completed for is a shell builtin. Developers of completion functions may wish to familiarise themselves with `_normal -p` and `_pick_variant -b`.
There is also this CVE included in version 5.8 so perhaps Apple will provide an update at some point if you don't wish to compile your own.
CVE-2019-20044: When unsetting the PRIVILEGED option, the shell sets its effective user and group IDs to match their respective real IDs. On some platforms (including Linux and macOS, but not FreeBSD), when the RUID and EUID were both non-zero, it was possible to regain the shell's former privileges