MCPcopy Create free account
hub / github.com/CloverHackyColor/CloverBootloader / IsOSValid

Function IsOSValid

rEFIt_UEFI/Platform/Settings.cpp:1410–1457  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1408
1409
1410BOOLEAN IsOSValid(const XString8& MatchOS, const XString8& CurrOS)
1411{
1412 /* example for valid matches are:
1413 10.7, only 10.7 (10.7.1 will be skipped)
1414 10.10.2 only 10.10.2 (10.10.1 or 10.10.5 will be skipped)
1415 10.10.x (or 10.10.X), in this case is valid for all minor version of 10.10 (10.10.(0-9))
1416 */
1417
1418 BOOLEAN ret = FALSE;
1419
1420 if (MatchOS.isEmpty() || CurrOS.isEmpty()) {
1421 return TRUE; //undefined matched corresponds to old behavior
1422 }
1423
1424// osToc = GetStrArraySeparatedByChar(MatchOS, '.');
1425 XString8Array osToc = Split<XString8Array>(MatchOS, "."_XS8).trimEachString();
1426 XString8Array currOStoc = Split<XString8Array>(CurrOS, "."_XS8).trimEachString();
1427
1428 if (osToc.size() == 2) {
1429 if (currOStoc.size() == 2) {
1430 if ( osToc[0] == currOStoc[0] && osToc[1] == currOStoc[1]) {
1431 ret = TRUE;
1432 }
1433 }
1434 } else if (osToc.size() == 3) {
1435 if (currOStoc.size() == 3) {
1436 if ( osToc[0] == currOStoc[0]
1437 && osToc[1] == currOStoc[1]
1438 && osToc[2] == currOStoc[2]) {
1439 ret = TRUE;
1440 } else if ( osToc[0] == currOStoc[0]
1441 && osToc[1] == currOStoc[1]
1442 && osToc[2].equalIC("x") ) {
1443 ret = TRUE;
1444 }
1445 } else if (currOStoc.size() == 2) {
1446 if ( osToc[0] == currOStoc[0]
1447 && osToc[1] == currOStoc[1] ) {
1448 ret = TRUE;
1449 } else if ( osToc[0] == currOStoc[0]
1450 && osToc[1] == currOStoc[1]
1451 && osToc[2].equalIC("x") == 0 ) {
1452 ret = TRUE;
1453 }
1454 }
1455 }
1456 return ret;
1457}
1458
1459UINT8 CheckVolumeType(UINT8 VolumeType, const TagStruct* Prop)
1460{

Callers 1

IsPatchEnabledFunction · 0.85

Calls 4

trimEachStringMethod · 0.80
equalICMethod · 0.80
isEmptyMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected