[syslinux:elflink] ldlinux: Use open_config() to open config files

syslinux-bot for Matt Fleming matt.fleming at linux.intel.com
Tue Jul 12 20:03:19 PDT 2011


Commit-ID:  e298faf1adc98fdb5f69debe15569a734d5adfa1
Gitweb:     http://syslinux.zytor.com/commit/e298faf1adc98fdb5f69debe15569a734d5adfa1
Author:     Matt Fleming <matt.fleming at linux.intel.com>
AuthorDate: Mon, 6 Jun 2011 22:45:33 +0100
Committer:  Matt Fleming <matt.fleming at linux.intel.com>
CommitDate: Tue, 7 Jun 2011 13:06:25 +0100

ldlinux: Use open_config() to open config files

Instead of duplicating the logic for finding config files on different
filesystems in both ldlinux/readconfig.c and core/fs/* use the
open_config() wrapper that calls into the fs-specific open_config().

Signed-off-by: Matt Fleming <matt.fleming at linux.intel.com>


---
 com32/elflink/ldlinux/readconfig.c |   37 ++++++++++++-----------------------
 1 files changed, 13 insertions(+), 24 deletions(-)

diff --git a/com32/elflink/ldlinux/readconfig.c b/com32/elflink/ldlinux/readconfig.c
index 8ded92a..7d0dd67 100644
--- a/com32/elflink/ldlinux/readconfig.c
+++ b/com32/elflink/ldlinux/readconfig.c
@@ -11,6 +11,7 @@
  *
  * ----------------------------------------------------------------------- */
 
+#include <fcntl.h>
 #include <stdio.h>
 #include <stdbool.h>
 #include <stdlib.h>
@@ -23,6 +24,7 @@
 #include <syslinux/adv.h>
 #include <syslinux/config.h>
 #include <dprintf.h>
+#include <core.h>
 
 #include "menu.h"
 #include "config.h"
@@ -1138,34 +1140,21 @@ do_include:
 
 static int parse_one_config(const char *filename)
 {
+	const char *mode = "r";
 	FILE *f;
+	int fd;
 
-	/*
-	if (!strcmp(filename, "~"))
-		filename = syslinux_config_file();
-	*/
-
-	f = fopen(filename, "r");
-	if (f)
-		goto config_found;
-
-	/* force to use hard coded config file name */
-	f = fopen("extlinux.conf", "r");
-	if (f)
-		goto config_found;
-
-	f = fopen("isolinux/isolinux.cfg", "r");
-	if (f)
-		goto config_found;
+	if (!filename)
+		fd = open_config();
+	else
+		fd = open(filename, O_RDONLY);
 
-	f = fopen("syslinux.cfg", "r");
-	if (f)
-		goto config_found;
+	if (fd < 0)
+		return fd;
 
-	return -1;
-config_found:
+	f = fdopen(fd, mode);
 	parse_config_file(f);
-	fclose(f);
+
 	return 0;
 }
 
@@ -1214,7 +1203,7 @@ void parse_configs(char **argv)
     current_menu = root_menu;
 
     if (!argv || !*argv) {
-	parse_one_config("~");
+	parse_one_config(NULL);
     } else {
 	while ((filename = *argv++)) {
 		dprintf("Parsing config: %s", filename);



More information about the Syslinux-commits mailing list