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:
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
|
# Define NO_FNMATCH_CASEFOLD if your fnmatch function doesn't have the
|
||||||
# FNM_CASEFOLD GNU extension.
|
# 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
|
# Define NO_GECOS_IN_PWENT if you don't have pw_gecos in struct passwd
|
||||||
# in the C library.
|
# in the C library.
|
||||||
#
|
#
|
||||||
@ -1625,6 +1628,9 @@ ifdef NO_FNMATCH_CASEFOLD
|
|||||||
COMPAT_OBJS += compat/fnmatch/fnmatch.o
|
COMPAT_OBJS += compat/fnmatch/fnmatch.o
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
ifdef USE_WILDMATCH
|
||||||
|
COMPAT_CFLAGS += -DUSE_WILDMATCH
|
||||||
|
endif
|
||||||
ifdef NO_SETENV
|
ifdef NO_SETENV
|
||||||
COMPAT_CFLAGS += -DNO_SETENV
|
COMPAT_CFLAGS += -DNO_SETENV
|
||||||
COMPAT_OBJS += compat/setenv.o
|
COMPAT_OBJS += compat/setenv.o
|
||||||
|
@ -106,7 +106,9 @@
|
|||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
|
#ifndef USE_WILDMATCH
|
||||||
#include <fnmatch.h>
|
#include <fnmatch.h>
|
||||||
|
#endif
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <regex.h>
|
#include <regex.h>
|
||||||
#include <utime.h>
|
#include <utime.h>
|
||||||
@ -238,6 +240,17 @@ extern char *gitbasename(char *);
|
|||||||
|
|
||||||
#include "compat/bswap.h"
|
#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 */
|
/* General helper functions */
|
||||||
extern void vreportf(const char *prefix, const char *err, va_list params);
|
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);
|
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 "cache.h"
|
||||||
#include "wildmatch.h"
|
#include "wildmatch.h"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user