From 3e5ab1af245da25633954c5b51c85cc8da0a5036 Mon Sep 17 00:00:00 2001
From: Wolfgang Denk <wd@denx.de>
Date: Tue, 11 Jan 2011 20:56:34 +0100
Subject: [PATCH] Revert "boot cmds: convert to getenv_yesno() with autostart"

This reverts commit 5a442c0addc69d0c4b58e98e5aec1cf07576debb.

This commit changed the behaviour of getenv_yesno() (both the default
behaviour and the documented behaviour for abbreviated arguments)
which resulted in problems in several areas.

Signed-off-by: Wolfgang Denk <wd@denx.de>
---
 common/cmd_fdc.c  | 3 ++-
 common/cmd_fdos.c | 2 +-
 common/cmd_ide.c  | 2 +-
 common/cmd_nand.c | 4 ++--
 common/cmd_net.c  | 2 +-
 common/cmd_scsi.c | 2 +-
 common/cmd_usb.c  | 2 +-
 7 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/common/cmd_fdc.c b/common/cmd_fdc.c
index d373480f791..cdb050c2559 100644
--- a/common/cmd_fdc.c
+++ b/common/cmd_fdc.c
@@ -721,6 +721,7 @@ int do_fdcboot (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	image_header_t *hdr;  /* used for fdc boot */
 	unsigned char boot_drive;
 	int i,nrofblk;
+	char *ep;
 	int rcode = 0;
 #if defined(CONFIG_FIT)
 	const void *fit_hdr = NULL;
@@ -823,7 +824,7 @@ int do_fdcboot (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	load_addr = addr;
 
 	/* Check if we should attempt an auto-start */
-	if (getenv_yesno("autostart")) {
+	if (((ep = getenv("autostart")) != NULL) && (strcmp(ep,"yes") == 0)) {
 		char *local_args[2];
 
 		local_args[0] = argv[0];
diff --git a/common/cmd_fdos.c b/common/cmd_fdos.c
index 238abdde461..2af4ca0efeb 100644
--- a/common/cmd_fdos.c
+++ b/common/cmd_fdos.c
@@ -99,7 +99,7 @@ int do_fdosboot(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	   size, load_addr);
 
     /* Check if we should attempt an auto-start */
-    if (getenv_yesno("autostart")) {
+    if (((ep = getenv("autostart")) != NULL) && (strcmp(ep,"yes") == 0)) {
 	char *local_args[2];
 	local_args[0] = argv[0];
 	local_args[1] = NULL;
diff --git a/common/cmd_ide.c b/common/cmd_ide.c
index f6278812a05..df7bdf56ec4 100644
--- a/common/cmd_ide.c
+++ b/common/cmd_ide.c
@@ -496,7 +496,7 @@ int do_diskboot (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	load_addr = addr;
 
 	/* Check if we should attempt an auto-start */
-	if (getenv_yesno("autostart")) {
+	if (((ep = getenv("autostart")) != NULL) && (strcmp(ep,"yes") == 0)) {
 		char *local_args[2];
 
 		local_args[0] = argv[0];
diff --git a/common/cmd_nand.c b/common/cmd_nand.c
index c547a683f40..6783645356f 100644
--- a/common/cmd_nand.c
+++ b/common/cmd_nand.c
@@ -711,7 +711,7 @@ static int nand_load_image(cmd_tbl_t *cmdtp, nand_info_t *nand,
 			   ulong offset, ulong addr, char *cmd)
 {
 	int r;
-	char *s;
+	char *ep, *s;
 	size_t cnt;
 	image_header_t *hdr;
 #if defined(CONFIG_FIT)
@@ -787,7 +787,7 @@ static int nand_load_image(cmd_tbl_t *cmdtp, nand_info_t *nand,
 	load_addr = addr;
 
 	/* Check if we should attempt an auto-start */
-	if (getenv_yesno("autostart")) {
+	if (((ep = getenv("autostart")) != NULL) && (strcmp(ep, "yes") == 0)) {
 		char *local_args[2];
 
 		local_args[0] = cmd;
diff --git a/common/cmd_net.c b/common/cmd_net.c
index 00e0ea8dd34..8c6f5c8c3dd 100644
--- a/common/cmd_net.c
+++ b/common/cmd_net.c
@@ -211,7 +211,7 @@ netboot_common (proto_t proto, cmd_tbl_t *cmdtp, int argc, char * const argv[])
 	flush_cache(load_addr, size);
 
 	/* Loading ok, check if we should attempt an auto-start */
-	if (getenv_yesno("autostart")) {
+	if (((s = getenv("autostart")) != NULL) && (strcmp(s,"yes") == 0)) {
 		char *local_args[2];
 		local_args[0] = argv[0];
 		local_args[1] = NULL;
diff --git a/common/cmd_scsi.c b/common/cmd_scsi.c
index 63a46ded893..be4fe741c3f 100644
--- a/common/cmd_scsi.c
+++ b/common/cmd_scsi.c
@@ -327,7 +327,7 @@ int do_scsiboot (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	flush_cache (addr, (cnt+1)*info.blksz);
 
 	/* Check if we should attempt an auto-start */
-	if (getenv_yesno("autostart")) {
+	if (((ep = getenv("autostart")) != NULL) && (strcmp(ep,"yes") == 0)) {
 		char *local_args[2];
 		local_args[0] = argv[0];
 		local_args[1] = NULL;
diff --git a/common/cmd_usb.c b/common/cmd_usb.c
index 843919822ca..b04a8df764d 100644
--- a/common/cmd_usb.c
+++ b/common/cmd_usb.c
@@ -488,7 +488,7 @@ int do_usbboot(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	flush_cache(addr, (cnt+1)*info.blksz);
 
 	/* Check if we should attempt an auto-start */
-	if (getenv_yesno("autostart")) {
+	if (((ep = getenv("autostart")) != NULL) && (strcmp(ep, "yes") == 0)) {
 		char *local_args[2];
 		local_args[0] = argv[0];
 		local_args[1] = NULL;
-- 
GitLab