1. 28 Aug, 2014 3 commits
    • Marc Cornellà's avatar
      Fix pass zsh completion and autoloading · 142a6c7f
      Marc Cornellà authored
      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.
      142a6c7f
    • Marc Cornellà's avatar
      Update pass completion to upstream · 17dd5792
      Marc Cornellà authored
      Conflicts:
      	plugins/pass/_pass
      17dd5792
    • Santiago Borrazás's avatar
  2. 23 Nov, 2013 1 commit
  3. 02 Nov, 2012 1 commit