diff options
Diffstat (limited to 'mdk-stage1/dietlibc/libcruft/scandir64.c')
-rw-r--r-- | mdk-stage1/dietlibc/libcruft/scandir64.c | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/mdk-stage1/dietlibc/libcruft/scandir64.c b/mdk-stage1/dietlibc/libcruft/scandir64.c deleted file mode 100644 index c1bdc3415..000000000 --- a/mdk-stage1/dietlibc/libcruft/scandir64.c +++ /dev/null @@ -1,47 +0,0 @@ -#include <stdlib.h> -#include <dirent.h> -#include <string.h> - -int scandir64(const char *dir, struct dirent64 ***namelist, - int (*select)(const struct dirent64 *), - int (*compar)(const struct dirent64 **, const struct dirent64 **)) { - DIR* d; - struct dirent64 *D; - int num=0; - if (!(d=opendir(dir))) - return -1; - *namelist=0; - while ((D=readdir64(d))) { - if (select==0 || select(D)) { - struct dirent64 **tmp; - ++num; -/* printf("realloc %p,%d -> ",*namelist,num*sizeof(struct dirent**)); */ - if (!(tmp=realloc(*namelist,num*sizeof(struct dirent64**))) || - !(tmp[num-1]=malloc(sizeof(struct dirent64)))) { - int i; - for (i=0; i<num-1; ++i) free(tmp[i]); - free(*namelist); - closedir(d); - return -1; - } - memccpy(tmp[num-1]->d_name,D->d_name,0,NAME_MAX); - *namelist=tmp; -/* printf("%p; tmp[num-1(%d)]=%p\n",*namelist,num-1,tmp[num-1]); */ - } - } - closedir(d); -#if 0 - { - int i; - puts("pre-qsort:\n"); - for (i=0; i<num-1; ++i) { - puts((*namelist)[i]->d_name); - } - puts("post-qsort:\n"); - } -#endif -// qsort(&(*namelist)[0],num,sizeof(struct dirent*),(int (*)(const void*,const void*))(compar)); - if (compar) - qsort(*namelist,num,sizeof(struct dirent64*),(int (*)(const void*,const void*))(compar)); - return num; -} |