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(...) \ |