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