From b0c5f09169ac31855ebf0e93772bb57b9635b380 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Mon, 28 May 2007 22:57:39 +0000 Subject: see 23479: add initial features support for modules --- Src/Modules/pcre.c | 41 ++++++++++++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 11 deletions(-) (limited to 'Src/Modules/pcre.c') diff --git a/Src/Modules/pcre.c b/Src/Modules/pcre.c index d067d8949..45c38eba0 100644 --- a/Src/Modules/pcre.c +++ b/Src/Modules/pcre.c @@ -295,6 +295,19 @@ static struct builtin bintab[] = { }; +static struct features module_features = { + bintab, sizeof(bintab)/sizeof(*bintab), +#if defined(HAVE_PCRE_COMPILE) && defined(HAVE_PCRE_EXEC) + cotab, sizeof(cotab)/sizeof(*cotab), +#else /* !(HAVE_PCRE_COMPILE && HAVE_PCRE_EXEC) */ + NULL, 0, +#endif /* !(HAVE_PCRE_COMPILE && HAVE_PCRE_EXEC) */ + NULL, 0, + NULL, 0, + 0 +}; + + /**/ int setup_(UNUSED(Module m)) @@ -302,27 +315,33 @@ setup_(UNUSED(Module m)) return 0; } +/**/ +int +features_(Module m, char ***features) +{ + *features = featuresarray(m->nam, &module_features); + return 0; +} + +/**/ +int +enables_(Module m, int **enables) +{ + return handlefeatures(m->nam, &module_features, enables); +} + /**/ int boot_(Module m) { -#if defined(HAVE_PCRE_COMPILE) && defined(HAVE_PCRE_EXEC) - return !addbuiltins(m->nam, bintab, sizeof(bintab)/sizeof(*bintab)) || - !addconddefs(m->nam, cotab, sizeof(cotab)/sizeof(*cotab)); -#else /* !(HAVE_PCRE_COMPILE && HAVE_PCRE_EXEC) */ - return !addbuiltins(m->nam, bintab, sizeof(bintab)/sizeof(*bintab)); -#endif /* !(HAVE_PCRE_COMPILE && HAVE_PCRE_EXEC) */ + return 0; } /**/ int cleanup_(Module m) { - deletebuiltins(m->nam, bintab, sizeof(bintab)/sizeof(*bintab)); -#if defined(HAVE_PCRE_COMPILE) && defined(HAVE_PCRE_EXEC) - deleteconddefs(m->nam, cotab, sizeof(cotab)/sizeof(*cotab)); -#endif /* !(HAVE_PCRE_COMPILE && HAVE_PCRE_EXEC) */ - return 0; + return setfeatureenables(m->nam, &module_features, NULL); } /**/ -- cgit 1.4.1