summaryrefslogtreecommitdiff
path: root/cffi/vengine_cpy.py
diff options
context:
space:
mode:
authorArmin Rigo <arigo@tunes.org>2014-04-04 17:20:34 +0200
committerArmin Rigo <arigo@tunes.org>2014-04-04 17:20:34 +0200
commit99d3c246ae979a73d4cda064a33399a282e749ea (patch)
treeb560755d4561601ee92eda9b7f992607356eee50 /cffi/vengine_cpy.py
parent1977d3cd51b0d1fb3d260faf91204247929ec07c (diff)
downloadcffi-99d3c246ae979a73d4cda064a33399a282e749ea.tar.gz
Issue #142: don't generate C files that use '$' in identifiers.
Diffstat (limited to 'cffi/vengine_cpy.py')
-rw-r--r--cffi/vengine_cpy.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/cffi/vengine_cpy.py b/cffi/vengine_cpy.py
index d9af334..a559ea6 100644
--- a/cffi/vengine_cpy.py
+++ b/cffi/vengine_cpy.py
@@ -632,13 +632,18 @@ class VCPythonEngine(object):
# ----------
# enums
+ def _enum_funcname(self, prefix, name):
+ # "$enum_$1" => "___D_enum____D_1"
+ name = name.replace('$', '___D_')
+ return '_cffi_e_%s_%s' % (prefix, name)
+
def _generate_cpy_enum_decl(self, tp, name, prefix='enum'):
if tp.partial:
for enumerator in tp.enumerators:
self._generate_cpy_const(True, enumerator, delayed=False)
return
#
- funcname = '_cffi_e_%s_%s' % (prefix, name)
+ funcname = self._enum_funcname(prefix, name)
prnt = self._prnt
prnt('static int %s(PyObject *lib)' % funcname)
prnt('{')