| 
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -28,7 +28,7 @@ drawtext(const char *text, Bool invert, Bool border) | 
															
														
														
													
														
															
																 | 
																 | 
																{ | 
																 | 
																 | 
																{ | 
															
														
														
													
														
															
																 | 
																 | 
																	int x, y, w, h; | 
																 | 
																 | 
																	int x, y, w, h; | 
															
														
														
													
														
															
																 | 
																 | 
																	static char buf[256]; | 
																 | 
																 | 
																	static char buf[256]; | 
															
														
														
													
														
															
																 | 
																 | 
																	unsigned int len; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	unsigned int len, olen; | 
															
														
														
													
														
															
																 | 
																 | 
																	XGCValues gcv; | 
																 | 
																 | 
																	XGCValues gcv; | 
															
														
														
													
														
															
																 | 
																 | 
																	XPoint points[5]; | 
																 | 
																 | 
																	XPoint points[5]; | 
															
														
														
													
														
															
																 | 
																 | 
																	XRectangle r = { dc.x, dc.y, dc.w, dc.h }; | 
																 | 
																 | 
																	XRectangle r = { dc.x, dc.y, dc.w, dc.h }; | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -56,7 +56,7 @@ drawtext(const char *text, Bool invert, Bool border) | 
															
														
														
													
														
															
																 | 
																 | 
																	if(!text) | 
																 | 
																 | 
																	if(!text) | 
															
														
														
													
														
															
																 | 
																 | 
																		return; | 
																 | 
																 | 
																		return; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	len = strlen(text); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	olen = len = strlen(text); | 
															
														
														
													
														
															
																 | 
																 | 
																	if(len >= sizeof(buf)) | 
																 | 
																 | 
																	if(len >= sizeof(buf)) | 
															
														
														
													
														
															
																 | 
																 | 
																		len = sizeof(buf) - 1; | 
																 | 
																 | 
																		len = sizeof(buf) - 1; | 
															
														
														
													
														
															
																 | 
																 | 
																	memcpy(buf, text, len); | 
																 | 
																 | 
																	memcpy(buf, text, len); | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -69,6 +69,14 @@ drawtext(const char *text, Bool invert, Bool border) | 
															
														
														
													
														
															
																 | 
																 | 
																	/* shorten text if necessary */ | 
																 | 
																 | 
																	/* shorten text if necessary */ | 
															
														
														
													
														
															
																 | 
																 | 
																	while(len && (w = textnw(buf, len)) > dc.w - h) | 
																 | 
																 | 
																	while(len && (w = textnw(buf, len)) > dc.w - h) | 
															
														
														
													
														
															
																 | 
																 | 
																		buf[--len] = 0; | 
																 | 
																 | 
																		buf[--len] = 0; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	if(len < olen) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		if(len > 3) | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																			memcpy(buf + len - 4, "...\0", 4); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		else if(len > 2) | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																			memcpy(buf + len - 3, "..\0", 3); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		else if(len > 1) | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																			memcpy(buf + len - 2, ".\0", 2); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	if(w > dc.w) | 
																 | 
																 | 
																	if(w > dc.w) | 
															
														
														
													
														
															
																 | 
																 | 
																		return; /* too long */ | 
																 | 
																 | 
																		return; /* too long */ | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																	
																 | 
																
  |