diff options
| author | Rob Mensching <rob@firegiant.com> | 2025-11-01 20:24:25 -0700 |
|---|---|---|
| committer | Rob Mensching <rob@firegiant.com> | 2025-11-03 14:49:39 -0800 |
| commit | 4d626c294c4783d454e27ea4e5614037dac8576e (patch) | |
| tree | 51d822f48716e4c5ef2a51ca28925896f221b521 /src/burn/engine/core.cpp | |
| parent | 33c12fa386aa7ace7a6bd06a45bc3ecf17e9c8f5 (diff) | |
| download | wix-4d626c294c4783d454e27ea4e5614037dac8576e.tar.gz wix-4d626c294c4783d454e27ea4e5614037dac8576e.tar.bz2 wix-4d626c294c4783d454e27ea4e5614037dac8576e.zip | |
Use CompareStringOrdinal() instead of CompareString() case-insensitive
This commit moves to the modern CompareStringOrdinal() for all case-insensitve
uses of CompareString() with the invariant locale.
Partially resolves 6947
Diffstat (limited to 'src/burn/engine/core.cpp')
| -rw-r--r-- | src/burn/engine/core.cpp | 98 |
1 files changed, 49 insertions, 49 deletions
diff --git a/src/burn/engine/core.cpp b/src/burn/engine/core.cpp index b20f7f0c..de202321 100644 --- a/src/burn/engine/core.cpp +++ b/src/burn/engine/core.cpp | |||
| @@ -1215,8 +1215,8 @@ HRESULT CoreAppendLogToCommandLine( | |||
| 1215 | if (rgszArgs[i][0] == L'-' || rgszArgs[i][0] == L'/') | 1215 | if (rgszArgs[i][0] == L'-' || rgszArgs[i][0] == L'/') |
| 1216 | { | 1216 | { |
| 1217 | // Now looking for 'log' or 'l' | 1217 | // Now looking for 'log' or 'l' |
| 1218 | if ((CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &rgszArgs[i][1], -1, L"log", -1)) | 1218 | if ((CSTR_EQUAL == ::CompareStringOrdinal(&rgszArgs[i][1], -1, L"log", -1, TRUE)) |
| 1219 | || (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &rgszArgs[i][1], -1, L"l", -1))) | 1219 | || (CSTR_EQUAL == ::CompareStringOrdinal(&rgszArgs[i][1], -1, L"l", -1, TRUE))) |
| 1220 | { | 1220 | { |
| 1221 | ExitFunction1(hr = S_FALSE); | 1221 | ExitFunction1(hr = S_FALSE); |
| 1222 | } | 1222 | } |
| @@ -1360,13 +1360,13 @@ extern "C" HRESULT CoreParseCommandLine( | |||
| 1360 | 1360 | ||
| 1361 | if (argv[i][0] == L'-' || argv[i][0] == L'/') | 1361 | if (argv[i][0] == L'-' || argv[i][0] == L'/') |
| 1362 | { | 1362 | { |
| 1363 | if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, L"l", -1) || | 1363 | if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, L"l", -1, TRUE) || |
| 1364 | CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, L"log", -1) || | 1364 | CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, L"log", -1, TRUE) || |
| 1365 | CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, L"xlog", -1)) | 1365 | CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, L"xlog", -1, TRUE)) |
| 1366 | { | 1366 | { |
| 1367 | pInternalCommand->dwLoggingAttributes &= ~BURN_LOGGING_ATTRIBUTE_APPEND; | 1367 | pInternalCommand->dwLoggingAttributes &= ~BURN_LOGGING_ATTRIBUTE_APPEND; |
| 1368 | 1368 | ||
| 1369 | if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], 1, L"x", 1)) | 1369 | if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], 1, L"x", 1, TRUE)) |
| 1370 | { | 1370 | { |
| 1371 | pInternalCommand->dwLoggingAttributes |= BURN_LOGGING_ATTRIBUTE_VERBOSE | BURN_LOGGING_ATTRIBUTE_EXTRADEBUG; | 1371 | pInternalCommand->dwLoggingAttributes |= BURN_LOGGING_ATTRIBUTE_VERBOSE | BURN_LOGGING_ATTRIBUTE_EXTRADEBUG; |
| 1372 | } | 1372 | } |
| @@ -1382,24 +1382,24 @@ extern "C" HRESULT CoreParseCommandLine( | |||
| 1382 | hr = PathExpand(&pInternalCommand->sczLogFile, argv[i], PATH_EXPAND_FULLPATH); | 1382 | hr = PathExpand(&pInternalCommand->sczLogFile, argv[i], PATH_EXPAND_FULLPATH); |
| 1383 | ExitOnFailure(hr, "Failed to copy log file path."); | 1383 | ExitOnFailure(hr, "Failed to copy log file path."); |
| 1384 | } | 1384 | } |
| 1385 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, L"?", -1) || | 1385 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, L"?", -1, TRUE) || |
| 1386 | CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, L"h", -1) || | 1386 | CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, L"h", -1, TRUE) || |
| 1387 | CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, L"help", -1)) | 1387 | CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, L"help", -1, TRUE)) |
| 1388 | { | 1388 | { |
| 1389 | pCommand->action = BOOTSTRAPPER_ACTION_HELP; | 1389 | pCommand->action = BOOTSTRAPPER_ACTION_HELP; |
| 1390 | } | 1390 | } |
| 1391 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, L"q", -1) || | 1391 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, L"q", -1, TRUE) || |
| 1392 | CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, L"quiet", -1) || | 1392 | CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, L"quiet", -1, TRUE) || |
| 1393 | CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, L"s", -1) || | 1393 | CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, L"s", -1, TRUE) || |
| 1394 | CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, L"silent", -1)) | 1394 | CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, L"silent", -1, TRUE)) |
| 1395 | { | 1395 | { |
| 1396 | pCommand->display = BOOTSTRAPPER_DISPLAY_NONE; | 1396 | pCommand->display = BOOTSTRAPPER_DISPLAY_NONE; |
| 1397 | } | 1397 | } |
| 1398 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, L"passive", -1)) | 1398 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, L"passive", -1, TRUE)) |
| 1399 | { | 1399 | { |
| 1400 | pCommand->display = BOOTSTRAPPER_DISPLAY_PASSIVE; | 1400 | pCommand->display = BOOTSTRAPPER_DISPLAY_PASSIVE; |
| 1401 | } | 1401 | } |
| 1402 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, L"layout", -1)) | 1402 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, L"layout", -1, TRUE)) |
| 1403 | { | 1403 | { |
| 1404 | if (BOOTSTRAPPER_ACTION_HELP != pCommand->action) | 1404 | if (BOOTSTRAPPER_ACTION_HELP != pCommand->action) |
| 1405 | { | 1405 | { |
| @@ -1415,47 +1415,47 @@ extern "C" HRESULT CoreParseCommandLine( | |||
| 1415 | ExitOnFailure(hr, "Failed to copy path for layout directory."); | 1415 | ExitOnFailure(hr, "Failed to copy path for layout directory."); |
| 1416 | } | 1416 | } |
| 1417 | } | 1417 | } |
| 1418 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, L"unsafeuninstall", -1)) | 1418 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, L"unsafeuninstall", -1, TRUE)) |
| 1419 | { | 1419 | { |
| 1420 | if (BOOTSTRAPPER_ACTION_HELP != pCommand->action) | 1420 | if (BOOTSTRAPPER_ACTION_HELP != pCommand->action) |
| 1421 | { | 1421 | { |
| 1422 | pCommand->action = BOOTSTRAPPER_ACTION_UNSAFE_UNINSTALL; | 1422 | pCommand->action = BOOTSTRAPPER_ACTION_UNSAFE_UNINSTALL; |
| 1423 | } | 1423 | } |
| 1424 | } | 1424 | } |
| 1425 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, L"uninstall", -1)) | 1425 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, L"uninstall", -1, TRUE)) |
| 1426 | { | 1426 | { |
| 1427 | if (BOOTSTRAPPER_ACTION_HELP != pCommand->action) | 1427 | if (BOOTSTRAPPER_ACTION_HELP != pCommand->action) |
| 1428 | { | 1428 | { |
| 1429 | pCommand->action = BOOTSTRAPPER_ACTION_UNINSTALL; | 1429 | pCommand->action = BOOTSTRAPPER_ACTION_UNINSTALL; |
| 1430 | } | 1430 | } |
| 1431 | } | 1431 | } |
| 1432 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, L"repair", -1)) | 1432 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, L"repair", -1, TRUE)) |
| 1433 | { | 1433 | { |
| 1434 | if (BOOTSTRAPPER_ACTION_HELP != pCommand->action) | 1434 | if (BOOTSTRAPPER_ACTION_HELP != pCommand->action) |
| 1435 | { | 1435 | { |
| 1436 | pCommand->action = BOOTSTRAPPER_ACTION_REPAIR; | 1436 | pCommand->action = BOOTSTRAPPER_ACTION_REPAIR; |
| 1437 | } | 1437 | } |
| 1438 | } | 1438 | } |
| 1439 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, L"modify", -1)) | 1439 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, L"modify", -1, TRUE)) |
| 1440 | { | 1440 | { |
| 1441 | if (BOOTSTRAPPER_ACTION_HELP != pCommand->action) | 1441 | if (BOOTSTRAPPER_ACTION_HELP != pCommand->action) |
| 1442 | { | 1442 | { |
| 1443 | pCommand->action = BOOTSTRAPPER_ACTION_MODIFY; | 1443 | pCommand->action = BOOTSTRAPPER_ACTION_MODIFY; |
| 1444 | } | 1444 | } |
| 1445 | } | 1445 | } |
| 1446 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, L"package", -1) || | 1446 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, L"package", -1, TRUE) || |
| 1447 | CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, L"update", -1)) | 1447 | CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, L"update", -1, TRUE)) |
| 1448 | { | 1448 | { |
| 1449 | if (BOOTSTRAPPER_ACTION_UNKNOWN == pCommand->action) | 1449 | if (BOOTSTRAPPER_ACTION_UNKNOWN == pCommand->action) |
| 1450 | { | 1450 | { |
| 1451 | pCommand->action = BOOTSTRAPPER_ACTION_INSTALL; | 1451 | pCommand->action = BOOTSTRAPPER_ACTION_INSTALL; |
| 1452 | } | 1452 | } |
| 1453 | } | 1453 | } |
| 1454 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, L"noaupause", -1)) | 1454 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, L"noaupause", -1, TRUE)) |
| 1455 | { | 1455 | { |
| 1456 | pInternalCommand->automaticUpdates = BURN_AU_PAUSE_ACTION_NONE; | 1456 | pInternalCommand->automaticUpdates = BURN_AU_PAUSE_ACTION_NONE; |
| 1457 | } | 1457 | } |
| 1458 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, L"keepaupaused", -1)) | 1458 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, L"keepaupaused", -1, TRUE)) |
| 1459 | { | 1459 | { |
| 1460 | // Switch /noaupause takes precedence. | 1460 | // Switch /noaupause takes precedence. |
| 1461 | if (BURN_AU_PAUSE_ACTION_NONE != pInternalCommand->automaticUpdates) | 1461 | if (BURN_AU_PAUSE_ACTION_NONE != pInternalCommand->automaticUpdates) |
| @@ -1463,11 +1463,11 @@ extern "C" HRESULT CoreParseCommandLine( | |||
| 1463 | pInternalCommand->automaticUpdates = BURN_AU_PAUSE_ACTION_IFELEVATED_NORESUME; | 1463 | pInternalCommand->automaticUpdates = BURN_AU_PAUSE_ACTION_IFELEVATED_NORESUME; |
| 1464 | } | 1464 | } |
| 1465 | } | 1465 | } |
| 1466 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, L"disablesystemrestore", -1)) | 1466 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, L"disablesystemrestore", -1, TRUE)) |
| 1467 | { | 1467 | { |
| 1468 | pInternalCommand->fDisableSystemRestore = TRUE; | 1468 | pInternalCommand->fDisableSystemRestore = TRUE; |
| 1469 | } | 1469 | } |
| 1470 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, L"originalsource", -1)) | 1470 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, L"originalsource", -1, TRUE)) |
| 1471 | { | 1471 | { |
| 1472 | if (i + 1 >= argc) | 1472 | if (i + 1 >= argc) |
| 1473 | { | 1473 | { |
| @@ -1479,7 +1479,7 @@ extern "C" HRESULT CoreParseCommandLine( | |||
| 1479 | hr = PathExpand(&pInternalCommand->sczOriginalSource, argv[i], PATH_EXPAND_FULLPATH); | 1479 | hr = PathExpand(&pInternalCommand->sczOriginalSource, argv[i], PATH_EXPAND_FULLPATH); |
| 1480 | ExitOnFailure(hr, "Failed to copy last used source."); | 1480 | ExitOnFailure(hr, "Failed to copy last used source."); |
| 1481 | } | 1481 | } |
| 1482 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, BURN_COMMANDLINE_SWITCH_PARENT, -1)) | 1482 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, BURN_COMMANDLINE_SWITCH_PARENT, -1, TRUE)) |
| 1483 | { | 1483 | { |
| 1484 | if (i + 1 >= argc) | 1484 | if (i + 1 >= argc) |
| 1485 | { | 1485 | { |
| @@ -1492,12 +1492,12 @@ extern "C" HRESULT CoreParseCommandLine( | |||
| 1492 | hr = StrAllocString(&pInternalCommand->sczActiveParent, argv[i], 0); | 1492 | hr = StrAllocString(&pInternalCommand->sczActiveParent, argv[i], 0); |
| 1493 | ExitOnFailure(hr, "Failed to copy parent."); | 1493 | ExitOnFailure(hr, "Failed to copy parent."); |
| 1494 | } | 1494 | } |
| 1495 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, BURN_COMMANDLINE_SWITCH_PARENT_NONE, -1)) | 1495 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, BURN_COMMANDLINE_SWITCH_PARENT_NONE, -1, TRUE)) |
| 1496 | { | 1496 | { |
| 1497 | hr = StrAllocString(&pInternalCommand->sczActiveParent, L"", 0); | 1497 | hr = StrAllocString(&pInternalCommand->sczActiveParent, L"", 0); |
| 1498 | ExitOnFailure(hr, "Failed to initialize parent to none."); | 1498 | ExitOnFailure(hr, "Failed to initialize parent to none."); |
| 1499 | } | 1499 | } |
| 1500 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, BURN_COMMANDLINE_SWITCH_LOG_APPEND, -1)) | 1500 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, BURN_COMMANDLINE_SWITCH_LOG_APPEND, -1, TRUE)) |
| 1501 | { | 1501 | { |
| 1502 | if (i + 1 >= argc) | 1502 | if (i + 1 >= argc) |
| 1503 | { | 1503 | { |
| @@ -1512,7 +1512,7 @@ extern "C" HRESULT CoreParseCommandLine( | |||
| 1512 | 1512 | ||
| 1513 | pInternalCommand->dwLoggingAttributes |= BURN_LOGGING_ATTRIBUTE_APPEND; | 1513 | pInternalCommand->dwLoggingAttributes |= BURN_LOGGING_ATTRIBUTE_APPEND; |
| 1514 | } | 1514 | } |
| 1515 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], lstrlenW(BURN_COMMANDLINE_SWITCH_LOG_MODE), BURN_COMMANDLINE_SWITCH_LOG_MODE, -1)) | 1515 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], lstrlenW(BURN_COMMANDLINE_SWITCH_LOG_MODE), BURN_COMMANDLINE_SWITCH_LOG_MODE, -1, TRUE)) |
| 1516 | { | 1516 | { |
| 1517 | // Get a pointer to the next character after the switch. | 1517 | // Get a pointer to the next character after the switch. |
| 1518 | LPCWSTR wzParam = &argv[i][2 + lstrlenW(BURN_COMMANDLINE_SWITCH_LOG_MODE)]; | 1518 | LPCWSTR wzParam = &argv[i][2 + lstrlenW(BURN_COMMANDLINE_SWITCH_LOG_MODE)]; |
| @@ -1541,7 +1541,7 @@ extern "C" HRESULT CoreParseCommandLine( | |||
| 1541 | } | 1541 | } |
| 1542 | } | 1542 | } |
| 1543 | } | 1543 | } |
| 1544 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, BURN_COMMANDLINE_SWITCH_ELEVATED, -1)) | 1544 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, BURN_COMMANDLINE_SWITCH_ELEVATED, -1, TRUE)) |
| 1545 | { | 1545 | { |
| 1546 | if (i + 3 >= argc) | 1546 | if (i + 3 >= argc) |
| 1547 | { | 1547 | { |
| @@ -1579,7 +1579,7 @@ extern "C" HRESULT CoreParseCommandLine( | |||
| 1579 | 1579 | ||
| 1580 | i += 2; | 1580 | i += 2; |
| 1581 | } | 1581 | } |
| 1582 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], lstrlenW(BURN_COMMANDLINE_SWITCH_SYSTEM_COMPONENT), BURN_COMMANDLINE_SWITCH_SYSTEM_COMPONENT, lstrlenW(BURN_COMMANDLINE_SWITCH_SYSTEM_COMPONENT))) | 1582 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], lstrlenW(BURN_COMMANDLINE_SWITCH_SYSTEM_COMPONENT), BURN_COMMANDLINE_SWITCH_SYSTEM_COMPONENT, lstrlenW(BURN_COMMANDLINE_SWITCH_SYSTEM_COMPONENT), TRUE)) |
| 1583 | { | 1583 | { |
| 1584 | // Get a pointer to the next character after the switch. | 1584 | // Get a pointer to the next character after the switch. |
| 1585 | LPCWSTR wzParam = &argv[i][1 + lstrlenW(BURN_COMMANDLINE_SWITCH_SYSTEM_COMPONENT)]; | 1585 | LPCWSTR wzParam = &argv[i][1 + lstrlenW(BURN_COMMANDLINE_SWITCH_SYSTEM_COMPONENT)]; |
| @@ -1602,7 +1602,7 @@ extern "C" HRESULT CoreParseCommandLine( | |||
| 1602 | pInternalCommand->fArpSystemComponent = TRUE; | 1602 | pInternalCommand->fArpSystemComponent = TRUE; |
| 1603 | } | 1603 | } |
| 1604 | } | 1604 | } |
| 1605 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, BURN_COMMANDLINE_SWITCH_EMBEDDED, -1)) | 1605 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, BURN_COMMANDLINE_SWITCH_EMBEDDED, -1, TRUE)) |
| 1606 | { | 1606 | { |
| 1607 | if (i + 3 >= argc) | 1607 | if (i + 3 >= argc) |
| 1608 | { | 1608 | { |
| @@ -1633,59 +1633,59 @@ extern "C" HRESULT CoreParseCommandLine( | |||
| 1633 | 1633 | ||
| 1634 | i += 2; | 1634 | i += 2; |
| 1635 | } | 1635 | } |
| 1636 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, BURN_COMMANDLINE_SWITCH_RELATED_DETECT, -1)) | 1636 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, BURN_COMMANDLINE_SWITCH_RELATED_DETECT, -1, TRUE)) |
| 1637 | { | 1637 | { |
| 1638 | pCommand->relationType = BOOTSTRAPPER_RELATION_DETECT; | 1638 | pCommand->relationType = BOOTSTRAPPER_RELATION_DETECT; |
| 1639 | 1639 | ||
| 1640 | LogId(REPORT_STANDARD, MSG_BURN_RUN_BY_RELATED_BUNDLE, LoggingRelationTypeToString(pCommand->relationType)); | 1640 | LogId(REPORT_STANDARD, MSG_BURN_RUN_BY_RELATED_BUNDLE, LoggingRelationTypeToString(pCommand->relationType)); |
| 1641 | } | 1641 | } |
| 1642 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, BURN_COMMANDLINE_SWITCH_RELATED_UPGRADE, -1)) | 1642 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, BURN_COMMANDLINE_SWITCH_RELATED_UPGRADE, -1, TRUE)) |
| 1643 | { | 1643 | { |
| 1644 | pCommand->relationType = BOOTSTRAPPER_RELATION_UPGRADE; | 1644 | pCommand->relationType = BOOTSTRAPPER_RELATION_UPGRADE; |
| 1645 | 1645 | ||
| 1646 | LogId(REPORT_STANDARD, MSG_BURN_RUN_BY_RELATED_BUNDLE, LoggingRelationTypeToString(pCommand->relationType)); | 1646 | LogId(REPORT_STANDARD, MSG_BURN_RUN_BY_RELATED_BUNDLE, LoggingRelationTypeToString(pCommand->relationType)); |
| 1647 | } | 1647 | } |
| 1648 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, BURN_COMMANDLINE_SWITCH_RELATED_ADDON, -1)) | 1648 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, BURN_COMMANDLINE_SWITCH_RELATED_ADDON, -1, TRUE)) |
| 1649 | { | 1649 | { |
| 1650 | pCommand->relationType = BOOTSTRAPPER_RELATION_ADDON; | 1650 | pCommand->relationType = BOOTSTRAPPER_RELATION_ADDON; |
| 1651 | 1651 | ||
| 1652 | LogId(REPORT_STANDARD, MSG_BURN_RUN_BY_RELATED_BUNDLE, LoggingRelationTypeToString(pCommand->relationType)); | 1652 | LogId(REPORT_STANDARD, MSG_BURN_RUN_BY_RELATED_BUNDLE, LoggingRelationTypeToString(pCommand->relationType)); |
| 1653 | } | 1653 | } |
| 1654 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, BURN_COMMANDLINE_SWITCH_RELATED_DEPENDENT_ADDON, -1)) | 1654 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, BURN_COMMANDLINE_SWITCH_RELATED_DEPENDENT_ADDON, -1, TRUE)) |
| 1655 | { | 1655 | { |
| 1656 | pCommand->relationType = BOOTSTRAPPER_RELATION_DEPENDENT_ADDON; | 1656 | pCommand->relationType = BOOTSTRAPPER_RELATION_DEPENDENT_ADDON; |
| 1657 | 1657 | ||
| 1658 | LogId(REPORT_STANDARD, MSG_BURN_RUN_BY_RELATED_BUNDLE, LoggingRelationTypeToString(pCommand->relationType)); | 1658 | LogId(REPORT_STANDARD, MSG_BURN_RUN_BY_RELATED_BUNDLE, LoggingRelationTypeToString(pCommand->relationType)); |
| 1659 | } | 1659 | } |
| 1660 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, BURN_COMMANDLINE_SWITCH_RELATED_PATCH, -1)) | 1660 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, BURN_COMMANDLINE_SWITCH_RELATED_PATCH, -1, TRUE)) |
| 1661 | { | 1661 | { |
| 1662 | pCommand->relationType = BOOTSTRAPPER_RELATION_PATCH; | 1662 | pCommand->relationType = BOOTSTRAPPER_RELATION_PATCH; |
| 1663 | 1663 | ||
| 1664 | LogId(REPORT_STANDARD, MSG_BURN_RUN_BY_RELATED_BUNDLE, LoggingRelationTypeToString(pCommand->relationType)); | 1664 | LogId(REPORT_STANDARD, MSG_BURN_RUN_BY_RELATED_BUNDLE, LoggingRelationTypeToString(pCommand->relationType)); |
| 1665 | } | 1665 | } |
| 1666 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, BURN_COMMANDLINE_SWITCH_RELATED_DEPENDENT_PATCH, -1)) | 1666 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, BURN_COMMANDLINE_SWITCH_RELATED_DEPENDENT_PATCH, -1, TRUE)) |
| 1667 | { | 1667 | { |
| 1668 | pCommand->relationType = BOOTSTRAPPER_RELATION_DEPENDENT_PATCH; | 1668 | pCommand->relationType = BOOTSTRAPPER_RELATION_DEPENDENT_PATCH; |
| 1669 | 1669 | ||
| 1670 | LogId(REPORT_STANDARD, MSG_BURN_RUN_BY_RELATED_BUNDLE, LoggingRelationTypeToString(pCommand->relationType)); | 1670 | LogId(REPORT_STANDARD, MSG_BURN_RUN_BY_RELATED_BUNDLE, LoggingRelationTypeToString(pCommand->relationType)); |
| 1671 | } | 1671 | } |
| 1672 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, BURN_COMMANDLINE_SWITCH_RELATED_UPDATE, -1)) | 1672 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, BURN_COMMANDLINE_SWITCH_RELATED_UPDATE, -1, TRUE)) |
| 1673 | { | 1673 | { |
| 1674 | pCommand->relationType = BOOTSTRAPPER_RELATION_UPDATE; | 1674 | pCommand->relationType = BOOTSTRAPPER_RELATION_UPDATE; |
| 1675 | 1675 | ||
| 1676 | LogId(REPORT_STANDARD, MSG_BURN_RUN_BY_RELATED_BUNDLE, LoggingRelationTypeToString(pCommand->relationType)); | 1676 | LogId(REPORT_STANDARD, MSG_BURN_RUN_BY_RELATED_BUNDLE, LoggingRelationTypeToString(pCommand->relationType)); |
| 1677 | } | 1677 | } |
| 1678 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, BURN_COMMANDLINE_SWITCH_RELATED_CHAIN_PACKAGE, -1)) | 1678 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, BURN_COMMANDLINE_SWITCH_RELATED_CHAIN_PACKAGE, -1, TRUE)) |
| 1679 | { | 1679 | { |
| 1680 | pCommand->relationType = BOOTSTRAPPER_RELATION_CHAIN_PACKAGE; | 1680 | pCommand->relationType = BOOTSTRAPPER_RELATION_CHAIN_PACKAGE; |
| 1681 | 1681 | ||
| 1682 | LogId(REPORT_STANDARD, MSG_BURN_RUN_BY_RELATED_BUNDLE, LoggingRelationTypeToString(pCommand->relationType)); | 1682 | LogId(REPORT_STANDARD, MSG_BURN_RUN_BY_RELATED_BUNDLE, LoggingRelationTypeToString(pCommand->relationType)); |
| 1683 | } | 1683 | } |
| 1684 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, BURN_COMMANDLINE_SWITCH_PASSTHROUGH, -1)) | 1684 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, BURN_COMMANDLINE_SWITCH_PASSTHROUGH, -1, TRUE)) |
| 1685 | { | 1685 | { |
| 1686 | pCommand->fPassthrough = TRUE; | 1686 | pCommand->fPassthrough = TRUE; |
| 1687 | } | 1687 | } |
| 1688 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, BURN_COMMANDLINE_SWITCH_RUNONCE, -1)) | 1688 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, BURN_COMMANDLINE_SWITCH_RUNONCE, -1, TRUE)) |
| 1689 | { | 1689 | { |
| 1690 | switch (pInternalCommand->mode) | 1690 | switch (pInternalCommand->mode) |
| 1691 | { | 1691 | { |
| @@ -1698,7 +1698,7 @@ extern "C" HRESULT CoreParseCommandLine( | |||
| 1698 | TraceLog(E_INVALIDARG, "Multiple mode command-line switches were provided."); | 1698 | TraceLog(E_INVALIDARG, "Multiple mode command-line switches were provided."); |
| 1699 | } | 1699 | } |
| 1700 | } | 1700 | } |
| 1701 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], lstrlenW(BURN_COMMANDLINE_SWITCH_IGNOREDEPENDENCIES), BURN_COMMANDLINE_SWITCH_IGNOREDEPENDENCIES, lstrlenW(BURN_COMMANDLINE_SWITCH_IGNOREDEPENDENCIES))) | 1701 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], lstrlenW(BURN_COMMANDLINE_SWITCH_IGNOREDEPENDENCIES), BURN_COMMANDLINE_SWITCH_IGNOREDEPENDENCIES, lstrlenW(BURN_COMMANDLINE_SWITCH_IGNOREDEPENDENCIES), TRUE)) |
| 1702 | { | 1702 | { |
| 1703 | // Get a pointer to the next character after the switch. | 1703 | // Get a pointer to the next character after the switch. |
| 1704 | LPCWSTR wzParam = &argv[i][1 + lstrlenW(BURN_COMMANDLINE_SWITCH_IGNOREDEPENDENCIES)]; | 1704 | LPCWSTR wzParam = &argv[i][1 + lstrlenW(BURN_COMMANDLINE_SWITCH_IGNOREDEPENDENCIES)]; |
| @@ -1713,7 +1713,7 @@ extern "C" HRESULT CoreParseCommandLine( | |||
| 1713 | ExitOnFailure(hr, "Failed to allocate the list of dependencies to ignore."); | 1713 | ExitOnFailure(hr, "Failed to allocate the list of dependencies to ignore."); |
| 1714 | } | 1714 | } |
| 1715 | } | 1715 | } |
| 1716 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], lstrlenW(BURN_COMMANDLINE_SWITCH_ANCESTORS), BURN_COMMANDLINE_SWITCH_ANCESTORS, lstrlenW(BURN_COMMANDLINE_SWITCH_ANCESTORS))) | 1716 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], lstrlenW(BURN_COMMANDLINE_SWITCH_ANCESTORS), BURN_COMMANDLINE_SWITCH_ANCESTORS, lstrlenW(BURN_COMMANDLINE_SWITCH_ANCESTORS), TRUE)) |
| 1717 | { | 1717 | { |
| 1718 | // Get a pointer to the next character after the switch. | 1718 | // Get a pointer to the next character after the switch. |
| 1719 | LPCWSTR wzParam = &argv[i][1 + lstrlenW(BURN_COMMANDLINE_SWITCH_ANCESTORS)]; | 1719 | LPCWSTR wzParam = &argv[i][1 + lstrlenW(BURN_COMMANDLINE_SWITCH_ANCESTORS)]; |
| @@ -1728,7 +1728,7 @@ extern "C" HRESULT CoreParseCommandLine( | |||
| 1728 | ExitOnFailure(hr, "Failed to allocate the list of ancestors."); | 1728 | ExitOnFailure(hr, "Failed to allocate the list of ancestors."); |
| 1729 | } | 1729 | } |
| 1730 | } | 1730 | } |
| 1731 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], lstrlenW(BURN_COMMANDLINE_SWITCH_WORKING_DIRECTORY), BURN_COMMANDLINE_SWITCH_WORKING_DIRECTORY, lstrlenW(BURN_COMMANDLINE_SWITCH_WORKING_DIRECTORY))) | 1731 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], lstrlenW(BURN_COMMANDLINE_SWITCH_WORKING_DIRECTORY), BURN_COMMANDLINE_SWITCH_WORKING_DIRECTORY, lstrlenW(BURN_COMMANDLINE_SWITCH_WORKING_DIRECTORY), TRUE)) |
| 1732 | { | 1732 | { |
| 1733 | // Get a pointer to the next character after the switch. | 1733 | // Get a pointer to the next character after the switch. |
| 1734 | LPCWSTR wzParam = &argv[i][1 + lstrlenW(BURN_COMMANDLINE_SWITCH_WORKING_DIRECTORY)]; | 1734 | LPCWSTR wzParam = &argv[i][1 + lstrlenW(BURN_COMMANDLINE_SWITCH_WORKING_DIRECTORY)]; |
| @@ -1743,7 +1743,7 @@ extern "C" HRESULT CoreParseCommandLine( | |||
| 1743 | ExitOnFailure(hr, "Failed to store the custom working directory."); | 1743 | ExitOnFailure(hr, "Failed to store the custom working directory."); |
| 1744 | } | 1744 | } |
| 1745 | } | 1745 | } |
| 1746 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], lstrlenW(BURN_COMMANDLINE_SWITCH_FILEHANDLE_ATTACHED), BURN_COMMANDLINE_SWITCH_FILEHANDLE_ATTACHED, lstrlenW(BURN_COMMANDLINE_SWITCH_FILEHANDLE_ATTACHED))) | 1746 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], lstrlenW(BURN_COMMANDLINE_SWITCH_FILEHANDLE_ATTACHED), BURN_COMMANDLINE_SWITCH_FILEHANDLE_ATTACHED, lstrlenW(BURN_COMMANDLINE_SWITCH_FILEHANDLE_ATTACHED), TRUE)) |
| 1747 | { | 1747 | { |
| 1748 | LPCWSTR wzParam = &argv[i][2 + lstrlenW(BURN_COMMANDLINE_SWITCH_FILEHANDLE_ATTACHED)]; | 1748 | LPCWSTR wzParam = &argv[i][2 + lstrlenW(BURN_COMMANDLINE_SWITCH_FILEHANDLE_ATTACHED)]; |
| 1749 | if (L'=' != wzParam[-1] || L'\0' == wzParam[0]) | 1749 | if (L'=' != wzParam[-1] || L'\0' == wzParam[0]) |
| @@ -1765,7 +1765,7 @@ extern "C" HRESULT CoreParseCommandLine( | |||
| 1765 | } | 1765 | } |
| 1766 | } | 1766 | } |
| 1767 | } | 1767 | } |
| 1768 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], lstrlenW(BURN_COMMANDLINE_SWITCH_FILEHANDLE_SELF), BURN_COMMANDLINE_SWITCH_FILEHANDLE_SELF, lstrlenW(BURN_COMMANDLINE_SWITCH_FILEHANDLE_SELF))) | 1768 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], lstrlenW(BURN_COMMANDLINE_SWITCH_FILEHANDLE_SELF), BURN_COMMANDLINE_SWITCH_FILEHANDLE_SELF, lstrlenW(BURN_COMMANDLINE_SWITCH_FILEHANDLE_SELF), TRUE)) |
| 1769 | { | 1769 | { |
| 1770 | LPCWSTR wzParam = &argv[i][2 + lstrlenW(BURN_COMMANDLINE_SWITCH_FILEHANDLE_SELF)]; | 1770 | LPCWSTR wzParam = &argv[i][2 + lstrlenW(BURN_COMMANDLINE_SWITCH_FILEHANDLE_SELF)]; |
| 1771 | if (L'=' != wzParam[-1] || L'\0' == wzParam[0]) | 1771 | if (L'=' != wzParam[-1] || L'\0' == wzParam[0]) |
| @@ -1787,7 +1787,7 @@ extern "C" HRESULT CoreParseCommandLine( | |||
| 1787 | } | 1787 | } |
| 1788 | } | 1788 | } |
| 1789 | } | 1789 | } |
| 1790 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], lstrlenW(BURN_COMMANDLINE_SWITCH_SPLASH_SCREEN), BURN_COMMANDLINE_SWITCH_SPLASH_SCREEN, lstrlenW(BURN_COMMANDLINE_SWITCH_SPLASH_SCREEN))) | 1790 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], lstrlenW(BURN_COMMANDLINE_SWITCH_SPLASH_SCREEN), BURN_COMMANDLINE_SWITCH_SPLASH_SCREEN, lstrlenW(BURN_COMMANDLINE_SWITCH_SPLASH_SCREEN), TRUE)) |
| 1791 | { | 1791 | { |
| 1792 | LPCWSTR wzParam = &argv[i][2 + lstrlenW(BURN_COMMANDLINE_SWITCH_SPLASH_SCREEN)]; | 1792 | LPCWSTR wzParam = &argv[i][2 + lstrlenW(BURN_COMMANDLINE_SWITCH_SPLASH_SCREEN)]; |
| 1793 | if (L'=' != wzParam[-1] || L'\0' == wzParam[0]) | 1793 | if (L'=' != wzParam[-1] || L'\0' == wzParam[0]) |
| @@ -1809,7 +1809,7 @@ extern "C" HRESULT CoreParseCommandLine( | |||
| 1809 | } | 1809 | } |
| 1810 | } | 1810 | } |
| 1811 | } | 1811 | } |
| 1812 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], lstrlenW(BURN_COMMANDLINE_SWITCH_PREFIX), BURN_COMMANDLINE_SWITCH_PREFIX, lstrlenW(BURN_COMMANDLINE_SWITCH_PREFIX))) | 1812 | else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], lstrlenW(BURN_COMMANDLINE_SWITCH_PREFIX), BURN_COMMANDLINE_SWITCH_PREFIX, lstrlenW(BURN_COMMANDLINE_SWITCH_PREFIX), TRUE)) |
| 1813 | { | 1813 | { |
| 1814 | // Skip (but log) any other private burn switches we don't recognize, so that | 1814 | // Skip (but log) any other private burn switches we don't recognize, so that |
| 1815 | // adding future private variables doesn't break old bundles | 1815 | // adding future private variables doesn't break old bundles |
