X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;ds=sidebyside;f=discover%2Fgrub2-parser.c;h=63e6542e6f11b6f1a9fe868b5dfb121f230db0bb;hb=a610837ff38f5cc80bcbad465a80ab920e67927d;hp=a2308ee687d9ed99ba9190f6d4f80b527c6f43a8;hpb=70ad7ba01b43404585c76512bffe99ede0c0f55a;p=petitboot diff --git a/discover/grub2-parser.c b/discover/grub2-parser.c index a2308ee..63e6542 100644 --- a/discover/grub2-parser.c +++ b/discover/grub2-parser.c @@ -141,8 +141,6 @@ static void grub2_process_pair(struct conf_context *conf, const char *name, return; if (streq(name, "menuentry")) { - char *sep; - /* complete any existing option... */ if (state->opt) grub2_finish(conf); @@ -151,10 +149,7 @@ static void grub2_process_pair(struct conf_context *conf, const char *name, opt = discover_boot_option_create(conf->dc, conf->dc->device); opt->option->boot_args = talloc_strdup(opt->option, ""); - sep = strchr(value, '\''); - - if (sep) - *sep = 0; + value = strtok(value, "\'{\""); opt->option->id = talloc_asprintf(opt->option, "%s#%s", dev->id, value); @@ -166,7 +161,7 @@ static void grub2_process_pair(struct conf_context *conf, const char *name, return; } - if (streq(name, "linux")) { + if (streq(name, "linux") || streq(name, "linux16")) { char *sep; sep = strchr(value, ' '); @@ -245,6 +240,7 @@ static const char *const grub2_conf_files[] = { static const char *grub2_known_names[] = { "menuentry", "linux", + "linux16", "initrd", "search", NULL