removed unnecessary sel stuff
This commit is contained in:
		
							
								
								
									
										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}
 | 
					WMOBJ = ${WMSRC:.c=.o}
 | 
				
			||||||
MENSRC = menu.c draw.c util.c
 | 
					MENSRC = menu.c draw.c util.c
 | 
				
			||||||
MENOBJ = ${MENSRC:.c=.o}
 | 
					MENOBJ = ${MENSRC:.c=.o}
 | 
				
			||||||
SELSRC = gridsel.c util.c
 | 
					 | 
				
			||||||
SELOBJ = ${SELSRC:.c=.o}
 | 
					 | 
				
			||||||
MAN1 = gridwm.1 gridmenu.1
 | 
					MAN1 = gridwm.1 gridmenu.1
 | 
				
			||||||
BIN = gridwm gridmenu gridsel 
 | 
					BIN = gridwm gridmenu
 | 
				
			||||||
 | 
					
 | 
				
			||||||
all: config gridwm gridmenu gridsel
 | 
					all: config gridwm gridmenu
 | 
				
			||||||
	@echo finished
 | 
						@echo finished
 | 
				
			||||||
 | 
					
 | 
				
			||||||
config:
 | 
					config:
 | 
				
			||||||
@@ -36,10 +34,6 @@ gridwm: ${WMOBJ}
 | 
				
			|||||||
	@echo LD $@
 | 
						@echo LD $@
 | 
				
			||||||
	@${CC} -o $@ ${WMOBJ} ${LDFLAGS}
 | 
						@${CC} -o $@ ${WMOBJ} ${LDFLAGS}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
gridsel: ${SELOBJ}
 | 
					 | 
				
			||||||
	@echo LD $@
 | 
					 | 
				
			||||||
	@${CC} -o $@ ${SELOBJ} ${LDFLAGS}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
clean:
 | 
					clean:
 | 
				
			||||||
	rm -f gridwm gridmenu *.o core
 | 
						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/types.h>
 | 
				
			||||||
#include <sys/wait.h>
 | 
					#include <sys/wait.h>
 | 
				
			||||||
#include <unistd.h>
 | 
					#include <unistd.h>
 | 
				
			||||||
#include <X11/Xatom.h>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "util.h"
 | 
					#include "util.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -139,40 +138,3 @@ pipe_spawn(char *buf, unsigned int len, Display *dpy, char *argv[])
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	wait(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;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										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 pipe_spawn(char *buf, unsigned int len, Display *dpy, char *argv[]);
 | 
				
			||||||
extern void spawn(Display *dpy, char *argv[]);
 | 
					extern void spawn(Display *dpy, char *argv[]);
 | 
				
			||||||
extern void swap(void **p1, void **p2);
 | 
					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,
 | 
					extern unsigned int tokenize(char **result, unsigned int reslen,
 | 
				
			||||||
		char *str, char delim);
 | 
							char *str, char delim);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user