summaryrefslogtreecommitdiff
path: root/plugins/Variables/pcre/include/pcreposix.h
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/Variables/pcre/include/pcreposix.h')
-rw-r--r--plugins/Variables/pcre/include/pcreposix.h57
1 files changed, 43 insertions, 14 deletions
diff --git a/plugins/Variables/pcre/include/pcreposix.h b/plugins/Variables/pcre/include/pcreposix.h
index a8056bd77c..c77c0b0523 100644
--- a/plugins/Variables/pcre/include/pcreposix.h
+++ b/plugins/Variables/pcre/include/pcreposix.h
@@ -9,7 +9,7 @@
Compatible Regular Expression library. It defines the things POSIX says should
be there. I hope.
- Copyright (c) 1997-2004 University of Cambridge
+ Copyright (c) 1997-2012 University of Cambridge
-----------------------------------------------------------------------------
Redistribution and use in source and binary forms, with or without
@@ -50,18 +50,24 @@ POSSIBILITY OF SUCH DAMAGE.
extern "C" {
#endif
-/* Options defined by POSIX. */
-
-#define REG_ICASE 0x01
-#define REG_NEWLINE 0x02
-#define REG_NOTBOL 0x04
-#define REG_NOTEOL 0x08
-
-/* These are not used by PCRE, but by defining them we make it easier
+/* Options, mostly defined by POSIX, but with some extras. */
+
+#define REG_ICASE 0x0001 /* Maps to PCRE_CASELESS */
+#define REG_NEWLINE 0x0002 /* Maps to PCRE_MULTILINE */
+#define REG_NOTBOL 0x0004 /* Maps to PCRE_NOTBOL */
+#define REG_NOTEOL 0x0008 /* Maps to PCRE_NOTEOL */
+#define REG_DOTALL 0x0010 /* NOT defined by POSIX; maps to PCRE_DOTALL */
+#define REG_NOSUB 0x0020 /* Maps to PCRE_NO_AUTO_CAPTURE */
+#define REG_UTF8 0x0040 /* NOT defined by POSIX; maps to PCRE_UTF8 */
+#define REG_STARTEND 0x0080 /* BSD feature: pass subject string by so,eo */
+#define REG_NOTEMPTY 0x0100 /* NOT defined by POSIX; maps to PCRE_NOTEMPTY */
+#define REG_UNGREEDY 0x0200 /* NOT defined by POSIX; maps to PCRE_UNGREEDY */
+#define REG_UCP 0x0400 /* NOT defined by POSIX; maps to PCRE_UCP */
+
+/* This is not used by PCRE, but by defining it we make it easier
to slot PCRE into existing programs that make POSIX calls. */
#define REG_EXTENDED 0
-#define REG_NOSUB 0
/* Error values. Not all these are relevant or used by the wrapper. */
@@ -103,12 +109,35 @@ typedef struct {
regoff_t rm_eo;
} regmatch_t;
+/* When an application links to a PCRE DLL in Windows, the symbols that are
+imported have to be identified as such. When building PCRE, the appropriate
+export settings are needed, and are set in pcreposix.c before including this
+file. */
+
+#if defined(_WIN32) && !defined(PCRE_STATIC) && !defined(PCREPOSIX_EXP_DECL)
+# define PCREPOSIX_EXP_DECL extern __declspec(dllimport)
+# define PCREPOSIX_EXP_DEFN __declspec(dllimport)
+#endif
+
+/* By default, we use the standard "extern" declarations. */
+
+#ifndef PCREPOSIX_EXP_DECL
+# ifdef __cplusplus
+# define PCREPOSIX_EXP_DECL extern "C"
+# define PCREPOSIX_EXP_DEFN extern "C"
+# else
+# define PCREPOSIX_EXP_DECL extern
+# define PCREPOSIX_EXP_DEFN extern
+# endif
+#endif
+
/* The functions */
-extern int regcomp(regex_t *, const char *, int);
-extern int regexec(const regex_t *, const char *, size_t, regmatch_t *, int);
-extern size_t regerror(int, const regex_t *, char *, size_t);
-extern void regfree(regex_t *);
+PCREPOSIX_EXP_DECL int regcomp(regex_t *, const char *, int);
+PCREPOSIX_EXP_DECL int regexec(const regex_t *, const char *, size_t,
+ regmatch_t *, int);
+PCREPOSIX_EXP_DECL size_t regerror(int, const regex_t *, char *, size_t);
+PCREPOSIX_EXP_DECL void regfree(regex_t *);
#ifdef __cplusplus
} /* extern "C" */