Use slow path if stdin is a tty
[dmenu.git] / dmenu.c
diff --git a/dmenu.c b/dmenu.c
index 314256f..6b8f51b 100644 (file)
--- a/dmenu.c
+++ b/dmenu.c
@@ -6,6 +6,7 @@
 #include <string.h>
 #include <strings.h>
 #include <time.h>
+#include <unistd.h>
 
 #include <X11/Xlib.h>
 #include <X11/Xatom.h>
@@ -144,7 +145,7 @@ drawmenu(void)
        drw_setscheme(drw, scheme[SchemeNorm]);
        drw_text(drw, x, 0, w, bh, lrpad / 2, text, 0);
 
-       drw_font_getexts(drw->fonts, text, cursor, &curpos, NULL);
+       curpos = TEXTW(text) - TEXTW(&text[cursor]);
        if ((curpos += lrpad / 2 - 1) < w) {
                drw_setscheme(drw, scheme[SchemeNorm]);
                drw_rect(drw, x + curpos, 2, 2, bh - 4, 1, 0);
@@ -746,7 +747,12 @@ main(int argc, char *argv[])
                die("no fonts could be loaded.");
        lrpad = drw->fonts->h;
 
-       if (fast) {
+#ifdef __OpenBSD__
+       if (pledge("stdio rpath", NULL) == -1)
+               die("pledge");
+#endif
+
+       if (fast && !isatty(0)) {
                grabkeyboard();
                readstdin();
        } else {