X-Git-Url: https://code.delx.au/refind/blobdiff_plain/e0f6b77e5692ec112bb803202ae27f8c5d55de50..c1935b0f6d9272cfa51e9a6c1e342c252ea41b1f:/refind/config.c diff --git a/refind/config.c b/refind/config.c index 3919127..d52ca9f 100644 --- a/refind/config.c +++ b/refind/config.c @@ -222,7 +222,7 @@ static CHAR16 *ReadLine(REFIT_FILE *File) UINTN ReadTokenLine(IN REFIT_FILE *File, OUT CHAR16 ***TokenList) { BOOLEAN LineFinished, IsQuoted = FALSE; - CHAR16 *Line, *Token, *p; + CHAR16 *Line, *Token, *p, *Temp; UINTN TokenCount = 0; *TokenList = NULL; @@ -251,6 +251,10 @@ UINTN ReadTokenLine(IN REFIT_FILE *File, OUT CHAR16 ***TokenList) while (*p && *p != '"' && ((*p != ' ' && *p != '\t' && *p != '=' && *p != '#' && *p != ',') || IsQuoted)) { if ((*p == '/') && !IsQuoted) // Switch Unix-style to DOS-style directory separators *p = '\\'; + if (*p == '|') { + Temp = StrDuplicate(&p[1]); + StrCpy(p, Temp); + } p++; } // if if (*p == '"') @@ -322,7 +326,10 @@ VOID ReadConfig(VOID) if (EFI_ERROR(Status)) return; - GlobalConfig.DontScan = StrDuplicate(SelfDirPath); + MyFreePool(GlobalConfig.DontScanDirs); + GlobalConfig.DontScanDirs = StrDuplicate(SelfDirPath); + MyFreePool(GlobalConfig.DontScanFiles); + GlobalConfig.DontScanFiles = StrDuplicate(DONT_SCAN_FILES); for (;;) { TokenCount = ReadTokenLine(&File, &TokenList); @@ -370,7 +377,10 @@ VOID ReadConfig(VOID) HandleStrings(TokenList, TokenCount, &(GlobalConfig.AlsoScan)); } else if ((StriCmp(TokenList[0], L"don't_scan_dirs") == 0) || (StriCmp(TokenList[0], L"dont_scan_dirs") == 0)) { - HandleStrings(TokenList, TokenCount, &(GlobalConfig.DontScan)); + HandleStrings(TokenList, TokenCount, &(GlobalConfig.DontScanDirs)); + + } else if ((StriCmp(TokenList[0], L"don't_scan_files") == 0) || (StriCmp(TokenList[0], L"dont_scan_files") == 0)) { + HandleStrings(TokenList, TokenCount, &(GlobalConfig.DontScanFiles)); } else if (StriCmp(TokenList[0], L"scan_driver_dirs") == 0) { HandleStrings(TokenList, TokenCount, &(GlobalConfig.DriverDirs)); @@ -643,7 +653,7 @@ static LOADER_ENTRY * AddStanzaEntries(REFIT_FILE *File, REFIT_VOLUME *Volume, C return(Entry); } // static VOID AddStanzaEntries() -// Read the user-configured loaders file, refind_loaders.conf, and add or delete +// Read the user-configured menu entries from refind.conf and add or delete // entries based on the contents of that file.... VOID ScanUserConfigured(VOID) { @@ -654,6 +664,7 @@ VOID ScanUserConfigured(VOID) CHAR16 *Title = NULL; UINTN TokenCount, size; LOADER_ENTRY *Entry; +// REFIT_MENU_SCREEN *SubScreen; if (FileExists(SelfDir, CONFIG_FILE_NAME)) { Status = ReadFile(SelfDir, CONFIG_FILE_NAME, &File, &size);