Don't rely on delete-buffer taking us to the previous buffer

This doesn't work in a draft context.
This commit is contained in:
Olivier Perret 2018-11-12 10:27:42 +01:00
parent f43b341bd3
commit f9bbf4606b

View File

@ -3,6 +3,7 @@
define-command -hidden sudo-write-impl %{ define-command -hidden sudo-write-impl %{
eval -save-regs f %{ eval -save-regs f %{
# TOOD this could take the content of the buffer from stdin instead
reg f %sh{ mktemp --tmpdir XXXXX } reg f %sh{ mktemp --tmpdir XXXXX }
write %reg{f} write %reg{f}
eval %sh{ eval %sh{
@ -18,17 +19,20 @@ define-command -hidden sudo-write-impl %{
} }
define-command -hidden -params 1 sudo-cache-password %{ define-command -hidden -params 1 sudo-cache-password %{
eval -save-regs '"' -no-hooks -draft %{ eval -no-hooks -save-regs '"c' %{
edit -scratch *sudo_write_pass* eval -draft %{
reg '"' %arg{1} edit -scratch *sudo-write-pass*
exec "<a-p>|sudo -S echo ok<ret>" reg '"' %arg{1}
try %{ exec "<a-p>|sudo -S echo ok<ret>"
exec <a-k>ok<ret> try %{
delete-buffer exec '%H<a-k>ok<ret>'
} catch %{ reg c nop
delete-buffer } catch %{
fail reg c fail
}
} }
delete-buffer *sudo-write-pass*
eval %reg{c}
} }
} }