diff options
author | Frederic Peters <fpeters@entrouvert.com> | 2008-04-29 12:04:24 +0000 |
---|---|---|
committer | Frederic Peters <fpeters@entrouvert.com> | 2008-04-29 12:04:24 +0000 |
commit | dd8b9a38fb622104835a386b3fae86dcd718de31 (patch) | |
tree | f2d92ca5e111079c0b45790ba3303540911d7f1e | |
parent | 5d3228f77205dfb2a0e9f28f88f67602e2c37ee9 (diff) | |
download | lasso-dd8b9a38fb622104835a386b3fae86dcd718de31.tar.gz lasso-dd8b9a38fb622104835a386b3fae86dcd718de31.tar.xz lasso-dd8b9a38fb622104835a386b3fae86dcd718de31.zip |
[project @ fpeters@0d.be-20071101181800-r94oeih0q8hplrxo]
added support for standalone functions in lasso wrapper; and added renames
for a bunch of them
Original author: Frederic Peters <fpeters@0d.be>
Date: 2007-11-01 19:18:00.896000+01:00
-rw-r--r-- | bindings/bindings.py | 3 | ||||
-rw-r--r-- | bindings/lang_python.py | 21 | ||||
-rw-r--r-- | bindings/overrides.xml | 6 |
3 files changed, 27 insertions, 3 deletions
diff --git a/bindings/bindings.py b/bindings/bindings.py index 57bc0553..52597e45 100644 --- a/bindings/bindings.py +++ b/bindings/bindings.py @@ -128,6 +128,7 @@ class Struct: class Function: return_type = None name = None + rename = None args = None docstring = None @@ -149,6 +150,8 @@ class Function: arg[2]['optional'] = True if param.attrib.get('default'): arg[2]['default'] = param.attrib.get('default') + if func.attrib.get('rename'): + self.rename = func.attrib.get('rename') def normalise_var(type, name): diff --git a/bindings/lang_python.py b/bindings/lang_python.py index b97de2d8..8dba3eb2 100644 --- a/bindings/lang_python.py +++ b/bindings/lang_python.py @@ -41,6 +41,7 @@ class PythonBinding: self.generate_constants(fd) for clss in self.binding_data.structs: self.generate_class(clss, fd) + self.generate_functions(fd) self.generate_footer(fd) fd.close() @@ -400,6 +401,19 @@ import lasso s = regex.sub(rep, s) return s + def generate_functions(self, fd): + for m in self.binding_data.functions: + if m.name.endswith('_new') or '_new_' in m.name: + continue + if m.rename: + pname = m.rename + name = m.rename + else: + name = m.name[6:] + pname = utils.format_as_camelcase(name) + print >> fd, '%s = _lasso.%s' % (pname, name) + + def generate_wrapper(self, fd): print >> fd, open(os.path.join(self.binding_data.src_dir, 'lang_python_wrapper_top.c')).read() @@ -656,9 +670,10 @@ register_constants(PyObject *d) ''' def generate_function_wrapper(self, m, fd): - name = m.name[6:] - if name == 'strerror': # special case so it doesn't conflict with strerror(3) - name = 'strError' + if m.rename: + name = m.rename + else: + name = m.name[6:] self.wrapper_list.append(name) print >> fd, '''static PyObject* %s(PyObject *self, PyObject *args) diff --git a/bindings/overrides.xml b/bindings/overrides.xml index c9ec8bbb..331eea91 100644 --- a/bindings/overrides.xml +++ b/bindings/overrides.xml @@ -1,5 +1,11 @@ <?xml version="1.0"?> <overrides> + <!-- functions --> + <func name="lasso_strerror" rename="strError"/> + <func name="lasso_profile_is_liberty_query" rename="isLibertyQuery"/> + <func name="lasso_profile_is_saml_query" rename="isSamlQuery"/> + <func name="lasso_profile_get_request_type_from_soap_msg" + rename="getRequestTypeFromSoapMsg"/> <!-- LassoServer --> <func name="lasso_server_new"> <param name="private_key" optional="true"/> |