Index: EnumExporter.py =================================================================== RCS file: /cvsroot/boost/boost/libs/python/pyste/src/Pyste/EnumExporter.py,v retrieving revision 1.7 diff -r1.7 EnumExporter.py 28,40c28,39 < if not self.info.exclude: < indent = self.INDENT < in_indent = self.INDENT*2 < rename = self.info.rename or self.enum.name < full_name = self.enum.FullName() < unnamed_enum = False < if rename.startswith('$_') or rename.startswith('._'): < unique_number = hash(self.info.include) < unnamed_enum = True < self.ExportUniqueInt(codeunit) < full_name = namespaces.pyste + 'UniqueInt<%d>' % unique_number < rename = "unnamed" < code = indent + namespaces.python --- > if self.info.exclude: > return > indent = self.INDENT > in_indent = self.INDENT*2 > rename = self.info.rename or self.enum.name > full_name = self.enum.FullName() > unnamed_enum = False > if rename.startswith('$_') or rename.startswith('._'): > unnamed_enum = True > code = '' > if not unnamed_enum: > code += indent + namespaces.python 42,44c41,44 < for name in self.enum.values: < rename = self.info[name].rename or name < value_fullname = self.enum.ValueFullName(name) --- > for name in self.enum.values: > rename = self.info[name].rename or name > value_fullname = self.enum.ValueFullName(name) > if not unnamed_enum: 46,69c46,55 < if self.info.export_values or unnamed_enum: < code += in_indent + '.export_values()\n' < code += indent + ';\n\n' < codeunit.Write('module', code) < exported_names[self.enum.FullName()] = 1 < < < def ExportUniqueInt(self, codeunit): < write = lambda s: codeunit.Write('declaration', s) < write('// Unique type for unnamed enums\n') < write('#ifndef PYSTE_UNIQUE_INT_DEFINED\n') < write('#define PYSTE_UNIQUE_INT_DEFINED\n') < write('template\n') < write('struct UniqueInt {\n') < write(' int v;\n') < write(' enum { value=num };\n') < write(' UniqueInt(int v_):\n') < write(' v(v_)\n') < write(' {}\n') < write(' operator int() const\n') < write(' { return v; }\n') < write('};\n') < write('#endif // PYSTE_UNIQUE_INT_DEFINED \n') < --- > else: > code += indent + namespaces.python > code += 'scope().attr("%s") = int(%s);\n' % (rename, value_fullname ) > if self.info.export_values and not unnamed_enum: > code += in_indent + '.export_values()\n' > if not unnamed_enum: > code += indent + ';\n' > code += '\n' > codeunit.Write('module', code) > exported_names[self.enum.FullName()] = 1