23 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #include <X11/Xresource.h>
 | |
| 
 | |
| #define XRDB_LOAD_COLOR(R,V)    if (XrmGetResource(xrdb, R, NULL, &type, &value) == True) { \
 | |
|                                   if (value.addr != NULL && strnlen(value.addr, 8) == 7 && value.addr[0] == '#') { \
 | |
|                                     int i = 1; \
 | |
|                                     for (; i <= 6; i++) { \
 | |
|                                       if (value.addr[i] < 48) break; \
 | |
|                                       if (value.addr[i] > 57 && value.addr[i] < 65) break; \
 | |
|                                       if (value.addr[i] > 70 && value.addr[i] < 97) break; \
 | |
|                                       if (value.addr[i] > 102) break; \
 | |
|                                     } \
 | |
|                                     if (i == 7) { \
 | |
|                                       strncpy(V, value.addr, 7); \
 | |
|                                       V[7] = '\0'; \
 | |
|                                     } \
 | |
|                                   } \
 | |
|                                 }
 | |
| 
 | |
| static void loadxrdb(void);
 | |
| static void xrdb(const Arg *arg);
 | |
| 
 | |
| 
 |