grep: change the internal PCRE macro names to be PCRE1

Change the internal USE_LIBPCRE define, & build options flag to use a naming convention ending in PCRE1, without changing the long-standing USE_LIBPCRE Makefile flag which enables this code. This is for preparation for libpcre2 support where having things like USE_LIBPCRE and USE_LIBPCRE2 in any more places than we absolutely need to for backwards compatibility with old Makefile arguments would be confusing. In some ways it would be better to change everything that now uses USE_LIBPCRE to use USE_LIBPCRE1, and to make specifying USE_LIBPCRE (or --with-pcre) an error. This would impose a one-time burden on packagers of git to s/USE_LIBPCRE/USE_LIBPCRE1/ in their build scripts. However I'd like to leave the door open to making USE_LIBPCRE=YesPlease eventually mean USE_LIBPCRE2=YesPlease, i.e. once PCRE v2 is ubiquitous enough that it makes sense to make it the default. This code and the USE_LIBPCRE Makefile argument was added in commit 63e7e9d8b6 ("git-grep: Learn PCRE", 2011-05-09). At the time there was no indication that the PCRE project would release an entirely new & incompatible API around 3 years later. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Ævar Arnfjörð Bjarmason committed May 25, 2017 at 19:45 UTC 3485bea1578986eab80ff1d4fa480d8d1aa224fe
4 files changed +7 -7
Makefile
+2 -2
@@ -1088,7 +1088,7 @@ ifdef NO_LIBGEN_H
1088 endif
1089
1090 ifdef USE_LIBPCRE
1091 - BASIC_CFLAGS += -DUSE_LIBPCRE
1091 + BASIC_CFLAGS += -DUSE_LIBPCRE1
1092 ifdef LIBPCREDIR
1093 BASIC_CFLAGS += -I$(LIBPCREDIR)/include
1094 EXTLIBS += -L$(LIBPCREDIR)/$(lib) $(CC_LD_DYNPATH)$(LIBPCREDIR)/$(lib)
@@ -2240,7 +2240,7 @@ GIT-BUILD-OPTIONS: FORCE
2240 @echo TAR=\''$(subst ','\'',$(subst ','\'',$(TAR)))'\' >>$@+
2241 @echo NO_CURL=\''$(subst ','\'',$(subst ','\'',$(NO_CURL)))'\' >>$@+
2242 @echo NO_EXPAT=\''$(subst ','\'',$(subst ','\'',$(NO_EXPAT)))'\' >>$@+
2243 - @echo USE_LIBPCRE=\''$(subst ','\'',$(subst ','\'',$(USE_LIBPCRE)))'\' >>$@+
2243 + @echo USE_LIBPCRE1=\''$(subst ','\'',$(subst ','\'',$(USE_LIBPCRE)))'\' >>$@+
2244 @echo NO_PERL=\''$(subst ','\'',$(subst ','\'',$(NO_PERL)))'\' >>$@+
2245 @echo NO_PYTHON=\''$(subst ','\'',$(subst ','\'',$(NO_PYTHON)))'\' >>$@+
2246 @echo NO_UNIX_SOCKETS=\''$(subst ','\'',$(subst ','\'',$(NO_UNIX_SOCKETS)))'\' >>$@+
grep.c
+3 -3
@@ -333,7 +333,7 @@ static int has_null(const char *s, size_t len)
333 return 0;
334 }
335
336 -#ifdef USE_LIBPCRE
336 +#ifdef USE_LIBPCRE1
337 static void compile_pcre_regexp(struct grep_pat *p, const struct grep_opt *opt)
338 {
339 const char *error;
@@ -385,7 +385,7 @@ static void free_pcre_regexp(struct grep_pat *p)
385 pcre_free(p->pcre_extra_info);
386 pcre_free((void *)p->pcre_tables);
387 }
388 -#else /* !USE_LIBPCRE */
388 +#else /* !USE_LIBPCRE1 */
389 static void compile_pcre_regexp(struct grep_pat *p, const struct grep_opt *opt)
390 {
391 die("cannot use Perl-compatible regexes when not compiled with USE_LIBPCRE");
@@ -400,7 +400,7 @@ static int pcrematch(struct grep_pat *p, const char *line, const char *eol,
400 static void free_pcre_regexp(struct grep_pat *p)
401 {
402 }
403 -#endif /* !USE_LIBPCRE */
403 +#endif /* !USE_LIBPCRE1 */
404
405 static int is_fixed(const char *s, size_t len)
406 {
grep.h
+1 -1
@@ -1,7 +1,7 @@
1 #ifndef GREP_H
2 #define GREP_H
3 #include "color.h"
4 -#ifdef USE_LIBPCRE
4 +#ifdef USE_LIBPCRE1
5 #include <pcre.h>
6 #else
7 typedef int pcre;
t/test-lib.sh
+1 -1
@@ -1010,7 +1010,7 @@ esac
1010 ( COLUMNS=1 && test $COLUMNS = 1 ) && test_set_prereq COLUMNS_CAN_BE_1
1011 test -z "$NO_PERL" && test_set_prereq PERL
1012 test -z "$NO_PYTHON" && test_set_prereq PYTHON
1013 -test -n "$USE_LIBPCRE" && test_set_prereq PCRE
1013 +test -n "$USE_LIBPCRE1" && test_set_prereq PCRE
1014 test -z "$NO_GETTEXT" && test_set_prereq GETTEXT
1015
1016 # Can we rely on git's output in the C locale?