Uniform git prompt equal remote to all others prompts, setting the correct symbol
(if applicable) to $git_remote_status, instead of echoing it.
It also solves the problem pointed out in #3911
This commit uses the (hopefully) standard rmam and smam escape sequences
which toggle off and on line wrapping respectively.
This is so that extra dots that don't fit the current line won't be
displayed in the next line, which would in turn make the shell
display a new prompt on the next line after the dots are hidden.
I've added a check for $terminfo rmam and smam values to be sure we have
them before printing them out.
If this commit breaks something post an issue with your terminal
emulator and $TERM value and we'll figure out what went wrong.
shasum seems more widely available than md5/md5sum, and we don't have to worry about dealing with the different signatures and output formats of md5 and md5sum then.
sysinfo outputs localized message labels, so we can't just grep for "OS Type". But OS is the first thing it outputs, so we can probably just grab those lines by line number. Switched to doing that.
A new "lib/compfix.zsh" script defining a new handle_completion_insecurities()
function has been added, which handles insecure completion directories by
notifying users of said insecurities and moving away all existing completion
caches to a temporary directory. While intended to be called at startup, this
function is generally callable at any time (e.g., for testing).
This adds two new theme functions for git:
* `git_prompt_behind` works in a identical fashion to `git_prompt_ahead`
and will output a format variable (`ZSH_THEME_GIT_PROMPT_BEHIND`) if
the branch is behind.
* `git_prompt_remote` will output one format variable if the branch
exists on remote (`ZSH_THEME_GIT_PROMPT_REMOTE_EXISTS`), and another
if the branch is unpublished (`ZSH_THEME_GIT_PROMPT_REMOTE_MISSING`).
The old `git_prompt_ahead` has been changed. Using git log is subject
to formatting in .gitconfig, which can be overridden and will break
this function. Relying on rev-list is much more stable.