[Python-checkins] CVS: python/dist/src/Lib site.py,1.27,1.28

Fred L. Drake fdrake@users.sourceforge.net
Mon, 02 Jul 2001 09:55:44 -0700


Update of /cvsroot/python/python/dist/src/Lib
In directory usw-pr-cvs1:/tmp/cvs-serv32645/Lib

Modified Files:
	site.py 
Log Message:

Avoid using os.path.normcase() on sys.path elements; doing so causes paths
to be presented in an unfamiliar case on case-preserving filesystems.

This closes SF patch #436173.


Index: site.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/site.py,v
retrieving revision 1.27
retrieving revision 1.28
diff -C2 -r1.27 -r1.28
*** site.py	2001/06/12 16:48:52	1.27
--- site.py	2001/07/02 16:55:42	1.28
***************
*** 67,86 ****
  
  def makepath(*paths):
!     dir = os.path.join(*paths)
!     return os.path.normcase(os.path.abspath(dir))
  
! L = sys.modules.values()
! for m in L:
      if hasattr(m, "__file__") and m.__file__:
!         m.__file__ = makepath(m.__file__)
! del m, L
  
  # This ensures that the initial path provided by the interpreter contains
  # only absolute pathnames, even if we're running from the build directory.
  L = []
  for dir in sys.path:
!     dir = makepath(dir)
!     if dir not in L:
          L.append(dir)
  sys.path[:] = L
  del dir, L
--- 67,87 ----
  
  def makepath(*paths):
!     dir = os.path.abspath(os.path.join(*paths))
!     return dir, os.path.normcase(dir)
  
! for m in sys.modules.values():
      if hasattr(m, "__file__") and m.__file__:
!         m.__file__ = os.path.abspath(m.__file__)
! del m
  
  # This ensures that the initial path provided by the interpreter contains
  # only absolute pathnames, even if we're running from the build directory.
  L = []
+ dirs_in_sys_path = {}
  for dir in sys.path:
!     dir, dircase = makepath(dir)
!     if not dirs_in_sys_path.has_key(dircase):
          L.append(dir)
+         dirs_in_sys_path[dircase] = 1
  sys.path[:] = L
  del dir, L
***************
*** 96,101 ****
  
  def addsitedir(sitedir):
!     sitedir = makepath(sitedir)
!     if sitedir not in sys.path:
          sys.path.append(sitedir)        # Add path component
      try:
--- 97,102 ----
  
  def addsitedir(sitedir):
!     sitedir, sitedircase = makepath(sitedir)
!     if not dirs_in_sys_path.has_key(sitedircase):
          sys.path.append(sitedir)        # Add path component
      try:
***************
*** 103,107 ****
      except os.error:
          return
-     names = map(os.path.normcase, names)
      names.sort()
      for name in names:
--- 104,107 ----
***************
*** 126,132 ****
          if dir[-1] == '\n':
              dir = dir[:-1]
!         dir = makepath(sitedir, dir)
!         if dir not in sys.path and os.path.exists(dir):
              sys.path.append(dir)
  
  prefixes = [sys.prefix]
--- 126,133 ----
          if dir[-1] == '\n':
              dir = dir[:-1]
!         dir, dircase = makepath(sitedir, dir)
!         if not dirs_in_sys_path.has_key(dircase) and os.path.exists(dir):
              sys.path.append(dir)
+             dirs_in_sys_path[dircase] = 1
  
  prefixes = [sys.prefix]
***************
*** 136,146 ****
      if prefix:
          if os.sep == '/':
!             sitedirs = [makepath(prefix,
!                                  "lib",
!                                  "python" + sys.version[:3],
!                                  "site-packages"),
!                         makepath(prefix, "lib", "site-python")]
          elif os.sep == ':':
!             sitedirs = [makepath(prefix, "lib", "site-packages")]
          else:
              sitedirs = [prefix]
--- 137,147 ----
      if prefix:
          if os.sep == '/':
!             sitedirs = [os.path.join(prefix,
!                                      "lib",
!                                      "python" + sys.version[:3],
!                                      "site-packages"),
!                         os.path.join(prefix, "lib", "site-python")]
          elif os.sep == ':':
!             sitedirs = [os.path.join(prefix, "lib", "site-packages")]
          else:
              sitedirs = [prefix]
***************
*** 148,151 ****
--- 149,154 ----
              if os.path.isdir(sitedir):
                  addsitedir(sitedir)
+ 
+ del dirs_in_sys_path
  
  # Define new built-ins 'quit' and 'exit'.