[Python-checkins] CVS: python/dist/src/Lib pydoc.py,1.34,1.35
Ka-Ping Yee
ping@users.sourceforge.net
Fri, 13 Apr 2001 06:53:10 -0700
Update of /cvsroot/python/python/dist/src/Lib
In directory usw-pr-cvs1:/tmp/cvs-serv31768
Modified Files:
pydoc.py
Log Message:
Add inode checks to detect circular symbolic links (so that the
Tools/idle/idlelib link doesn't cause an infinite loop -- aack!)
Index: pydoc.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/pydoc.py,v
retrieving revision 1.34
retrieving revision 1.35
diff -C2 -r1.34 -r1.35
*** pydoc.py 2001/04/13 12:11:19 1.34
--- pydoc.py 2001/04/13 13:53:07 1.35
***************
*** 1459,1463 ****
def __init__(self):
roots = map(lambda dir: (dir, ''), pathdirs())
! Scanner.__init__(self, roots, self.submodules, self.ispackage)
def submodules(self, (dir, package)):
--- 1459,1464 ----
def __init__(self):
roots = map(lambda dir: (dir, ''), pathdirs())
! Scanner.__init__(self, roots, self.submodules, self.isnewpackage)
! self.inodes = map(lambda (dir, pkg): os.stat(dir)[1], roots)
def submodules(self, (dir, package)):
***************
*** 1472,1477 ****
return children
! def ispackage(self, (dir, package)):
! return ispackage(dir)
def run(self, callback, key=None, completer=None):
--- 1473,1481 ----
return children
! def isnewpackage(self, (dir, package)):
! inode = os.stat(dir)[1] # detect circular symbolic links
! if not (os.path.islink(dir) and inode in self.inodes):
! self.inodes.append(inode)
! return ispackage(dir)
def run(self, callback, key=None, completer=None):