From a68ea1cb93c29125bc4f30ddd415fca02249e010 Mon Sep 17 00:00:00 2001
From: Eric Andersen <andersen@codepoet.org>
Date: Mon, 30 Jan 2006 22:48:39 +0000
Subject: fix up yet more annoying signed/unsigned and mixed type errors

---
 shell/ash.c  | 26 ++++++++++++++------------
 shell/hush.c |  6 +++---
 shell/lash.c |  2 +-
 shell/msh.c  |  2 +-
 4 files changed, 19 insertions(+), 17 deletions(-)

(limited to 'shell')

diff --git a/shell/ash.c b/shell/ash.c
index 3564d850b..e9e6def22 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -1402,8 +1402,10 @@ static void unsetfunc(const char *);
 
 #ifdef CONFIG_ASH_MATH_SUPPORT_64
 typedef int64_t arith_t;
+#define arith_t_type (long long)
 #else
 typedef long arith_t;
+#define arith_t_type (long)
 #endif
 
 #ifdef CONFIG_ASH_MATH_SUPPORT
@@ -10132,15 +10134,15 @@ readtoken1(int firstc, int syntax, char *eofmark, int striptabs)
 	char *out;
 	int len;
 	char line[EOFMARKLEN + 1];
-	struct nodelist *bqlist;
-	int quotef;
-	int dblquote;
-	int varnest;    /* levels of variables expansion */
-	int arinest;    /* levels of arithmetic expansion */
-	int parenlevel; /* levels of parens in arithmetic */
-	int dqvarnest;  /* levels of variables expansion within double quotes */
-	int oldstyle;
-	int prevsyntax; /* syntax before arithmetic */
+	struct nodelist *bqlist = 0;
+	int quotef = 0;
+	int dblquote = 0;
+	int varnest = 0;    /* levels of variables expansion */
+	int arinest = 0;    /* levels of arithmetic expansion */
+	int parenlevel = 0; /* levels of parens in arithmetic */
+	int dqvarnest = 0;  /* levels of variables expansion within double quotes */
+	int oldstyle = 0;
+	int prevsyntax = 0; /* syntax before arithmetic */
 #if __GNUC__
 	/* Avoid longjmp clobbering */
 	(void) &out;
@@ -10563,7 +10565,7 @@ parsebackq: {
 	struct jmploc jmploc;
 	struct jmploc *volatile savehandler;
 	size_t savelen;
-	int saveprompt;
+	int saveprompt = 0;
 #ifdef __GNUC__
 	(void) &saveprompt;
 #endif
@@ -13380,9 +13382,9 @@ arith_apply(operator op, v_n_t *numstack, v_n_t **numstackptr)
 		}
 		/* save to shell variable */
 #ifdef CONFIG_ASH_MATH_SUPPORT_64
-		snprintf(buf, sizeof(buf), "%lld", rez);
+		snprintf(buf, sizeof(buf), "%lld", arith_t_type rez);
 #else
-		snprintf(buf, sizeof(buf), "%ld", rez);
+		snprintf(buf, sizeof(buf), "%ld", arith_t_type rez);
 #endif
 		setvar(numptr_m1->var, buf, 0);
 		/* after saving, make previous value for v++ or v-- */
diff --git a/shell/hush.c b/shell/hush.c
index ff29974b6..096b40251 100644
--- a/shell/hush.c
+++ b/shell/hush.c
@@ -2614,10 +2614,10 @@ int parse_stream(o_string *dest, struct p_context *ctx,
 	return 0;
 }
 
-static void mapset(const unsigned char *set, int code)
+static void mapset(const char *set, int code)
 {
-	const unsigned char *s;
-	for (s=set; *s; s++) map[*s] = code;
+	const char *s;
+	for (s=set; *s; s++) map[(int)*s] = code;
 }
 
 static void update_ifs_map(void)
diff --git a/shell/lash.c b/shell/lash.c
index 56a3a23dd..1b8aca506 100644
--- a/shell/lash.c
+++ b/shell/lash.c
@@ -1440,7 +1440,7 @@ static int busy_loop(FILE * input)
 	char *next_command = NULL;
 	struct job newjob;
 	int i;
-	int inbg;
+	int inbg = 0;
 	int status;
 #ifdef CONFIG_LASH_JOB_CONTROL
 	pid_t  parent_pgrp;
diff --git a/shell/msh.c b/shell/msh.c
index 08ca792fa..d56db5714 100644
--- a/shell/msh.c
+++ b/shell/msh.c
@@ -1622,7 +1622,7 @@ static void initarea()
 	brkaddr = malloc(AREASIZE);
 	brktop = brkaddr + AREASIZE;
 
-	while ((int) sbrk(0) & ALIGN)
+	while ((long) sbrk(0) & ALIGN)
 		sbrk(1);
 	areabot = (struct region *) sbrk(REGSIZE);
 
-- 
cgit v1.2.3