1
0

removed unnecessary sel stuff

This commit is contained in:
Anselm R. Garbe 2006-07-11 18:19:01 +02:00
parent 586f66331d
commit b1669b5c48
4 changed files with 2 additions and 95 deletions

View File

@ -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

View File

@ -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
View File

@ -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
View File

@ -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);