Module Name:    src
Committed By:   martin
Date:           Wed Nov 27 17:19:38 UTC 2024

Modified Files:
        src/sys/arch/i386/stand/lib: bootmenu.c

Log Message:
Do not display the boot menu at all if (1) there is no choice and
(2) the timeout value is set to 0.


To generate a diff of this commit:
cvs rdiff -u -r1.19 -r1.20 src/sys/arch/i386/stand/lib/bootmenu.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/i386/stand/lib/bootmenu.c
diff -u src/sys/arch/i386/stand/lib/bootmenu.c:1.19 src/sys/arch/i386/stand/lib/bootmenu.c:1.20
--- src/sys/arch/i386/stand/lib/bootmenu.c:1.19	Sat Nov  9 12:43:52 2024
+++ src/sys/arch/i386/stand/lib/bootmenu.c	Wed Nov 27 17:19:37 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: bootmenu.c,v 1.19 2024/11/09 12:43:52 mlelstv Exp $	*/
+/*	$NetBSD: bootmenu.c,v 1.20 2024/11/27 17:19:37 martin Exp $	*/
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -136,19 +136,30 @@ doboottypemenu(void)
 	int choice;
 	char input[80];
 
-	printf("\n");
-	/* Display menu */
-	if (bootcfg_info.menuformat == MENUFORMAT_LETTER) {
-		for (choice = 0; choice < bootcfg_info.nummenu; choice++)
-			printf("    %c. %s\n", choice + 'A',
-			    bootcfg_info.desc[choice]);
-	} else {
-		/* Can't use %2d format string with libsa */
-		for (choice = 0; choice < bootcfg_info.nummenu; choice++)
-			printf("    %s%d. %s\n",
-			    (choice < 9) ?  " " : "",
-			    choice + 1,
-			    bootcfg_info.desc[choice]);
+	/*
+	 * If we have a single menu entry with empty description and
+	 * timeout = 0 we do not display any menu.
+	 */
+	if ((bootcfg_info.nummenu > 0 &&
+	     bootcfg_info.desc[0] != bootcfg_info.command[0] &&
+	     bootcfg_info.desc[0][0] != 0) || bootcfg_info.timeout > 0) {
+		printf("\n");
+
+		/* Display menu */
+		if (bootcfg_info.menuformat == MENUFORMAT_LETTER) {
+			for (choice = 0; choice < bootcfg_info.nummenu;
+			    choice++)
+				printf("    %c. %s\n", choice + 'A',
+				    bootcfg_info.desc[choice]);
+		} else {
+			/* Can't use %2d format string with libsa */
+			for (choice = 0; choice < bootcfg_info.nummenu;
+			    choice++)
+				printf("    %s%d. %s\n",
+				    (choice < 9) ?  " " : "",
+				    choice + 1,
+				    bootcfg_info.desc[choice]);
+		}
 	}
 	choice = -1;
 	for (;;) {

Reply via email to