X-Git-Url: https://code.delx.au/refind/blobdiff_plain/315c06865c0b4e3dfceec2107e6e12713813ea8a..39f21d099c9fb310bae28b54dc68d266ed610ed7:/refind/config.c diff --git a/refind/config.c b/refind/config.c index 3831e4c..63d0f31 100644 --- a/refind/config.c +++ b/refind/config.c @@ -341,14 +341,24 @@ VOID ReadConfig(CHAR16 *FileName) REFIT_FILE File; CHAR16 **TokenList; CHAR16 *FlagName; + CHAR16 *SelfPath = NULL; UINTN TokenCount, i; // Set a few defaults only if we're loading the default file. if (StriCmp(FileName, CONFIG_FILE_NAME) == 0) { MyFreePool(GlobalConfig.AlsoScan); GlobalConfig.AlsoScan = StrDuplicate(ALSO_SCAN_DIRS); +// MyFreePool(GlobalConfig.DontScanVolumes); +// GlobalConfig.DontScanVolumes = StrDuplicate(L" "); MyFreePool(GlobalConfig.DontScanDirs); - GlobalConfig.DontScanDirs = StrDuplicate(SelfDirPath); + if (SelfVolume->VolName) { + SelfPath = StrDuplicate(SelfVolume->VolName); + } else { + SelfPath = AllocateZeroPool(256 * sizeof(CHAR16)); + SPrint(SelfPath, 255, L"fs%d", SelfVolume->VolNumber); + } // if/else + MergeStrings(&SelfPath, SelfDirPath, L':'); + GlobalConfig.DontScanDirs = SelfPath; MyFreePool(GlobalConfig.DontScanFiles); GlobalConfig.DontScanFiles = StrDuplicate(DONT_SCAN_FILES); } @@ -411,6 +421,15 @@ VOID ReadConfig(CHAR16 *FileName) } else if (StriCmp(TokenList[0], L"also_scan_dirs") == 0) { HandleStrings(TokenList, TokenCount, &(GlobalConfig.AlsoScan)); + } else if ((StriCmp(TokenList[0], L"don't_scan_volumes") == 0) || (StriCmp(TokenList[0], L"dont_scan_volumes") == 0)) { + HandleStrings(TokenList, TokenCount, &(GlobalConfig.AlsoScan)); + // Note: Don't use HandleStrings() because it modifies slashes, which might be present in volume name + MyFreePool(GlobalConfig.DontScanVolumes); + GlobalConfig.DontScanVolumes = NULL; + for (i = 1; i < TokenCount; i++) { + MergeStrings(&GlobalConfig.DontScanVolumes, TokenList[i], L','); + } + } else if ((StriCmp(TokenList[0], L"don't_scan_dirs") == 0) || (StriCmp(TokenList[0], L"dont_scan_dirs") == 0)) { HandleStrings(TokenList, TokenCount, &(GlobalConfig.DontScanDirs)); @@ -718,7 +737,6 @@ 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);