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.
|