On Sun, 27 Feb 2022, Kai Tetzlaff wrote:

Hi Kai,

thank you very much for your report and the patches!

I found that certain commands (like password-store--run-generate,
password-store--run-remove) cause an infloop in:

The problem is the `(while (not output) (sleep-for .1))` loop which
never receives any output (from the supposedly asynchronous pass process
started via `password-store--run-1').

I have no way to test Windows from here.
Could you check if you still see the issue with the following patch?

--8<-----------------------------cut here---------------start------------->8---

From 00eaff37e6cff555857cc436967c7449d4269deb Mon Sep 17 00:00:00 2001
From: Tino Calancha <[email protected]>
Date: Mon, 28 Feb 2022 21:56:23 +0100
Subject: [PATCH] emacs: Check `process-status' in the sentinel

---
 contrib/emacs/password-store.el | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/contrib/emacs/password-store.el b/contrib/emacs/password-store.el
index 61c339e..62239dd 100644
--- a/contrib/emacs/password-store.el
+++ b/contrib/emacs/password-store.el
@@ -88,9 +88,9 @@ or outputs error message on failure."
                (setq output (concat output text)))
      :sentinel (lambda (process state)
                  (cond
-                  ((string= state "finished\n")
+                  ((and (eq (process-status process) 'exit) (zerop 
(process-exit-status process)))
                    (funcall callback output))
-                  ((string= state "open\n") (accept-process-output process))
+                  ((eq (process-status process) 'run) (accept-process-output 
process))
                   (t (error (concat "password-store: " state))))))))

 (defun password-store--run (&rest args)
--
2.30.2

--8<-----------------------------cut here---------------end--------------->8---

Reply via email to