From: <rom...@us...> - 2006-05-14 07:22:30
|
Revision: 70 Author: roman_yakovenko Date: 2006-05-14 00:22:25 -0700 (Sun, 14 May 2006) ViewCVS: http://svn.sourceforge.net/pygccxml/?rev=70&view=rev Log Message: ----------- class_t."name" property is now returns demangled string. The reason is that this is the only way to report right name of the class Modified Paths: -------------- pygccxml_dev/pygccxml/declarations/class_declaration.py Modified: pygccxml_dev/pygccxml/declarations/class_declaration.py =================================================================== --- pygccxml_dev/pygccxml/declarations/class_declaration.py 2006-05-14 07:20:29 UTC (rev 69) +++ pygccxml_dev/pygccxml/declarations/class_declaration.py 2006-05-14 07:22:25 UTC (rev 70) @@ -85,6 +85,8 @@ class class_t( scopedef.scopedef_t ): """describes class definition""" + + USE_DEMANGLED_AS_NAME = True def __init__( self, name='', parent=None, class_type=CLASS_TYPES.CLASS, is_abstract=False ): scopedef.scopedef_t.__init__( self, name, parent ) if class_type: @@ -98,6 +100,21 @@ self._protected_members = [] self._typedefs = [] + def _get_name_impl( self ): + if class_t.USE_DEMANGLED_AS_NAME and self.demangled: + fname = algorithm.full_name( self.parent ) + if fname.startswith( '::' ) and not self.demangled.startswith( '::' ): + fname = fname[2:] + if self.demangled.startswith( fname ): + tmp = self.demangled[ len( fname ): ] #demangled::name + if tmp.startswith( '::' ): + tmp = tmp[2:] + return tmp + else: + return self._name + else: + return self._name + def __str__(self): name = algorithm.full_name(self) if name[:2]=="::": This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |