From 256f3988f0ed6d514fda016ceea0abd471b9ca25 Mon Sep 17 00:00:00 2001 From: krakjoe Date: Wed, 27 Aug 2014 11:12:42 +0100 Subject: [PATCH] tidy build --- api.h | 10 +++++++++- backend/icu.cpp | 19 +++++++++++++------ config.m4 | 8 ++++++-- php_ustring.h | 4 ++++ ustring.cpp | 18 ++++-------------- 5 files changed, 36 insertions(+), 23 deletions(-) diff --git a/api.h b/api.h index 5e59e2a..d8ac151 100644 --- a/api.h +++ b/api.h @@ -61,7 +61,15 @@ PHP_USTRING_API zend_string* php_ustring_getCodepage(zval *that TSRMLS_DC); PHP_USTRING_API void php_ustring_setDefaultCodepage(const char *value, int32_t len TSRMLS_DC); PHP_USTRING_API zend_string* php_ustring_getDefaultCodepage(TSRMLS_D); -PHP_USTRING_API zend_class_entry* ce_UString; +PHP_USTRING_API extern zend_class_entry* ce_UString; + +#ifdef ZTS +#define UG(v) TSRMG(ustring_globals_id, zend_ustring_globals *, v) +#else +#define UG(v) (ustring_globals.v) +#endif + +ZEND_EXTERN_MODULE_GLOBALS(ustring); /* }}} */ #endif /* PHP_USTRING_API_H */ diff --git a/backend/icu.cpp b/backend/icu.cpp index e950163..0862061 100644 --- a/backend/icu.cpp +++ b/backend/icu.cpp @@ -18,9 +18,20 @@ #ifndef PHP_USTRING_BACKEND_ICU #define PHP_USTRING_BACKEND_ICU -#include "unicode/unistr.h" +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +extern "C" { +# include "php.h" +# include "php_ini.h" +# include "ext/standard/info.h" +# include "php_ustring.h" +# include "../api.h" +# include "backend/api.h" +} -#include "backend/api.h" +#include "unicode/unistr.h" typedef struct _php_ustring_t { UnicodeString *val; @@ -37,10 +48,6 @@ typedef struct _php_ustring_iterator_t { #define php_ustring_fetch(o) ((php_ustring_t*) (((char*)Z_OBJ_P(o)) - XtOffsetOf(php_ustring_t, std))) -#define STR_PAD_LEFT 0 -#define STR_PAD_RIGHT 1 -#define STR_PAD_BOTH 2 - static inline php_ustring_t *php_ustring_copy(php_ustring_t *target, php_ustring_t *source) { target->val = new UnicodeString(*source->val); diff --git a/config.m4 b/config.m4 index fc86f09..518329a 100644 --- a/config.m4 +++ b/config.m4 @@ -10,6 +10,10 @@ if test "$PHP_USTRING" != "no"; then PHP_REQUIRE_CXX() PHP_ADD_LIBRARY(stdc++,,USTRING_SHARED_LIBADD) - - PHP_NEW_EXTENSION(ustring, ustring.cpp, $ext_shared,, -D__STDC_LIMIT_MACROS) + + dnl should be configured with some switch when more than one backend exists + + PHP_USTRING_SOURCE="ustring.cpp backend/icu.cpp" + + PHP_NEW_EXTENSION(ustring, $PHP_USTRING_SOURCE, $ext_shared,, -D__STDC_LIMIT_MACROS) fi diff --git a/php_ustring.h b/php_ustring.h index 9ec8f3c..a9de460 100644 --- a/php_ustring.h +++ b/php_ustring.h @@ -37,6 +37,10 @@ ZEND_BEGIN_MODULE_GLOBALS(ustring) zval defaultpad; ZEND_END_MODULE_GLOBALS(ustring) +#define STR_PAD_LEFT 0 +#define STR_PAD_RIGHT 1 +#define STR_PAD_BOTH 2 + #endif /* PHP_USTRING_H */ /* diff --git a/ustring.cpp b/ustring.cpp index 077e76d..650474e 100644 --- a/ustring.cpp +++ b/ustring.cpp @@ -22,32 +22,22 @@ #include "config.h" #endif -#ifdef _WIN32 -#include "unicode/unistr.h" -#endif - extern "C" { # include "php.h" # include "php_ini.h" # include "ext/standard/info.h" # include "php_ustring.h" # include "api.h" +# include "backend/api.h" } ZEND_DECLARE_MODULE_GLOBALS(ustring); -#ifdef ZTS -#define UG(v) TSRMG(ustring_globals_id, zend_ustring_globals *, v) -#else -#define UG(v) (ustring_globals.v) -#endif +extern php_ustring_backend_t php_ustring_defaults; -/* - * Do some magical ifdef'ing maybe ? - */ -#include "backend/icu.cpp" +php_ustring_backend_t *php_ustring_backend = &php_ustring_defaults; -PHP_USTRING_API php_ustring_backend_t *php_ustring_backend = &php_ustring_defaults; +zend_class_entry *ce_UString; PHP_USTRING_API void php_ustring_construct(zval *that, const char *value, int32_t vlen, const char *codepage, int32_t clen TSRMLS_DC) { php_ustring_backend->construct(that, value, vlen, codepage, clen TSRMLS_CC);