diff options
Diffstat (limited to 'dmake/msdos/find.c')
-rw-r--r-- | dmake/msdos/find.c | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/dmake/msdos/find.c b/dmake/msdos/find.c deleted file mode 100644 index d35cc477ec9e..000000000000 --- a/dmake/msdos/find.c +++ /dev/null @@ -1,130 +0,0 @@ -/* - Directory Access Library - - FIND.C taken from DIRLIB.C by M. J. Weinstein - Released to public domain 1-Jan-89 - - The author may be contacted at: - matt@cs.ucla.edu -or- POB 84524, L.A., CA 90073 - - Modified by dvadura@watdragon.edu to work with dmake. - (nuked the DOS version 2 code, since dmake needs version - 3.0 or greater to function). - */ - - -/* - * revision history: - * - * VER MM/DD/YY COMMENTS - * ---- -------- -------- - * 0.99 02/24/86 Beta release to INTERNET - */ - -#include <stdio.h> -#include <stdlib.h> -#include <ctype.h> -#include <errno.h> -#include <string.h> -#include <alloc.h> -#include <dos.h> -#include "dosdta.h" - -#ifndef MK_FP -#define MK_FP(seg,ofs) ((void far *) \ - (((unsigned long)(seg) << 16) | (unsigned)(ofs))) -#endif -#ifndef FP_SEG -#define FP_SEG(fp) ((unsigned)((unsigned long)(fp) >> 16)) -#endif -#ifndef FP_OFF -#define FP_OFF(fp) ((unsigned)(fp)) -#endif - -int find_err; - -/* - * get/set dta address - */ - -static DTA far * -_getsetdta(newdta) -DTA far *newdta; -{ - DTA far *olddta; - union REGS r; - struct SREGS s; - - /* get old dta */ - r.h.ah = 0x2f; - intdos(&r, &r); - segread(&s); - olddta = (DTA far *) MK_FP(s.es, r.x.bx); - - /* conditionally set new dta */ - if (newdta) { - r.h.ah = 0x1a; - s.ds = FP_SEG(newdta); - r.x.dx = FP_OFF(newdta); - intdosx(&r, &r, &s); - } - - return olddta; -} - -/* - * dos findfirst - */ - -DTA * -findfirst(name, dta) -char *name; -DTA *dta; -{ - union REGS r; - struct SREGS s; - DTA far *dtasave; - char far *nmp = (char far *)name; - - dtasave = _getsetdta((DTA far *)dta); - - /* do directory lookup */ - segread(&s); - r.h.ah = 0x4e; - r.x.cx = 0x10; - r.x.dx = FP_OFF(nmp); - s.ds = FP_SEG(nmp); - intdosx(&r, &r, &s); - /* restore dta */ - _getsetdta(dtasave); - find_err = r.x.ax; - if (r.x.cflag) - return(NULL); - - return dta; -} - -/* - * dos findnext - */ - -DTA * -findnext(dta) -DTA *dta; -{ - union REGS r; - DTA far *dtasave; - - dtasave = _getsetdta((DTA far *)dta); - - /* do directory lookup */ - r.h.ah = 0x4f; - intdos(&r, &r); - /* restore old dta */ - _getsetdta(dtasave); - find_err = r.x.ax; - if (r.x.cflag) - return(NULL); - - return dta; -} |