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>
This commit is contained in:
		
				
					committed by
					
						
						Junio C Hamano
					
				
			
			
				
	
			
			
			
						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"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user