Remove the cruft of the user to have to define the different font styles.
This commit is contained in:
		
							parent
							
								
									ed5b8700a6
								
							
						
					
					
						commit
						9cae1eb0de
					
				
							
								
								
									
										60
									
								
								st.c
								
								
								
								
							
							
						
						
									
										60
									
								
								st.c
								
								
								
								
							|  | @ -336,6 +336,7 @@ static int isfullutf8(char *, int); | |||
| static void *xmalloc(size_t); | ||||
| static void *xrealloc(void *, size_t); | ||||
| static void *xcalloc(size_t nmemb, size_t size); | ||||
| static char *smstrcat(char *, ...); | ||||
| 
 | ||||
| static void (*handler[LASTEvent])(XEvent *) = { | ||||
| 	[KeyPress] = kpress, | ||||
|  | @ -393,6 +394,44 @@ xcalloc(size_t nmemb, size_t size) { | |||
| 	return p; | ||||
| } | ||||
| 
 | ||||
| char * | ||||
| smstrcat(char *src, ...) | ||||
| { | ||||
| 	va_list fmtargs; | ||||
| 	char *ret, *p, *v; | ||||
| 	int len, slen, flen; | ||||
| 
 | ||||
| 	len = slen = strlen(src); | ||||
| 
 | ||||
| 	va_start(fmtargs, src); | ||||
| 	for(;;) { | ||||
| 		v = va_arg(fmtargs, char *); | ||||
| 		if(v == NULL) | ||||
| 			break; | ||||
| 		len += strlen(v); | ||||
| 	} | ||||
| 	va_end(fmtargs); | ||||
| 
 | ||||
| 	p = ret = xmalloc(len+1); | ||||
| 	memmove(p, src, slen); | ||||
| 	p += slen; | ||||
| 
 | ||||
| 	va_start(fmtargs, src); | ||||
| 	for(;;) { | ||||
| 		v = va_arg(fmtargs, char *); | ||||
| 		if(v == NULL) | ||||
| 			break; | ||||
| 		flen = strlen(v); | ||||
| 		memmove(p, v, flen); | ||||
| 		p += flen; | ||||
| 	} | ||||
| 	va_end(fmtargs); | ||||
| 
 | ||||
| 	ret[len] = '\0'; | ||||
| 
 | ||||
| 	return ret; | ||||
| } | ||||
| 
 | ||||
| int | ||||
| utf8decode(char *s, long *u) { | ||||
| 	uchar c; | ||||
|  | @ -2017,11 +2056,22 @@ xinitfont(Font *f, char *fontstr) { | |||
| } | ||||
| 
 | ||||
| void | ||||
| initfonts(char *fontstr, char *bfontstr, char *ifontstr, char *ibfontstr) { | ||||
| initfonts(char *fontstr) { | ||||
| 	char *fstr; | ||||
| 
 | ||||
| 	xinitfont(&dc.font, fontstr); | ||||
| 	xinitfont(&dc.bfont, bfontstr); | ||||
| 	xinitfont(&dc.ifont, ifontstr); | ||||
| 	xinitfont(&dc.ibfont, ibfontstr); | ||||
| 
 | ||||
| 	fstr = smstrcat(fontstr, ":weight=bold", NULL); | ||||
| 	xinitfont(&dc.bfont, fstr); | ||||
| 	free(fstr); | ||||
| 
 | ||||
| 	fstr = smstrcat(fontstr, ":slant=italic,oblique", NULL); | ||||
| 	xinitfont(&dc.ifont, fstr); | ||||
| 	free(fstr); | ||||
| 
 | ||||
| 	fstr = smstrcat(fontstr, ":weight=bold:slant=italic,oblique", NULL); | ||||
| 	xinitfont(&dc.ibfont, fstr); | ||||
| 	free(fstr); | ||||
| } | ||||
| 
 | ||||
| void | ||||
|  | @ -2037,7 +2087,7 @@ xinit(void) { | |||
| 	xw.vis = XDefaultVisual(xw.dpy, xw.scr); | ||||
| 
 | ||||
| 	/* font */ | ||||
| 	initfonts(FONT, BOLDFONT, ITALICFONT, ITALICBOLDFONT); | ||||
| 	initfonts(FONT); | ||||
| 
 | ||||
| 	/* XXX: Assuming same size for bold font */ | ||||
| 	xw.cw = dc.font.rbearing - dc.font.lbearing; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue