This fixes an issue where the EDITOR variable contains quotes. The Emacs with-editor package sets EDITOR to the following.
``` EDITOR=sh\ -c\ \'echo\ \"WITH-EDITOR\:\ \$\$\ OPEN\ \$0\"\;\ sleep\ 604800\ \&\ sleep\=\$\!\;\ trap\ \"kill\ \$sleep\;\ exit\ 0\"\ USR1\;\ trap\ \"kill\ \$sleep\;\ exit\ 1\"\ USR2\;\ wait\ \$sleep\' ``` When this is used without eval, it fails with a syntax error. ``` $ $EDITOR pass edit my-entry "WITH-EDITOR:: -c: line 0: unexpected EOF while looking for matching `'' "WITH-EDITOR:: -c: line 1: syntax error: unexpected end of file ``` It works when called using eval. ``` $ eval "$EDITOR" pass edit my-entry ``` This was discussed on the Emacs with-editor bug tracker here: https://github.com/magit/with-editor/issues/40 --- src/password-store.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git src/password-store.sh src/password-store.sh index b86631d..12c979b 100755 --- src/password-store.sh +++ src/password-store.sh @@ -478,7 +478,7 @@ cmd_edit() { $GPG -d -o "$tmp_file" "${GPG_OPTS[@]}" "$passfile" || exit 1 action="Edit" fi - ${EDITOR:-vi} "$tmp_file" + eval "${EDITOR:-vi}" "$tmp_file" [[ -f $tmp_file ]] || die "New password not saved." $GPG -d -o - "${GPG_OPTS[@]}" "$passfile" 2>/dev/null | diff - "$tmp_file" &>/dev/null && die "Password unchanged." while ! $GPG -e "${GPG_RECIPIENT_ARGS[@]}" -o "$passfile" "${GPG_OPTS[@]}" "$tmp_file"; do -- 2.14.2 _______________________________________________ Password-Store mailing list [email protected] https://lists.zx2c4.com/mailman/listinfo/password-store
