/* Copyright 1986, 1989, 1990 by Abacus Research and * Development, Inc. All rights reserved. */ #if !defined (OMIT_RCSID_STRINGS) char ROMlib_rcsid_resSetcur[] = "$Id: resSetcur.c 63 2004-12-24 18:19:43Z ctm $"; #endif /* Forward declarations in ResourceMgr.h (DO NOT DELETE THIS LINE) */ #include "rsys/common.h" #include "ResourceMgr.h" #include "rsys/resource.h" P0(PUBLIC pascal trap, INTEGER, CurResFile) { ROMlib_setreserr(noErr); return(Cx(CurMap)); } /* ROMlib_findmapres: does same as ROMlib_findres (see below) except map is specified */ A4(PUBLIC, OSErr, ROMlib_findmapres, resmaphand, map, Handle, r, /* INTERNAL */ typref **, trp, resref **, rrp) { INTEGER i, j; typref *tr; resref *rr; WALKTANDR(map, i, tr, j, rr) if ((Handle) MR(rr->rhand) == r) { *trp = tr; *rrp = rr; return(noErr); } EWALKTANDR(tr, rr) return(resNotFound); } /* ROMlib_findres: given a handle to a resource, r, ROMlib_findres fills in *mapp, *trp, *rrp with the Handle to the map, and pointers to the typref and the resref */ A4(PUBLIC, OSErr, ROMlib_findres, Handle, r, resmaphand *, mapp, /* INTERNAL */ typref **, trp, resref **, rrp) { resmaphand map; if (!r) /*-->*/ return resNotFound; WALKMAPTOP(map) if (ROMlib_findmapres(map, r, trp, rrp) == noErr) { *mapp = map; return(noErr); } EWALKMAP() return(resNotFound); } P1(PUBLIC pascal trap, INTEGER, HomeResFile, Handle, res) { resmaphand map; typref *tr; resref *rr; ROMlib_setreserr(ROMlib_findres(res, &map, &tr, &rr)); if (ResErr != noErr) return(-1); else return(Hx(map, resfn)); } P1(PUBLIC pascal trap, void, UseResFile, INTEGER, rn) { Handle map; if (rn == 0) rn = Cx(SysMap); ROMlib_invalar(); if (ROMlib_rntohandl(rn, &map)) { CurMap = CW(rn); ROMlib_setreserr(noErr); } else ROMlib_setreserr(resFNotFound); }