diff options
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | win32/dir.h | 20 | ||||
-rw-r--r-- | win32/win32.c | 8 | ||||
-rw-r--r-- | win32/win32.h | 3 |
4 files changed, 34 insertions, 7 deletions
@@ -1,3 +1,11 @@ +Wed Mar 21 08:05:35 2001 Nobuyoshi Nakada <nobu.nakada@nifty.ne.jp> + + * win32/dir.h: replace missing/dir.h . + + * win32/win32.h: ditto. + + * win32/win32.c: ditto. + Tue Mar 20 23:09:33 2001 WATANABE Hirofumi <eban@ruby-lang.org> * win32/win32.c (win32_stat): UNC support. @@ -337,7 +345,7 @@ Sun Feb 18 04:02:03 2001 Yasushi Shoji <yashi@yashi.com> Sun Feb 18 00:09:50 2001 Nobuyoshi Nakada <nobu.nakada@nifty.ne.jp> - * win32/win32.c: fasten file I/O on mswin32/mingw32. + * win32/win32.c: make file I/O faster on mswin32/mingw32. * win32/win32.h: ditto. diff --git a/win32/dir.h b/win32/dir.h new file mode 100644 index 0000000000..8aa793de42 --- /dev/null +++ b/win32/dir.h @@ -0,0 +1,20 @@ +struct direct +{ + long d_namlen; + ino_t d_ino; + char d_name[256]; +}; +typedef struct { + char *start; + char *curr; + long size; + long nfiles; + struct direct dirstr; +} DIR; + +DIR* opendir(const char*); +struct direct* readdir(DIR *); +long telldir(DIR *); +void seekdir(DIR *, long); +void rewinddir(DIR *); +void closedir(DIR *); diff --git a/win32/win32.c b/win32/win32.c index da657a540f..d66723a0fc 100644 --- a/win32/win32.c +++ b/win32/win32.c @@ -25,11 +25,12 @@ #include <winbase.h> #include <wincon.h> #include "win32.h" -#include "dir.h" +#include "win32/dir.h" #ifndef index #define index(x, y) strchr((x), (y)) #endif #define isdirsep(x) ((x) == '/' || (x) == '\\') +#undef stat #ifndef bool #define bool int @@ -1334,7 +1335,7 @@ NtMakeCmdVector (char *cmdline, char ***vec, int InputCmd) // DIR * -opendir(char *filename) +opendir(const char *filename) { DIR *p; long len; @@ -1344,9 +1345,6 @@ opendir(char *filename) struct stat sbuf; WIN32_FIND_DATA FindData; HANDLE fh; - char root[PATHLEN]; - char volname[PATHLEN]; - DWORD serial, maxname, flags; // // check to see if we\'ve got a directory diff --git a/win32/win32.h b/win32/win32.h index 5df539ecbd..0cd07eebcc 100644 --- a/win32/win32.h +++ b/win32/win32.h @@ -98,6 +98,7 @@ extern "C++" { #include <process.h> #include <time.h> #include <math.h> +#include <sys/stat.h> #include <sys/types.h> #include <sys/utime.h> #include <io.h> @@ -180,7 +181,7 @@ extern "C++" { #define strcasecmp _stricmp #define strncasecmp _strnicmp #undef stat -#define stat win32_stat +#define stat(path,st) win32_stat(path,st) /* these are defined in nt.c */ #ifdef __MINGW32__ |