diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-01-03 17:39:24 -0700 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-01-03 17:39:24 -0700 |
commit | a6c1ed4716cf02626ea035beb6dd4a921642ba80 (patch) | |
tree | ef582c1b52819e27bdd16097ec03b69799d04ede /newlib/libc/sys/go32/dir.c | |
parent | f6c9a624fa8a6878a7fb2b02f55e4990a20feb59 (diff) |
Use libc from agbcc instead of standalone newlib\nYou must have AGBCC commit 80d029caec189587f8b9294b6c8a5a489b8f5f88 in order to compile pmd_red.gbalibc
Diffstat (limited to 'newlib/libc/sys/go32/dir.c')
-rw-r--r-- | newlib/libc/sys/go32/dir.c | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/newlib/libc/sys/go32/dir.c b/newlib/libc/sys/go32/dir.c deleted file mode 100644 index ba3831a..0000000 --- a/newlib/libc/sys/go32/dir.c +++ /dev/null @@ -1,95 +0,0 @@ -#include <string.h> - -#include "sys/dir.h" -#include "sys/dirent.h" -#include <errno.h> - -DIR *opendir(char *name) -{ - int length; - DIR *dir = (DIR *)malloc(sizeof(DIR)); - dir->num_read = 0; - dir->name = (char *)malloc(strlen(name)+6); - strcpy(dir->name, name); - - /* Append a "." if we got only the device name */ - if (dir->name[1] == ':' && strlen(dir->name) == 2) - strcat(dir->name, "."); - - /* Strip trailing slashes, so we can append "/*.*" */ - while (1) - { - length = strlen(dir->name); - if (length == 0) break; - if (dir->name[length - 1] == '/' || - dir->name[length - 1] == '\\') - dir->name[length - 1] = '\0'; - else - break; - } - - strcat(dir->name, "/*.*"); - return dir; -} - - - -static char *strlwr(char *s) -{ - char *p = s; - while (*s) - { - if ((*s >= 'A') && (*s <= 'Z')) - *s += 'a'-'A'; - s++; - } - return p; -} - -struct dirent *readdir(DIR *dir) -{ - int done; - int oerrno = errno; - if (dir->num_read) - done = findnext(&dir->ff); - else - done = findfirst(dir->name, &dir->ff, - FA_ARCH|FA_RDONLY|FA_DIREC|FA_HIDDEN|FA_SYSTEM); - if (done) - { - if (errno == ENMFILE) - errno = oerrno; - return 0; - } - dir->num_read ++; - dir->de.d_namlen = strlen(dir->ff.ff_name); - strcpy(dir->de.d_name,dir->ff.ff_name); - strlwr(dir->de.d_name); - return &dir->de; -} - -long telldir(DIR *dir) -{ - return dir->num_read; -} - -void seekdir(DIR *dir, long loc) -{ - int i; - rewinddir(dir); - for (i=0; i<loc; i++) - readdir(dir); -} - -void rewinddir(DIR *dir) -{ - dir->num_read = 0; -} - -int closedir(DIR *dir) -{ - free(dir->name); - free(dir); - return 0; -} - |