portability
This commit is contained in:
		
							parent
							
								
									4354074607
								
							
						
					
					
						commit
						11ea52d170
					
				| @ -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); | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user