]> code.delx.au - refind/blobdiff - refind/config.c
Fixed bug that prevented launching Windows in Secure Boot mode;
[refind] / refind / config.c
index c22b8307e8ffb96f1ad6fee429267f435e73a8bc..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);