Makefile: add USE_WILDMATCH to use wildmatch as fnmatch
This is similar to NO_FNMATCH but it uses wildmatch instead of compat/fnmatch. This is an intermediate step to let wildmatch be used as fnmatch replacement for wider audience before it replaces fnmatch completely and compat/fnmatch is removed. fnmatch in test-wildmatch is not impacted by this and is the only place that NO_FNMATCH or NO_FNMATCH_CASEFOLD remain active when USE_WILDMATCH is set. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
							parent
							
								
									6f1a31f0aa
								
							
						
					
					
						commit
						cebcab189a
					
				
							
								
								
									
										6
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										6
									
								
								Makefile
								
								
								
								
							|  | @ -99,6 +99,9 @@ all:: | |||
| # Define NO_FNMATCH_CASEFOLD if your fnmatch function doesn't have the | ||||
| # FNM_CASEFOLD GNU extension. | ||||
| # | ||||
| # Define USE_WILDMATCH if you want to use Git's wildmatch | ||||
| # implementation as fnmatch | ||||
| # | ||||
| # Define NO_GECOS_IN_PWENT if you don't have pw_gecos in struct passwd | ||||
| # in the C library. | ||||
| # | ||||
|  | @ -1625,6 +1628,9 @@ ifdef NO_FNMATCH_CASEFOLD | |||
| 	COMPAT_OBJS += compat/fnmatch/fnmatch.o | ||||
| endif | ||||
| endif | ||||
| ifdef USE_WILDMATCH | ||||
| 	COMPAT_CFLAGS += -DUSE_WILDMATCH | ||||
| endif | ||||
| ifdef NO_SETENV | ||||
| 	COMPAT_CFLAGS += -DNO_SETENV | ||||
| 	COMPAT_OBJS += compat/setenv.o | ||||
|  |  | |||
|  | @ -106,7 +106,9 @@ | |||
| #include <sys/time.h> | ||||
| #include <time.h> | ||||
| #include <signal.h> | ||||
| #ifndef USE_WILDMATCH | ||||
| #include <fnmatch.h> | ||||
| #endif | ||||
| #include <assert.h> | ||||
| #include <regex.h> | ||||
| #include <utime.h> | ||||
|  | @ -238,6 +240,17 @@ extern char *gitbasename(char *); | |||
|  | ||||
| #include "compat/bswap.h" | ||||
|  | ||||
| #ifdef USE_WILDMATCH | ||||
| #include "wildmatch.h" | ||||
| #define FNM_PATHNAME WM_PATHNAME | ||||
| #define FNM_CASEFOLD WM_CASEFOLD | ||||
| #define FNM_NOMATCH  WM_NOMATCH | ||||
| static inline int fnmatch(const char *pattern, const char *string, int flags) | ||||
| { | ||||
| 	return wildmatch(pattern, string, flags, NULL); | ||||
| } | ||||
| #endif | ||||
|  | ||||
| /* General helper functions */ | ||||
| extern void vreportf(const char *prefix, const char *err, va_list params); | ||||
| extern void vwritef(int fd, const char *prefix, const char *err, va_list params); | ||||
|  |  | |||
|  | @ -1,3 +1,6 @@ | |||
| #ifdef USE_WILDMATCH | ||||
| #undef USE_WILDMATCH  /* We need real fnmatch implementation here */ | ||||
| #endif | ||||
| #include "cache.h" | ||||
| #include "wildmatch.h" | ||||
|  | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Nguyễn Thái Ngọc Duy
						Nguyễn Thái Ngọc Duy