]> git.ozlabs.org Git - petitboot/blobdiff - discover/syslinux-parser.c
discover/pxe-parser: Parse simple iPXE scripts
[petitboot] / discover / syslinux-parser.c
index be7b94aa5d5b2ccb625ebea1fc23212fda8784c2..defafd261494de3fc62910e513bf024f2bde7c05 100644 (file)
@@ -338,11 +338,13 @@ static void syslinux_finalize(struct conf_context *conf)
                        /* '-' can signal do not use global APPEND */
                        if (!strcmp(syslinux_opt->append, "-"))
                                opt->boot_args = talloc_strdup(opt, "");
-                       else
+                       else if (global_append)
                                opt->boot_args = talloc_asprintf(opt, "%s %s",
                                                                 global_append,
                                                                 syslinux_opt->append);
-               } else
+                       else
+                               opt->boot_args = talloc_strdup(opt, syslinux_opt->append);
+               } else if (global_append)
                        opt->boot_args = talloc_strdup(opt, global_append);
 
                if (!opt->boot_args)
@@ -408,6 +410,7 @@ static void syslinux_finalize(struct conf_context *conf)
                conf_strip_str(opt->description);
 
                discover_context_add_boot_option(dc, d_opt);
+               d_opt = NULL;
                continue;
 
 fail:
@@ -454,13 +457,10 @@ static int syslinux_parse(struct discover_context *dc)
        /*
         * set the global defaults
         * by spec 'default' defaults to 'linux' and
-        * 'implicit' defaults to '1', we also just set
-        * and empty string in 'append' to make it easier
-        * in syslinux_finish
+        * 'implicit' defaults to '1'
         */
        conf_set_global_option(conf, "default", "linux");
        conf_set_global_option(conf, "implicit", "1");
-       conf_set_global_option(conf, "append", "");
 
        for (filename = syslinux_conf_files; *filename; filename++) {
                /*