[Python-checkins] CVS: python/dist/src/Tools/compiler/compiler misc.py,1.7,1.7.4.1

Jeremy Hylton jhylton@users.sourceforge.net
Mon, 17 Dec 2001 15:58:11 -0800


Update of /cvsroot/python/python/dist/src/Tools/compiler/compiler
In directory usw-pr-cvs1:/tmp/cvs-serv29550

Modified Files:
      Tag: release21-maint
	misc.py 
Log Message:
Backport bugfixes from the trunk.

Add __getitem__() to a stack to support visitContinue().
Move mangle() here and define correctly.



Index: misc.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Tools/compiler/compiler/Attic/misc.py,v
retrieving revision 1.7
retrieving revision 1.7.4.1
diff -C2 -d -r1.7 -r1.7.4.1
*** misc.py	2000/11/06 03:43:11	1.7
--- misc.py	2001/12/17 23:58:08	1.7.4.1
***************
*** 40,41 ****
--- 40,67 ----
      def top(self):
          return self.stack[-1]
+     def __getitem__(self, index): # needed by visitContinue()
+         return self.stack[index]
+ 
+ MANGLE_LEN = 256 # magic constant from compile.c
+ 
+ def mangle(name, klass):
+     if not name.startswith('__'):
+         return name
+     if len(name) + 2 >= MANGLE_LEN:
+         return name
+     if name.endswith('__'):
+         return name
+     try:
+         i = 0
+         while klass[i] == '_':
+             i = i + 1
+     except IndexError:
+         return name
+     klass = klass[i:]
+ 
+     tlen = len(klass) + len(name)
+     if tlen > MANGLE_LEN:
+         klass = klass[:MANGLE_LEN-tlen]
+ 
+     return "_%s%s" % (klass, name)
+