blob: 056080052f2c44d6d571af16341cd627da0f676f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
/* 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;
}
|