[syslinux:master] hdt: Merging nomenu & auto mode detection

syslinux-bot for Erwan Velu erwan.velu at free.fr
Sun Feb 6 14:07:20 PST 2011


Commit-ID:  89445853bc2fb08e0dea88a9092616320f3a6191
Gitweb:     http://syslinux.zytor.com/commit/89445853bc2fb08e0dea88a9092616320f3a6191
Author:     Erwan Velu <erwan.velu at free.fr>
AuthorDate: Tue, 15 Dec 2009 10:16:48 +0100
Committer:  Erwan Velu <erwan.velu at free.fr>
CommitDate: Tue, 15 Dec 2009 10:16:48 +0100

hdt: Merging nomenu & auto mode detection

Impact: code cleanup

Let's use a single place to detect all hdt's parameters.


---
 com32/hdt/hdt-common.c |    9 +++++++++
 com32/hdt/hdt-common.h |    6 ++++++
 com32/hdt/hdt.c        |    3 +--
 3 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/com32/hdt/hdt-common.c b/com32/hdt/hdt-common.c
index ec51f10..6457141 100644
--- a/com32/hdt/hdt-common.c
+++ b/com32/hdt/hdt-common.c
@@ -66,6 +66,12 @@ void detect_parameters(const int argc, const char *argv[],
     /* Vesa mode isn't set until we explictly call it */
     vesamode = false;
 
+    /* Automode isn't the default*/
+    automode = false;
+
+    /* Menu mode is the default*/
+    menumode = true;
+
     for (int i = 1; i < argc; i++) {
 	if (!strncmp(argv[i], "quiet", 5)) {
 	    quiet = true;
@@ -102,6 +108,8 @@ void detect_parameters(const int argc, const char *argv[],
 	} else if (!strncmp(argv[i], "novesa", 6)) {
 	    vesamode = false;
 	    max_console_lines = MAX_VESA_CLI_LINES;
+	} else if (!strncmp(argv[i], "nomenu", 6)) {
+	    menumode = false;
 	} else if (!strncmp(argv[i], "auto=", 5)) {
 	    /* The auto= parameter is separated in several argv[]
 	     * as it can contains spaces.
@@ -110,6 +118,7 @@ void detect_parameters(const int argc, const char *argv[],
 	     * i.e auto='show dmi; show pci'
 	     */
 
+	    automode=true;
 	    /* Extracting the first parameter */
 	    strcpy(hardware->auto_label, argv[i] + 6);
 	    strcat(hardware->auto_label, " ");
diff --git a/com32/hdt/hdt-common.h b/com32/hdt/hdt-common.h
index 31e88d6..08c7f4d 100644
--- a/com32/hdt/hdt-common.h
+++ b/com32/hdt/hdt-common.h
@@ -83,6 +83,12 @@ bool quiet;
 /* Defines if we must use the vesa mode */
 bool vesamode;
 
+/* Defines if we must use the menu mode */
+bool menumode;
+
+/* Defines if we are running the auto mode */
+bool automode;
+
 /* Defines the number of lines in the console
  * Default is 20 for a std console */
 extern int max_console_lines;
diff --git a/com32/hdt/hdt.c b/com32/hdt/hdt.c
index 229af54..56848b0 100644
--- a/com32/hdt/hdt.c
+++ b/com32/hdt/hdt.c
@@ -75,8 +75,7 @@ int main(const int argc, const char *argv[])
 
     printf("%s\n", version_string);
 
-    if ((arg = find_argument(argv + 1, "nomenu"))
-	|| (find_argument(argv + 1, "auto")))
+    if (!menumode || automode)
 	start_cli_mode(&hardware);
     else {
 	int return_code = start_menu_mode(&hardware, version_string);



More information about the Syslinux-commits mailing list