diff --git a/include/common/standard.h b/include/common/standard.h index d4f2448ef..33a3054b5 100644 --- a/include/common/standard.h +++ b/include/common/standard.h @@ -1140,4 +1140,13 @@ static inline void *my_realloc2(void *ptr, size_t size) return ret; } +/* HAP_STRING() makes a string from a literal while HAP_XSTRING() first + * evaluates the argument and is suited to pass macros. + * + * They allow macros like PCRE_MAJOR to be defined without quotes, which + * is convenient for applications that want to test its value. + */ +#define HAP_STRING(...) #__VA_ARGS__ +#define HAP_XSTRING(...) HAP_STRING(__VA_ARGS__) + #endif /* _COMMON_STANDARD_H */ diff --git a/src/haproxy.c b/src/haproxy.c index 98a6a17ee..6d0681c64 100644 --- a/src/haproxy.c +++ b/src/haproxy.c @@ -352,6 +352,9 @@ void display_build_opts() #endif #ifdef USE_PCRE + printf("Built with PCRE version : %s\n", (HAP_XSTRING(Z PCRE_PRERELEASE)[1] == 0)? + HAP_XSTRING(PCRE_MAJOR.PCRE_MINOR PCRE_DATE) : + HAP_XSTRING(PCRE_MAJOR.PCRE_MINOR) HAP_XSTRING(PCRE_PRERELEASE PCRE_DATE)); printf("Running on PCRE version : %s", pcre_version()); printf("\nPCRE library supports JIT : "); #ifdef USE_PCRE_JIT