mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			42 lines
		
	
	
	
		
			888 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
	
		
			888 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /* 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;
 | |
| }
 | 
