cpython/Mac/Compat/chdir.c

43 lines
888 B
C
Raw Normal View History

/* 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"
1995-07-28 11:44:29 +00:00
#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)
1995-07-28 11:44:29 +00:00
#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 */
1995-07-28 11:44:29 +00:00
#ifdef __MWERKS__
LMSetSFSaveDisk(-pb.ioWDVRefNum);
LMSetCurDirStore(pb.ioWDDirID);
#else
SFSaveDisk= -pb.ioWDVRefNum;
CurDirStore= pb.ioWDDirID;
1995-07-28 11:44:29 +00:00
#endif
}
return 0;
}