File ksh93-gcc.dif of Package ksh

--- src/lib/libpp/ppsearch.c
+++ src/lib/libpp/ppsearch.c	2012-03-14 11:40:11.000000000 +0000
@@ -107,6 +107,14 @@ ppmultiple(register struct ppfile* fp, r
  * search for file using directories in dp
  */
 
+#define stupidgcc(flag) 		\
+({ 					\
+	char *name = NiL; 		\
+	if (!(fp->flags & INC_MEMBER(flag)) && (xp = fp->bound[flag])) \
+		 name = xp->name; \
+	name; \
+})
+
 static int
 search(register struct ppfile* fp, register struct ppdirs* dp, int type, int flags)
 {
@@ -146,10 +154,10 @@ search(register struct ppfile* fp, regis
 		(fp->flags & INC_BOUND(INC_STANDARD)) ? "STANDARD|" : "",
 		dp ? (dp->index == INC_PREFIX ? "pre" : dp->index == INC_LOCAL ? "lcl" : dp->index == INC_VENDOR ? "vnd" : "std") : NiL,
 		dp ? dp->name : NiL,
-		!(fp->flags & INC_MEMBER(INC_PREFIX)) && fp->bound[INC_PREFIX] ? fp->bound[INC_PREFIX]->name : NiL,
-		!(fp->flags & INC_MEMBER(INC_LOCAL)) && fp->bound[INC_LOCAL] ? fp->bound[INC_LOCAL]->name : NiL,
-		!(fp->flags & INC_MEMBER(INC_VENDOR)) && fp->bound[INC_VENDOR] ? fp->bound[INC_VENDOR]->name : NiL,
-		!(fp->flags & INC_MEMBER(INC_STANDARD)) && (xp = fp->bound[INC_STANDARD]) ? xp->name : NiL,
+		stupidgcc(INC_PREFIX),
+		stupidgcc(INC_LOCAL),
+		stupidgcc(INC_VENDOR),
+		stupidgcc(INC_STANDARD),
 		error_info.file
 		));
 	if (flags & SEARCH_HOSTED)
@@ -578,6 +586,8 @@ if (pp.test & 0x0010) error(1, "SEARCH#%
 	return -1;
 }
 
+#undef stupidgcc
+
 /*
  * search for an include file
  * if (flags&SEARCH_INCLUDE) then
--- src/lib/libcmd/ls.c
+++ src/lib/libcmd/ls.c	2014-02-20 11:11:51.762689002 +0000
@@ -1257,7 +1257,7 @@ ls(State_t* state, register FTSENT* ent)
 	if (!VISIBLE(state, ent))
 	{
 		fts_set(NiL, ent, FTS_SKIP);
-		return;
+		return 0;
 	}
 	switch (ent->fts_info)
 	{
@@ -1265,12 +1265,12 @@ ls(State_t* state, register FTSENT* ent)
 		if (ent->fts_parent->fts_info == FTS_DNX)
 			break;
 		error(2, "%s: not found", ent->fts_path);
-		return;
+		return 0;
 	case FTS_DC:
 		if (state->lsflags & LS_DIRECTORY)
 			break;
 		error(2, "%s: directory causes cycle", ent->fts_path);
-		return;
+		return 0;
 	case FTS_DNR:
 		if (state->lsflags & LS_DIRECTORY)
 			break;
--- src/lib/libcmd/xargs.c
+++ src/lib/libcmd/xargs.c	2014-02-20 11:23:40.348375000 +0000
@@ -116,6 +116,7 @@ run(int argc, char** argv, Cmddisc_t* di
 {
 	if (((Xargs_t*)disc)->context)
 		return sh_run(((Xargs_t*)disc)->context, argc, argv);
+	return(argc);
 }
 
 int