summaryrefslogtreecommitdiffstats
path: root/discover/grub2/script.c
diff options
context:
space:
mode:
Diffstat (limited to 'discover/grub2/script.c')
-rw-r--r--discover/grub2/script.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/discover/grub2/script.c b/discover/grub2/script.c
index 5361394..568e250 100644
--- a/discover/grub2/script.c
+++ b/discover/grub2/script.c
@@ -10,6 +10,8 @@
container_of(stmt, struct grub2_statement_simple, st)
#define to_stmt_if(stmt) \
container_of(stmt, struct grub2_statement_if, st)
+#define to_stmt_menuentry(stmt) \
+ container_of(stmt, struct grub2_statement_menuentry, st)
struct env_entry {
const char *name;
@@ -119,6 +121,17 @@ int statement_if_execute(struct grub2_script *script,
return rc;
}
+int statement_menuentry_execute(struct grub2_script *script,
+ struct grub2_statement *statement)
+{
+ struct grub2_statement_menuentry *st = to_stmt_menuentry(statement);
+
+ process_expansions(script, st->argv);
+ statements_execute(script, st->statements);
+
+ return 0;
+}
+
static void init_env(struct grub2_script *script)
{
struct env_entry *env;
OpenPOWER on IntegriCloud