diff options
author | Mystery Man <unknown@mandriva.org> | 2004-02-20 00:03:26 +0000 |
---|---|---|
committer | Mystery Man <unknown@mandriva.org> | 2004-02-20 00:03:26 +0000 |
commit | 959a1722faec6b30510c788c49dcb4b7cb96d1e0 (patch) | |
tree | 8d25ea2b09098078292e7dcda489471a30b4e81a /mdk-stage1/dietlibc/lib/ftw.c | |
parent | 0413d7133026a6cddf226027ebdfee6fa68890f7 (diff) | |
download | drakx-backup-do-not-use-959a1722faec6b30510c788c49dcb4b7cb96d1e0.tar drakx-backup-do-not-use-959a1722faec6b30510c788c49dcb4b7cb96d1e0.tar.gz drakx-backup-do-not-use-959a1722faec6b30510c788c49dcb4b7cb96d1e0.tar.bz2 drakx-backup-do-not-use-959a1722faec6b30510c788c49dcb4b7cb96d1e0.tar.xz drakx-backup-do-not-use-959a1722faec6b30510c788c49dcb4b7cb96d1e0.zip |
This commit was manufactured by cvs2svn to create tag 'V10_0_21mdk'.V10_0_21mdk
Diffstat (limited to 'mdk-stage1/dietlibc/lib/ftw.c')
-rw-r--r-- | mdk-stage1/dietlibc/lib/ftw.c | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/mdk-stage1/dietlibc/lib/ftw.c b/mdk-stage1/dietlibc/lib/ftw.c deleted file mode 100644 index af13a7f86..000000000 --- a/mdk-stage1/dietlibc/lib/ftw.c +++ /dev/null @@ -1,47 +0,0 @@ -#include <sys/stat.h> -#include <unistd.h> -#include <limits.h> -#include <ftw.h> -#include <dirent.h> -#include <string.h> -#include <stdlib.h> -#include "dietdirent.h" - -int ftw(const char*dir,int(*f)(const char*file,const struct stat*sb,int flag),int dpth){ - char* cd; - size_t cdl; - DIR* d; - struct dirent* de; - struct stat sb; - int r; - unsigned int oldlen=0; - char* filename; /* the warning gcc issues here is bogus */ - if(chdir(dir))return-1; - cd=alloca(PATH_MAX+1); - if(!getcwd(cd,PATH_MAX))return-1; - cd[PATH_MAX]='\0'; - cdl=strlen(cd); - if(!(d=opendir(".")))return-1; - while((de=readdir(d))){ - int flg; - size_t nl; - if(de->d_name[0]=='.'){if(!de->d_name[1])continue;if(de->d_name[1]=='.'&&!de->d_name[2])continue;} - nl=strlen(de->d_name); - if (nl+cdl+2>oldlen) - filename=alloca(oldlen=nl+cdl+2); - memmove(filename,cd,cdl); - filename[cdl]='/'; - memmove(filename+cdl+1,de->d_name,nl+1); - if(!lstat(de->d_name,&sb)){ - if(S_ISLNK(sb.st_mode))flg=FTW_SL;else if(S_ISDIR(sb.st_mode))flg=FTW_D;else flg=FTW_F; - }else flg=FTW_NS; - r=f(filename,&sb,flg); - if(r){closedir(d);return r;} - if(flg==FTW_D&&dpth){ - r=ftw(filename,f,dpth-1); - fchdir(d->fd); - if (r){closedir(d);return r;} - } - } - return closedir(d); -} |