/* Global variables - add the variable to PHP */
%typemap(varinit) char *,
z_var->value.str.val = estrdup($1);
z_var->value.str.len = strlen($1);
z_var->value.str.val = 0;
z_var->value.str.len = 0;
zend_hash_add(&EG(symbol_table), "$1", strlen("$1")+1, (void *)&z_var, sizeof(zval *), NULL);
zend_hash_add(&EG(symbol_table), "$1", strlen("$1")+1, (void *)&z_var, sizeof(zval *), NULL);
z_var->value.lval = ($1)?1:0;
zend_hash_add(&EG(symbol_table), "$1", strlen("$1")+1, (void *)&z_var, sizeof(zval *), NULL);
%typemap(varinit) float, double
zend_hash_add(&EG(symbol_table), "$1", strlen("$1")+1, (void *)&z_var,
z_var->value.str.val = estrdup(c);
z_var->value.str.len = 2;
zend_hash_add(&EG(symbol_table), "$1", strlen("$1")+1, (void *)&z_var,
%typemap(varinit) SWIGTYPE *, SWIGTYPE []
SWIG_SetPointerZval(z_var, (void*)$1, $1_descriptor, 0);
zend_hash_add(&EG(symbol_table), "$1", strlen("$1")+1, (void *)&z_var,
%typemap(varinit) SWIGTYPE, SWIGTYPE &
SWIG_SetPointerZval(z_var, (void*)&$1, $&1_descriptor, 0);
zend_hash_add(&EG(symbol_table), "$1", strlen("$1")+1, (void*)&z_var,
%typemap(varinit) char [ANY]
ZVAL_STRINGL(z_var,(char*)$1, $1_dim0, 1);
zend_hash_add(&EG(symbol_table), "$1", strlen("$1")+1, (void*)&z_var,
%typemap(varin) int, unsigned int, short, unsigned short, long, unsigned long, signed char, unsigned char, enum SWIGTYPE
zend_hash_find(&EG(symbol_table), "$1",strlen("$1")+1, (void**)&z_var);
convert_to_long_ex(z_var);
if($1 != ($1_ltype)((*z_var)->value.lval)) {
zend_hash_find(&EG(symbol_table), "$1",strlen("$1")+1, (void**)&z_var);
convert_to_boolean_ex(z_var);
if($1 != ($1_ltype)((*z_var)->value.lval)) {
%typemap(varin) double,float
zend_hash_find(&EG(symbol_table), "$1", strlen("$1")+1, (void**)&z_var);
convert_to_double_ex(z_var);
if($1 != ($1_ltype)((*z_var)->value.dval)) {
zend_hash_find(&EG(symbol_table), "$1",strlen("$1")+1, (void**)&z_var);
convert_to_string_ex(z_var);
if($1 != *((*z_var)->value.str.val)) {
$1 = *((*z_var)->value.str.val);
zend_hash_find(&EG(symbol_table), "$1", strlen("$1")+1, (void**)&z_var);
convert_to_string_ex(z_var);
if((s1 == NULL) || ($1 == NULL) || zend_binary_strcmp(s1, strlen(s1), $1, strlen($1))) {
%typemap(varin) SWIGTYPE []
zend_hash_find(&EG(symbol_table), "$1", strlen("$1")+1, (void**)&z_var);
SWIG_SetPointerZval(*z_var, (void*)$1, $1_descriptor, $owner);
%typemap(varin) char [ANY]
zend_hash_find(&EG(symbol_table), "$1", strlen("$1")+1, (void**)&z_var);
if((s1 == NULL) || ($1 == NULL) || zend_binary_strcmp(s1, strlen(s1), $1, strlen($1))) {
strncpy($1, s1, $1_dim0);
zend_hash_find(&EG(symbol_table), "$1", strlen("$1")+1, (void**)&z_var);
if (SWIG_ConvertPtr(*z_var, (void**)&_temp, $&1_descriptor, 0) < 0) {
SWIG_PHP_Error(E_ERROR,"Type error in value of $symname. Expected $&1_descriptor");
%typemap(varin) SWIGTYPE *, SWIGTYPE &
zend_hash_find(&EG(symbol_table), "$1", strlen("$1")+1, (void**)&z_var);
if (SWIG_ConvertPtr(*z_var, (void **)&_temp, $1_descriptor, 0) < 0) {
SWIG_PHP_Error(E_ERROR,"Type error in value of $symname. Expected $&1_descriptor");
zend_hash_find(&EG(symbol_table), "$1", strlen("$1")+1, (void**)&z_var);
if($1 != ($1_ltype)((*z_var)->value.lval)) {
(*z_var)->value.lval = (long)$1;
//SAMFIX need to cast zval->type, what if zend-hash_find fails? etc?
zend_hash_find(&EG(symbol_table), "$1", strlen("$1")+1, (void**)&z_var);
if($1 != ($1_ltype)((*z_var)->value.lval)) {
(*z_var)->value.lval = (long)$1;
%typemap(varout) double, float
zend_hash_find(&EG(symbol_table), "$1", strlen("$1")+1, (void**)&z_var);
if($1 != ($1_ltype)((*z_var)->value.dval)) {
(*z_var)->value.dval = (double)$1;
zend_hash_find(&EG(symbol_table), "$1", strlen("$1")+1, (void**)&z_var);
if($1 != *((*z_var)->value.str.val)) {
efree((*z_var)->value.str.val);
(*z_var)->value.str.val = estrdup(c);
zend_hash_find(&EG(symbol_table), "$1", strlen("$1")+1, (void**)&z_var);
if((s1 == NULL) || ($1 == NULL) || zend_binary_strcmp(s1, strlen(s1), $1, strlen($1) )) {
(*z_var)->value.str.val = estrdup($1);
(*z_var)->value.str.len = strlen($1) +1;
(*z_var)->value.str.val = 0;
(*z_var)->value.str.len = 0;
%typemap(varout) SWIGTYPE
zend_hash_find(&EG(symbol_table), "$1", strlen("$1")+1, (void**)&z_var);
SWIG_SetPointerZval(*z_var, (void*)&$1, $&1_descriptor, 0);
%typemap(varout) SWIGTYPE []
zend_hash_find(&EG(symbol_table), "$1", strlen("$1")+1, (void**)&z_var);
SWIG_SetPointerZval(*z_var, (void*)$1, $1_descriptor, 0);
%typemap(varout) char [ANY]
deliberate error cos this code looks bogus to me
zend_hash_find(&EG(symbol_table), "$1" ,strlen("$1")+1, (void**)&z_var);
if((s1 == NULL) || zend_binary_strcmp(s1, strlen(s1), $1, strlen($1))) {
(*z_var)->value.str.val = estrdup($1);
(*z_var)->value.str.len = strlen($1)+1;
(*z_var)->value.str.val = 0;
(*z_var)->value.str.len = 0;
%typemap(varout) SWIGTYPE *, SWIGTYPE &
zend_hash_find(&EG(symbol_table), "$1", strlen("$1")+1, (void**)&z_var);
SWIG_SetPointerZval(*z_var, (void*)$1, $1_descriptor, 0);