sselp.c - sselp - simple X selection printer to stdout | |
git clone git://git.suckless.org/sselp | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
sselp.c (1141B) | |
--- | |
1 /* See LICENSE file for license details. */ | |
2 #include <stdio.h> | |
3 #include <string.h> | |
4 #include <X11/Xlib.h> | |
5 #include <X11/Xatom.h> | |
6 | |
7 int | |
8 main(int argc, char *argv[]) { | |
9 Atom clip, utf8, type; | |
10 Display *dpy; | |
11 Window win; | |
12 XEvent ev; | |
13 int fmt; | |
14 long off = 0; | |
15 unsigned char *data; | |
16 unsigned long len, more; | |
17 | |
18 if(argc > 1 && !strcmp(argv[1], "-v")) { | |
19 fputs("sselp-"VERSION", © 2006-2010 Anselm R Garbe\n", … | |
20 return 0; | |
21 } | |
22 if(!(dpy = XOpenDisplay(NULL))) | |
23 return 1; | |
24 | |
25 utf8 = XInternAtom(dpy, "UTF8_STRING", False); | |
26 clip = XInternAtom(dpy, "_SSELP_STRING", False); | |
27 win = XCreateSimpleWindow(dpy, DefaultRootWindow(dpy), 0, 0, 1, … | |
28 CopyFromParent, CopyFromParent); | |
29 XConvertSelection(dpy, XA_PRIMARY, utf8, clip, win, CurrentTime); | |
30 | |
31 XNextEvent(dpy, &ev); | |
32 if(ev.type == SelectionNotify && ev.xselection.property != None)… | |
33 do { | |
34 XGetWindowProperty(dpy, win, ev.xselection.prope… | |
35 False, utf8, &type, &fmt, &le… | |
36 fwrite(data, 1, len, stdout); | |
37 XFree(data); | |
38 off += len/4; | |
39 } | |
40 while(more > 0); | |
41 putchar('\n'); | |
42 } | |
43 XCloseDisplay(dpy); | |
44 return 0; | |
45 } |