imgtools/romtools/rofsbuild/rofsbuild.cpp
changeset 626 ac03b93ca9c4
parent 617 3a747a240983
child 631 9435b9008a58
--- a/imgtools/romtools/rofsbuild/rofsbuild.cpp	Thu Aug 12 09:00:16 2010 +0100
+++ b/imgtools/romtools/rofsbuild/rofsbuild.cpp	Tue Aug 17 15:31:16 2010 +0800
@@ -46,8 +46,8 @@
 #endif
 
 static const TInt RofsbuildMajorVersion=2;
-static const TInt RofsbuildMinorVersion=12;
-static const TInt RofsbuildPatchVersion=4;
+static const TInt RofsbuildMinorVersion=13;
+static const TInt RofsbuildPatchVersion=1;
 static TBool SizeSummary=EFalse;
 static TPrintType SizeWhere=EAlways;
 
@@ -77,11 +77,13 @@
 TBool reallyHelp = EFalse;	
 TBool gSmrImage = EFalse;
 string gSmrFileName = "";
+static string rofslogfile = "ROFSBUILD.LOG";
 
 //Cache global variables
 bool gCache = false;
 bool gCleanCache = false;
 bool gNoCache = false;
+TBool gIsOBYUTF8 = EFalse;
 TBool gKeepGoing = EFalse;
 void PrintVersion() {
 	Print(EAlways,"\nROFSBUILD - Rofs/Datadrive image builder");
@@ -107,11 +109,13 @@
 	"        -datadrive=<drive obyfile1>,<drive obyfile2>,... for driveimage creation\n"
 	"              user can also input rofs oby file if required to generate both.\n"
 	"        -smr=<SMR obyfile1>,<SMR obyfile2>,... for SMR partition creation\n"
+	"        -oby-charset=<charset> used character set in which OBY was written\n"
 	"        -loglevel<level>  level of information to log (valid levels are 0,1,2).\n"//Tools like Visual ROM builder need the host/ROM filenames, size & if the file is hidden.
 	"        -wstdpath   warn if destination path provided for a file is not the standard path\n"
 	"        -argfile=<FileName>   specify argument-file name containing list of command-line arguments\n"
 "        -lowmem     use memory-mapped file for image build to reduce physical memory consumption\n"
-"        -k     to enable keepgoing when duplicate files exist in oby\n";
+"        -k     to enable keepgoing when duplicate files exist in oby\n"
+"        -logfile=<fileName>           specify log file\n";
 
 char ReallyHelpText[] =
 "Log Level:\n"
@@ -228,6 +232,13 @@
 					}
 				}
 			}
+			else if(strnicmp(argv[i], "-OBY-CHARSET=", 13) == 0)
+			{
+				if((stricmp(&argv[i][13], "UTF8")==0) || (stricmp(&argv[i][13], "UTF-8")==0))
+					gIsOBYUTF8 = ETrue;
+				else
+					Print(EError, "Invalid encoding %s, default system internal encoding will be used.\n", &argv[i][13]);
+			}
 			else if (stricmp(argv[i], "-UNCOMPRESS") == 0) {
 				gCompress = ECompressionUncompress;
 			}
@@ -311,6 +322,9 @@
 				gLogLevel = DEFAULT_LOG_LEVEL;
 			else if (stricmp(argv[i], "-LOWMEM") == 0)
 				gLowMem = ETrue;
+			else if (strnicmp(argv[i], "-logfile=",9) ==0) {
+				rofslogfile = argv[i] + 9;
+			}
 			else {
 #ifdef WIN32
 				Print (EWarning, "Unrecognised option %s\n",argv[i]);
@@ -570,7 +584,9 @@
 	}
 	// Process Rofs Obey files.
 	if(obeyFileName) {
-		H.SetLogFile("ROFSBUILD.LOG");		
+		if (rofslogfile[rofslogfile.size()-1] == '\\' || rofslogfile[rofslogfile.size()-1] == '/')
+			rofslogfile += "ROFSBUILD.LOG";
+	 	H.SetLogFile(rofslogfile.c_str());
 		ObeyFileReader *reader = new ObeyFileReader(obeyFileName); 
 		if (!reader->Open())
 			return KErrGeneral;