| 
									
										
										
										
											1994-08-19 10:51:31 +00:00
										 |  |  | /* 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
 | 
					
						
							| 
									
										
										
										
											1995-02-20 23:41:35 +00:00
										 |  |  | /* Last directory used by Standard File */ | 
					
						
							|  |  |  | #define SFSaveDisk	(*(short *)0x214)
 | 
					
						
							|  |  |  | #define CurDirStore (*(long *)0x398)
 | 
					
						
							| 
									
										
										
										
											1995-07-28 11:44:29 +00:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											1995-02-20 23:41:35 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1994-08-19 10:51:31 +00:00
										 |  |  | /* Change current directory. */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | int | 
					
						
							|  |  |  | chdir(path) | 
					
						
							|  |  |  | 	char *path; | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	WDPBRec pb; | 
					
						
							|  |  |  | 	 | 
					
						
							| 
									
										
										
										
											1995-01-18 13:55:41 +00:00
										 |  |  | 	pb.ioNamePtr= (StringPtr) Pstring(path); | 
					
						
							| 
									
										
										
										
											1994-08-19 10:51:31 +00:00
										 |  |  | 	pb.ioVRefNum= 0; | 
					
						
							|  |  |  | 	pb.ioWDDirID= 0; | 
					
						
							|  |  |  | 	if (PBHSetVol(&pb, FALSE) != noErr) { | 
					
						
							|  |  |  | 		errno= ENOENT; | 
					
						
							|  |  |  | 		return -1; | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											1995-02-20 23:41:35 +00:00
										 |  |  | 	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
 | 
					
						
							| 
									
										
										
										
											1995-02-20 23:41:35 +00:00
										 |  |  | 		SFSaveDisk= -pb.ioWDVRefNum; | 
					
						
							|  |  |  | 		CurDirStore= pb.ioWDDirID; | 
					
						
							| 
									
										
										
										
											1995-07-28 11:44:29 +00:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											1995-02-20 23:41:35 +00:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											1994-08-19 10:51:31 +00:00
										 |  |  | 	return 0; | 
					
						
							|  |  |  | } |