We already restore IFS to its default value. This patch only changes the
way it is done to avoid a call to 'echo' in a sub-shell at runtime.
Fixes#267.
The behavior of porcelain seems more adapted to the liquidprompt usage
From the "git status" documentation :
The porcelain format is similar to the short format, but is guaranteed
not to change in a backwards-incompatible way between git versions or
based on user configuration. This makes it ideal for parsing by scripts.
The description of the short format above also describes the porcelain
format, with a few exceptions:
1. The user’s color.status configuration is not respected;
color will always be off.
[...]
In some cases (multi user enabled in screen for example), the count of
detached screen sessions was incorrect. The command to locate these has
been improved using a more tolerant regex, which does not require
'detached' to be the first word inside the parenthesis.
To test, open a new screen session, add multiuser (type Ctrl+A, then
':', then multiuser on), then detach (Ctrl+A, Ctrl+D), and see that
liquidprompt detects the screen, as would "screen -list".
When LP_PATH_KEEP=0 and current dirname were over maximum length the
name was also shorten. With this fixed _lp_shorten_path should now
always return at least the complete current dirname.
The previous implementation had shell specific paths which did not
produce the same result. It did not respect the maximum length which it
calculated. And for specific cases even repeated part of the path.
This implementation is portable across bash and zsh.
It respects maximum length strictly and only exceeds it when it has to
respect LP_PATH_KEEP leading dirs.
It adds support for only showing the current directory, without leading
ones. This fixes Issue #219.
(Rebased by Olivier Mengué on top of more recent changes in that
fucntion)
Parse `git diff --shortstat` to get the line count of *unstaged* changes.
Improvements of the git related stuff are still possible, using more
plumbing commands, like:
* `git diff-index --quiet HEAD` to check for uncommitted changes (branch
color), rather than relying on the `git diff --shortstat HEAD`
* `git ls-files --exclude-standard --others` to check for untracked
files
Complete rewrite of the _lp_get_dirtrim into _lp_set_dirtrim with a much
faster implementation that avoids char by char processing of $PWD.
Also use (( )) builtin.
Reset the LP_OLD_PWD variable on startup.
This makes debugging easier: previously we had to change directory
after a reload to see the changes of the new code for the PWD-cached
parts.
Improvements:
- check if update_terminal_cwd is available instead of relying on the
kernel version
- test the feature once at init time instead of at prompt time
Note that zsh is not yet supported for that feature unless the
update_terminal_cwd has been imported in your environment.
I think it would be possible to support it, but I don't have access to
MacOS X machines, so... patches are welcome!
In some cases (multi user enabled in screen for example), the count of
detached screen sessions was incorrect. The command to locate these has
been improved using a more tolerant regex, which also makes sure the
"Detached" word appears inside a parenthesis (so it's not an attached
screen to a machine called Detach for example).
unset local variables that interfere with autonamedirs in oh-my-zsh
1) unset local variable p before use in zsh pwd truncation
2) prefix LP_OLD_PWD with "LP:" to avoid autonaming
_lp_upwards_find was using a single-quoted $@, not double-quoted, so
find was actually looking for files called '$@'.
In addition, once _lp_upwards_find finds the file it's looking for, it
breaks out so it doesn't need to always traverse to root. I doubt
this actually saves much in practice, but it might as well be there.
Mercurial and Bazaar are written in Python, which, on my system,
causes a noticeable hitch in the prompt generation when changing
directories. I have added code that, before invoking the 'hg' or
'bzr' executables, first tests if we could possibly be in a bazaar or
hg repository checkout by traversing the directory structure upwards
to the root, looking for an '.hg' or '.bzr' folder.
At least for me, this makes the prompt instantaneous. There may be
more elegant solutions to this problem, but this one works.
Revert "Added null check for count in _lp_temp_sensors() to stop division by zero errors in case count is still zero."
Closes#214.
Thanks @jaesivsm
This reverts commit 9d96a82c80.
Conflicts:
liquidprompt