home *** CD-ROM | disk | FTP | other *** search
- /*
- * Name: MG 2x Directory I/O routines, by Stephen Walton Version of
- * 5-May-88
- */
-
- #include "no_dir.h"
-
- #ifndef NO_DIR
-
- #include "def.h"
- #include "use_arp.h"
- #ifdef USE_ARP
- #include <arpfunctions.h>
- #ifdef LATTICE
- #include <libraries/arp_pragmas.h>
- #endif
- #endif
- #ifdef ANSI
- #include <string.h>
- #endif
-
- #undef NULL
- #undef TRUE
- #undef FALSE
- #include <exec/types.h>
- #include <intuition/intuition.h>
- #include <libraries/dosextens.h>
- #include <exec/memory.h>
- #ifdef LATTICE
- #include <proto/all.h>
- #else
- #include <functions.h>
- #endif
-
- extern char *MyDirName;
-
- char *
- getwd(path)
- char *path;
- {
- if (!path)
- return path;
- strcpy(path, MyDirName);
- return path;
- }
-
- chdir(path)
- char *path;
- {
- BPTR AttemptLock;
- struct FileInfoBlock *fib;
- int retval;
- extern char version[], WindowTitle[];
- extern struct Window *EmW;
-
- AttemptLock = Lock(path, ACCESS_READ);
- if (!AttemptLock)
- return -1;
- fib = (struct FileInfoBlock *) AllocMem((long)
- sizeof(struct FileInfoBlock),
- MEMF_CLEAR);
- Examine(AttemptLock, fib);
- if (fib->fib_DirEntryType < 0) {
- retval = -1;
- UnLock(AttemptLock);
- goto clean;
- }
- UnLock(CurrentDir(AttemptLock)); /* do the thing */
- if (PathName(AttemptLock, MyDirName, MAXPATH) == 0)
- MyDirName[0] = '\0';
- retval = 0; /* Success! */
- SetWindowTitles(EmW, WindowTitle, version);
-
- clean:
- FreeMem((void *) fib, (long) sizeof(struct FileInfoBlock));
- return retval;
- }
- #else
- #include "nullfile.h"
- #endif
-