*q++ = *p++;
}
*q = 0;
-
+
} else if (File->Encoding == ENCODING_UTF16_LE) {
-
+
CHAR16 *p, *LineStart, *LineEnd;
-
+
p = File->Current16Ptr;
if (p >= File->End16Ptr)
return NULL;
-
+
LineStart = p;
for (; p < File->End16Ptr; p++)
if (*p == 13 || *p == 10)
if (*p != 13 && *p != 10)
break;
File->Current16Ptr = p;
-
+
LineLength = (UINTN)(LineEnd - LineStart) + 1;
Line = AllocatePool(LineLength * sizeof(CHAR16));
if (Line == NULL)
return NULL;
-
+
for (p = LineStart, q = Line; p < LineEnd; )
*q++ = *p++;
*q = 0;
-
+
} else
return NULL; // unsupported encoding
-
+
return Line;
}
}
}
+ } else if ((StriCmp(TokenList[0], L"icons_dir") == 0) && (TokenCount == 2)) {
+ if (GlobalConfig.IconsDir != NULL)
+ FreePool(GlobalConfig.IconsDir);
+ GlobalConfig.IconsDir = StrDuplicate(TokenList[1]);
+
} else if (StriCmp(TokenList[0], L"scanfor") == 0) {
for (i = 0; i < NUM_SCAN_OPTIONS; i++) {
if (i < TokenCount)
else
GlobalConfig.ScanFor[i] = ' ';
}
+
+ } else if (StriCmp(TokenList[0], L"also_scan_dirs") == 0) {
+ if (GlobalConfig.AlsoScan != NULL) {
+ FreePool(GlobalConfig.AlsoScan);
+ GlobalConfig.AlsoScan = NULL;
+ } // if
+ for (i = 1; i < TokenCount; i++)
+ MergeStrings(&GlobalConfig.AlsoScan, TokenList[i], L',');
+
+ } else if (StriCmp(TokenList[0], L"scan_driver_dirs") == 0) {
+ if (GlobalConfig.DriverDirs != NULL) {
+ FreePool(GlobalConfig.DriverDirs);
+ GlobalConfig.DriverDirs = NULL;
+ } // if
+ for (i = 1; i < TokenCount; i++)
+ MergeStrings(&GlobalConfig.DriverDirs, TokenList[i], L',');
+
} else if (StriCmp(TokenList[0], L"showtools") == 0) {
SetMem(GlobalConfig.ShowTools, NUM_TOOLS * sizeof(UINTN), 0);
for (i = 1; (i < TokenCount) && (i < NUM_TOOLS); i++) {
} else if (StriCmp(TokenList[0], L"textonly") == 0) {
GlobalConfig.TextOnly = TRUE;
- } else if ((StriCmp(TokenList[0], L"}") == 0) || (StriCmp(TokenList[0], L"loader") == 0) ||
- (StriCmp(TokenList[0], L"icon") == 0) || (StriCmp(TokenList[0], L"options") == 0)) {
- // Do nothing; handled by ScanUserConfigured()
+ } else if ((StriCmp(TokenList[0], L"resolution") == 0) && (TokenCount == 3)) {
+ GlobalConfig.RequestedScreenWidth = Atoi(TokenList[1]);
+ GlobalConfig.RequestedScreenHeight = Atoi(TokenList[2]);
+
+ } else if (StriCmp(TokenList[0], L"scan_all_linux_kernels") == 0) {
+ GlobalConfig.ScanAllLinux = TRUE;
+
} else if ((StriCmp(TokenList[0], L"max_tags") == 0) && (TokenCount > 1)) {
GlobalConfig.MaxTags = Atoi(TokenList[1]);
}
return;
Volume = SelfVolume;
- // TODO: Figure out how to set volumes (on per-image basis, preferably)
while ((TokenCount = ReadTokenLine(&File, &TokenList)) > 0) {
if ((StriCmp(TokenList[0], L"menuentry") == 0) && (TokenCount > 1)) {