summaryrefslogtreecommitdiff
path: root/pinentry-dmenu.c
diff options
context:
space:
mode:
Diffstat (limited to 'pinentry-dmenu.c')
-rw-r--r--pinentry-dmenu.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/pinentry-dmenu.c b/pinentry-dmenu.c
index f17c13d..1e41f68 100644
--- a/pinentry-dmenu.c
+++ b/pinentry-dmenu.c
@@ -583,7 +583,7 @@ catchsig(int sig) {
}
}
-static int
+static void
password(void) {
winmode = WinPin;
@@ -600,27 +600,26 @@ password(void) {
return 0;
}
- pinentry->repeat_okay = 1;
+ if (pinentry->canceled) {
+ pinentry->result = -1;
+ return;
}
- return (pinentry->canceled) ? -1 : 1;
+ pinentry->result = strlen(pinentry->pin);
}
-static int
+static void
confirm(void) {
winmode = WinConfirm;
sel = Nothing;
-
run();
-
- return sel != No;
+ pinentry->result = sel != No;
}
static int
cmdhandler(pinentry_t received_pinentry) {
struct sigaction sa;
XWindowAttributes wa;
- int ret;
pinentry = received_pinentry;
@@ -655,14 +654,14 @@ cmdhandler(pinentry_t received_pinentry) {
setup();
if (pinentry->pin) {
- ret = password();
+ password();
} else {
- ret = confirm();
+ confirm();
}
cleanup();
- return ret;
+ return pinentry->result;
}
pinentry_cmd_handler_t pinentry_cmd_handler = cmdhandler;