portability
This commit is contained in:
		@@ -18,7 +18,7 @@ LIBS = -L${X11LIB} -lX11 ${XINERAMALIBS}
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# flags
 | 
					# flags
 | 
				
			||||||
CPPFLAGS = -D_BSD_SOURCE -DVERSION=\"${VERSION}\" ${XINERAMAFLAGS}
 | 
					CPPFLAGS = -D_BSD_SOURCE -DVERSION=\"${VERSION}\" ${XINERAMAFLAGS}
 | 
				
			||||||
CFLAGS   = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS}
 | 
					CFLAGS   = -ansi -pedantic -Wall -Os ${INCS} ${CPPFLAGS}
 | 
				
			||||||
LDFLAGS  = -s ${LIBS}
 | 
					LDFLAGS  = -s ${LIBS}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# compiler and linker
 | 
					# compiler and linker
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										21
									
								
								dmenu.c
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								dmenu.c
									
									
									
									
									
								
							@@ -3,6 +3,7 @@
 | 
				
			|||||||
#include <stdio.h>
 | 
					#include <stdio.h>
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
#include <string.h>
 | 
					#include <string.h>
 | 
				
			||||||
 | 
					#include <strings.h>
 | 
				
			||||||
#include <unistd.h>
 | 
					#include <unistd.h>
 | 
				
			||||||
#include <X11/Xlib.h>
 | 
					#include <X11/Xlib.h>
 | 
				
			||||||
#include <X11/Xatom.h>
 | 
					#include <X11/Xatom.h>
 | 
				
			||||||
@@ -231,13 +232,14 @@ insert(const char *str, ssize_t n) {
 | 
				
			|||||||
void
 | 
					void
 | 
				
			||||||
keypress(XKeyEvent *ev) {
 | 
					keypress(XKeyEvent *ev) {
 | 
				
			||||||
	char buf[32];
 | 
						char buf[32];
 | 
				
			||||||
	size_t len;
 | 
					 | 
				
			||||||
	KeySym ksym;
 | 
						KeySym ksym;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	len = strlen(text);
 | 
					 | 
				
			||||||
	XLookupString(ev, buf, sizeof buf, &ksym, NULL);
 | 
						XLookupString(ev, buf, sizeof buf, &ksym, NULL);
 | 
				
			||||||
	if(ev->state & ControlMask)
 | 
						if(ev->state & ControlMask) {
 | 
				
			||||||
		switch(tolower(ksym)) {
 | 
							KeySym lower, upper;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							XConvertCase(ksym, &lower, &upper);
 | 
				
			||||||
 | 
							switch(lower) {
 | 
				
			||||||
		default:
 | 
							default:
 | 
				
			||||||
			return;
 | 
								return;
 | 
				
			||||||
		case XK_a:
 | 
							case XK_a:
 | 
				
			||||||
@@ -290,13 +292,14 @@ keypress(XKeyEvent *ev) {
 | 
				
			|||||||
			XConvertSelection(dc->dpy, XA_PRIMARY, utf8, utf8, win, CurrentTime);
 | 
								XConvertSelection(dc->dpy, XA_PRIMARY, utf8, utf8, win, CurrentTime);
 | 
				
			||||||
			return;
 | 
								return;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	switch(ksym) {
 | 
						switch(ksym) {
 | 
				
			||||||
	default:
 | 
						default:
 | 
				
			||||||
		if(!iscntrl(*buf))
 | 
							if(!iscntrl(*buf))
 | 
				
			||||||
			insert(buf, strlen(buf));
 | 
								insert(buf, strlen(buf));
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
	case XK_Delete:
 | 
						case XK_Delete:
 | 
				
			||||||
		if(cursor == len)
 | 
							if(text[cursor] == '\0')
 | 
				
			||||||
			return;
 | 
								return;
 | 
				
			||||||
		cursor = nextrune(+1);
 | 
							cursor = nextrune(+1);
 | 
				
			||||||
	case XK_BackSpace:
 | 
						case XK_BackSpace:
 | 
				
			||||||
@@ -304,8 +307,8 @@ keypress(XKeyEvent *ev) {
 | 
				
			|||||||
			insert(NULL, nextrune(-1) - cursor);
 | 
								insert(NULL, nextrune(-1) - cursor);
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
	case XK_End:
 | 
						case XK_End:
 | 
				
			||||||
		if(cursor < len) {
 | 
							if(text[cursor] != '\0') {
 | 
				
			||||||
			cursor = len;
 | 
								cursor = strlen(text);
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if(next) {
 | 
							if(next) {
 | 
				
			||||||
@@ -358,7 +361,7 @@ keypress(XKeyEvent *ev) {
 | 
				
			|||||||
		fputs((sel && !(ev->state & ShiftMask)) ? sel->text : text, stdout);
 | 
							fputs((sel && !(ev->state & ShiftMask)) ? sel->text : text, stdout);
 | 
				
			||||||
		exit(EXIT_SUCCESS);
 | 
							exit(EXIT_SUCCESS);
 | 
				
			||||||
	case XK_Right:
 | 
						case XK_Right:
 | 
				
			||||||
		if(cursor < len) {
 | 
							if(text[cursor] != '\0') {
 | 
				
			||||||
			cursor = nextrune(+1);
 | 
								cursor = nextrune(+1);
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
@@ -385,7 +388,7 @@ void
 | 
				
			|||||||
match(Bool sub) {
 | 
					match(Bool sub) {
 | 
				
			||||||
	size_t len = strlen(text);
 | 
						size_t len = strlen(text);
 | 
				
			||||||
	Item *lexact, *lprefix, *lsubstr, *exactend, *prefixend, *substrend;
 | 
						Item *lexact, *lprefix, *lsubstr, *exactend, *prefixend, *substrend;
 | 
				
			||||||
	Item *item, *next = NULL;
 | 
						Item *item, *next;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	lexact = lprefix = lsubstr = exactend = prefixend = substrend = NULL;
 | 
						lexact = lprefix = lsubstr = exactend = prefixend = substrend = NULL;
 | 
				
			||||||
	for(item = sub ? matches : items; item && item->text; item = next) {
 | 
						for(item = sub ? matches : items; item && item->text; item = next) {
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										11
									
								
								draw.c
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								draw.c
									
									
									
									
									
								
							@@ -15,12 +15,13 @@ static Bool loadfont(DC *dc, const char *fontstr);
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
drawrect(DC *dc, int x, int y, unsigned int w, unsigned int h, Bool fill, unsigned long color) {
 | 
					drawrect(DC *dc, int x, int y, unsigned int w, unsigned int h, Bool fill, unsigned long color) {
 | 
				
			||||||
	XRectangle r = { dc->x + x, dc->y + y, w, h };
 | 
						XRectangle r;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						r.x = dc->x + x;
 | 
				
			||||||
 | 
						r.y = dc->y + y;
 | 
				
			||||||
 | 
						r.width  = fill ? w : w-1;
 | 
				
			||||||
 | 
						r.height = fill ? h : h-1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if(!fill) {
 | 
					 | 
				
			||||||
		r.width -= 1;
 | 
					 | 
				
			||||||
		r.height -= 1;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	XSetForeground(dc->dpy, dc->gc, color);
 | 
						XSetForeground(dc->dpy, dc->gc, color);
 | 
				
			||||||
	(fill ? XFillRectangles : XDrawRectangles)(dc->dpy, dc->canvas, dc->gc, &r, 1);
 | 
						(fill ? XFillRectangles : XDrawRectangles)(dc->dpy, dc->canvas, dc->gc, &r, 1);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user