diff -r e8b3b56a48cb sselp.c --- a/sselp.c Wed Aug 11 15:01:02 2010 +0100 +++ b/sselp.c Sun Apr 10 13:46:22 2011 +0200 @@ -6,7 +6,7 @@ int main(int argc, char *argv[]) { - Atom clip, utf8, type; + Atom clip, utf8, type, src = XA_PRIMARY; Display *dpy; Window win; XEvent ev; @@ -15,18 +15,22 @@ unsigned char *data; unsigned long len, more; + if(!(dpy = XOpenDisplay(NULL))) + return 1; + if(argc > 1 && !strcmp(argv[1], "-v")) { fputs("sselp-"VERSION", © 2006-2010 Anselm R Garbe\n", stdout); return 0; - } - if(!(dpy = XOpenDisplay(NULL))) - return 1; + }else if(argc > 1 && !strcmp(argv[1], "-s")) + src = XA_SECONDARY; + else if(argc > 1 && !strcmp(argv[1], "-b")) + src = XInternAtom(dpy, "CLIPBOARD", False); utf8 = XInternAtom(dpy, "UTF8_STRING", False); clip = XInternAtom(dpy, "_SSELP_STRING", False); win = XCreateSimpleWindow(dpy, DefaultRootWindow(dpy), 0, 0, 1, 1, 0, CopyFromParent, CopyFromParent); - XConvertSelection(dpy, XA_PRIMARY, utf8, clip, win, CurrentTime); + XConvertSelection(dpy, src, utf8, clip, win, CurrentTime); XNextEvent(dpy, &ev); if(ev.type == SelectionNotify && ev.xselection.property != None) {