imgtools/romtools/rombuild/r_obey.cpp
changeset 709 1ec2202bb75b
parent 647 53d1ab72f5bc
equal deleted inserted replaced
708:0757c2976f96 709:1ec2202bb75b
  1070 	}
  1070 	}
  1071 
  1071 
  1072 	if (isPeFile)
  1072 	if (isPeFile)
  1073 		iNumberOfPeFiles++;
  1073 		iNumberOfPeFiles++;
  1074 
  1074 
  1075 	// check the PC file exists
  1075 	if(EKeywordHardwareConfigRepositoryData == aKeyword) { // check hcr file 
  1076 	char* nname = NormaliseFileName(iReader.Word(1)); 
  1076 		// check the PC file exists
  1077 	if(gIsOBYUTF8 && !UniConv::IsPureASCIITextStream(nname))
  1077 		char* nname = NormaliseFileName(iReader.Word(1)); 
  1078 	{
  1078 		if(gIsOBYUTF8 && !UniConv::IsPureASCIITextStream(nname))
  1079 		char* tempnname = strdup(nname);
       
  1080 		unsigned int namelen = 0;
       
  1081 		if(UniConv::UTF82DefaultCodePage(tempnname, strlen(tempnname), &nname, &namelen) < 0)
       
  1082 		{
  1079 		{
  1083 			Print(EError, "Invalid filename encoding: %s\n", tempnname);
  1080 			char* tempnname = strdup(nname);
       
  1081 			unsigned int namelen = 0;
       
  1082 			if(UniConv::UTF82DefaultCodePage(tempnname, strlen(tempnname), &nname, &namelen) < 0)
       
  1083 			{
       
  1084 				Print(EError, "Invalid filename encoding: %s\n", tempnname);
       
  1085 				free(tempnname);
       
  1086 				iMissingFiles++;
       
  1087 				delete[] nname;
       
  1088 				return EFalse;
       
  1089 			}
  1084 			free(tempnname);
  1090 			free(tempnname);
       
  1091 		}
       
  1092 		ifstream test(nname,ios_base::binary | ios_base::in); 
       
  1093 	
       
  1094 		if (!test.is_open()) {
       
  1095 			Print(EError,"Cannot open file %s for input.\n",iReader.Word(1));
       
  1096 			if(EKeywordHardwareConfigRepositoryData == aKeyword) {
       
  1097 				delete []nname;
       
  1098 				return EFalse ;
       
  1099 			}
  1085 			iMissingFiles++;
  1100 			iMissingFiles++;
  1086 			delete[] nname;
  1101 		}
  1087 			return EFalse;
       
  1088 		}
       
  1089 		free(tempnname);
       
  1090 	}
       
  1091 	ifstream test(nname,ios_base::binary | ios_base::in); 
       
  1092 
       
  1093 	if (!test.is_open()) {
       
  1094 		Print(EError,"Cannot open file %s for input.\n",iReader.Word(1));
       
  1095 		if(EKeywordHardwareConfigRepositoryData == aKeyword) {
       
  1096 			delete []nname;
       
  1097 			return EFalse ;
       
  1098 		}
       
  1099 		iMissingFiles++;
       
  1100 	}
       
  1101 	if(EKeywordHardwareConfigRepositoryData == aKeyword) { // check hcr file 
       
  1102 
  1102 
  1103 		TUint32 magicWord = 0;
  1103 		TUint32 magicWord = 0;
  1104 		test.read(reinterpret_cast<char*>(&magicWord),sizeof(TUint32));
  1104 		test.read(reinterpret_cast<char*>(&magicWord),sizeof(TUint32));
  1105 		if(0x66524348 != magicWord) {
  1105 		if(0x66524348 != magicWord) {
  1106 			Print(EError,"Invalid hardware configuration repository data file %s .\n",iReader.Word(1));
  1106 			Print(EError,"Invalid hardware configuration repository data file %s .\n",iReader.Word(1));
  1107 			test.close();
  1107 			test.close();
  1108 			delete []nname;
  1108 			delete []nname;
  1109 			return EFalse;
  1109 			return EFalse;
  1110 		}
  1110 		}
  1111 
  1111 		test.close();
  1112 	}
  1112 		delete []nname;
  1113 	test.close();
  1113 	}
  1114 	delete []nname;
       
  1115 
  1114 
  1116 
  1115 
  1117 	TBool endOfName=EFalse; 
  1116 	TBool endOfName=EFalse; 
  1118 	if (IsValidFilePath(iReader.Word(2)) == NULL) {
  1117 	if (IsValidFilePath(iReader.Word(2)) == NULL) {
  1119 		Print(EError, "Invalid destination path on line %d\n",currentLine);
  1118 		Print(EError, "Invalid destination path on line %d\n",currentLine);