[Python-checkins] CVS: python/dist/src/Lib/plat-riscos riscosenviron.py,1.4,1.5 riscospath.py,1.6,1.7 rourl2path.py,1.2,1.3
Guido van Rossum
gvanrossum@users.sourceforge.net
Wed, 24 Oct 2001 13:33:36 -0700
- Previous message: [Python-checkins] CVS: python/dist/src/Lib dumbdbm.py,1.13,1.14 fileinput.py,1.7,1.8 site.py,1.36,1.37 socket.py,1.13,1.14 tempfile.py,1.30,1.31 whichdb.py,1.11,1.12
- Next message: [Python-checkins] CVS: python/dist/src/Modules selectmodule.c,2.56,2.57 socketmodule.c,1.185,1.186 structmodule.c,2.50,2.51 timemodule.c,2.115,2.116
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/python/python/dist/src/Lib/plat-riscos
In directory usw-pr-cvs1:/tmp/cvs-serv17535/plat-riscos
Modified Files:
riscosenviron.py riscospath.py rourl2path.py
Log Message:
SF patch #474590 -- RISC OS support
Index: riscosenviron.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/plat-riscos/riscosenviron.py,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** riscosenviron.py 2001/07/02 04:59:35 1.4
--- riscosenviron.py 2001/10/24 20:33:34 1.5
***************
*** 1,3 ****
! """A more or less complete user-defined wrapper around dictionary objects."""
import riscos
--- 1,3 ----
! """A more or less complete dictionary like interface for the RISC OS environment."""
import riscos
***************
*** 9,14 ****
return repr(riscos.getenvdict())
def __cmp__(self, dict):
! if isinstance(dict, UserDict):
! return cmp(riscos.getenvdict(), dict)
def __len__(self):
return len(riscos.getenvdict())
--- 9,13 ----
return repr(riscos.getenvdict())
def __cmp__(self, dict):
! return cmp(riscos.getenvdict(), dict)
def __len__(self):
return len(riscos.getenvdict())
Index: riscospath.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/plat-riscos/riscospath.py,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** riscospath.py 2001/10/10 04:16:20 1.6
--- riscospath.py 2001/10/24 20:33:34 1.7
***************
*** 104,109 ****
for b in p:
(fs, drive, path)= _split(b)
! if fs!='' or drive!='' or path[:1] in _roots:
j= b
else:
j= j+'.'+b
--- 104,111 ----
for b in p:
(fs, drive, path)= _split(b)
! if j=='' or fs!='' or drive!='' or path[:1] in _roots:
j= b
+ elif j[-1]==':':
+ j= j+b
else:
j= j+'.'+b
Index: rourl2path.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/plat-riscos/rourl2path.py,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** rourl2path.py 2001/07/02 04:59:35 1.2
--- rourl2path.py 2001/10/24 20:33:34 1.3
***************
*** 7,19 ****
import os
! def url2pathname(pathname):
! "Convert /-delimited pathname to mac pathname"
! #
! # XXXX The .. handling should be fixed...
! #
! tp = urllib.splittype(pathname)[0]
if tp and tp <> 'file':
raise RuntimeError, 'Cannot convert non-local URL to pathname'
! components = string.split(pathname, '/')
# Remove . and embedded ..
i = 0
--- 7,30 ----
import os
! __all__ = ["url2pathname","pathname2url"]
!
! __slash_dot = string.maketrans("/.", "./")
!
! def url2pathname(url):
! "Convert URL to a RISC OS path."
! tp = urllib.splittype(url)[0]
if tp and tp <> 'file':
raise RuntimeError, 'Cannot convert non-local URL to pathname'
! # Turn starting /// into /, an empty hostname means current host
! if url[:3] == '///':
! url = url[2:]
! elif url[:2] == '//':
! raise RuntimeError, 'Cannot convert non-local URL to pathname'
! components = string.split(url, '/')
! if not components[0]:
! if '$' in components:
! del components[0]
! else:
! components[0] = '$'
# Remove . and embedded ..
i = 0
***************
*** 24,66 ****
components[i-1] not in ('', '..'):
del components[i-1:i+1]
! i = i-1
elif components[i] == '' and i > 0 and components[i-1] <> '':
del components[i]
else:
! if components[i]<>'..' and string.find(components[i], '.')<>-1 :
! components[i] = string.join(string.split(components[i],'.'),'/')
! i = i+1
! if not components[0]:
! # Absolute unix path, don't start with colon
! return string.join(components[1:], '.')
! else:
! # relative unix path, start with colon. First replace
! # leading .. by empty strings (giving ::file)
! i = 0
! while i < len(components) and components[i] == '..':
! components[i] = '^'
! i = i + 1
! return string.join(components, '.')
def pathname2url(pathname):
! "convert mac pathname to /-delimited pathname"
! if '/' in pathname:
! raise RuntimeError, "Cannot convert pathname containing slashes"
! components = string.split(pathname, ':')
! # Replace empty string ('::') by .. (will result in '/../' later)
! for i in range(1, len(components)):
! if components[i] == '':
! components[i] = '..'
! # Truncate names longer than 31 bytes
! components = map(lambda x: x[:31], components)
!
! if os.path.isabs(pathname):
! return '/' + string.join(components, '/')
! else:
! return string.join(components, '/')
def test():
for url in ["index.html",
"/SCSI::SCSI4/$/Anwendung/Comm/Apps/!Fresco/Welcome",
"../index.html",
"bar/index.html",
--- 35,57 ----
components[i-1] not in ('', '..'):
del components[i-1:i+1]
! i -= 1
! elif components[i] == '..':
! components[i] = '^'
! i += 1
elif components[i] == '' and i > 0 and components[i-1] <> '':
del components[i]
else:
! i += 1
! components = map(lambda x: urllib.unquote(x).translate(__slash_dot), components)
! return '.'.join(components)
def pathname2url(pathname):
! "Convert a RISC OS path name to a file url."
! return urllib.quote('///' + pathname.translate(__slash_dot), "/$:")
def test():
for url in ["index.html",
"/SCSI::SCSI4/$/Anwendung/Comm/Apps/!Fresco/Welcome",
+ "/SCSI::SCSI4/$/Anwendung/Comm/Apps/../!Fresco/Welcome",
"../index.html",
"bar/index.html",
***************
*** 69,80 ****
"/"]:
print `url`, '->', `url2pathname(url)`
! for path in ["drive:",
! "drive:dir:",
! "drive:dir:file",
! "drive:file",
! "file",
! ":file",
! ":dir:",
! ":dir:file"]:
print `path`, '->', `pathname2url(path)`
--- 60,67 ----
"/"]:
print `url`, '->', `url2pathname(url)`
! print "*******************************************************"
! for path in ["SCSI::SCSI4.$.Anwendung",
! "PythonApp:Lib",
! "PythonApp:Lib.rourl2path/py"]:
print `path`, '->', `pathname2url(path)`
- Previous message: [Python-checkins] CVS: python/dist/src/Lib dumbdbm.py,1.13,1.14 fileinput.py,1.7,1.8 site.py,1.36,1.37 socket.py,1.13,1.14 tempfile.py,1.30,1.31 whichdb.py,1.11,1.12
- Next message: [Python-checkins] CVS: python/dist/src/Modules selectmodule.c,2.56,2.57 socketmodule.c,1.185,1.186 structmodule.c,2.50,2.51 timemodule.c,2.115,2.116
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]