If the file has no resource fork first check to see whether it's a

datafork-based resource file before trying to decode it as AppleSingle.
This commit is contained in:
Jack Jansen 2002-03-29 14:29:35 +00:00
parent 695b33b02a
commit 5053b70da0
1 changed files with 12 additions and 5 deletions

View File

@ -77,13 +77,20 @@ def open_pathname(pathname):
refno = Res.FSpOpenResFile(pathname, 1)
except Res.Error, arg:
if arg[0] in (-37, -39):
# No resource fork. We may be on OSX, try to decode
# the applesingle file.
pathname = _decode(pathname)
if pathname:
# No resource fork. We may be on OSX, and this may be either
# a data-fork based resource file or a AppleSingle file
# from the CVS repository.
try:
refno = Res.FSOpenResourceFile(pathname, u'', 1)
except Res.Error, arg:
if arg[0] != -199:
# -199 is "bad resource map"
raise
else:
raise
return refno
# Finally try decoding an AppleSingle file
pathname = _decode(pathname)
refno = Res.FSOpenResourceFile(pathname, u'', 1)
return refno
def _decode(pathname):