diff options
author | Benjamin Dauvergne <bdauvergne@entrouvert.com> | 2009-03-27 15:04:48 +0000 |
---|---|---|
committer | Benjamin Dauvergne <bdauvergne@entrouvert.com> | 2009-03-27 15:04:48 +0000 |
commit | 3705a0f86d6588ffb48285892d19c6bb89b62c68 (patch) | |
tree | ba77cef255009fa6200f5a01d3b92a76aa677663 /bindings | |
parent | 46643326fd53a265d47947280b6799946af7c9d1 (diff) | |
download | lasso-3705a0f86d6588ffb48285892d19c6bb89b62c68.tar.gz lasso-3705a0f86d6588ffb48285892d19c6bb89b62c68.tar.xz lasso-3705a0f86d6588ffb48285892d19c6bb89b62c68.zip |
Bindings php5: add support for xmlNode arguments
* bindings/php5/php_code.py:
* bindings/php5/wrapper_source.py:
complete error reporting about on documentation treatment.
treat xmlNode* arguments (convert string to xmlNode, give as
argument, then frees it).
Diffstat (limited to 'bindings')
-rw-r--r-- | bindings/php5/php_code.py | 2 | ||||
-rw-r--r-- | bindings/php5/wrapper_source.py | 16 |
2 files changed, 15 insertions, 3 deletions
diff --git a/bindings/php5/php_code.py b/bindings/php5/php_code.py index bce43ca1..76bae23d 100644 --- a/bindings/php5/php_code.py +++ b/bindings/php5/php_code.py @@ -365,7 +365,7 @@ function lassoRegisterIdWsf2DstService($prefix, $href) { elif type == '%': # %TRUE, %FALSE if var in ('TRUE', 'FALSE'): return var - print >> sys.stderr, 'W: unknown docstring thingie: %s' % s.group(1) + print >> sys.stderr, 'W: unknown docstring thingie \'%s\' in \'%s\'' % (s.group(1), func.docstring.orig_docstring) elif type == '@': if var == first_arg_name: return '$this' diff --git a/bindings/php5/wrapper_source.py b/bindings/php5/wrapper_source.py index 27ee7f48..690c4adb 100644 --- a/bindings/php5/wrapper_source.py +++ b/bindings/php5/wrapper_source.py @@ -197,6 +197,12 @@ PHP_MSHUTDOWN_FUNCTION(lasso) parse_tuple_format.append('l') parse_tuple_args.append('&%s' % arg_name) print >> self.fd, ' %s %s;' % ('long', arg_name) + elif arg_type == 'xmlNode*': + parse_tuple_format.append('s!') + parse_tuple_args.append('&%s_str, &%s_len' % (arg_name, arg_name)) + print >> self.fd, ' %s %s = NULL;' % ('xmlNode*', arg_name) + print >> self.fd, ' %s %s_str = NULL;' % ('char*', arg_name) + print >> self.fd, ' %s %s_len = 0;' % ('int', arg_name) elif arg_type == 'GList*': parse_tuple_format.append('a!') parse_tuple_args.append('&zval_%s' % arg_name) @@ -226,7 +232,10 @@ PHP_MSHUTDOWN_FUNCTION(lasso) ''' % (''.join(parse_tuple_format), parse_tuple_args) for f, arg in zip(parse_tuple_format, m.args): - if f.startswith('s'): + if arg[0] == 'xmlNode*': + print >> self.fd, '''\ + %(name)s = get_xml_node_from_string(%(name)s_str);''' % {'name': arg[1]} + elif f.startswith('s'): print >> self.fd, '''\ %(name)s = %(name)s_str;''' % {'name': arg[1]} elif f.startswith('r'): @@ -254,7 +263,10 @@ PHP_MSHUTDOWN_FUNCTION(lasso) # Free the converted arguments for f, arg in zip(parse_tuple_format, m.args): - if f.startswith('a'): + argtype, argname, argoptions = arg + if argtype == 'xmlNode*': + print >> self.fd, ' xmlFree(%s);' % argname + elif f.startswith('a'): elem_type = arg[2].get('elem_type') if elem_type == 'char*': print >> self.fd, ' if (%(name)s) {' % { 'name': arg[1] } |