git » fp-git.git » commit 15f3bf1

bugfix: when introducing a type filename the whole directory is not read for input

author ecalot
2005-03-24 20:48:37 UTC
committer ecalot
2005-03-24 20:48:37 UTC
parent ad5f56a74fb85a795a48a6f486459d67feb05045

bugfix: when introducing a type filename the whole directory is not read for input

PR/src/console/filedir.c +14 -11
PR/src/console/main.c +1 -1
PR/src/include/en.lang.pr.h +1 -1
PR/src/include/filedir.h +1 -1

diff --git a/PR/src/console/filedir.c b/PR/src/console/filedir.c
index 168dd3e..8f3f53f 100644
--- a/PR/src/console/filedir.c
+++ b/PR/src/console/filedir.c
@@ -183,7 +183,7 @@ int isADatFile(const char* vResFile, const char* file) {
 }
 
 /* layer 2, module check Import type */
-int fileDirGetFilesImport(tFileDir2* list1,tFileDir2* files,const char* resfile) {
+int fileDirGetFilesImport(tFileDir2* list1,tFileDir2* files,const char* resfile,int given) {
 	char* file;
 	char* opt;
 	whatIs type;
@@ -201,13 +201,19 @@ int fileDirGetFilesImport(tFileDir2* list1,tFileDir2* files,const char* resfile)
 		
 		/* a not found file may become either a directory or a file depending on the res file */
 		if (type==eNotFound) {
-			int isdat=isADatFile(resfile,file);
-			if (isdat<0) parseError=isdat;
-
-			if (isdat) {
+			/* first check if the dat type was given by the -t option */
+			if (given) {
 				type=eFile;
 			} else {
-				type=eDirectory;
+			/* if the dat type wasn't given by the -t option let's use all the files in the XML */
+				int isdat;
+				isdat=isADatFile(resfile,file);
+				if (isdat<0) parseError=isdat;
+				if (isdat) {
+					type=eFile;
+				} else {
+					type=eDirectory;
+				}
 			}
 		}
 		
@@ -273,9 +279,6 @@ int fileDirGetFilesExport(tFileDir2* list1,tFileDir2* files,int notHasRecursiveF
 	return 0;
 }
 
-
-
-
 /* layer 3, primitives */
 
 void fileDirClearOptions(tFileDir2* list1) {
@@ -315,7 +318,7 @@ void fileDirAddOption(tFileDir2* list1, const char* option) {
 
 
 
-int fileDirGetFiles(tFileDir2* list1,tFileDir2* files,int hasExportFlag,int notHasRecursiveFlag,const char* resfile) {
+int fileDirGetFiles(tFileDir2* list1,tFileDir2* files,int hasExportFlag,int notHasRecursiveFlag,const char* resfile,int given) {
 /* case 1: * import from more than one directory */
  
 	if (!hasExportFlag&&!notHasRecursiveFlag) {
@@ -330,7 +333,7 @@ int fileDirGetFiles(tFileDir2* list1,tFileDir2* files,int hasExportFlag,int notH
 	if (hasExportFlag)
 		return fileDirGetFilesExport(list1,files,notHasRecursiveFlag);
 	else
-		return fileDirGetFilesImport(list1,files,resfile);
+		return fileDirGetFilesImport(list1,files,resfile,given);
 	
 }
 
diff --git a/PR/src/console/main.c b/PR/src/console/main.c
index ba50915..0f7e3e9 100644
--- a/PR/src/console/main.c
+++ b/PR/src/console/main.c
@@ -173,7 +173,7 @@ int main (int argc, char **argv) {
     } else {
 				fileDirAddOption(&input,".");
 		}
-		c=fileDirGetFiles(&input,&files,!hasFlag(import_flag),!hasFlag(recursive_flag),resFile);
+		c=fileDirGetFiles(&input,&files,!hasFlag(import_flag),!hasFlag(recursive_flag),resFile,datFileName!=NULL);
 
 		switch (c) {
 		case -20: /* import from more than one directory */
diff --git a/PR/src/include/en.lang.pr.h b/PR/src/include/en.lang.pr.h
index 6090b2e..ce26a9b 100644
--- a/PR/src/include/en.lang.pr.h
+++ b/PR/src/include/en.lang.pr.h
@@ -143,7 +143,7 @@ NULL,NULL,NULL,\
                               is not a dat file)\n\
    -t, --datfile=DATFILE      specifies a dat file to read resources\n\
                               different than the original file\n\
-   -z, --compression-level=n  a number from 1 to 7 specifying how hard has PR\n\
+   -z, --compression-level=N  a number from 1 to 7 specifying how hard has PR\n\
                               to try to reduce the generated dat files.\n"
 
 #define PARSING_HELP_PART4 "\
diff --git a/PR/src/include/filedir.h b/PR/src/include/filedir.h
index 28f29b7..e876c4e 100644
--- a/PR/src/include/filedir.h
+++ b/PR/src/include/filedir.h
@@ -53,7 +53,7 @@ typedef struct {
 
 void  fileDirClearOptions(tFileDir2* list1);
 void  fileDirAddOption(tFileDir2* list1, const char* option);
-int   fileDirGetFiles(tFileDir2* list1,tFileDir2* files,int hasExportFlag,int notHasRecursiveFlag,const char* vResFile);
+int fileDirGetFiles(tFileDir2* list1,tFileDir2* files,int hasExportFlag,int notHasRecursiveFlag,const char* resfile,int givenDatFilename);
 char* fileDirGetFile(tFileDir2* files,char** datfile);
 
 #endif