From: Jack Jansen Date: Fri, 29 Mar 2002 14:29:35 +0000 (+0000) Subject: If the file has no resource fork first check to see whether it's a X-Git-Tag: v2.3c1~6265 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5053b70da013a338a3a710875d94e811c95dee9d;p=thirdparty%2FPython%2Fcpython.git 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. --- diff --git a/Mac/Lib/macresource.py b/Mac/Lib/macresource.py index 4bd40bcca9d9..4eaf0762af33 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):