This patch adds missing % character escaping for custom git prompts
used in a few themes. It also includes escaping for git-prompt.sh.
In combination with CVE-2021-45444, this could allow code execution
when displaying branch information in cloned malicious git repositories.
However, zsh 5.8.1 and newer are largely the default zsh versions, and
on those supported distributions with older zsh versions, the CVE has been
found to be also patched.
For this reason, this doesn't qualify as a security patch, but a
bug fix for proper printing of git branches.
* Simplify Pygmalion Theme
The Pygmalion theme previously had some logic for counting line length and taking action based on line length. The action was removed in c52441b624, but the counting still needlessly happens.
This commit removes the code to count line length, and simplifies the Pygmalion theme by moving the "precmd" into the setup.
As a bonus unintended side effect, this makes the Pygmalion theme compatible with the current async prompting logic (i.e. after this change, Pygmalion is no longer affected by https://github.com/ohmyzsh/ohmyzsh/issues/12328)
* refactor(pygmalion): redo and simplify prompt sequences
With this commit we put the minimal needed color resets, i.e. only
when we don't control the previous text we need to do a full reset.
Otherwise we can just use %F{} to change only the foreground color.
Co-authored-by: Marc Cornellà <marc@mcornella.com>
The git_prompt_info() function in lib/git.zsh ignores git repos which
contains a specific config key, allowing to effectively "hide" them from
the prompt. Unfortunately, the bureau theme doesn't use the library
function to build its prompt.
This commit modifies the specific prompt generation function in the
bureau theme in order to achieve the same behaviour.
Turns out that <U+F8FF> is a reserved unicode code that is Apple logo in
Apple systems.
Nerd fonts was overwritting that code to other stuff in v2 and that's
why I thought it needed to be replaced.
Closes#11665
This reverts commit 693e3dcc44.