X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=util.c;h=3f41b3c9e846c9ed4e51f2d2a115bc12d3521638;hb=b1701adf75297747c52e0c3ed2c314cd10129907;hp=2cc2d4dc6e4ec12edf9ecce3fd404c1b7fe67e25;hpb=586f66331d1105be03c42e6faeae1672b974a98a;p=dwm.git diff --git a/util.c b/util.c index 2cc2d4d..3f41b3c 100644 --- a/util.c +++ b/util.c @@ -10,7 +10,6 @@ #include #include #include -#include #include "util.h" @@ -127,52 +126,16 @@ pipe_spawn(char *buf, unsigned int len, Display *dpy, char *argv[]) perror(" failed"); } else { - n = 0; + l = n = 0; close(pfd[1]); - while(l > n) { + while(n < len) { if((l = read(pfd[0], buf + n, len - n)) < 1) break; n += l; } + while(l > n); close(pfd[0]); - buf[n - 1] = 0; + buf[n < len ? n : len - 1] = 0; } wait(0); } - - -unsigned char * -getselection(unsigned long offset, unsigned long *len, unsigned long *remain) -{ - Display *dpy; - Atom xa_clip_string; - Window w; - XEvent ev; - Atom typeret; - int format; - unsigned char *data; - unsigned char *result = NULL; - - dpy = XOpenDisplay(0); - if(!dpy) - return NULL; - xa_clip_string = XInternAtom(dpy, "_SEL_STRING", False); - w = XCreateSimpleWindow(dpy, DefaultRootWindow(dpy), 10, 10, 200, 200, - 1, CopyFromParent, CopyFromParent); - XConvertSelection(dpy, XA_PRIMARY, XA_STRING, xa_clip_string, - w, CurrentTime); - XFlush(dpy); - XNextEvent(dpy, &ev); - if(ev.type == SelectionNotify && ev.xselection.property != None) { - XGetWindowProperty(dpy, w, ev.xselection.property, offset, 4096L, False, - AnyPropertyType, &typeret, &format, len, remain, &data); - if(*len) { - result = emalloc(sizeof(unsigned char) * *len); - memcpy(result, data, *len); - } - XDeleteProperty(dpy, w, ev.xselection.property); - } - XDestroyWindow(dpy, w); - XCloseDisplay(dpy); - return result; -}