implemented strcasestr for dmenu (I call it cistrstr) for portability issues (cygwin has no strcasestr, oh dear)
This commit is contained in:
		
							parent
							
								
									b9531d316b
								
							
						
					
					
						commit
						2c6f4ebae3
					
				@ -58,6 +58,7 @@ void readstdin(void);
 | 
			
		||||
void run(void);
 | 
			
		||||
void setup(Bool bottom);
 | 
			
		||||
int strcaseido(const char *text, const char *pattern);
 | 
			
		||||
char *cistrstr(const char *s, const char *sub);
 | 
			
		||||
unsigned int textnw(const char *text, unsigned int len);
 | 
			
		||||
unsigned int textw(const char *text);
 | 
			
		||||
 | 
			
		||||
@ -511,7 +512,7 @@ match(char *pattern) {
 | 
			
		||||
		if(!i->matched && !strncasecmp(pattern, i->text, plen))
 | 
			
		||||
			j = appenditem(i, j);
 | 
			
		||||
	for(i = allitems; i; i = i->next)
 | 
			
		||||
		if(!i->matched && strcasestr(i->text, pattern))
 | 
			
		||||
		if(!i->matched && cistrstr(i->text, pattern))
 | 
			
		||||
			j = appenditem(i, j);
 | 
			
		||||
	if(idomatch)
 | 
			
		||||
		for(i = allitems; i; i = i->next)
 | 
			
		||||
@ -629,6 +630,29 @@ strcaseido(const char *text, const char *pattern) {
 | 
			
		||||
	return !*pattern;
 | 
			
		||||
}                                  
 | 
			
		||||
 | 
			
		||||
char *
 | 
			
		||||
cistrstr(const char *s, const char *sub) {
 | 
			
		||||
	int c, csub;
 | 
			
		||||
	unsigned int len;
 | 
			
		||||
 | 
			
		||||
	if(!sub)
 | 
			
		||||
		return (char *)s;
 | 
			
		||||
	if((c = *sub++) != 0) {
 | 
			
		||||
		c = tolower(c);
 | 
			
		||||
		len = strlen(sub);
 | 
			
		||||
		do {
 | 
			
		||||
			do {
 | 
			
		||||
				if((csub = *s++) == 0)
 | 
			
		||||
					return (NULL);
 | 
			
		||||
			}
 | 
			
		||||
			while(tolower(csub) != c);
 | 
			
		||||
		}
 | 
			
		||||
		while(strncasecmp(s, sub, len) != 0);
 | 
			
		||||
		s--;
 | 
			
		||||
	}
 | 
			
		||||
	return (char *)s;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
unsigned int
 | 
			
		||||
textnw(const char *text, unsigned int len) {
 | 
			
		||||
	XRectangle r;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user