summaryrefslogtreecommitdiff
path: root/plugins/redis-cli/_redis-cli
diff options
context:
space:
mode:
authorMarc Cornellà <marc.cornella@live.com>2014-07-26 23:26:12 +0200
committerMarc Cornellà <marc.cornella@live.com>2014-08-29 00:39:33 +0200
commit142a6c7fd5bcda6c45c25aca582972a7d4e1da85 (patch)
treef8f299839b5e9137b0afd8c9a37a921599e8a427 /plugins/redis-cli/_redis-cli
parent17dd5792b4a34e65311fda6ab469b98f31cf30df (diff)
downloadzsh-142a6c7fd5bcda6c45c25aca582972a7d4e1da85.tar.gz
zsh-142a6c7fd5bcda6c45c25aca582972a7d4e1da85.tar.bz2
zsh-142a6c7fd5bcda6c45c25aca582972a7d4e1da85.zip
Fix pass zsh completion and autoloading
When autocompleting from `pass <TAB>', sometimes the following errors appear: _values:compvalues:10: not enough arguments find: `/home/user/.password-store': No such file or directory _values:compvalues:10: not enough arguments find: `/home/user/.password-store': No such file or directory The `_values' error happens when there is no password-store folder *or* there are no passwords in pass; the `find' error only when there is no password-store folder. We can trace it back to line 108, which contains the only `_values' statement that is executed when we autocomplete from pass. We confirm this by following the trail of execution, which is _pass -> _pass_cmd_show -> _pass_complete_entries -> -> _pass_complete_entries_helper If we try running the command inside `$()' on line 104, we see that it returns nothing and the output is blank. This means that `_values' only receives 1 of its 2 mandatory parameters, therefore the above error is triggered (not enough arguments). That is unless we don't have a password-store folder, in which case the `find: [...] no such file or directory' error is *also* triggered. We solve the first error by supplying a default value of "" if the command outputs nothing, using the zsh construct ${var:-else}. We solve the second error by redirecting the find command's stderr output to /dev/null, so the error is effectively suppressed. * * * * This patch also fixes the first tab completion, which currently only loads the completion function definition. We do this by adding a `_pass' statement at the end of the file, which runs the `_pass' completion function after loading its definition. This is the standard way an autoloaded function works; for other examples look at zsh's official completion files.
Diffstat (limited to 'plugins/redis-cli/_redis-cli')
0 files changed, 0 insertions, 0 deletions