This change references `$RANDOM` outside the subshell to refresh it for the
next subshell invocation. Otherwise, subsequent runs of the function get the
same value and, if run simultaneously, they may clobber each others' temp .z
files.
This is due to how zsh distributes RANDOM values when running inside a
subshell:
subshells that reference RANDOM will result in identical pseudo-random
values unless the value of RANDOM is referenced or seeded in the parent
shell in between subshell invocations
See: http://zsh.sourceforge.net/Doc/Release/Parameters.html#index-RANDOM
A utility function now parses the output of git --version and set the
alias for git stash to 'git stash push' iff the current version of Git
is greater than 2.13; it falls back to 'git stash save' otherwise.
This change makes the plugin check if an identity is loaded by looking
first at the key filename reported by `ssh-add -l`. This fixes the use
case where ssh-keygen is not able to output the fingerprint of a key,
such as the one reported on #7516.
Now, for an identity to be passed onto ssh-add, it has to fail the
match for a loaded identity, both filename and signature.
With this PR the ssh-agent plugin loads all identities which are not yet
loaded in a single call to ssh-add. If a passphrase is shared between
loaded identities it only needs to be entered once.
Fixes#7506
With this PR the ssh-agent plugin checks the `ssh-add -l` output for the
identities added, and adds all those specified by the user that haven't been
added yet.
We also decouple the logic of starting ssh-agent from the logic of adding
identities, meaning that even if ssh-agent has been started by some other means
(like launchd) we can still ssh-add the user's identities.
Fixes#3019Fixes#6979
Before, when typing the `marks` command, longer mark keys would cause
the tabs to spill over to the next tab stop, like so:
rc -> /home/ahlex/.rc
repos -> /home/ahlex/repos
a-longer-string -> /tmp
Implement better key display by running through all of the marks twice,
once to get the longest key length, and the second time to format
everything according to that length:
rc -> /home/ahlex/.rc
repos -> /home/ahlex/repos
a-longer-string -> /tmp