Changeset 91394 in vbox for trunk/src/VBox
- Timestamp:
- Sep 27, 2021 12:54:43 PM (3 years ago)
- Location:
- trunk/src/VBox/Main
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/include/VirtualBoxTranslator.h
r91393 r91394 27 27 #include <VBox/com/AutoLock.h> 28 28 29 COM_STRUCT_OR_CLASS(IVirtualBox); 29 30 class QMTranslator; 30 31 -
trunk/src/VBox/Main/src-all/ExtPackUtil.cpp
r85233 r91394 38 38 #include <VBox/log.h> 39 39 40 #include <VBox/VBoxNls.h> 41 42 DECLARE_TRANSLATION_CONTEXT(ExtPackUtil) 43 40 44 41 45 /** … … 110 114 if ( !pVBoxExtPackElm 111 115 || strcmp(pVBoxExtPackElm->getName(), "VirtualBoxExtensionPack") != 0) 112 return new RTCString( "No VirtualBoxExtensionPack element");116 return new RTCString(ExtPackUtil::tr("No VirtualBoxExtensionPack element")); 113 117 114 118 RTCString strFormatVersion; 115 119 if (!pVBoxExtPackElm->getAttributeValueN("version", strFormatVersion, RT_XML_ATTR_TINY)) 116 return new RTCString( "Missing format version");120 return new RTCString(ExtPackUtil::tr("Missing format version")); 117 121 if (!strFormatVersion.equals("1.0")) 118 return &(new RTCString( "Unsupported format version: "))->append(strFormatVersion);122 return &(new RTCString(ExtPackUtil::tr("Unsupported format version: ")))->append(strFormatVersion); 119 123 120 124 /* … … 123 127 const xml::ElementNode *pNameElm = pVBoxExtPackElm->findChildElement("Name"); 124 128 if (!pNameElm) 125 return new RTCString( "The 'Name' element is missing");129 return new RTCString(ExtPackUtil::tr("The 'Name' element is missing")); 126 130 const char *pszName = pNameElm->getValueN(RT_XML_CONTENT_SMALL); 127 131 if (!VBoxExtPackIsValidName(pszName)) 128 return &(new RTCString( "Invalid name: "))->append(pszName);132 return &(new RTCString(ExtPackUtil::tr("Invalid name: ")))->append(pszName); 129 133 130 134 const xml::ElementNode *pDescElm = pVBoxExtPackElm->findChildElement("Description"); 131 135 if (!pDescElm) 132 return new RTCString( "The 'Description' element is missing");136 return new RTCString(ExtPackUtil::tr("The 'Description' element is missing")); 133 137 const char *pszDesc = pDescElm->getValueN(RT_XML_CONTENT_LARGE); 134 138 if (!pszDesc || *pszDesc == '\0') 135 return new RTCString( "The 'Description' element is empty");139 return new RTCString(ExtPackUtil::tr("The 'Description' element is empty")); 136 140 if (strpbrk(pszDesc, "\n\r\t\v\b") != NULL) 137 return new RTCString( "The 'Description' must not contain control characters");141 return new RTCString(ExtPackUtil::tr("The 'Description' must not contain control characters")); 138 142 139 143 const xml::ElementNode *pVersionElm = pVBoxExtPackElm->findChildElement("Version"); 140 144 if (!pVersionElm) 141 return new RTCString( "The 'Version' element is missing");145 return new RTCString(ExtPackUtil::tr("The 'Version' element is missing")); 142 146 const char *pszVersion = pVersionElm->getValueN(RT_XML_CONTENT_SMALL); 143 147 if (!pszVersion || *pszVersion == '\0') 144 return new RTCString( "The 'Version' element is empty");148 return new RTCString(ExtPackUtil::tr("The 'Version' element is empty")); 145 149 if (!VBoxExtPackIsValidVersionString(pszVersion)) 146 return &(new RTCString( "Invalid version string: "))->append(pszVersion);150 return &(new RTCString(ExtPackUtil::tr("Invalid version string: ")))->append(pszVersion); 147 151 148 152 uint32_t uRevision; … … 154 158 pszEdition = ""; 155 159 if (!VBoxExtPackIsValidEditionString(pszEdition)) 156 return &(new RTCString( "Invalid edition string: "))->append(pszEdition);160 return &(new RTCString(ExtPackUtil::tr("Invalid edition string: ")))->append(pszEdition); 157 161 158 162 const xml::ElementNode *pMainModuleElm = pVBoxExtPackElm->findChildElement("MainModule"); 159 163 if (!pMainModuleElm) 160 return new RTCString( "The 'MainModule' element is missing");164 return new RTCString(ExtPackUtil::tr("The 'MainModule' element is missing")); 161 165 const char *pszMainModule = pMainModuleElm->getValueN(RT_XML_CONTENT_SMALL); 162 166 if (!pszMainModule || *pszMainModule == '\0') 163 return new RTCString( "The 'MainModule' element is empty");167 return new RTCString(ExtPackUtil::tr("The 'MainModule' element is empty")); 164 168 if (!VBoxExtPackIsValidModuleString(pszMainModule)) 165 return &(new RTCString( "Invalid main module string: "))->append(pszMainModule);169 return &(new RTCString(ExtPackUtil::tr("Invalid main module string: ")))->append(pszMainModule); 166 170 167 171 /* … … 177 181 pszMainVMModule = NULL; 178 182 else if (!VBoxExtPackIsValidModuleString(pszMainVMModule)) 179 return &(new RTCString( "Invalid main VM module string: "))->append(pszMainVMModule);183 return &(new RTCString(ExtPackUtil::tr("Invalid main VM module string: ")))->append(pszMainVMModule); 180 184 } 181 185 … … 192 196 pszVrdeModule = NULL; 193 197 else if (!VBoxExtPackIsValidModuleString(pszVrdeModule)) 194 return &(new RTCString( "Invalid VRDE module string: "))->append(pszVrdeModule);198 return &(new RTCString(ExtPackUtil::tr("Invalid VRDE module string: ")))->append(pszVrdeModule); 195 199 } 196 200 … … 251 255 int vrc = RTPathJoin(szFilePath, sizeof(szFilePath), a_pszDir, VBOX_EXTPACK_DESCRIPTION_NAME); 252 256 if (RT_FAILURE(vrc)) 253 return new RTCStringFmt( "RTPathJoin failed with %Rrc", vrc);257 return new RTCStringFmt(ExtPackUtil::tr("RTPathJoin failed with %Rrc"), vrc); 254 258 255 259 RTFSOBJINFO ObjInfo; 256 260 vrc = RTPathQueryInfoEx(szFilePath, &ObjInfo, RTFSOBJATTRADD_UNIX, RTPATH_F_ON_LINK); 257 261 if (RT_FAILURE(vrc)) 258 return new RTCStringFmt( "RTPathQueryInfoEx failed with %Rrc", vrc);262 return new RTCStringFmt(ExtPackUtil::tr("RTPathQueryInfoEx failed with %Rrc"), vrc); 259 263 if (a_pObjInfo) 260 264 *a_pObjInfo = ObjInfo; … … 262 266 { 263 267 if (RTFS_IS_SYMLINK(ObjInfo.Attr.fMode)) 264 return new RTCString( "The XML file is symlinked, that is not allowed");265 return new RTCStringFmt( "The XML file is not a file (fMode=%#x)", ObjInfo.Attr.fMode);268 return new RTCString(ExtPackUtil::tr("The XML file is symlinked, that is not allowed")); 269 return new RTCStringFmt(ExtPackUtil::tr("The XML file is not a file (fMode=%#x)"), ObjInfo.Attr.fMode); 266 270 } 267 271 … … 312 316 int rc = RTVfsFileQueryInfo(hVfsFile, &ObjInfo, RTFSOBJATTRADD_UNIX); 313 317 if (RT_FAILURE(rc)) 314 return &(new RTCString)->printf( "RTVfsFileQueryInfo failed: %Rrc", rc);318 return &(new RTCString)->printf(ExtPackUtil::tr("RTVfsFileQueryInfo failed: %Rrc"), rc); 315 319 if (a_pObjInfo) 316 320 *a_pObjInfo = ObjInfo; … … 323 327 /* Check the file size. */ 324 328 if (ObjInfo.cbObject > _1M || ObjInfo.cbObject < 0) 325 return &(new RTCString)->printf( "The XML file is too large (%'RU64 bytes)", ObjInfo.cbObject);329 return &(new RTCString)->printf(ExtPackUtil::tr("The XML file is too large (%'RU64 bytes)"), ObjInfo.cbObject); 326 330 size_t const cbFile = (size_t)ObjInfo.cbObject; 327 331 … … 329 333 rc = RTVfsFileSeek(hVfsFile, 0, RTFILE_SEEK_BEGIN, NULL); 330 334 if (RT_FAILURE(rc)) 331 return &(new RTCString)->printf( "RTVfsFileSeek(,0,BEGIN) failed: %Rrc", rc);335 return &(new RTCString)->printf(ExtPackUtil::tr("RTVfsFileSeek(,0,BEGIN) failed: %Rrc"), rc); 332 336 333 337 /* Allocate memory and read the file content into it. */ 334 338 void *pvFile = RTMemTmpAlloc(cbFile); 335 339 if (!pvFile) 336 return &(new RTCString)->printf( "RTMemTmpAlloc(%zu) failed", cbFile);340 return &(new RTCString)->printf(ExtPackUtil::tr("RTMemTmpAlloc(%zu) failed"), cbFile); 337 341 338 342 RTCString *pstrErr = NULL; 339 343 rc = RTVfsFileRead(hVfsFile, pvFile, cbFile, NULL); 340 344 if (RT_FAILURE(rc)) 341 pstrErr = &(new RTCString)->printf( "RTVfsFileRead failed: %Rrc", rc);345 pstrErr = &(new RTCString)->printf(ExtPackUtil::tr("RTVfsFileRead failed: %Rrc"), rc); 342 346 343 347 /* … … 740 744 && !ExtPackDesc.strName.equalsIgnoreCase(pszExtPackName)) 741 745 rc = vboxExtPackReturnError(VERR_NOT_EQUAL, pszError, cbError, 742 "The name of the downloaded file and the name stored inside the extension pack does not match"743 " (xml='%s' file='%s')" , ExtPackDesc.strName.c_str(), pszExtPackName);746 ExtPackUtil::tr("The name of the downloaded file and the name stored inside the extension pack does not match" 747 " (xml='%s' file='%s')"), ExtPackDesc.strName.c_str(), pszExtPackName); 744 748 return rc; 745 749 } … … 763 767 int rc = RTVfsFileSeek(hManifestFile, 0, RTFILE_SEEK_BEGIN, NULL); 764 768 if (RT_FAILURE(rc)) 765 return vboxExtPackReturnError(rc, pszError, cbError, "RTVfsFileSeek failed: %Rrc", rc);769 return vboxExtPackReturnError(rc, pszError, cbError, ExtPackUtil::tr("RTVfsFileSeek failed: %Rrc"), rc); 766 770 767 771 RTMANIFEST hTheirManifest; 768 772 rc = RTManifestCreate(0 /*fFlags*/, &hTheirManifest); 769 773 if (RT_FAILURE(rc)) 770 return vboxExtPackReturnError(rc, pszError, cbError, "RTManifestCreate failed: %Rrc", rc);774 return vboxExtPackReturnError(rc, pszError, cbError, ExtPackUtil::tr("RTManifestCreate failed: %Rrc"), rc); 771 775 772 776 RTVFSIOSTREAM hVfsIos = RTVfsFileToIoStream(hManifestFile); … … 800 804 } 801 805 else if (rc == VERR_NOT_EQUAL && szError[0]) 802 vboxExtPackSetError(pszError, cbError, "Manifest mismatch: %s", szError);806 vboxExtPackSetError(pszError, cbError, ExtPackUtil::tr("Manifest mismatch: %s"), szError); 803 807 else 804 vboxExtPackSetError(pszError, cbError, "RTManifestEqualsEx failed: %Rrc", rc);808 vboxExtPackSetError(pszError, cbError, ExtPackUtil::tr("RTManifestEqualsEx failed: %Rrc"), rc); 805 809 #if 0 806 810 RTVFSIOSTREAM hVfsIosStdOut = NIL_RTVFSIOSTREAM; … … 813 817 } 814 818 else 815 vboxExtPackSetError(pszError, cbError, "Error parsing '%s': %Rrc", VBOX_EXTPACK_MANIFEST_NAME, rc);819 vboxExtPackSetError(pszError, cbError, ExtPackUtil::tr("Error parsing '%s': %Rrc"), VBOX_EXTPACK_MANIFEST_NAME, rc); 816 820 817 821 RTManifestRelease(hTheirManifest); … … 860 864 if (memcmp(abFileHash, abCalculatedHash, sizeof(abFileHash))) 861 865 { 862 vboxExtPackSetError(pszError, cbError, "The extension pack file has changed (SHA-256 mismatch)"); 866 vboxExtPackSetError(pszError, cbError, 867 ExtPackUtil::tr("The extension pack file has changed (SHA-256 mismatch)")); 863 868 rc = VERR_NOT_EQUAL; 864 869 } 865 870 } 866 871 else 867 vboxExtPackSetError(pszError, cbError, "Bad SHA-256 '%s': %Rrc", szCalculatedDigest, rc);872 vboxExtPackSetError(pszError, cbError, ExtPackUtil::tr("Bad SHA-256 '%s': %Rrc"), szCalculatedDigest, rc); 868 873 } 869 874 … … 884 889 } 885 890 else 886 vboxExtPackSetError(pszError, cbError, "Bad SHA-256 '%s': %Rrc", szCalculatedDigest, rc);891 vboxExtPackSetError(pszError, cbError, ExtPackUtil::tr("Bad SHA-256 '%s': %Rrc"), szCalculatedDigest, rc); 887 892 } 888 893 else 889 vboxExtPackSetError(pszError, cbError, "RTManifestEntryGetAttr: %Rrc", rc);894 vboxExtPackSetError(pszError, cbError, ExtPackUtil::tr("RTManifestEntryGetAttr: %Rrc"), rc); 890 895 return rc; 891 896 } … … 918 923 if (phVfsFile && *phVfsFile != NIL_RTVFSFILE) 919 924 rc = vboxExtPackReturnError(VERR_DUPLICATE, pszError, cbError, 920 "There can only be one '%s'", pszAdjName);925 ExtPackUtil::tr("There can only be one '%s'"), pszAdjName); 921 926 else if (enmType != RTVFSOBJTYPE_IO_STREAM && enmType != RTVFSOBJTYPE_FILE) 922 927 rc = vboxExtPackReturnError(VERR_NOT_A_FILE, pszError, cbError, 923 "Standard member '%s' is not a file", pszAdjName);928 ExtPackUtil::tr("Standard member '%s' is not a file"), pszAdjName); 924 929 else 925 930 { … … 930 935 if (!RTFS_IS_FILE(ObjInfo.Attr.fMode)) 931 936 rc = vboxExtPackReturnError(VERR_NOT_A_FILE, pszError, cbError, 932 "Standard member '%s' is not a file", pszAdjName);937 ExtPackUtil::tr("Standard member '%s' is not a file"), pszAdjName); 933 938 else if (ObjInfo.cbObject >= _1M) 934 939 rc = vboxExtPackReturnError(VERR_OUT_OF_RANGE, pszError, cbError, 935 "Standard member '%s' is too large: %'RU64 bytes (max 1 MB)",940 ExtPackUtil::tr("Standard member '%s' is too large: %'RU64 bytes (max 1 MB)"), 936 941 pszAdjName, (uint64_t)ObjInfo.cbObject); 937 942 else … … 961 966 } 962 967 else 963 vboxExtPackSetError(pszError, cbError, "RTVfsFileSeek failed on '%s': %Rrc", pszAdjName, rc); 968 vboxExtPackSetError(pszError, cbError, 969 ExtPackUtil::tr("RTVfsFileSeek failed on '%s': %Rrc"), pszAdjName, rc); 964 970 } 965 971 … … 970 976 } 971 977 else 972 vboxExtPackSetError(pszError, cbError, "RTVfsMemorizeIoStreamAsFile failed on '%s': %Rrc", pszAdjName, rc); 978 vboxExtPackSetError(pszError, cbError, 979 ExtPackUtil::tr("RTVfsMemorizeIoStreamAsFile failed on '%s': %Rrc"), pszAdjName, rc); 973 980 RTVfsIoStrmRelease(hVfsIos); 974 981 } 975 982 } 976 983 else 977 vboxExtPackSetError(pszError, cbError, "RTVfsObjQueryInfo failed on '%s': %Rrc", pszAdjName, rc);984 vboxExtPackSetError(pszError, cbError, ExtPackUtil::tr("RTVfsObjQueryInfo failed on '%s': %Rrc"), pszAdjName, rc); 978 985 } 979 986 return rc; … … 995 1002 { 996 1003 if (RTPathStartsWithRoot(pszName)) 997 return vboxExtPackReturnError(VERR_PATH_IS_NOT_RELATIVE, pszError, cbError, "'%s': starts with root spec", pszName); 1004 return vboxExtPackReturnError(VERR_PATH_IS_NOT_RELATIVE, pszError, cbError, 1005 ExtPackUtil::tr("'%s': starts with root spec"), pszName); 998 1006 999 1007 const char *pszErr = NULL; … … 1045 1053 if (pszErr) 1046 1054 return vboxExtPackReturnError(VERR_INVALID_NAME, pszError, cbError, 1047 "Bad member name '%s' (pos %zu): %s", pszName, (size_t)(psz - pszName), pszErr); 1055 ExtPackUtil::tr("Bad member name '%s' (pos %zu): %s"), 1056 pszName, (size_t)(psz - pszName), pszErr); 1048 1057 return RTEXITCODE_SUCCESS; 1049 1058 } … … 1070 1079 if (ObjInfo.cbObject >= 9*_1G64) 1071 1080 rc = vboxExtPackReturnError(VERR_OUT_OF_RANGE, pszError, cbError, 1072 "'%s': too large (%'RU64 bytes)",1081 ExtPackUtil::tr("'%s': too large (%'RU64 bytes)"), 1073 1082 pszName, (uint64_t)ObjInfo.cbObject); 1074 1083 if (!RTFS_IS_FILE(ObjInfo.Attr.fMode)) 1075 1084 rc = vboxExtPackReturnError(VERR_NOT_A_FILE, pszError, cbError, 1076 "The alleged file '%s' has a mode mask stating otherwise (%RTfmode)",1085 ExtPackUtil::tr("The alleged file '%s' has a mode mask stating otherwise (%RTfmode)"), 1077 1086 pszName, ObjInfo.Attr.fMode); 1078 1087 } 1079 1088 else 1080 vboxExtPackSetError(pszError, cbError, "RTVfsObjQueryInfo failed on '%s': %Rrc", pszName, rc);1089 vboxExtPackSetError(pszError, cbError, ExtPackUtil::tr("RTVfsObjQueryInfo failed on '%s': %Rrc"), pszName, rc); 1081 1090 } 1082 1091 return rc; … … 1104 1113 if (!RTFS_IS_DIRECTORY(ObjInfo.Attr.fMode)) 1105 1114 rc = vboxExtPackReturnError(VERR_NOT_A_DIRECTORY, pszError, cbError, 1106 "The alleged directory '%s' has a mode mask saying differently (%RTfmode)",1115 ExtPackUtil::tr("The alleged directory '%s' has a mode mask saying differently (%RTfmode)"), 1107 1116 pszName, ObjInfo.Attr.fMode); 1108 1117 } 1109 1118 else 1110 vboxExtPackSetError(pszError, cbError, "RTVfsObjQueryInfo failed on '%s': %Rrc", pszName, rc);1119 vboxExtPackSetError(pszError, cbError, ExtPackUtil::tr("RTVfsObjQueryInfo failed on '%s': %Rrc"), pszName, rc); 1111 1120 } 1112 1121 return rc; … … 1137 1146 else 1138 1147 rc = vboxExtPackReturnError(VERR_UNEXPECTED_FS_OBJ_TYPE, pszError, cbError, 1139 "'%s' is not a file or directory (enmType=%d)", pszName, enmType);1148 ExtPackUtil::tr("'%s' is not a file or directory (enmType=%d)"), pszName, enmType); 1140 1149 return rc; 1141 1150 } … … 1168 1177 int rc = RTFileSeek(hTarballFile, 0, RTFILE_SEEK_BEGIN, NULL); 1169 1178 if (RT_FAILURE(rc)) 1170 return vboxExtPackReturnError(rc, pszError, cbError, "Failed seeking to the start of the tarball: %Rrc", rc); 1179 return vboxExtPackReturnError(rc, pszError, cbError, 1180 ExtPackUtil::tr("Failed seeking to the start of the tarball: %Rrc"), rc); 1171 1181 1172 1182 RTVFSIOSTREAM hTarballIos; … … 1174 1184 &hTarballIos); 1175 1185 if (RT_FAILURE(rc)) 1176 return vboxExtPackReturnError(rc, pszError, cbError, "RTVfsIoStrmFromRTFile failed: %Rrc", rc);1186 return vboxExtPackReturnError(rc, pszError, cbError, ExtPackUtil::tr("RTVfsIoStrmFromRTFile failed: %Rrc"), rc); 1177 1187 1178 1188 RTMANIFEST hFileManifest = NIL_RTMANIFEST; … … 1204 1214 } 1205 1215 1206 vboxExtPackSetError(pszError, cbError, "RTZipTarFsStreamFromIoStream failed: %Rrc", rc);1216 vboxExtPackSetError(pszError, cbError, ExtPackUtil::tr("RTZipTarFsStreamFromIoStream failed: %Rrc"), rc); 1207 1217 RTVfsIoStrmRelease(hGunzipIos); 1208 1218 } 1209 1219 else 1210 vboxExtPackSetError(pszError, cbError, "RTZipGzipDecompressIoStream failed: %Rrc", rc);1220 vboxExtPackSetError(pszError, cbError, ExtPackUtil::tr("RTZipGzipDecompressIoStream failed: %Rrc"), rc); 1211 1221 RTVfsIoStrmRelease(hPtIos); 1212 1222 } 1213 1223 else 1214 vboxExtPackSetError(pszError, cbError, "RTManifestEntryAddPassthruIoStream failed: %Rrc", rc);1224 vboxExtPackSetError(pszError, cbError, ExtPackUtil::tr("RTManifestEntryAddPassthruIoStream failed: %Rrc"), rc); 1215 1225 RTManifestRelease(hFileManifest); 1216 1226 } 1217 1227 else 1218 vboxExtPackSetError(pszError, cbError, "RTManifestCreate failed: %Rrc", rc);1228 vboxExtPackSetError(pszError, cbError, ExtPackUtil::tr("RTManifestCreate failed: %Rrc"), rc); 1219 1229 1220 1230 RTVfsIoStrmRelease(hTarballIos); … … 1297 1307 { 1298 1308 if (rc != VERR_EOF) 1299 vboxExtPackSetError(pszError, cbError, "RTVfsFsStrmNext failed: %Rrc", rc);1309 vboxExtPackSetError(pszError, cbError, ExtPackUtil::tr("RTVfsFsStrmNext failed: %Rrc"), rc); 1300 1310 else 1301 1311 rc = VINF_SUCCESS; … … 1337 1347 rc = RTManifestEntryAddIoStream(hOurManifest, hVfsIos, pszAdjName, RTMANIFEST_ATTR_SIZE | RTMANIFEST_ATTR_SHA256); 1338 1348 if (RT_FAILURE(rc)) 1339 vboxExtPackSetError(pszError, cbError, "RTManifestEntryAddIoStream failed on '%s': %Rrc", pszAdjName, rc); 1349 vboxExtPackSetError(pszError, cbError, 1350 ExtPackUtil::tr("RTManifestEntryAddIoStream failed on '%s': %Rrc"), pszAdjName, rc); 1340 1351 RTVfsIoStrmRelease(hVfsIos); 1341 1352 } … … 1367 1378 { 1368 1379 if (hXmlFile == NIL_RTVFSFILE) 1369 rc = vboxExtPackReturnError(VERR_MISSING, pszError, cbError, "Mandator file '%s' is missing",1380 rc = vboxExtPackReturnError(VERR_MISSING, pszError, cbError, ExtPackUtil::tr("Mandator file '%s' is missing"), 1370 1381 VBOX_EXTPACK_DESCRIPTION_NAME); 1371 1382 if (hManifestFile == NIL_RTVFSFILE) 1372 rc = vboxExtPackReturnError(VERR_MISSING, pszError, cbError, "Mandator file '%s' is missing",1383 rc = vboxExtPackReturnError(VERR_MISSING, pszError, cbError, ExtPackUtil::tr("Mandator file '%s' is missing"), 1373 1384 VBOX_EXTPACK_MANIFEST_NAME); 1374 1385 if (hSignatureFile == NIL_RTVFSFILE) 1375 rc = vboxExtPackReturnError(VERR_MISSING, pszError, cbError, "Mandator file '%s' is missing",1386 rc = vboxExtPackReturnError(VERR_MISSING, pszError, cbError, ExtPackUtil::tr("Mandator file '%s' is missing"), 1376 1387 VBOX_EXTPACK_SIGNATURE_NAME); 1377 1388 }
Note:
See TracChangeset
for help on using the changeset viewer.