diff options
author | Jack Jansen <jack.jansen@cwi.nl> | 2002-01-13 23:18:00 (GMT) |
---|---|---|
committer | Jack Jansen <jack.jansen@cwi.nl> | 2002-01-13 23:18:00 (GMT) |
commit | 32d1a3b1c9bbdff0e449ac6e47d289714e1a1292 (patch) | |
tree | 4349a215dd2883b381de46aca576d0ebc29527be | |
parent | d48b10621e53c780be016c2d51fd2165d7c8f4a5 (diff) | |
download | cpython-32d1a3b1c9bbdff0e449ac6e47d289714e1a1292.zip cpython-32d1a3b1c9bbdff0e449ac6e47d289714e1a1292.tar.gz cpython-32d1a3b1c9bbdff0e449ac6e47d289714e1a1292.tar.bz2 |
Fixed to work under MachoPython, doing the expected unpacking for applesingle files. The IDE still doesn't work, though, because it uses :-style pathnames.
-rw-r--r-- | Mac/Lib/macresource.py | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/Mac/Lib/macresource.py b/Mac/Lib/macresource.py index 001e6cc..1cd1433 100644 --- a/Mac/Lib/macresource.py +++ b/Mac/Lib/macresource.py @@ -61,11 +61,33 @@ def need(restype, resid, filename=None, modname=None): else: raise ResourceFileNotFoundError, filename - refno = Res.FSpOpenResFile(pathname, 1) + try: + 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: + refno = Res.FSOpenResourceFile(pathname, u'', 1) + else: + raise + # And check that the resource exists now if type(resid) is type(1): h = Res.GetResource(restype, resid) else: h = Res.GetNamedResource(restype, resid) - return refno
\ No newline at end of file + return refno + +def _decode(pathname): + # Decode an AppleSingle resource file, return the new pathname. + newpathname = pathname + '.df.rsrc' + if os.path.exists(newpathname): + return newpathname + import applesingle + applesingle.decode(pathname, newpathname, resonly=1) + return newpathname + +
\ No newline at end of file |