Merge branch 'ds/use-platform-regex-on-macos'

With a bit of header twiddling, use the native regexp library on
macOS instead of the compat/ one.

* ds/use-platform-regex-on-macos:
  grep: fix multibyte regex handling under macOS
This commit is contained in:
Junio C Hamano 2022-10-07 17:19:58 -07:00
commit 410a0e520d
5 changed files with 18 additions and 3 deletions

View File

@ -1442,7 +1442,6 @@ ifeq ($(uname_S),Darwin)
APPLE_COMMON_CRYPTO = YesPlease
COMPAT_CFLAGS += -DAPPLE_COMMON_CRYPTO
endif
NO_REGEX = YesPlease
PTHREAD_LIBS =
endif
@ -2980,6 +2979,7 @@ GIT-BUILD-OPTIONS: FORCE
@echo NO_PERL=\''$(subst ','\'',$(subst ','\'',$(NO_PERL)))'\' >>$@+
@echo NO_PTHREADS=\''$(subst ','\'',$(subst ','\'',$(NO_PTHREADS)))'\' >>$@+
@echo NO_PYTHON=\''$(subst ','\'',$(subst ','\'',$(NO_PYTHON)))'\' >>$@+
@echo NO_REGEX=\''$(subst ','\'',$(subst ','\'',$(NO_REGEX)))'\' >>$@+
@echo NO_UNIX_SOCKETS=\''$(subst ','\'',$(subst ','\'',$(NO_UNIX_SOCKETS)))'\' >>$@+
@echo PAGER_ENV=\''$(subst ','\'',$(subst ','\'',$(PAGER_ENV)))'\' >>$@+
@echo DC_SHA1=\''$(subst ','\'',$(subst ','\'',$(DC_SHA1)))'\' >>$@+

View File

@ -40,6 +40,7 @@ int main(int argc, const char **argv)
git_resolve_executable_dir(argv[0]);
setlocale(LC_CTYPE, "");
git_setup_gettext();
initialize_the_repository();

View File

@ -10,7 +10,6 @@
#include "config.h"
#ifndef NO_GETTEXT
# include <locale.h>
# include <libintl.h>
# ifdef GIT_WINDOWS_NATIVE
@ -80,7 +79,6 @@ static int test_vsnprintf(const char *fmt, ...)
static void init_gettext_charset(const char *domain)
{
setlocale(LC_CTYPE, "");
charset = locale_charset();
bind_textdomain_codeset(domain, charset);

View File

@ -222,6 +222,7 @@ struct strbuf;
#endif
#include <errno.h>
#include <limits.h>
#include <locale.h>
#ifdef NEEDS_SYS_PARAM_H
#include <sys/param.h>
#endif

View File

@ -18,6 +18,9 @@ test_invalid_grep_expression() {
'
}
LC_ALL=en_US.UTF-8 test-tool regex '^.$' '¿' &&
test_set_prereq MB_REGEX
cat >hello.c <<EOF
#include <assert.h>
#include <stdio.h>
@ -88,6 +91,10 @@ test_expect_success setup '
echo unusual >"\"unusual\" pathname" &&
echo unusual >"t/nested \"unusual\" pathname"
fi &&
if test_have_prereq MB_REGEX
then
echo "¿" >reverse-question-mark
fi &&
git add . &&
test_tick &&
git commit -m initial
@ -569,6 +576,14 @@ do
'
done
test_expect_success MB_REGEX 'grep exactly one char in single-char multibyte file' '
LC_ALL=en_US.UTF-8 git grep "^.$" reverse-question-mark
'
test_expect_success MB_REGEX 'grep two chars in single-char multibyte file' '
LC_ALL=en_US.UTF-8 test_expect_code 1 git grep ".." reverse-question-mark
'
cat >expected <<EOF
file
EOF