| 
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -3091,6 +3091,7 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) { | 
															
														
														
													
														
															
																 | 
																 | 
																		if(base.fg == defaultfg) | 
																 | 
																 | 
																		if(base.fg == defaultfg) | 
															
														
														
													
														
															
																 | 
																 | 
																			base.fg = defaultunderline; | 
																 | 
																 | 
																			base.fg = defaultunderline; | 
															
														
														
													
														
															
																 | 
																 | 
																	} | 
																 | 
																 | 
																	} | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	if(IS_TRUECOL(base.fg)) { | 
																 | 
																 | 
																	if(IS_TRUECOL(base.fg)) { | 
															
														
														
													
														
															
																 | 
																 | 
																		colfg.alpha = 0xffff; | 
																 | 
																 | 
																		colfg.alpha = 0xffff; | 
															
														
														
													
														
															
																 | 
																 | 
																		colfg.red = TRUERED(base.fg); | 
																 | 
																 | 
																		colfg.red = TRUERED(base.fg); | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -3113,8 +3114,6 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) { | 
															
														
														
													
														
															
																 | 
																 | 
																		bg = &dc.col[base.bg]; | 
																 | 
																 | 
																		bg = &dc.col[base.bg]; | 
															
														
														
													
														
															
																 | 
																 | 
																	} | 
																 | 
																 | 
																	} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	if(base.mode & ATTR_BOLD) { | 
																 | 
																 | 
																	if(base.mode & ATTR_BOLD) { | 
															
														
														
													
														
															
																 | 
																 | 
																		if(BETWEEN(base.fg, 0, 7)) { | 
																 | 
																 | 
																		if(BETWEEN(base.fg, 0, 7)) { | 
															
														
														
													
														
															
																 | 
																 | 
																			/* basic system colors */ | 
																 | 
																 | 
																			/* basic system colors */ | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -3144,7 +3143,8 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) { | 
															
														
														
													
														
															
																 | 
																 | 
																			colfg.green = ~fg->color.green; | 
																 | 
																 | 
																			colfg.green = ~fg->color.green; | 
															
														
														
													
														
															
																 | 
																 | 
																			colfg.blue = ~fg->color.blue; | 
																 | 
																 | 
																			colfg.blue = ~fg->color.blue; | 
															
														
														
													
														
															
																 | 
																 | 
																			colfg.alpha = fg->color.alpha; | 
																 | 
																 | 
																			colfg.alpha = fg->color.alpha; | 
															
														
														
													
														
															
																 | 
																 | 
																			XftColorAllocValue(xw.dpy, xw.vis, xw.cmap, &colfg, &revfg); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																			XftColorAllocValue(xw.dpy, xw.vis, xw.cmap, &colfg, | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																					&revfg); | 
															
														
														
													
														
															
																 | 
																 | 
																			fg = &revfg; | 
																 | 
																 | 
																			fg = &revfg; | 
															
														
														
													
														
															
																 | 
																 | 
																		} | 
																 | 
																 | 
																		} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -3155,7 +3155,8 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) { | 
															
														
														
													
														
															
																 | 
																 | 
																			colbg.green = ~bg->color.green; | 
																 | 
																 | 
																			colbg.green = ~bg->color.green; | 
															
														
														
													
														
															
																 | 
																 | 
																			colbg.blue = ~bg->color.blue; | 
																 | 
																 | 
																			colbg.blue = ~bg->color.blue; | 
															
														
														
													
														
															
																 | 
																 | 
																			colbg.alpha = bg->color.alpha; | 
																 | 
																 | 
																			colbg.alpha = bg->color.alpha; | 
															
														
														
													
														
															
																 | 
																 | 
																			XftColorAllocValue(xw.dpy, xw.vis, xw.cmap, &colbg, &revbg); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																			XftColorAllocValue(xw.dpy, xw.vis, xw.cmap, &colbg, | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																					&revbg); | 
															
														
														
													
														
															
																 | 
																 | 
																			bg = &revbg; | 
																 | 
																 | 
																			bg = &revbg; | 
															
														
														
													
														
															
																 | 
																 | 
																		} | 
																 | 
																 | 
																		} | 
															
														
														
													
														
															
																 | 
																 | 
																	} | 
																 | 
																 | 
																	} | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -3235,7 +3236,7 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) { | 
															
														
														
													
														
															
																 | 
																 | 
																			u8fblen += u8cblen; | 
																 | 
																 | 
																			u8fblen += u8cblen; | 
															
														
														
													
														
															
																 | 
																 | 
																		} | 
																 | 
																 | 
																		} | 
															
														
														
													
														
															
																 | 
																 | 
																		if(doesexist) { | 
																 | 
																 | 
																		if(doesexist) { | 
															
														
														
													
														
															
																 | 
																 | 
																			if (oneatatime) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																			if(oneatatime) | 
															
														
														
													
														
															
																 | 
																 | 
																				continue; | 
																 | 
																 | 
																				continue; | 
															
														
														
													
														
															
																 | 
																 | 
																			break; | 
																 | 
																 | 
																			break; | 
															
														
														
													
														
															
																 | 
																 | 
																		} | 
																 | 
																 | 
																		} | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -3258,6 +3259,8 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) { | 
															
														
														
													
														
															
																 | 
																 | 
																			 * Nothing was found in the cache. Now use | 
																 | 
																 | 
																			 * Nothing was found in the cache. Now use | 
															
														
														
													
														
															
																 | 
																 | 
																			 * some dozen of Fontconfig calls to get the | 
																 | 
																 | 
																			 * some dozen of Fontconfig calls to get the | 
															
														
														
													
														
															
																 | 
																 | 
																			 * font for one single character. | 
																 | 
																 | 
																			 * font for one single character. | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																			 * | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																			 * Xft and fontconfig are design failures. | 
															
														
														
													
														
															
																 | 
																 | 
																			 */ | 
																 | 
																 | 
																			 */ | 
															
														
														
													
														
															
																 | 
																 | 
																			fcpattern = FcPatternDuplicate(font->pattern); | 
																 | 
																 | 
																			fcpattern = FcPatternDuplicate(font->pattern); | 
															
														
														
													
														
															
																 | 
																 | 
																			fccharset = FcCharSetCreate(); | 
																 | 
																 | 
																			fccharset = FcCharSetCreate(); | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -3301,6 +3304,12 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) { | 
															
														
														
													
														
															
																 | 
																 | 
																		xp += xw.cw * wcwidth(u8char); | 
																 | 
																 | 
																		xp += xw.cw * wcwidth(u8char); | 
															
														
														
													
														
															
																 | 
																 | 
																	} | 
																 | 
																 | 
																	} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	/* | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	 * This is how the loop above actually should be. Why does the | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	 * application have to care about font details? | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	 * | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	 * I have to repeat: Xft and Fontconfig are design failures. | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	 */ | 
															
														
														
													
														
															
																 | 
																 | 
																	/* | 
																 | 
																 | 
																	/* | 
															
														
														
													
														
															
																 | 
																 | 
																	XftDrawStringUtf8(xw.draw, fg, font->set, winx, | 
																 | 
																 | 
																	XftDrawStringUtf8(xw.draw, fg, font->set, winx, | 
															
														
														
													
														
															
																 | 
																 | 
																			winy + font->ascent, (FcChar8 *)s, bytelen); | 
																 | 
																 | 
																			winy + font->ascent, (FcChar8 *)s, bytelen); | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																	
																 | 
																
  |