diff options
-rw-r--r-- | make.c | 9 | ||||
-rw-r--r-- | src/grab.c | 14 |
2 files changed, 17 insertions, 6 deletions
@@ -33,6 +33,8 @@ static char *_mkoutpath(const char **, size_t); #define mkoutpath(...) \ _mkoutpath((const char **)_vtoa(__VA_ARGS__), lengthof(_vtoa(__VA_ARGS__))) +static bool pflag; + int main(int argc, char **argv) { @@ -43,11 +45,14 @@ main(int argc, char **argv) cbsinit(argc, argv); rebuild(); - while ((opt = getopt(argc, argv, "d")) != -1) { + while ((opt = getopt(argc, argv, "dp")) != -1) { switch (opt) { case 'd': debug = true; break; + case 'p': + pflag = true; + break; default: fputs("Usage: make [-d]\n", stderr); exit(EXIT_FAILURE); @@ -83,6 +88,8 @@ main(int argc, char **argv) #ifdef CBS_IS_C23 cmdadd(&c, "-DGRAB_IS_C23=1"); #endif + if (pflag) + cmdadd(&c, "-DGRAB_DO_PCRE=1", "-lpcre2-posix"); if (debug) cmdadd(&c, CFLAGS_DEBUG); else @@ -3,7 +3,6 @@ #include <libgen.h> #include <limits.h> #include <locale.h> -#include <regex.h> #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -14,12 +13,17 @@ # define nullptr NULL #endif -#include "da.h" - -#ifndef REG_STARTEND -# error "REG_STARTEND not defined" +#if GRAB_DO_PCRE +# include <pcre2posix.h> +#else +# include <regex.h> +# ifndef REG_STARTEND +# error "REG_STARTEND not defined" +# endif #endif +#include "da.h" + #define die(...) err(EXIT_FAILURE, __VA_ARGS__); #define diex(...) errx(EXIT_FAILURE, __VA_ARGS__); #define warn(...) \ |