removed unnecessary sel stuff
This commit is contained in:
parent
586f66331d
commit
b1669b5c48
10
Makefile
10
Makefile
|
@ -7,12 +7,10 @@ WMSRC = bar.c client.c cmd.c draw.c event.c key.c util.c wm.c
|
|||
WMOBJ = ${WMSRC:.c=.o}
|
||||
MENSRC = menu.c draw.c util.c
|
||||
MENOBJ = ${MENSRC:.c=.o}
|
||||
SELSRC = gridsel.c util.c
|
||||
SELOBJ = ${SELSRC:.c=.o}
|
||||
MAN1 = gridwm.1 gridmenu.1
|
||||
BIN = gridwm gridmenu gridsel
|
||||
BIN = gridwm gridmenu
|
||||
|
||||
all: config gridwm gridmenu gridsel
|
||||
all: config gridwm gridmenu
|
||||
@echo finished
|
||||
|
||||
config:
|
||||
|
@ -36,10 +34,6 @@ gridwm: ${WMOBJ}
|
|||
@echo LD $@
|
||||
@${CC} -o $@ ${WMOBJ} ${LDFLAGS}
|
||||
|
||||
gridsel: ${SELOBJ}
|
||||
@echo LD $@
|
||||
@${CC} -o $@ ${SELOBJ} ${LDFLAGS}
|
||||
|
||||
clean:
|
||||
rm -f gridwm gridmenu *.o core
|
||||
|
||||
|
|
47
gridsel.c
47
gridsel.c
|
@ -1,47 +0,0 @@
|
|||
/*
|
||||
* (C)opyright MMVI Anselm R. Garbe <garbeam at gmail dot com>
|
||||
* See LICENSE file for license details.
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <util.h>
|
||||
|
||||
static char version[] = "gridsel - " VERSION ", (C)opyright MMVI Anselm R. Garbe\n";
|
||||
|
||||
static void
|
||||
usage()
|
||||
{
|
||||
fprintf(stderr, "%s\n", "usage: gridsel [-v]\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
unsigned char *data;
|
||||
unsigned long i, offset, len, remain;
|
||||
|
||||
/* command line args */
|
||||
if(argc > 1) {
|
||||
if(!strncmp(argv[1], "-v", 3)) {
|
||||
fprintf(stdout, "%s", version);
|
||||
exit(0);
|
||||
} else
|
||||
usage();
|
||||
}
|
||||
len = offset = remain = 0;
|
||||
do {
|
||||
data = getselection(offset, &len, &remain);
|
||||
for(i = 0; i < len; i++)
|
||||
putchar(data[i]);
|
||||
offset += len;
|
||||
free(data);
|
||||
}
|
||||
while(remain);
|
||||
if(offset)
|
||||
putchar('\n');
|
||||
return 0;
|
||||
}
|
38
util.c
38
util.c
|
@ -10,7 +10,6 @@
|
|||
#include <sys/types.h>
|
||||
#include <sys/wait.h>
|
||||
#include <unistd.h>
|
||||
#include <X11/Xatom.h>
|
||||
|
||||
#include "util.h"
|
||||
|
||||
|
@ -139,40 +138,3 @@ pipe_spawn(char *buf, unsigned int len, Display *dpy, char *argv[])
|
|||
}
|
||||
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;
|
||||
}
|
||||
|
|
2
util.h
2
util.h
|
@ -18,7 +18,5 @@ extern void failed_assert(char *a, char *file, int line);
|
|||
extern void pipe_spawn(char *buf, unsigned int len, Display *dpy, char *argv[]);
|
||||
extern void spawn(Display *dpy, char *argv[]);
|
||||
extern void swap(void **p1, void **p2);
|
||||
extern unsigned char *getselection(unsigned long offset, unsigned long *len,
|
||||
unsigned long *remain);
|
||||
extern unsigned int tokenize(char **result, unsigned int reslen,
|
||||
char *str, char delim);
|
||||
|
|
Loading…
Reference in New Issue