Simplify strchrnul() compat code
strchrnul() was introduced in glibc in April 1999 and included in glibc-2.1. Checking for that version means the majority of all git users would get to use the optimized version in glibc. Of the remaining few some might get to use a slightly slower version than necessary but probably not slower than what we have today. Unfortunately, __GLIBC_PREREQ() macro was not available in glibc 2.1.1 which was short lived but already supported strchrnul(). Odd minority users of that library needs to live with our compatibility inline version. Rediffed-against-next-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
b9c6232138
commit
9e79f00f06
13
Makefile
13
Makefile
@ -30,8 +30,6 @@ all::
|
|||||||
#
|
#
|
||||||
# Define NO_MEMMEM if you don't have memmem.
|
# Define NO_MEMMEM if you don't have memmem.
|
||||||
#
|
#
|
||||||
# Define NO_STRCHRNUL if you don't have strchrnul.
|
|
||||||
#
|
|
||||||
# Define NO_STRLCPY if you don't have strlcpy.
|
# Define NO_STRLCPY if you don't have strlcpy.
|
||||||
#
|
#
|
||||||
# Define NO_STRTOUMAX if you don't have strtoumax in the C library.
|
# Define NO_STRTOUMAX if you don't have strtoumax in the C library.
|
||||||
@ -408,7 +406,6 @@ ifeq ($(uname_S),Darwin)
|
|||||||
OLD_ICONV = UnfortunatelyYes
|
OLD_ICONV = UnfortunatelyYes
|
||||||
NO_STRLCPY = YesPlease
|
NO_STRLCPY = YesPlease
|
||||||
NO_MEMMEM = YesPlease
|
NO_MEMMEM = YesPlease
|
||||||
NO_STRCHRNUL = YesPlease
|
|
||||||
endif
|
endif
|
||||||
ifeq ($(uname_S),SunOS)
|
ifeq ($(uname_S),SunOS)
|
||||||
NEEDS_SOCKET = YesPlease
|
NEEDS_SOCKET = YesPlease
|
||||||
@ -416,7 +413,6 @@ ifeq ($(uname_S),SunOS)
|
|||||||
SHELL_PATH = /bin/bash
|
SHELL_PATH = /bin/bash
|
||||||
NO_STRCASESTR = YesPlease
|
NO_STRCASESTR = YesPlease
|
||||||
NO_MEMMEM = YesPlease
|
NO_MEMMEM = YesPlease
|
||||||
NO_STRCHRNUL = YesPlease
|
|
||||||
NO_HSTRERROR = YesPlease
|
NO_HSTRERROR = YesPlease
|
||||||
ifeq ($(uname_R),5.8)
|
ifeq ($(uname_R),5.8)
|
||||||
NEEDS_LIBICONV = YesPlease
|
NEEDS_LIBICONV = YesPlease
|
||||||
@ -442,7 +438,6 @@ ifeq ($(uname_O),Cygwin)
|
|||||||
NO_D_INO_IN_DIRENT = YesPlease
|
NO_D_INO_IN_DIRENT = YesPlease
|
||||||
NO_STRCASESTR = YesPlease
|
NO_STRCASESTR = YesPlease
|
||||||
NO_MEMMEM = YesPlease
|
NO_MEMMEM = YesPlease
|
||||||
NO_STRCHRNUL = YesPlease
|
|
||||||
NO_SYMLINK_HEAD = YesPlease
|
NO_SYMLINK_HEAD = YesPlease
|
||||||
NEEDS_LIBICONV = YesPlease
|
NEEDS_LIBICONV = YesPlease
|
||||||
NO_FAST_WORKING_DIRECTORY = UnfortunatelyYes
|
NO_FAST_WORKING_DIRECTORY = UnfortunatelyYes
|
||||||
@ -457,14 +452,12 @@ endif
|
|||||||
ifeq ($(uname_S),FreeBSD)
|
ifeq ($(uname_S),FreeBSD)
|
||||||
NEEDS_LIBICONV = YesPlease
|
NEEDS_LIBICONV = YesPlease
|
||||||
NO_MEMMEM = YesPlease
|
NO_MEMMEM = YesPlease
|
||||||
NO_STRCHRNUL = YesPlease
|
|
||||||
BASIC_CFLAGS += -I/usr/local/include
|
BASIC_CFLAGS += -I/usr/local/include
|
||||||
BASIC_LDFLAGS += -L/usr/local/lib
|
BASIC_LDFLAGS += -L/usr/local/lib
|
||||||
endif
|
endif
|
||||||
ifeq ($(uname_S),OpenBSD)
|
ifeq ($(uname_S),OpenBSD)
|
||||||
NO_STRCASESTR = YesPlease
|
NO_STRCASESTR = YesPlease
|
||||||
NO_MEMMEM = YesPlease
|
NO_MEMMEM = YesPlease
|
||||||
NO_STRCHRNUL = YesPlease
|
|
||||||
NEEDS_LIBICONV = YesPlease
|
NEEDS_LIBICONV = YesPlease
|
||||||
BASIC_CFLAGS += -I/usr/local/include
|
BASIC_CFLAGS += -I/usr/local/include
|
||||||
BASIC_LDFLAGS += -L/usr/local/lib
|
BASIC_LDFLAGS += -L/usr/local/lib
|
||||||
@ -480,7 +473,6 @@ endif
|
|||||||
ifeq ($(uname_S),AIX)
|
ifeq ($(uname_S),AIX)
|
||||||
NO_STRCASESTR=YesPlease
|
NO_STRCASESTR=YesPlease
|
||||||
NO_MEMMEM = YesPlease
|
NO_MEMMEM = YesPlease
|
||||||
NO_STRCHRNUL = YesPlease
|
|
||||||
NO_STRLCPY = YesPlease
|
NO_STRLCPY = YesPlease
|
||||||
NEEDS_LIBICONV=YesPlease
|
NEEDS_LIBICONV=YesPlease
|
||||||
endif
|
endif
|
||||||
@ -493,7 +485,6 @@ ifeq ($(uname_S),IRIX64)
|
|||||||
NO_SETENV=YesPlease
|
NO_SETENV=YesPlease
|
||||||
NO_STRCASESTR=YesPlease
|
NO_STRCASESTR=YesPlease
|
||||||
NO_MEMMEM = YesPlease
|
NO_MEMMEM = YesPlease
|
||||||
NO_STRCHRNUL = YesPlease
|
|
||||||
NO_STRLCPY = YesPlease
|
NO_STRLCPY = YesPlease
|
||||||
NO_SOCKADDR_STORAGE=YesPlease
|
NO_SOCKADDR_STORAGE=YesPlease
|
||||||
SHELL_PATH=/usr/gnu/bin/bash
|
SHELL_PATH=/usr/gnu/bin/bash
|
||||||
@ -704,10 +695,6 @@ ifdef NO_MEMMEM
|
|||||||
COMPAT_CFLAGS += -DNO_MEMMEM
|
COMPAT_CFLAGS += -DNO_MEMMEM
|
||||||
COMPAT_OBJS += compat/memmem.o
|
COMPAT_OBJS += compat/memmem.o
|
||||||
endif
|
endif
|
||||||
ifdef NO_STRCHRNUL
|
|
||||||
COMPAT_CFLAGS += -DNO_STRCHRNUL
|
|
||||||
COMPAT_OBJS += compat/strchrnul.o
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifdef THREADED_DELTA_SEARCH
|
ifdef THREADED_DELTA_SEARCH
|
||||||
BASIC_CFLAGS += -DTHREADED_DELTA_SEARCH
|
BASIC_CFLAGS += -DTHREADED_DELTA_SEARCH
|
||||||
|
@ -1,8 +0,0 @@
|
|||||||
#include "../git-compat-util.h"
|
|
||||||
|
|
||||||
char *gitstrchrnul(const char *s, int c)
|
|
||||||
{
|
|
||||||
while (*s && *s != c)
|
|
||||||
s++;
|
|
||||||
return (char *)s;
|
|
||||||
}
|
|
@ -183,9 +183,14 @@ void *gitmemmem(const void *haystack, size_t haystacklen,
|
|||||||
const void *needle, size_t needlelen);
|
const void *needle, size_t needlelen);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef NO_STRCHRNUL
|
#if !defined(__GLIBC_PREREQ) && !__GLIBC_PREREQ(2, 1)
|
||||||
#define strchrnul gitstrchrnul
|
#define strchrnul gitstrchrnul
|
||||||
char *gitstrchrnul(const char *s, int c);
|
static inline char *gitstrchrnul(const char *s, int c)
|
||||||
|
{
|
||||||
|
while (*s && *s != c)
|
||||||
|
s++;
|
||||||
|
return (char *)s;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern void release_pack_memory(size_t, int);
|
extern void release_pack_memory(size_t, int);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user