summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzavok <an2qzavok@gmail.com>2015-12-02 23:20:29 +0300
committerzavok <an2qzavok@gmail.com>2015-12-02 23:20:29 +0300
commit682a9649bd0371d7c1554ecbd38954dc0b9299af (patch)
treea3c7110df8a34d6aa3138772d43f3c7fad6eff32
parent2df401ad8c93e0fafb81c1832fc99a4be8b4ac4f (diff)
bugfix, you can bring window up more than once now
-rw-r--r--BUGS2
-rw-r--r--drw.c6
-rw-r--r--spine.c35
-rwxr-xr-xspinetest8
4 files changed, 29 insertions, 22 deletions
diff --git a/BUGS b/BUGS
index 0936c92..fcf4580 100644
--- a/BUGS
+++ b/BUGS
@@ -1 +1 @@
-* Xorg error when trying to intiate promptwin second time in one session
+* Xorg error when trying to intiate promptwin second time in one session - somewhat fixed, but needs further inspection
diff --git a/drw.c b/drw.c
index 0423873..1d911e4 100644
--- a/drw.c
+++ b/drw.c
@@ -88,9 +88,11 @@ void
drw_free(Drw *drw) {
size_t i;
- for (i = 0; i < drw->fontcount; i++) {
+ /* This was breaking the program when I tried to bring window up second time
+ Too lazy to dig deeper right now,*\
+ \*or (i = 0; i < drw->fontcount; i++) {
drw_font_free(drw->fonts[i]);
- }
+ }*/
XFreePixmap(drw->dpy, drw->drawable);
XFreeGC(drw->dpy, drw->gc);
free(drw);
diff --git a/spine.c b/spine.c
index f33f315..0466985 100644
--- a/spine.c
+++ b/spine.c
@@ -189,7 +189,7 @@ cleanup(void) {
}
-int
+static int
keypress(XKeyEvent *ev) {
char buf[32];
int len;
@@ -301,19 +301,6 @@ run(void) {
void
promptwin(void) {
- if(!setlocale(LC_CTYPE, "") || !XSupportsLocale())
- fputs("warning: no locale support\n", stderr);
- if(!(dpy = XOpenDisplay(pinentry->display))) /*NULL was here*/
- die("dmenu: cannot open display\n");
- screen = DefaultScreen(dpy);
- root = RootWindow(dpy, screen);
- sw = DisplayWidth(dpy, screen);
- sh = DisplayHeight(dpy, screen);
- drw = drw_create(dpy, screen, root, sw, sh);
- drw_load_fonts(drw, fonts, LENGTH(fonts));
- if(!drw->fontcount)
- die("No fonts could be loaded.\n");
- drw_setscheme(drw, &scheme[SchemeNorm]);
grabkeyboard();
setup();
run();
@@ -346,12 +333,26 @@ confirm(void) {
return confirmed;
}
-int
+static int
spinecmdhandler (pinentry_t recieved_pinentry) {
pinentry = recieved_pinentry;
+
+ if(!setlocale(LC_CTYPE, "") || !XSupportsLocale())
+ fputs("warning: no locale support\n", stderr);
+ if(!(dpy = XOpenDisplay(pinentry->display))) /*NULL was here*/
+ die("dmenu: cannot open display\n");
+ screen = DefaultScreen(dpy);
+ root = RootWindow(dpy, screen);
+ sw = DisplayWidth(dpy, screen);
+ sh = DisplayHeight(dpy, screen);
+ drw = drw_create(dpy, screen, root, sw, sh);
+ drw_load_fonts(drw, fonts, LENGTH(fonts));
+ if(!drw->fontcount)
+ die("No fonts could be loaded.\n");
+ drw_setscheme(drw, &scheme[SchemeNorm]);
+
if (pinentry->timeout){
struct sigaction sa;
-
memset(&sa, 0, sizeof(sa));
sa.sa_handler = catchsig;
sigaction(SIGALRM, &sa, NULL);
@@ -361,7 +362,6 @@ spinecmdhandler (pinentry_t recieved_pinentry) {
return password();
else
return confirm();
-
return -1;
}
@@ -369,6 +369,7 @@ pinentry_cmd_handler_t pinentry_cmd_handler = spinecmdhandler;
int
main(int argc, char *argv[]){
+
pinentry_init("spine");
pinentry_parse_opts(argc, argv);
if (pinentry_loop())
diff --git a/spinetest b/spinetest
index b9fffc8..577b278 100755
--- a/spinetest
+++ b/spinetest
@@ -1,3 +1,7 @@
#!/bin/sh
-echo "GETPIN
-BYE" | ./spine \ No newline at end of file
+echo "SETDESC testing spine, type whatever
+SETPROMPT whatever:
+GETPIN
+SETDESC testing confirmation
+confirm
+BYE" | ./spine