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.
So that compdefs with dashes work as well as underscores:
compdef _git gc=git_commit
Or:
compdef _git gc=git-commit
The official Zsh Git completion uses dashes, and this way people don't
have to change their existing definitions.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
An error was thrown (`bash: [: =: unary operator expected`) when using the __git_ps1_colorize_gitstring function outside of the one place it's called (line 512), because the "detached" variable was not quoted, and was unset.
An error was thrown (`bash: [: =: unary operator expected`) when using the __git_ps1_colorize_gitstring function outside of the one place it's called (line 512), because the "detached" variable was not quoted, and was unset.
* gitfast: use $OSTYPE again
In the last update to upstream this was reverted:
a56eac7a (Use OSTYPE instead of uname whenever possible for better speed. (#5496))
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
* gitfast: simplify plugin
No need to set and unset a variable we use once.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
* gitfast: add script to update from upstream
This would make easier the process of updating, and also not miss our
patches.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
* gitfast: update to upstream v2.21
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Sometimes we want to use the function directly (e.g. _git_checkout), for
example when zsh has the option 'complete_aliases', this way, we can do
something like:
compdef _git gco=git_checkout
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Certain themes need the 'clean' mark, and some people like to have the
'dirty' one, just like the original git_promp_info().
We probably shouldn't be modifying that function, there's no other clean
way to achieve our own status information, so let's try to emulate the
original as much as possible.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
When showing the char % for untracket files, it was not being escaped
so there was shown a space in the place. It was also removing any char
that was right just after.