From 58875aefe4662f83273a787db5aae3ed3abd470a Mon Sep 17 00:00:00 2001
From: Denis Vlasenko <vda.linux@googlemail.com>
Date: Thu, 22 Mar 2007 22:22:10 +0000
Subject: assorted fixes uncovered by randomconfig runs

---
 editors/vi.c          | 12 +++++++++++-
 networking/ifconfig.c |  3 ++-
 util-linux/fdisk.c    |  2 ++
 3 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/editors/vi.c b/editors/vi.c
index 863735e31..853303249 100644
--- a/editors/vi.c
+++ b/editors/vi.c
@@ -260,7 +260,9 @@ static void crash_dummy();
 static void crash_test();
 static int crashme = 0;
 #endif
+#if ENABLE_FEATURE_VI_COLON
 static char *initial_cmds[] = { NULL, NULL , NULL }; // currently 2 entries, NULL terminated
+#endif
 
 
 static void write1(const char *out)
@@ -307,12 +309,14 @@ int vi_main(int argc, char **argv)
 	//  1-  process $HOME/.exrc file (not inplemented yet)
 	//  2-  process EXINIT variable from environment
 	//  3-  process command line args
+#if ENABLE_FEATURE_VI_COLON
 	{
 		char *p = getenv("EXINIT");
 		if (p && *p)
 			initial_cmds[0] = xstrdup(p);
 	}
-	while ((c = getopt(argc, argv, "hCRc:")) != -1) {
+#endif
+	while ((c = getopt(argc, argv, "hCR" USE_FEATURE_VI_COLON("c:"))) != -1) {
 		switch (c) {
 #if ENABLE_FEATURE_VI_CRASHME
 		case 'C':
@@ -328,11 +332,13 @@ int vi_main(int argc, char **argv)
 			//case 'r':	// recover flag-  ignore- we don't use tmp file
 			//case 'x':	// encryption flag- ignore
 			//case 'c':	// execute command first
+#if ENABLE_FEATURE_VI_COLON
 		case 'c':		// cmd line vi command
 			if (*optarg)
 				initial_cmds[initial_cmds[0] != 0] = xstrdup(optarg);
 			break;
 			//case 'h':	// help -- just use default
+#endif
 		default:
 			show_help();
 			return 1;
@@ -431,6 +437,7 @@ static void edit_file(char * fn)
 	redraw(FALSE);			// dont force every col re-draw
 	show_status_line();
 
+#if ENABLE_FEATURE_VI_COLON
 	{
 		char *p, *q;
 		int n = 0;
@@ -450,6 +457,7 @@ static void edit_file(char * fn)
 			n++;
 		}
 	}
+#endif
 	//------This is the main Vi cmd handling loop -----------------------
 	while (editing > 0) {
 #if ENABLE_FEATURE_VI_CRASHME
@@ -938,7 +946,9 @@ static void colon(char * buf)
 		}
 #if ENABLE_FEATURE_VI_SET
 	} else if (strncasecmp(cmd, "set", i) == 0) {	// set or clear features
+#if ENABLE_FEATURE_VI_SETOPTS
 		char *argp;
+#endif
 		i = 0;			// offset into args
 		// only blank is regarded as args delmiter. What about tab '\t' ?
 		if (!args[0] || strcasecmp(args, "all") == 0) {
diff --git a/networking/ifconfig.c b/networking/ifconfig.c
index 96af7b770..3dcc902ca 100644
--- a/networking/ifconfig.c
+++ b/networking/ifconfig.c
@@ -387,9 +387,10 @@ int ifconfig_main(int argc, char **argv)
 						}
 #endif
 						else {
+							len_and_sockaddr *lsa;
 							if (strcmp(host, "inet") == 0)
 								continue; /* compat stuff */
-							len_and_sockaddr *lsa = xhost2sockaddr(host, 0);
+							lsa = xhost2sockaddr(host, 0);
 #if ENABLE_FEATURE_IPV6
 							if (lsa->sa.sa_family == AF_INET6) {
 								int sockfd6;
diff --git a/util-linux/fdisk.c b/util-linux/fdisk.c
index 9d7bd4e2c..f3c7ca4c6 100644
--- a/util-linux/fdisk.c
+++ b/util-linux/fdisk.c
@@ -325,6 +325,7 @@ struct globals {
 		s |= (sector >> 2) & 0xc0; \
 	} while (0)
 
+#if ENABLE_FEATURE_FDISK_WRITABLE
 /* read line; return 0 or first printable char */
 static int
 read_line(const char *prompt)
@@ -343,6 +344,7 @@ read_line(const char *prompt)
 		line_ptr++;
 	return *line_ptr;
 }
+#endif
 
 /*
  * return partition name - uses static storage
-- 
cgit v1.2.3-55-g6feb