https://github.com/PCRE2Project/pcre2/commit/cd8dc40b901bdedf5bcc0b3acdd9eede16802f39 https://github.com/PCRE2Project/pcre2/issues/173 https://bugs.gentoo.org/884705 From cd8dc40b901bdedf5bcc0b3acdd9eede16802f39 Mon Sep 17 00:00:00 2001 From: Philip Hazel Date: Fri, 9 Dec 2022 09:40:52 +0000 Subject: [PATCH] Move default of PCRE2_CALL_CONVENTION from pcre2posix.c to pcre2posix.h --- a/src/pcre2posix.c +++ b/src/pcre2posix.c @@ -92,20 +92,6 @@ changed. This #define is a copy of the one in pcre2_internal.h. */ #include "pcre2.h" #include "pcre2posix.h" -/* When compiling with the MSVC compiler, it is sometimes necessary to include -a "calling convention" before exported function names. (This is secondhand -information; I know nothing about MSVC myself). For example, something like - - void __cdecl function(....) - -might be needed. In order to make this easy, all the exported functions have -PCRE2_CALL_CONVENTION just before their names. It is rarely needed; if not -set, we ensure here that it has no effect. */ - -#ifndef PCRE2_CALL_CONVENTION -#define PCRE2_CALL_CONVENTION -#endif - /* Table to translate PCRE2 compile time error codes into POSIX error codes. Only a few PCRE2 errors with a value greater than 23 turn into special POSIX codes: most go to REG_BADPAT. The second table lists, in pairs, those that --- a/src/pcre2posix.h +++ b/src/pcre2posix.h @@ -9,7 +9,7 @@ POSIX wrapper interface. Written by Philip Hazel Original API code Copyright (c) 1997-2012 University of Cambridge - New API code Copyright (c) 2016-2019 University of Cambridge + New API code Copyright (c) 2016-2022 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without @@ -116,6 +116,20 @@ typedef struct { regoff_t rm_eo; } regmatch_t; +/* When compiling with the MSVC compiler, it is sometimes necessary to include +a "calling convention" before exported function names. (This is secondhand +information; I know nothing about MSVC myself). For example, something like + + void __cdecl function(....) + +might be needed. In order to make this easy, all the exported functions have +PCRE2_CALL_CONVENTION just before their names. It is rarely needed; if not +set, we ensure here that it has no effect. */ + +#ifndef PCRE2_CALL_CONVENTION +#define PCRE2_CALL_CONVENTION +#endif + /* When an application links to a PCRE2 DLL in Windows, the symbols that are imported have to be identified as such. When building PCRE2, the appropriate export settings are needed, and are set in pcre2posix.c before including this