/* Chdir for the Macintosh. Public domain by Guido van Rossum, CWI, Amsterdam (July 1987). Pathnames must be Macintosh paths, with colons as separators. */ #include "macdefs.h" #ifdef __MWERKS__ /* XXXX All compilers should use this, really */ #include #else /* Last directory used by Standard File */ #define SFSaveDisk (*(short *)0x214) #define CurDirStore (*(long *)0x398) #endif /* Change current directory. */ int chdir(path) char *path; { WDPBRec pb; pb.ioNamePtr= (StringPtr) Pstring(path); pb.ioVRefNum= 0; pb.ioWDDirID= 0; if (PBHSetVol(&pb, FALSE) != noErr) { errno= ENOENT; return -1; } if (PBHGetVol(&pb, FALSE) == noErr) { /* Set the Standard File directory */ #ifdef __MWERKS__ LMSetSFSaveDisk(-pb.ioWDVRefNum); LMSetCurDirStore(pb.ioWDDirID); #else SFSaveDisk= -pb.ioWDVRefNum; CurDirStore= pb.ioWDDirID; #endif } return 0; }