]> git.donarmstrong.com Git - zsh.git/commitdiff
fix quoting in getpw
authormartin f. krafft <madduck@madduck.net>
Thu, 19 May 2011 13:03:50 +0000 (15:03 +0200)
committermartin f. krafft <madduck@madduck.net>
Thu, 19 May 2011 13:03:50 +0000 (15:03 +0200)
.zsh/func/getpw

index 7d93e429c6c0082dc3bbd29dc446563b86630cb2..f3f19403e038fe3900e14d8484d8c49e5782a008 100755 (executable)
@@ -48,9 +48,9 @@ local output
 gpg --decrypt --batch --quiet "$PWENCFILE" | \
   {
     output=$(while read r i p o; do
-      case "$r/$i" in
-        (*${resource}*/${identity:+*${identity}}*)
-          echo "$r     $i      $p      $o";;
+      case "$r:l/$i:l" in
+        (*${resource:l}*/${identity:+*${identity:l}}*)
+          echo "'$r'   '$i'    '$p'    '$o'";;
       esac
     done)
   }
@@ -64,8 +64,8 @@ if (( ${#results} == 1 )); then
   result=(${(z)${results[1]}})
   output="${result[3]}"
   [[ $incother = 1 ]] && output="$output ${result[4]}"
-  echo "$output" | eval $dest
-  [[ $clip = 1 ]] && echo >&2 "match for ${result[2]}@${result[1]} put onto X clipboard."
+  eval echo "$output" | eval $dest
+  [[ $clip = 1 ]] && eval echo >&2 "match for ${result[1]}, ID ${result[2]} put onto X clipboard."
 else
   if [[ $clip = 1 ]]; then
     echo >&2 "E: multiple matches, hence not putting onto clipboard; use -p option."
@@ -73,7 +73,7 @@ else
   fi
   for r in $results; do
     result=(${(z)r})
-    output="${result[2]}       ${result[3]}"
+    output="${result[2]}@${result[1]}  ${result[3]}"
     [[ $incother = 1 ]] && output="$output ${result[4]}"
     echo "$output"
   done | eval $dest