[PATCH 4/6] fish-completion: force some variables to be script-local

Johannes Altmanninger aclopte at gmail.com
Thu Jun 25 23:41:09 CEST 2020

Unfortunately, a command "set x" without explicit scope overwrites the variable
"x" in the innermost scope it is defined in, if any.  This can cause problems
if the user defines the variable "x" as global or universal variable (which is
visible in all fishes).  Make sure to define a local variable so we use that.
 src/completion/pass.fish-completion | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/completion/pass.fish-completion b/src/completion/pass.fish-completion
index b7c3c8c..46e9baa 100644
--- a/src/completion/pass.fish-completion
+++ b/src/completion/pass.fish-completion
@@ -3,7 +3,7 @@
 # Copyright (C) 2012-2014 Dmitry Medvinsky <me at dmedvinsky.name>. All Rights Reserved.
 # This file is licensed under the GPLv2+. Please see COPYING for more information.
-set PROG 'pass'
+set -l PROG 'pass'
 function __fish_pass_get_prefix
     set -l prefix "$PASSWORD_STORE_DIR"
@@ -18,7 +18,7 @@ function __fish_pass_needs_command
 function __fish_pass_uses_command
-    set cmd (commandline -opc)
+    set -l cmd (commandline -opc)
     if [ (count $cmd) -gt 1 ]
         if [ $argv[1] = $cmd[2] ]
             return 0

More information about the Password-Store mailing list