diff options
Diffstat (limited to 'windows-NT/ndir.h')
-rw-r--r-- | windows-NT/ndir.h | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/windows-NT/ndir.h b/windows-NT/ndir.h new file mode 100644 index 0000000..a498058 --- /dev/null +++ b/windows-NT/ndir.h @@ -0,0 +1,62 @@ +/* ndir.c - portable directory routines + Copyright (C) 1990 by Thorsten Ohl, td12@ddagsi3.bitnet + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 1, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. */ + +/* Everything non trivial in this code is taken from: @(#)msd_dir.c 1.4 + 87/11/06. A public domain implementation of BSD directory routines + for MS-DOS. Written by Michael Rendell ({uunet,utai}michael@garfield), + August 1897 */ + +#include <sys/types.h> /* ino_t definition */ + +#define rewinddir(dirp) seekdir(dirp, 0L) + +/* 255 is said to be big enough for Windows NT. The more elegant + solution would be declaring d_name as one byte long and allocating + it to the actual size needed. */ +#define MAXNAMLEN 255 + +struct direct +{ + ino_t d_ino; /* a bit of a farce */ + int d_reclen; /* more farce */ + int d_namlen; /* length of d_name */ + char d_name[MAXNAMLEN + 1]; /* garentee null termination */ +}; + +struct _dircontents +{ + char *_d_entry; + struct _dircontents *_d_next; +}; + +typedef struct _dirdesc +{ + int dd_id; /* uniquely identify each open directory */ + long dd_loc; /* where we are in directory entry is this */ + struct _dircontents *dd_contents; /* pointer to contents of dir */ + struct _dircontents *dd_cp; /* pointer to current position */ +} DIR; + +void seekdir (DIR *, long); +long telldir (DIR *); +DIR *opendir (const char *); +void closedir (DIR *); +struct direct *readdir (DIR *); + +/* + * Local Variables: + * mode:C + * ChangeLog:ChangeLog + * compile-command:make + * End: + */ |