In WM_PATHNAME mode (or FNM_PATHNAME), '*' does not match '/' and '**' can but only in three patterns: - '**/' matches zero or more leading directories - '/**/' matches zero or more directories in between - '/**' matches zero or more trailing directories/files When '**' is present but not in one of these patterns, the current behavior is consider the pattern invalid and stop matching. In other words, 'foo**bar' never matches anything, whatever you throw at it. This behavior is arguably a bit confusing partly because we can't really tell the user their pattern is invalid so that they can fix it. So instead, tolerate it and make '**' act like two regular '*'s (which is essentially the same as a single asterisk). This behavior seems more predictable. Noticed-by: dana <dana@dana.is> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
			
				
	
	
		
			14 lines
		
	
	
		
			264 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			14 lines
		
	
	
		
			264 B
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef WILDMATCH_H
 | 
						|
#define WILDMATCH_H
 | 
						|
 | 
						|
#define WM_CASEFOLD 1
 | 
						|
#define WM_PATHNAME 2
 | 
						|
 | 
						|
#define WM_NOMATCH 1
 | 
						|
#define WM_MATCH 0
 | 
						|
#define WM_ABORT_ALL -1
 | 
						|
#define WM_ABORT_TO_STARSTAR -2
 | 
						|
 | 
						|
int wildmatch(const char *pattern, const char *text, unsigned int flags);
 | 
						|
#endif
 |