blob: 056080052f2c44d6d571af16341cd627da0f676f [file] [log] [blame]
/* 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 <LowMem.h>
#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;
}