]> git.ozlabs.org Git - petitboot/blobdiff - discover/grub2/script.c
discover/grub2: Populate option ids
[petitboot] / discover / grub2 / script.c
index c0d6e1a4e4a31affa291713b0351f816ac16afed..67b4b7801f8717d51df2cdbfc68edab97988f082 100644 (file)
@@ -277,10 +277,12 @@ int statement_if_execute(struct grub2_script *script,
        bool executed;
        int rc;
 
-       conditional = st->conditional;
-
-       rc = statement_conditional_execute(script,
-                       conditional, &executed);
+       list_for_each_entry(&st->conditionals->list, conditional, list) {
+               rc = statement_conditional_execute(script,
+                               conditional, &executed);
+               if (executed)
+                       break;
+       }
 
        if (!executed && st->else_case)
                rc = statements_execute(script, st->else_case);
@@ -302,6 +304,9 @@ int statement_menuentry_execute(struct grub2_script *script,
        } else {
                opt->option->name = talloc_strdup(opt, "(unknown)");
        }
+       opt->option->id = talloc_asprintf(opt->option, "%s#%s",
+                       script->ctx->device->device->id,
+                       opt->option->name);
 
        script->opt = opt;