MCPcopy Create free account
hub / github.com/NetHack/NetHack / process_openfile

Function process_openfile

outdated/sys/mac/macmain.c:193–241  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

191}
192
193void
194process_openfile(short src_vol, long src_dir, Str255 fName, OSType ftype)
195{
196 OSErr err = noErr;
197
198 if (ftype != SAVE_TYPE)
199 return; /* only deal with save files */
200
201 if (src_vol != theDirs.dataRefNum
202 || src_dir != theDirs.dataDirID
203 && CatMove(src_vol, src_dir, fName, theDirs.dataDirID, "\p:")
204 != noErr) {
205 HCreate(theDirs.dataRefNum, theDirs.dataDirID, fName, MAC_CREATOR,
206 SAVE_TYPE);
207 err =
208 copy_file(src_vol, src_dir, theDirs.dataRefNum, theDirs.dataDirID,
209 fName, &HOpen); /* HOpenDF is only there under 7.0 */
210 if (err == noErr)
211 err = copy_file(src_vol, src_dir, theDirs.dataRefNum,
212 theDirs.dataDirID, fName, &HOpenRF);
213 if (err == noErr)
214 force_hdelete(src_vol, src_dir, fName);
215 else
216 HDelete(theDirs.dataRefNum, theDirs.dataDirID, fName);
217 }
218
219 if (err == noErr) {
220 short ref;
221
222 ref = HOpenResFile(theDirs.dataRefNum, theDirs.dataDirID, fName,
223 fsRdPerm);
224 if (ref != -1) {
225 Handle name = Get1Resource('STR ', PLAYER_NAME_RES_ID);
226 if (name) {
227 Str255 save_f_p;
228 P2C(*(StringHandle) name, svp.plname);
229 set_savefile_name(TRUE);
230 C2P(fqname(gs.SAVEF, SAVEPREFIX, 0), save_f_p);
231 force_hdelete(theDirs.dataRefNum, theDirs.dataDirID,
232 save_f_p);
233
234 if (HRename(theDirs.dataRefNum, theDirs.dataDirID, fName,
235 save_f_p) == noErr)
236 macFlags.gotOpen = 1;
237 }
238 CloseResFile(ref);
239 }
240 }
241}
242
243static void
244finder_file_request(void)

Callers 2

AppleEventHandlerFunction · 0.85
finder_file_requestFunction · 0.85

Calls 6

force_hdeleteFunction · 0.85
P2CFunction · 0.85
set_savefile_nameFunction · 0.85
C2PFunction · 0.85
fqnameFunction · 0.85
copy_fileFunction · 0.70

Tested by

no test coverage detected