need() now returns the refno of the resource file opened, or None if the

specified resource was already available and no file was opened.
This commit is contained in:
Jack Jansen 2001-08-27 21:37:45 +00:00
parent de3226f7f9
commit a5d7da528b
1 changed files with 7 additions and 4 deletions

View File

@ -12,7 +12,9 @@ def need(restype, resid, filename=None, modname=None):
are required parameters, and identify the resource for which to test. If it
is available we are done. If it is not available we look for a file filename
(default: modname with .rsrc appended) either in the same folder as
where modname was loaded from, or otherwise across sys.path."""
where modname was loaded from, or otherwise across sys.path.
Returns the refno of the resource file opened (or None)"""
if modname is None and filename is None:
raise ArgumentError, "Either filename or modname argument (or both) must be given"
@ -23,14 +25,14 @@ def need(restype, resid, filename=None, modname=None):
except Res.Error:
pass
else:
return
return None
else:
try:
h = Res.GetNamedResource(restype, resid)
except Res.Error:
pass
else:
return
return None
# Construct a filename if we don't have one
if not filename:
@ -59,10 +61,11 @@ def need(restype, resid, filename=None, modname=None):
else:
raise ResourceFileNotFoundError, filename
Res.FSpOpenResFile(pathname, 1)
refno = Res.FSpOpenResFile(pathname, 1)
# 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