#include #include #include #include #include #include #define PFIND_VERSION 1 #define PFIND_RELEASE 1 unsigned int _stklen = 20000; static void near usage(void) { static const char *tbf[]={ "pfind [-a] [path/]fichier", "Localise un fichier dans une hi‚rarchie de r‚pertoires.", "Supporte les r‚pertoires virtuels (makefile.dat).", "\n", " -a : Trouve toutes les versions du fichier.", NULL }; version_usagef (tbf,tbf,"pfind","pfind" # if defined(VERSION_SHARE) ,&version_share # elif defined(VERSION_PROD) ,&version_prod # elif defined(VERSION_DEV) ,&version_beta # elif defined(VERSION_ESSAI) ,&version_alpha # endif ,PFIND_VERSION,PFIND_RELEASE ,1994,0,0 ,NULL,NULL,NULL); } int main (int argc, char *argv[]) { int ret = -1; ARGP argp[26]; argc = anlparm (argc,argv,argp,"a"); if (argc != 2){ usage(); }else{ int findall = argp['a'-'a'].ptr != NULL; char path[MAXSIZ_PATH]; char fichier[MAXSIZ_PATH]; path_splitlex (argv[1],path,fichier); const int MAX_TBFIL = 4000; char **tbdir = (char**) malloc_err (MAX_TBFIL*sizeof(char*),1); int nbdir = 1; tbdir[0] = strdup_err (path,1); char **tbfil = (char**) malloc_err (MAX_TBFIL*sizeof(char*),1); while (nbdir > 0){ char *curpath = tbdir[--nbdir]; //printf ("Repertoire ->>>> %s\n",curpath); int nbfil = vdir_getlist (curpath,WILD_ALLFILE,tbfil,MAX_TBFIL); for (int i=0; i