]> code.delx.au - refind/blobdiff - refind/config.c
Fixed bug that prevented launching Windows in Secure Boot mode;
[refind] / refind / config.c
index 258aa06d2e941c628898bf80cb1cec309df17d12..d52ca9f800ca39d84ee038b8cb908dfc29daff63 100644 (file)
@@ -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 == '"')
@@ -325,7 +329,7 @@ VOID ReadConfig(VOID)
     MyFreePool(GlobalConfig.DontScanDirs);
     GlobalConfig.DontScanDirs = StrDuplicate(SelfDirPath);
     MyFreePool(GlobalConfig.DontScanFiles);
-    GlobalConfig.DontScanFiles = DONT_SCAN_FILES;
+    GlobalConfig.DontScanFiles = StrDuplicate(DONT_SCAN_FILES);
 
     for (;;) {
         TokenCount = ReadTokenLine(&File, &TokenList);
@@ -649,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)
 {
@@ -660,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);