diff options
Diffstat (limited to 'Mac/Lib')
-rw-r--r-- | Mac/Lib/macresource.py | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/Mac/Lib/macresource.py b/Mac/Lib/macresource.py index 4bd40bc..4eaf076 100644 --- a/Mac/Lib/macresource.py +++ b/Mac/Lib/macresource.py @@ -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): |