• support IBM xlC on AIX
• fix all bugs it could find ☺
This commit is contained in:
		
							
								
								
									
										26
									
								
								Build.sh
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								Build.sh
									
									
									
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| #!/bin/sh | ||||
| # $MirOS: src/bin/mksh/Build.sh,v 1.240 2007/07/22 13:08:54 tg Exp $ | ||||
| # $MirOS: src/bin/mksh/Build.sh,v 1.241 2007/07/22 13:34:48 tg Exp $ | ||||
| #- | ||||
| # Environment used: CC CFLAGS CPPFLAGS LDFLAGS LIBS NOWARN NROFF TARGET_OS | ||||
| # CPPFLAGS recognised:	MKSH_SMALL MKSH_ASSUME_UTF8 MKSH_NEED_MKNOD MKSH_NOPWNAM | ||||
| @@ -332,6 +332,8 @@ $e ... which compiler we seem to use | ||||
| cat >scn.c <<-'EOF' | ||||
| 	#if defined(__ICC) || defined(__INTEL_COMPILER) | ||||
| 	ct=icc | ||||
| 	#elif defined(__xlC__) | ||||
| 	ct=xlc | ||||
| 	#elif defined(__SUNPRO_C) | ||||
| 	ct=sunpro | ||||
| 	#elif defined(__BORLANDC__) | ||||
| @@ -354,7 +356,7 @@ test $h = 1 && sed 's/^/[ /' x | ||||
| eval `cat x` | ||||
| rm -f x | ||||
| case $ct in | ||||
| bcc|dmc|gcc|hpcc|icc|msc|sunpro) ;; | ||||
| bcc|dmc|gcc|hpcc|icc|msc|sunpro|xlc) ;; | ||||
| *) ct=unknown ;; | ||||
| esac | ||||
| $e "$bi==> which compiler we seem to use...$ao $ui$ct$ao" | ||||
| @@ -419,6 +421,9 @@ elif test $ct = dmc; then | ||||
| elif test $ct = bcc; then | ||||
| 	save_NOWARN="${ccpc}-w" | ||||
| 	DOWARN="${ccpc}-w!" | ||||
| elif test $ct = xlc; then | ||||
| 	save_NOWARN=-qflag=i:e | ||||
| 	DOWARN=-qflag=i:i | ||||
| else | ||||
| 	test x"$save_NOWARN" = x"" && save_NOWARN=-Wno-error | ||||
| 	ac_flags 0 wnoerror "$save_NOWARN" | ||||
| @@ -447,6 +452,9 @@ test x"$i" = x"" && if test $ct = sunpro; then | ||||
| 	rm -f x | ||||
| elif test $ct = hpcc; then | ||||
| 	ac_flags 1 otwo +O2 | ||||
| elif test $ct = xlc; then | ||||
| 	ac_flags 1 othree "-O3 -qstrict" | ||||
| 	test 1 = $HAVE_CAN_OTHREE || ac_flags 1 otwo -O2 | ||||
| else | ||||
| 	ac_flags 1 otwo -O2 | ||||
| 	test 1 = $HAVE_CAN_OTWO || ac_flags 1 optimise -O | ||||
| @@ -485,6 +493,14 @@ elif test $ct = msc; then | ||||
| 	rm -f x | ||||
| 	ac_flags 1 wall "${ccpc}/Wall" 'to enable all warnings' | ||||
| 	ac_flags 1 wp64 "${ccpc}/Wp64" 'to enable 64-bit warnings' | ||||
| elif test $ct = xlc; then | ||||
| 	ac_flags 1 x99 -qlanglvl=extc99 | ||||
| 	test 1 = $HAVE_CAN_X99 || ac_flags 1 c99 -qlanglvl=stdc99 | ||||
| 	ac_flags 1 rodata "-qro -qroconst -qroptr" | ||||
| 	ac_flags 1 rtcheck -qcheck=all | ||||
| 	ac_flags 1 rtchkc -qextchk | ||||
| 	ac_flags 1 wformat "-qformat=all -qformat=nozln" | ||||
| 	#ac_flags 1 wp64 -qwarn64	# too verbose for now | ||||
| fi | ||||
| # flags common to a subset of compilers | ||||
| if test 1 = $i; then | ||||
| @@ -561,7 +577,11 @@ ac_testn mksh_need_mknod '!' mksh_full 1 'if we still want c_mknod()' <<-'EOF' | ||||
| EOF | ||||
|  | ||||
| if test 0 = $HAVE_MKSH_FULL; then | ||||
| 	ac_flags 1 fnoinline -fno-inline | ||||
| 	if test $ct = xlc; then | ||||
| 		ac_flags 1 fnoinline -qnoinline | ||||
| 	else | ||||
| 		ac_flags 1 fnoinline -fno-inline | ||||
| 	fi | ||||
|  | ||||
| 	: ${HAVE_SETLOCALE_CTYPE=0} | ||||
| 	check_categories=$check_categories,smksh | ||||
|   | ||||
							
								
								
									
										24
									
								
								edit.c
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								edit.c
									
									
									
									
									
								
							| @@ -5,7 +5,7 @@ | ||||
|  | ||||
| #include "sh.h" | ||||
|  | ||||
| __RCSID("$MirOS: src/bin/mksh/edit.c,v 1.105 2007/07/01 21:10:27 tg Exp $"); | ||||
| __RCSID("$MirOS: src/bin/mksh/edit.c,v 1.106 2007/07/22 13:34:48 tg Exp $"); | ||||
|  | ||||
| /* tty driver characters we are interested in */ | ||||
| typedef struct { | ||||
| @@ -2792,7 +2792,7 @@ x_expand(int c __unused) | ||||
| 	x_delete(end - start, false); | ||||
| 	for (i = 0; i < nwords;) { | ||||
| 		if (x_escape(words[i], strlen(words[i]), x_do_ins) < 0 || | ||||
| 		    (++i < nwords && x_ins(space) < 0)) { | ||||
| 		    (++i < nwords && x_ins(" ") < 0)) { | ||||
| 			x_e_putc2(7); | ||||
| 			return KSTD; | ||||
| 		} | ||||
| @@ -2838,7 +2838,7 @@ do_complete(int flags,	/* XCF_{COMMAND,FILE,COMMAND_FILE} */ | ||||
| 	} | ||||
| 	/* add space if single non-dir match */ | ||||
| 	if (nwords == 1 && words[0][nlen - 1] != '/') { | ||||
| 		x_ins(space); | ||||
| 		x_ins(" "); | ||||
| 		completed = 1; | ||||
| 	} | ||||
| 	if (type == CT_COMPLIST && !completed) { | ||||
| @@ -4255,10 +4255,14 @@ vi_cmd(int argcnt, const char *cmd) | ||||
| 					argcnt = source->line + 1 | ||||
| 					    - (hlast - hnum); | ||||
| 			} | ||||
| 			shf_snprintf(es->cbuf, es->cbufsize, | ||||
| 			    argcnt ? "%s %d" : "%s", | ||||
| 			    "fc -e ${VISUAL:-${EDITOR:-vi}} --", | ||||
| 			    argcnt); | ||||
| 			if (argcnt) | ||||
| 				shf_snprintf(es->cbuf, es->cbufsize, "%s %d", | ||||
| 				    "fc -e ${VISUAL:-${EDITOR:-vi}} --", | ||||
| 				    argcnt); | ||||
| 			else | ||||
| 				strlcpy(es->cbuf, | ||||
| 				    "fc -e ${VISUAL:-${EDITOR:-vi}} --", | ||||
| 				    es->cbufsize); | ||||
| 			es->linelen = strlen(es->cbuf); | ||||
| 			return 2; | ||||
|  | ||||
| @@ -4376,7 +4380,7 @@ vi_cmd(int argcnt, const char *cmd) | ||||
| 					argcnt++; | ||||
| 					p++; | ||||
| 				} | ||||
| 				if (putbuf(space, 1, 0) != 0) | ||||
| 				if (putbuf(" ", 1, 0) != 0) | ||||
| 					argcnt = -1; | ||||
| 				else if (putbuf(sp, argcnt, 0) != 0) | ||||
| 					argcnt = -1; | ||||
| @@ -5216,7 +5220,7 @@ expand_word(int cmd) | ||||
| 			rval = -1; | ||||
| 			break; | ||||
| 		} | ||||
| 		if (++i < nwords && putbuf(space, 1, 0) != 0) { | ||||
| 		if (++i < nwords && putbuf(" ", 1, 0) != 0) { | ||||
| 			rval = -1; | ||||
| 			break; | ||||
| 		} | ||||
| @@ -5325,7 +5329,7 @@ complete_word(int cmd, int count) | ||||
|  | ||||
| 		/* If not a directory, add a space to the end... */ | ||||
| 		if (match_len > 0 && match[match_len - 1] != '/') | ||||
| 			rval = putbuf(space, 1, 0); | ||||
| 			rval = putbuf(" ", 1, 0); | ||||
| 	} | ||||
| 	x_free_words(nwords, words); | ||||
|  | ||||
|   | ||||
							
								
								
									
										12
									
								
								exec.c
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								exec.c
									
									
									
									
									
								
							| @@ -2,7 +2,7 @@ | ||||
|  | ||||
| #include "sh.h" | ||||
|  | ||||
| __RCSID("$MirOS: src/bin/mksh/exec.c,v 1.33 2007/06/15 21:22:40 tg Exp $"); | ||||
| __RCSID("$MirOS: src/bin/mksh/exec.c,v 1.34 2007/07/22 13:34:49 tg Exp $"); | ||||
|  | ||||
| static int comexec(struct op *, struct tbl *volatile, const char **, | ||||
|     int volatile); | ||||
| @@ -70,8 +70,8 @@ execute(struct op *volatile t, | ||||
| 			shf_fprintf(shl_out, "%s", | ||||
| 				substitute(str_val(global("PS4")), 0)); | ||||
| 			for (i = 0; ap[i]; i++) | ||||
| 				shf_fprintf(shl_out, "%s%s", ap[i], | ||||
| 				    ap[i + 1] ? space : newline); | ||||
| 				shf_fprintf(shl_out, "%s%c", ap[i], | ||||
| 				    ap[i + 1] ? ' ' : '\n'); | ||||
| 			shf_flush(shl_out); | ||||
| 		} | ||||
| 		if (ap[0]) | ||||
| @@ -95,7 +95,7 @@ execute(struct op *volatile t, | ||||
| 				 */ | ||||
| 				if (tp && tp->type == CSHELL && | ||||
| 				    (tp->flag & SPEC_BI)) | ||||
| 					errorf(null); | ||||
| 					errorf(""); | ||||
| 				/* Deal with FERREXIT, quitenv(), etc. */ | ||||
| 				goto Break; | ||||
| 			} | ||||
| @@ -486,8 +486,8 @@ comexec(struct op *t, struct tbl *volatile tp, const char **ap, | ||||
| 			if (i == 0) | ||||
| 				shf_fprintf(shl_out, "%s", | ||||
| 					substitute(str_val(global("PS4")), 0)); | ||||
| 			shf_fprintf(shl_out, "%s%s", cp, | ||||
| 			    t->vars[i + 1] ? space : newline); | ||||
| 			shf_fprintf(shl_out, "%s%c", cp, | ||||
| 			    t->vars[i + 1] ? ' ' : '\n'); | ||||
| 			if (!t->vars[i + 1]) | ||||
| 				shf_flush(shl_out); | ||||
| 		} | ||||
|   | ||||
							
								
								
									
										4
									
								
								expr.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								expr.c
									
									
									
									
									
								
							| @@ -2,7 +2,7 @@ | ||||
|  | ||||
| #include "sh.h" | ||||
|  | ||||
| __RCSID("$MirOS: src/bin/mksh/expr.c,v 1.10 2007/03/04 03:04:25 tg Exp $"); | ||||
| __RCSID("$MirOS: src/bin/mksh/expr.c,v 1.11 2007/07/22 13:34:49 tg Exp $"); | ||||
|  | ||||
| /* The order of these enums is constrained by the order of opinfo[] */ | ||||
| enum token { | ||||
| @@ -178,7 +178,7 @@ v_evaluate(struct tbl *vp, const char *expr, volatile int error_ok, | ||||
| 		if (i == LAEXPR) { | ||||
| 			if (error_ok == KSH_RETURN_ERROR) | ||||
| 				return (0); | ||||
| 			errorf(null); | ||||
| 			errorf(""); | ||||
| 		} | ||||
| 		unwind(i); | ||||
| 		/* NOTREACHED */ | ||||
|   | ||||
							
								
								
									
										12
									
								
								funcs.c
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								funcs.c
									
									
									
									
									
								
							| @@ -5,7 +5,7 @@ | ||||
|  | ||||
| #include "sh.h" | ||||
|  | ||||
| __RCSID("$MirOS: src/bin/mksh/funcs.c,v 1.58 2007/07/01 21:10:28 tg Exp $"); | ||||
| __RCSID("$MirOS: src/bin/mksh/funcs.c,v 1.59 2007/07/22 13:34:49 tg Exp $"); | ||||
|  | ||||
| int | ||||
| c_cd(const char **wp) | ||||
| @@ -494,7 +494,7 @@ c_whence(const char **wp) | ||||
| 			break; | ||||
| 		} | ||||
| 		if (vflag || !ret) | ||||
| 			shprintf(newline); | ||||
| 			shf_putc('\n', shl_stdout); | ||||
| 	} | ||||
| 	return ret; | ||||
| } | ||||
| @@ -793,7 +793,7 @@ c_typeset(const char **wp) | ||||
| 							else | ||||
| 								print_value_quoted(s); | ||||
| 						} | ||||
| 						shprintf(newline); | ||||
| 						shf_putc('\n', shl_stdout); | ||||
| 					} | ||||
| 					/* Only report first 'element' of an array with | ||||
| 					* no set elements. | ||||
| @@ -887,7 +887,7 @@ c_alias(const char **wp) | ||||
| 					shf_putc('=', shl_stdout); | ||||
| 					print_value_quoted(ap->val.s); | ||||
| 				} | ||||
| 				shprintf(newline); | ||||
| 				shf_putc('\n', shl_stdout); | ||||
| 			} | ||||
| 	} | ||||
|  | ||||
| @@ -912,7 +912,7 @@ c_alias(const char **wp) | ||||
| 					shf_putc('=', shl_stdout); | ||||
| 					print_value_quoted(ap->val.s); | ||||
| 				} | ||||
| 				shprintf(newline); | ||||
| 				shf_putc('\n', shl_stdout); | ||||
| 			} else { | ||||
| 				shprintf("%s alias not found\n", alias); | ||||
| 				rv = 1; | ||||
| @@ -1142,7 +1142,7 @@ c_kill(const char **wp) | ||||
| 		    "Usage: kill [ -s signame | -signum | -signame ] {pid|job}...\n" | ||||
| 		    "       kill -l [exit_status]\n"); | ||||
| #endif | ||||
| 		bi_errorf(null); | ||||
| 		bi_errorf(""); | ||||
| 		return 1; | ||||
| 	} | ||||
|  | ||||
|   | ||||
| @@ -3,7 +3,7 @@ | ||||
|  | ||||
| #include "sh.h" | ||||
|  | ||||
| __RCSID("$MirOS: src/bin/mksh/histrap.c,v 1.51 2007/07/01 21:10:28 tg Exp $"); | ||||
| __RCSID("$MirOS: src/bin/mksh/histrap.c,v 1.52 2007/07/22 13:34:50 tg Exp $"); | ||||
|  | ||||
| Trap sigtraps[NSIG + 1]; | ||||
| static struct sigaction Sigact_ign; | ||||
| @@ -177,8 +177,10 @@ c_fc(const char **wp) | ||||
|  | ||||
| 		for (hp = rflag ? hlast : hfirst; | ||||
| 		    hp >= hfirst && hp <= hlast; hp += rflag ? -1 : 1) { | ||||
| 			shf_fprintf(shl_stdout, nfmt, | ||||
| 			    hist_source->line - (int) (histptr - hp)); | ||||
| 			if (!nflag) | ||||
| 				shf_fprintf(shl_stdout, "%d", | ||||
| 				    hist_source->line - (int)(histptr - hp)); | ||||
| 			shf_putc('\t', shl_stdout); | ||||
| 			/* print multi-line commands correctly */ | ||||
| 			for (s = *hp; (t = strchr(s, '\n')); s = t) | ||||
| 				shf_fprintf(shl_stdout, "%.*s\t", | ||||
|   | ||||
							
								
								
									
										8
									
								
								jobs.c
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								jobs.c
									
									
									
									
									
								
							| @@ -2,7 +2,7 @@ | ||||
|  | ||||
| #include "sh.h" | ||||
|  | ||||
| __RCSID("$MirOS: src/bin/mksh/jobs.c,v 1.24 2007/06/06 23:41:24 tg Exp $"); | ||||
| __RCSID("$MirOS: src/bin/mksh/jobs.c,v 1.25 2007/07/22 13:34:50 tg Exp $"); | ||||
|  | ||||
| /* Order important! */ | ||||
| #define PRUNNING	0 | ||||
| @@ -632,7 +632,7 @@ j_resume(const char *cp, int bg) | ||||
| 		} | ||||
| 		shprintf("%s%s", p->command, p->next ? "| " : null); | ||||
| 	} | ||||
| 	shprintf(newline); | ||||
| 	shf_putc('\n', shl_stdout); | ||||
| 	shf_flush(shl_stdout); | ||||
| 	if (running) | ||||
| 		j->state = PRUNNING; | ||||
| @@ -1283,7 +1283,7 @@ j_print(Job *j, int how, struct shf *shf) | ||||
| 		while (p && p->state == state && p->status == status) { | ||||
| 			if (how == JP_LONG) | ||||
| 				shf_fprintf(shf, "%s%5d %-20s %s%s", filler, | ||||
| 				    (int)p->pid, space, p->command, | ||||
| 				    (int)p->pid, " ", p->command, | ||||
| 				    p->next ? "|" : null); | ||||
| 			else if (how == JP_MEDIUM) | ||||
| 				shf_fprintf(shf, " %s%s", p->command, | ||||
| @@ -1292,7 +1292,7 @@ j_print(Job *j, int how, struct shf *shf) | ||||
| 		} | ||||
| 	} | ||||
| 	if (output) | ||||
| 		shf_fprintf(shf, newline); | ||||
| 		shf_putc('\n', shf); | ||||
| } | ||||
|  | ||||
| /* Convert % sequence to job | ||||
|   | ||||
							
								
								
									
										8
									
								
								lex.c
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								lex.c
									
									
									
									
									
								
							| @@ -2,7 +2,7 @@ | ||||
|  | ||||
| #include "sh.h" | ||||
|  | ||||
| __RCSID("$MirOS: src/bin/mksh/lex.c,v 1.43 2007/07/07 22:29:36 tg Exp $"); | ||||
| __RCSID("$MirOS: src/bin/mksh/lex.c,v 1.44 2007/07/22 13:34:51 tg Exp $"); | ||||
|  | ||||
| /* Structure to keep track of the lexing state and the various pieces of info | ||||
|  * needed for each particular state. */ | ||||
| @@ -905,7 +905,7 @@ yyerror(const char *fmt, ...) | ||||
| 	va_start(va, fmt); | ||||
| 	shf_vfprintf(shl_out, fmt, va); | ||||
| 	va_end(va); | ||||
| 	errorf(null); | ||||
| 	errorf(""); | ||||
| } | ||||
|  | ||||
| /* | ||||
| @@ -967,10 +967,10 @@ getsc__(void) | ||||
|  | ||||
| 		case SWORDSEP: | ||||
| 			if (*s->u.strv == NULL) { | ||||
| 				s->start = s->str = newline; | ||||
| 				s->start = s->str = "\n"; | ||||
| 				s->type = SEOF; | ||||
| 			} else { | ||||
| 				s->start = s->str = space; | ||||
| 				s->start = s->str = " "; | ||||
| 				s->type = SWORDS; | ||||
| 			} | ||||
| 			break; | ||||
|   | ||||
							
								
								
									
										4
									
								
								main.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								main.c
									
									
									
									
									
								
							| @@ -13,7 +13,7 @@ | ||||
| #include <locale.h> | ||||
| #endif | ||||
|  | ||||
| __RCSID("$MirOS: src/bin/mksh/main.c,v 1.83 2007/07/17 13:56:51 tg Exp $"); | ||||
| __RCSID("$MirOS: src/bin/mksh/main.c,v 1.84 2007/07/22 13:34:51 tg Exp $"); | ||||
|  | ||||
| extern char **environ; | ||||
|  | ||||
| @@ -484,7 +484,7 @@ shell(Source * volatile s, volatile int toplevel) | ||||
| 		case LSHELL: | ||||
| 			if (interactive) { | ||||
| 				if (i == LINTR) | ||||
| 					shellf(newline); | ||||
| 					shellf("\n"); | ||||
| 				/* Reset any eof that was read as part of a | ||||
| 				 * multiline command. | ||||
| 				 */ | ||||
|   | ||||
							
								
								
									
										8
									
								
								misc.c
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								misc.c
									
									
									
									
									
								
							| @@ -6,7 +6,7 @@ | ||||
| #include <grp.h> | ||||
| #endif | ||||
|  | ||||
| __RCSID("$MirOS: src/bin/mksh/misc.c,v 1.60 2007/07/01 22:17:29 tg Exp $\t" | ||||
| __RCSID("$MirOS: src/bin/mksh/misc.c,v 1.61 2007/07/22 13:34:51 tg Exp $\t" | ||||
| 	MKSH_SH_H_ID); | ||||
|  | ||||
| #undef USE_CHVT | ||||
| @@ -206,7 +206,7 @@ printoptions(int verbose) | ||||
| 		for (i = 0; i < NELEM(options); i++) | ||||
| 			if (Flag(i) && options[i].name) | ||||
| 				shprintf(" -o %s", options[i].name); | ||||
| 		shprintf(newline); | ||||
| 		shf_putc('\n', shl_stdout); | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @@ -853,7 +853,7 @@ ksh_getopt(const char **argv, Getopt *go, const char *optionsp) | ||||
| 			    (go->flags & GF_NONAME) ? "" : argv[0], | ||||
| 			    (go->flags & GF_NONAME) ? "" : ": ", c); | ||||
| 			if (go->flags & GF_ERROR) | ||||
| 				bi_errorf(null); | ||||
| 				bi_errorf(""); | ||||
| 		} | ||||
| 		return '?'; | ||||
| 	} | ||||
| @@ -879,7 +879,7 @@ ksh_getopt(const char **argv, Getopt *go, const char *optionsp) | ||||
| 			    (go->flags & GF_NONAME) ? "" : argv[0], | ||||
| 			    (go->flags & GF_NONAME) ? "" : ": ", c); | ||||
| 			if (go->flags & GF_ERROR) | ||||
| 				bi_errorf(null); | ||||
| 				bi_errorf(""); | ||||
| 			return '?'; | ||||
| 		} | ||||
| 		go->p = 0; | ||||
|   | ||||
							
								
								
									
										4
									
								
								sh.h
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								sh.h
									
									
									
									
									
								
							| @@ -8,7 +8,7 @@ | ||||
| /*	$OpenBSD: c_test.h,v 1.4 2004/12/20 11:34:26 otto Exp $	*/ | ||||
| /*	$OpenBSD: tty.h,v 1.5 2004/12/20 11:34:26 otto Exp $	*/ | ||||
|  | ||||
| #define MKSH_SH_H_ID "$MirOS: src/bin/mksh/sh.h,v 1.157 2007/07/17 13:56:49 tg Exp $" | ||||
| #define MKSH_SH_H_ID "$MirOS: src/bin/mksh/sh.h,v 1.158 2007/07/22 13:34:51 tg Exp $" | ||||
| #define MKSH_VERSION "R30 2007/07/17" | ||||
|  | ||||
| #if HAVE_SYS_PARAM_H | ||||
| @@ -432,8 +432,6 @@ enum sh_flag { | ||||
| EXTERN char shell_flags [FNFLAGS]; | ||||
|  | ||||
| EXTERN char	null [] I__("");	/* null value for variable */ | ||||
| EXTERN char	space [] I__(" "); | ||||
| EXTERN char	newline [] I__("\n"); | ||||
|  | ||||
| enum temp_type { | ||||
| 	TT_HEREDOC_EXP,	/* expanded heredoc */ | ||||
|   | ||||
							
								
								
									
										6
									
								
								var.c
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								var.c
									
									
									
									
									
								
							| @@ -2,7 +2,7 @@ | ||||
|  | ||||
| #include "sh.h" | ||||
|  | ||||
| __RCSID("$MirOS: src/bin/mksh/var.c,v 1.40 2007/07/01 21:10:29 tg Exp $"); | ||||
| __RCSID("$MirOS: src/bin/mksh/var.c,v 1.41 2007/07/22 13:34:52 tg Exp $"); | ||||
|  | ||||
| /* | ||||
|  * Variables | ||||
| @@ -341,7 +341,7 @@ setstr(struct tbl *vq, const char *s, int error_ok) | ||||
| 	if ((vq->flag & RDONLY) && !no_ro_check) { | ||||
| 		warningf(true, "%s: is read only", vq->name); | ||||
| 		if (!error_ok) | ||||
| 			errorf(null); | ||||
| 			errorf(""); | ||||
| 		return 0; | ||||
| 	} | ||||
| 	if (!(vq->flag&INTEGER)) { /* string dest */ | ||||
| @@ -690,7 +690,7 @@ typeset(const char *var, Tflag set, Tflag clr, int field, int base) | ||||
| 			} | ||||
| 		} | ||||
| 		if (!ok) | ||||
| 		    errorf(null); | ||||
| 			errorf(""); | ||||
| 	} | ||||
|  | ||||
| 	if (val != NULL) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user