save 200 bytes off .text by revisiting string pooling
also, forgotten version bump
This commit is contained in:
		
							
								
								
									
										4
									
								
								Build.sh
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								Build.sh
									
									
									
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| #!/bin/sh | ||||
| srcversion='$MirOS: src/bin/mksh/Build.sh,v 1.695 2016/01/02 20:11:31 tg Exp $' | ||||
| srcversion='$MirOS: src/bin/mksh/Build.sh,v 1.696 2016/01/21 18:24:33 tg Exp $' | ||||
| #- | ||||
| # Copyright (c) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, | ||||
| #		2011, 2012, 2013, 2014, 2015, 2016 | ||||
| @@ -2345,7 +2345,7 @@ addsrcs '!' HAVE_STRLCPY strlcpy.c | ||||
| addsrcs USE_PRINTF_BUILTIN printf.c | ||||
| test 1 = "$USE_PRINTF_BUILTIN" && add_cppflags -DMKSH_PRINTF_BUILTIN | ||||
| test 1 = "$HAVE_CAN_VERB" && CFLAGS="$CFLAGS -verbose" | ||||
| add_cppflags -DMKSH_BUILD_R=521 | ||||
| add_cppflags -DMKSH_BUILD_R=522 | ||||
|  | ||||
| $e $bi$me: Finished configuration testing, now producing output.$ao | ||||
|  | ||||
|   | ||||
							
								
								
									
										6
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								Makefile
									
									
									
									
									
								
							| @@ -1,7 +1,7 @@ | ||||
| # $MirOS: src/bin/mksh/Makefile,v 1.145 2015/12/12 22:25:11 tg Exp $ | ||||
| # $MirOS: src/bin/mksh/Makefile,v 1.146 2016/01/21 18:24:34 tg Exp $ | ||||
| #- | ||||
| # Copyright (c) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, | ||||
| #		2011, 2012, 2013, 2014, 2015 | ||||
| #		2011, 2012, 2013, 2014, 2015, 2016 | ||||
| #	mirabilos <m@mirbsd.org> | ||||
| # | ||||
| # Provided that these terms and disclaimer and all copyright notices | ||||
| @@ -57,7 +57,7 @@ CPPFLAGS+=	-DMKSH_ASSUME_UTF8 -DMKSH_DISABLE_DEPRECATED \ | ||||
| 		-DHAVE_SETGROUPS=1 -DHAVE_STRERROR=0 -DHAVE_STRSIGNAL=0 \ | ||||
| 		-DHAVE_STRLCPY=1 -DHAVE_FLOCK_DECL=1 -DHAVE_REVOKE_DECL=1 \ | ||||
| 		-DHAVE_SYS_ERRLIST_DECL=1 -DHAVE_SYS_SIGLIST_DECL=1 \ | ||||
| 		-DHAVE_PERSISTENT_HISTORY=1 -DMKSH_BUILD_R=521 | ||||
| 		-DHAVE_PERSISTENT_HISTORY=1 -DMKSH_BUILD_R=522 | ||||
| CPPFLAGS+=	-D${${PROG:L}_tf:C/(Mir${MAN:E}{0,1}){2}/4/:S/x/mksh_BUILD/:U} | ||||
| CPPFLAGS+=	-I. | ||||
| COPTS+=		-std=c89 -Wall | ||||
|   | ||||
							
								
								
									
										6
									
								
								check.t
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								check.t
									
									
									
									
									
								
							| @@ -1,4 +1,4 @@ | ||||
| # $MirOS: src/bin/mksh/check.t,v 1.721 2016/01/20 21:34:09 tg Exp $ | ||||
| # $MirOS: src/bin/mksh/check.t,v 1.722 2016/01/21 18:24:35 tg Exp $ | ||||
| # -*- mode: sh -*- | ||||
| #- | ||||
| # Copyright © 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, | ||||
| @@ -30,7 +30,7 @@ | ||||
| # (2013/12/02 20:39:44) http://openbsd.cs.toronto.edu/cgi-bin/cvsweb/src/regress/bin/ksh/?sortby=date | ||||
|  | ||||
| expected-stdout: | ||||
| 	@(#)MIRBSD KSH R52 2016/01/20 | ||||
| 	@(#)MIRBSD KSH R52 2016/01/21 | ||||
| description: | ||||
| 	Check version of shell. | ||||
| stdin: | ||||
| @@ -39,7 +39,7 @@ name: KSH_VERSION | ||||
| category: shell:legacy-no | ||||
| --- | ||||
| expected-stdout: | ||||
| 	@(#)LEGACY KSH R52 2016/01/20 | ||||
| 	@(#)LEGACY KSH R52 2016/01/21 | ||||
| description: | ||||
| 	Check version of legacy shell. | ||||
| stdin: | ||||
|   | ||||
							
								
								
									
										12
									
								
								edit.c
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								edit.c
									
									
									
									
									
								
							| @@ -5,7 +5,7 @@ | ||||
|  | ||||
| /*- | ||||
|  * Copyright (c) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, | ||||
|  *		 2011, 2012, 2013, 2014, 2015 | ||||
|  *		 2011, 2012, 2013, 2014, 2015, 2016 | ||||
|  *	mirabilos <m@mirbsd.org> | ||||
|  * | ||||
|  * Provided that these terms and disclaimer and all copyright notices | ||||
| @@ -28,7 +28,7 @@ | ||||
|  | ||||
| #ifndef MKSH_NO_CMDLINE_EDITING | ||||
|  | ||||
| __RCSID("$MirOS: src/bin/mksh/edit.c,v 1.292 2015/10/09 16:11:13 tg Exp $"); | ||||
| __RCSID("$MirOS: src/bin/mksh/edit.c,v 1.293 2016/01/21 18:24:37 tg Exp $"); | ||||
|  | ||||
| /* | ||||
|  * in later versions we might use libtermcap for this, but since external | ||||
| @@ -381,7 +381,7 @@ x_file_glob(int *flagsp, char *toglob, char ***wordsp) | ||||
| 	source = s; | ||||
| 	if (yylex(ONEWORD | LQCHAR) != LWORD) { | ||||
| 		source = sold; | ||||
| 		internal_warningf("%s: %s", "fileglob", "bad substitution"); | ||||
| 		internal_warningf(Tfg_badsubst); | ||||
| 		return (0); | ||||
| 	} | ||||
| 	source = sold; | ||||
| @@ -2516,7 +2516,7 @@ x_bind(const char *a1, const char *a2, | ||||
| 		m1 = msg; | ||||
| 		while (*c && (size_t)(m1 - msg) < sizeof(msg) - 3) | ||||
| 			x_mapout2(*c++, &m1); | ||||
| 		bi_errorf("%s: %s", "too long key sequence", msg); | ||||
| 		bi_errorf("too long key sequence: %s", msg); | ||||
| 		return (1); | ||||
| 	} | ||||
| #ifndef MKSH_SMALL | ||||
| @@ -2540,7 +2540,7 @@ x_bind(const char *a1, const char *a2, | ||||
| 			if (!strcmp(x_ftab[f].xf_name, a2)) | ||||
| 				break; | ||||
| 		if (f == NELEM(x_ftab) || x_ftab[f].xf_flags & XF_NOBIND) { | ||||
| 			bi_errorf("%s: %s %s", a2, "no such", Tfunction); | ||||
| 			bi_errorf("%s: no such function", a2); | ||||
| 			return (1); | ||||
| 		} | ||||
| 	} | ||||
| @@ -5051,7 +5051,7 @@ grabhist(int save, int n) | ||||
| 	} | ||||
| 	(void)histnum(n); | ||||
| 	if ((hptr = *histpos()) == NULL) { | ||||
| 		internal_warningf("%s: %s", "grabhist", "bad history array"); | ||||
| 		internal_warningf("grabhist: bad history array"); | ||||
| 		return (-1); | ||||
| 	} | ||||
| 	if (save) | ||||
|   | ||||
							
								
								
									
										10
									
								
								eval.c
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								eval.c
									
									
									
									
									
								
							| @@ -23,7 +23,7 @@ | ||||
|  | ||||
| #include "sh.h" | ||||
|  | ||||
| __RCSID("$MirOS: src/bin/mksh/eval.c,v 1.180 2016/01/19 23:12:12 tg Exp $"); | ||||
| __RCSID("$MirOS: src/bin/mksh/eval.c,v 1.181 2016/01/21 18:24:38 tg Exp $"); | ||||
|  | ||||
| /* | ||||
|  * string expansion | ||||
| @@ -120,7 +120,7 @@ substitute(const char *cp, int f) | ||||
| 	s->start = s->str = cp; | ||||
| 	source = s; | ||||
| 	if (yylex(ONEWORD) != LWORD) | ||||
| 		internal_errorf("bad substitution"); | ||||
| 		internal_errorf(Tbadsubst); | ||||
| 	source = sold; | ||||
| 	afree(s, ATEMP); | ||||
| 	return (evalstr(yylval.cp, f)); | ||||
| @@ -382,7 +382,7 @@ expand( | ||||
| 						*end = EOS; | ||||
| 					str = snptreef(NULL, 64, "%S", beg); | ||||
| 					afree(beg, ATEMP); | ||||
| 					errorf("%s: %s", str, "bad substitution"); | ||||
| 					errorf("%s: %s", str, Tbadsubst); | ||||
| 				} | ||||
| 				if (f & DOBLANK) | ||||
| 					doblank++; | ||||
| @@ -1133,7 +1133,7 @@ varsub(Expand *xp, const char *sp, const char *word, | ||||
| 			} | ||||
| 		} | ||||
| 		if (Flag(FNOUNSET) && c == 0 && !zero_ok) | ||||
| 			errorf("%s: %s", sp, "parameter not set"); | ||||
| 			errorf("%s: parameter not set", sp); | ||||
| 		/* unqualified variable/string substitution */ | ||||
| 		*stypep = 0; | ||||
| 		xp->str = shf_smprintf("%d", c); | ||||
| @@ -1287,7 +1287,7 @@ varsub(Expand *xp, const char *sp, const char *word, | ||||
| 		state = XBASE; | ||||
| 	if (Flag(FNOUNSET) && xp->str == null && !zero_ok && | ||||
| 	    (ctype(c, C_SUBOP2) || (state != XBASE && c != '+'))) | ||||
| 		errorf("%s: %s", sp, "parameter not set"); | ||||
| 		errorf("%s: parameter not set", sp); | ||||
| 	return (state); | ||||
| } | ||||
|  | ||||
|   | ||||
							
								
								
									
										8
									
								
								exec.c
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								exec.c
									
									
									
									
									
								
							| @@ -2,7 +2,7 @@ | ||||
|  | ||||
| /*- | ||||
|  * Copyright (c) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, | ||||
|  *		 2011, 2012, 2013, 2014, 2015 | ||||
|  *		 2011, 2012, 2013, 2014, 2015, 2016 | ||||
|  *	mirabilos <m@mirbsd.org> | ||||
|  * | ||||
|  * Provided that these terms and disclaimer and all copyright notices | ||||
| @@ -23,7 +23,7 @@ | ||||
|  | ||||
| #include "sh.h" | ||||
|  | ||||
| __RCSID("$MirOS: src/bin/mksh/exec.c,v 1.170 2015/12/31 21:03:47 tg Exp $"); | ||||
| __RCSID("$MirOS: src/bin/mksh/exec.c,v 1.171 2016/01/21 18:24:39 tg Exp $"); | ||||
|  | ||||
| #ifndef MKSH_DEFAULT_EXECSHELL | ||||
| #define MKSH_DEFAULT_EXECSHELL	MKSH_UNIXROOT "/bin/sh" | ||||
| @@ -1559,7 +1559,7 @@ hereinval(struct ioword *iop, int sub, char **resbuf, struct shf *shf) | ||||
| 		s->start = s->str = ccp; | ||||
| 		source = s; | ||||
| 		if (yylex(sub) != LWORD) | ||||
| 			internal_errorf("%s: %s", "herein", "yylex"); | ||||
| 			internal_errorf("herein: yylex"); | ||||
| 		source = osource; | ||||
| 		ccp = evalstr(yylval.cp, DOSCALAR | DOHEREDOC); | ||||
| 	} | ||||
| @@ -1583,7 +1583,7 @@ herein(struct ioword *iop, char **resbuf) | ||||
|  | ||||
| 	/* ksh -c 'cat <<EOF' can cause this... */ | ||||
| 	if (iop->heredoc == NULL && !(iop->ioflag & IOHERESTR)) { | ||||
| 		warningf(true, "%s missing", "here document"); | ||||
| 		warningf(true, Tmissinghere); | ||||
| 		/* special to iosetup(): don't print error */ | ||||
| 		return (-2); | ||||
| 	} | ||||
|   | ||||
							
								
								
									
										39
									
								
								funcs.c
									
									
									
									
									
								
							
							
						
						
									
										39
									
								
								funcs.c
									
									
									
									
									
								
							| @@ -38,7 +38,7 @@ | ||||
| #endif | ||||
| #endif | ||||
|  | ||||
| __RCSID("$MirOS: src/bin/mksh/funcs.c,v 1.293 2016/01/20 21:34:11 tg Exp $"); | ||||
| __RCSID("$MirOS: src/bin/mksh/funcs.c,v 1.294 2016/01/21 18:24:39 tg Exp $"); | ||||
|  | ||||
| #if HAVE_KILLPG | ||||
| /* | ||||
| @@ -594,9 +594,8 @@ c_whence(const char **wp) | ||||
| 			break; | ||||
| 		case CALIAS: | ||||
| 			if (vflag) | ||||
| 				shprintf("n %s%s for ", | ||||
| 				    (tp->flag & EXPORT) ? "exported " : null, | ||||
| 				    Talias); | ||||
| 				shprintf("n %salias for ", | ||||
| 				    (tp->flag & EXPORT) ? "exported " : null); | ||||
| 			if (!iam_whence && !vflag) | ||||
| 				shprintf("%s %s=", Talias, id); | ||||
| 			print_value_quoted(shl_stdout, tp->val.s); | ||||
| @@ -988,27 +987,27 @@ c_typeset_vardump(struct tbl *vp, uint32_t flag, int thing, bool pflag, | ||||
| 			 */ | ||||
| 			shprintf("%s %s", Ttypeset, ""); | ||||
| 			if (((vp->flag & (ARRAY | ASSOC)) == ASSOC)) | ||||
| 				shprintf("%s ", "-n"); | ||||
| 				shprintf("-%c ", 'n'); | ||||
| 			if ((vp->flag & INTEGER)) | ||||
| 				shprintf("%s ", "-i"); | ||||
| 				shprintf("-%c ", 'i'); | ||||
| 			if ((vp->flag & EXPORT)) | ||||
| 				shprintf("%s ", "-x"); | ||||
| 				shprintf("-%c ", 'x'); | ||||
| 			if ((vp->flag & RDONLY)) | ||||
| 				shprintf("%s ", "-r"); | ||||
| 				shprintf("-%c ", 'r'); | ||||
| 			if ((vp->flag & TRACE)) | ||||
| 				shprintf("%s ", "-t"); | ||||
| 				shprintf("-%c ", 't'); | ||||
| 			if ((vp->flag & LJUST)) | ||||
| 				shprintf("-L%d ", vp->u2.field); | ||||
| 			if ((vp->flag & RJUST)) | ||||
| 				shprintf("-R%d ", vp->u2.field); | ||||
| 			if ((vp->flag & ZEROFIL)) | ||||
| 				shprintf("%s ", "-Z"); | ||||
| 				shprintf("-%c ", 'Z'); | ||||
| 			if ((vp->flag & LCASEV)) | ||||
| 				shprintf("%s ", "-l"); | ||||
| 				shprintf("-%c ", 'l'); | ||||
| 			if ((vp->flag & UCASEV_AL)) | ||||
| 				shprintf("%s ", "-u"); | ||||
| 				shprintf("-%c ", 'u'); | ||||
| 			if ((vp->flag & INT_U)) | ||||
| 				shprintf("%s ", "-U"); | ||||
| 				shprintf("-%c ", 'U'); | ||||
| 		} else if (pflag) { | ||||
| 			shprintf("%s %s", istset ? Ttypeset : | ||||
| 			    (flag & EXPORT) ? Texport : Treadonly, ""); | ||||
| @@ -1904,7 +1903,7 @@ c_read(const char **wp) | ||||
| 		break; | ||||
| 	case 'p': | ||||
| 		if ((fd = coproc_getfd(R_OK, &ccp)) < 0) { | ||||
| 			bi_errorf("%s: %s", "-p", ccp); | ||||
| 			bi_errorf("-p: %s", ccp); | ||||
| 			return (2); | ||||
| 		} | ||||
| 		break; | ||||
| @@ -2369,8 +2368,8 @@ c_trap(const char **wp) | ||||
| 	i = 0; | ||||
| 	while (*wp) | ||||
| 		if (!(p = gettrap(*wp++, true, true))) { | ||||
| 			warningf(true, "%s: %s '%s'", builtin_argv0, | ||||
| 			    "bad signal", wp[-1]); | ||||
| 			warningf(true, "%s: bad signal '%s'", | ||||
| 			    builtin_argv0, wp[-1]); | ||||
| 			i = 1; | ||||
| 		} else | ||||
| 			settrap(p, s); | ||||
| @@ -2437,7 +2436,7 @@ c_brkcont(const char **wp) | ||||
| 		goto c_brkcont_err; | ||||
| 	if (n <= 0) { | ||||
| 		/* AT&T ksh does this for non-interactive shells only - weird */ | ||||
| 		bi_errorf("%s: %s", arg, "bad value"); | ||||
| 		bi_errorf("%s: bad value", arg); | ||||
| 		goto c_brkcont_err; | ||||
| 	} | ||||
| 	quit = (unsigned int)n; | ||||
| @@ -2458,7 +2457,7 @@ c_brkcont(const char **wp) | ||||
| 		 * scripts, but don't generate an error (ie, keep going). | ||||
| 		 */ | ||||
| 		if ((unsigned int)n == quit) { | ||||
| 			warningf(true, "%s: %s %s", wp[0], "can't", wp[0]); | ||||
| 			warningf(true, "%s: can't %s", wp[0], wp[0]); | ||||
| 			return (0); | ||||
| 		} | ||||
| 		/* | ||||
| @@ -2821,8 +2820,8 @@ c_mknod(const char **wp) | ||||
| 		umask(oldmode); | ||||
| 	return (rv); | ||||
|  c_mknod_usage: | ||||
| 	bi_errorf("%s: %s", "usage", "mknod [-m mode] name b|c major minor"); | ||||
| 	bi_errorf("%s: %s", "usage", "mknod [-m mode] name p"); | ||||
| 	bi_errorf("usage: mknod [-m mode] name %s", "b|c major minor"); | ||||
| 	bi_errorf("usage: mknod [-m mode] name %s", "p"); | ||||
| 	return (1); | ||||
| } | ||||
| #endif | ||||
|   | ||||
| @@ -27,7 +27,7 @@ | ||||
| #include <sys/file.h> | ||||
| #endif | ||||
|  | ||||
| __RCSID("$MirOS: src/bin/mksh/histrap.c,v 1.152 2016/01/14 23:18:08 tg Exp $"); | ||||
| __RCSID("$MirOS: src/bin/mksh/histrap.c,v 1.153 2016/01/21 18:24:40 tg Exp $"); | ||||
|  | ||||
| Trap sigtraps[ksh_NSIG + 1]; | ||||
| static struct sigaction Sigact_ign; | ||||
| @@ -217,7 +217,7 @@ c_fc(const char **wp) | ||||
| 				xp += rep_len; | ||||
| 			} | ||||
| 			if (!any_subst) { | ||||
| 				bi_errorf("bad substitution"); | ||||
| 				bi_errorf(Tbadsubst); | ||||
| 				return (1); | ||||
| 			} | ||||
| 			len = strlen(s) + 1; | ||||
|   | ||||
							
								
								
									
										53
									
								
								jobs.c
									
									
									
									
									
								
							
							
						
						
									
										53
									
								
								jobs.c
									
									
									
									
									
								
							| @@ -23,7 +23,7 @@ | ||||
|  | ||||
| #include "sh.h" | ||||
|  | ||||
| __RCSID("$MirOS: src/bin/mksh/jobs.c,v 1.117 2016/01/14 23:18:09 tg Exp $"); | ||||
| __RCSID("$MirOS: src/bin/mksh/jobs.c,v 1.118 2016/01/21 18:24:41 tg Exp $"); | ||||
|  | ||||
| #if HAVE_KILLPG | ||||
| #define mksh_killpg		killpg | ||||
| @@ -238,11 +238,11 @@ j_suspend(void) | ||||
| 			mksh_tcset(tty_fd, &tty_state); | ||||
| 		if (restore_ttypgrp >= 0) { | ||||
| 			if (tcsetpgrp(tty_fd, restore_ttypgrp) < 0) { | ||||
| 				warningf(false, "%s: %s %s: %s", "j_suspend", | ||||
| 				    "tcsetpgrp", "failed", cstrerror(errno)); | ||||
| 				warningf(false, "%s: %s failed: %s", | ||||
| 				    "j_suspend", "tcsetpgrp", cstrerror(errno)); | ||||
| 			} else if (setpgid(0, restore_ttypgrp) < 0) { | ||||
| 				warningf(false, "%s: %s %s: %s", "j_suspend", | ||||
| 				    "setpgid", "failed", cstrerror(errno)); | ||||
| 				warningf(false, "%s: %s failed: %s", | ||||
| 				    "j_suspend", "setpgid", cstrerror(errno)); | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| @@ -259,12 +259,12 @@ j_suspend(void) | ||||
| 	if (ttypgrp_ok) { | ||||
| 		if (restore_ttypgrp >= 0) { | ||||
| 			if (setpgid(0, kshpid) < 0) { | ||||
| 				warningf(false, "%s: %s %s: %s", "j_suspend", | ||||
| 				    "setpgid", "failed", cstrerror(errno)); | ||||
| 				warningf(false, "%s: %s failed: %s", | ||||
| 				    "j_suspend", "setpgid", cstrerror(errno)); | ||||
| 				ttypgrp_ok = false; | ||||
| 			} else if (tcsetpgrp(tty_fd, kshpid) < 0) { | ||||
| 				warningf(false, "%s: %s %s: %s", "j_suspend", | ||||
| 				    "tcsetpgrp", "failed", cstrerror(errno)); | ||||
| 				warningf(false, "%s: %s failed: %s", | ||||
| 				    "j_suspend", "tcsetpgrp", cstrerror(errno)); | ||||
| 				ttypgrp_ok = false; | ||||
| 			} | ||||
| 		} | ||||
| @@ -349,8 +349,8 @@ j_change(void) | ||||
| 				pid_t ttypgrp; | ||||
|  | ||||
| 				if ((ttypgrp = tcgetpgrp(tty_fd)) < 0) { | ||||
| 					warningf(false, "%s: %s %s: %s", | ||||
| 					    "j_init", "tcgetpgrp", "failed", | ||||
| 					warningf(false, "%s: %s failed: %s", | ||||
| 					    "j_init", "tcgetpgrp", | ||||
| 					    cstrerror(errno)); | ||||
| 					ttypgrp_ok = false; | ||||
| 					break; | ||||
| @@ -365,13 +365,13 @@ j_change(void) | ||||
| 			    SS_RESTORE_DFL|SS_FORCE); | ||||
| 		if (ttypgrp_ok && kshpgrp != kshpid) { | ||||
| 			if (setpgid(0, kshpid) < 0) { | ||||
| 				warningf(false, "%s: %s %s: %s", "j_init", | ||||
| 				    "setpgid", "failed", cstrerror(errno)); | ||||
| 				warningf(false, "%s: %s failed: %s", | ||||
| 				    "j_init", "setpgid", cstrerror(errno)); | ||||
| 				ttypgrp_ok = false; | ||||
| 			} else { | ||||
| 				if (tcsetpgrp(tty_fd, kshpid) < 0) { | ||||
| 					warningf(false, "%s: %s %s: %s", | ||||
| 					    "j_init", "tcsetpgrp", "failed", | ||||
| 					warningf(false, "%s: %s failed: %s", | ||||
| 					    "j_init", "tcsetpgrp", | ||||
| 					    cstrerror(errno)); | ||||
| 					ttypgrp_ok = false; | ||||
| 				} else | ||||
| @@ -467,8 +467,7 @@ exchild(struct op *t, int flags, | ||||
| 	if (flags & XPIPEI) { | ||||
| 		/* continuing with a pipe */ | ||||
| 		if (!last_job) | ||||
| 			internal_errorf("%s %d", | ||||
| 			    "exchild: XPIPEI and no last_job - pid", | ||||
| 			internal_errorf("exchild: XPIPEI and no last_job - pid %d", | ||||
| 			    (int)procpid); | ||||
| 		j = last_job; | ||||
| 		if (last_proc) | ||||
| @@ -601,7 +600,7 @@ exchild(struct op *t, int flags, | ||||
| #ifndef MKSH_SMALL | ||||
| 		if (t->type == TPIPE) | ||||
| 			unwind(LLEAVE); | ||||
| 		internal_warningf("%s: %s", "exchild", "execute() returned"); | ||||
| 		internal_warningf("%s: execute() returned", "exchild"); | ||||
| 		fptreef(shl_out, 8, "%s: tried to execute {\n\t%T\n}\n", | ||||
| 		    "exchild", t); | ||||
| 		shf_flush(shl_out); | ||||
| @@ -862,10 +861,10 @@ j_resume(const char *cp, int bg) | ||||
| 				if (j->flags & JF_SAVEDTTY) | ||||
| 					mksh_tcset(tty_fd, &tty_state); | ||||
| 				sigprocmask(SIG_SETMASK, &omask, NULL); | ||||
| 				bi_errorf("%s %s(%d, %ld) %s: %s", | ||||
| 				    "1st", "tcsetpgrp", tty_fd, | ||||
| 				bi_errorf("%s %s(%d, %ld) failed: %s", | ||||
| 				    "fg: 1st", "tcsetpgrp", tty_fd, | ||||
| 				    (long)((j->flags & JF_SAVEDTTYPGRP) ? | ||||
| 				    j->saved_ttypgrp : j->pgrp), "failed", | ||||
| 				    j->saved_ttypgrp : j->pgrp), | ||||
| 				    cstrerror(rv)); | ||||
| 				return (1); | ||||
| 			} | ||||
| @@ -884,9 +883,9 @@ j_resume(const char *cp, int bg) | ||||
| 			if (ttypgrp_ok && (j->flags & JF_SAVEDTTY)) | ||||
| 				mksh_tcset(tty_fd, &tty_state); | ||||
| 			if (ttypgrp_ok && tcsetpgrp(tty_fd, kshpgrp) < 0) | ||||
| 				warningf(true, "%s %s(%d, %ld) %s: %s", | ||||
| 				warningf(true, "%s %s(%d, %ld) failed: %s", | ||||
| 				    "fg: 2nd", "tcsetpgrp", tty_fd, | ||||
| 				    (long)kshpgrp, "failed", cstrerror(errno)); | ||||
| 				    (long)kshpgrp, cstrerror(errno)); | ||||
| 		} | ||||
| 		sigprocmask(SIG_SETMASK, &omask, NULL); | ||||
| 		bi_errorf("%s %s: %s", "can't continue job", | ||||
| @@ -1176,9 +1175,9 @@ j_waitj(Job *j, | ||||
| 			    (j->saved_ttypgrp = tcgetpgrp(tty_fd)) >= 0) | ||||
| 				j->flags |= JF_SAVEDTTYPGRP; | ||||
| 			if (tcsetpgrp(tty_fd, kshpgrp) < 0) | ||||
| 				warningf(true, "%s %s(%d, %ld) %s: %s", | ||||
| 				warningf(true, "%s %s(%d, %ld) failed: %s", | ||||
| 				    "j_waitj:", "tcsetpgrp", tty_fd, | ||||
| 				    (long)kshpgrp, "failed", cstrerror(errno)); | ||||
| 				    (long)kshpgrp, cstrerror(errno)); | ||||
| 			if (j->state == PSTOPPED) { | ||||
| 				j->flags |= JF_SAVEDTTY; | ||||
| 				mksh_tcget(tty_fd, &j->ttystat); | ||||
| @@ -1904,8 +1903,8 @@ tty_init_talking(void) | ||||
| #endif | ||||
| 		break; | ||||
| 	case 3: | ||||
| 		warningf(false, "%s: %s %s: %s", "j_ttyinit", | ||||
| 		    "dup of tty fd", "failed", cstrerror(errno)); | ||||
| 		warningf(false, "%s: %s failed: %s", "j_ttyinit", | ||||
| 		    "dup of tty fd", cstrerror(errno)); | ||||
| 		break; | ||||
| 	case 4: | ||||
| 		warningf(false, "%s: %s: %s", "j_ttyinit", | ||||
|   | ||||
							
								
								
									
										4
									
								
								lex.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								lex.c
									
									
									
									
									
								
							| @@ -23,7 +23,7 @@ | ||||
|  | ||||
| #include "sh.h" | ||||
|  | ||||
| __RCSID("$MirOS: src/bin/mksh/lex.c,v 1.218 2016/01/20 21:34:12 tg Exp $"); | ||||
| __RCSID("$MirOS: src/bin/mksh/lex.c,v 1.219 2016/01/21 18:24:41 tg Exp $"); | ||||
|  | ||||
| /* | ||||
|  * states while lexing word | ||||
| @@ -1173,7 +1173,7 @@ readhere(struct ioword *iop) | ||||
| 	while (c != '\n') { | ||||
| 		if (!c) | ||||
| 			/* oops, reached EOF */ | ||||
| 			yyerror("%s '%s' unclosed\n", "here document", eof); | ||||
| 			yyerror("%s '%s' unclosed\n", Theredoc, eof); | ||||
| 		/* store character */ | ||||
| 		Xcheck(xs, xp); | ||||
| 		Xput(xs, xp, c); | ||||
|   | ||||
							
								
								
									
										10
									
								
								main.c
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								main.c
									
									
									
									
									
								
							| @@ -5,7 +5,7 @@ | ||||
|  | ||||
| /*- | ||||
|  * Copyright (c) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, | ||||
|  *		 2011, 2012, 2013, 2014, 2015 | ||||
|  *		 2011, 2012, 2013, 2014, 2015, 2016 | ||||
|  *	mirabilos <m@mirbsd.org> | ||||
|  * | ||||
|  * Provided that these terms and disclaimer and all copyright notices | ||||
| @@ -34,7 +34,7 @@ | ||||
| #include <locale.h> | ||||
| #endif | ||||
|  | ||||
| __RCSID("$MirOS: src/bin/mksh/main.c,v 1.306 2015/10/09 21:36:57 tg Exp $"); | ||||
| __RCSID("$MirOS: src/bin/mksh/main.c,v 1.307 2016/01/21 18:24:42 tg Exp $"); | ||||
|  | ||||
| extern char **environ; | ||||
|  | ||||
| @@ -435,7 +435,7 @@ main_init(int argc, const char *argv[], Source **sp, struct block **lp) | ||||
| 	} else if (Flag(FCOMMAND)) { | ||||
| 		s = pushs(SSTRINGCMDLINE, ATEMP); | ||||
| 		if (!(s->start = s->str = argv[argi++])) | ||||
| 			errorf("%s %s", "-c", "requires an argument"); | ||||
| 			errorf("-c %s", "requires an argument"); | ||||
| 		while (*s->str) { | ||||
| 			if (*s->str != ' ' && ctype(*s->str, C_QUOTE)) | ||||
| 				break; | ||||
| @@ -704,7 +704,7 @@ include(const char *name, int argc, const char **argv, bool intr_ok) | ||||
| 			unwind(i); | ||||
| 			/* NOTREACHED */ | ||||
| 		default: | ||||
| 			internal_errorf("%s %d", "include", i); | ||||
| 			internal_errorf("include %d", i); | ||||
| 			/* NOTREACHED */ | ||||
| 		} | ||||
| 	} | ||||
| @@ -796,7 +796,7 @@ shell(Source * volatile s, volatile bool toplevel) | ||||
| 	default: | ||||
| 		source = old_source; | ||||
| 		quitenv(NULL); | ||||
| 		internal_errorf("%s %d", "shell", i); | ||||
| 		internal_errorf("shell %d", i); | ||||
| 		/* NOTREACHED */ | ||||
| 	} | ||||
| 	while (/* CONSTCOND */ 1) { | ||||
|   | ||||
							
								
								
									
										6
									
								
								misc.c
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								misc.c
									
									
									
									
									
								
							| @@ -3,7 +3,7 @@ | ||||
|  | ||||
| /*- | ||||
|  * Copyright (c) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, | ||||
|  *		 2011, 2012, 2013, 2014, 2015 | ||||
|  *		 2011, 2012, 2013, 2014, 2015, 2016 | ||||
|  *	mirabilos <m@mirbsd.org> | ||||
|  * | ||||
|  * Provided that these terms and disclaimer and all copyright notices | ||||
| @@ -30,7 +30,7 @@ | ||||
| #include <grp.h> | ||||
| #endif | ||||
|  | ||||
| __RCSID("$MirOS: src/bin/mksh/misc.c,v 1.240 2015/10/09 16:11:17 tg Exp $"); | ||||
| __RCSID("$MirOS: src/bin/mksh/misc.c,v 1.241 2016/01/21 18:24:43 tg Exp $"); | ||||
|  | ||||
| #define KSH_CHVT_FLAG | ||||
| #ifdef MKSH_SMALL | ||||
| @@ -1861,7 +1861,7 @@ c_cd(const char **wp) | ||||
| 		 * we don't | ||||
| 		 */ | ||||
| 		if ((cp = strstr(current_wd, wp[0])) == NULL) { | ||||
| 			bi_errorf("bad substitution"); | ||||
| 			bi_errorf(Tbadsubst); | ||||
| 			return (2); | ||||
| 		} | ||||
| 		/*- | ||||
|   | ||||
							
								
								
									
										10
									
								
								sh.h
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								sh.h
									
									
									
									
									
								
							| @@ -175,9 +175,9 @@ | ||||
| #endif | ||||
|  | ||||
| #ifdef EXTERN | ||||
| __RCSID("$MirOS: src/bin/mksh/sh.h,v 1.757 2016/01/20 21:34:13 tg Exp $"); | ||||
| __RCSID("$MirOS: src/bin/mksh/sh.h,v 1.758 2016/01/21 18:24:43 tg Exp $"); | ||||
| #endif | ||||
| #define MKSH_VERSION "R52 2016/01/20" | ||||
| #define MKSH_VERSION "R52 2016/01/21" | ||||
|  | ||||
| /* arithmetic types: C implementation */ | ||||
| #if !HAVE_CAN_INTTYPES | ||||
| @@ -578,7 +578,7 @@ char *ucstrstr(char *, const char *); | ||||
| #define mkssert(e)	do { } while (/* CONSTCOND */ 0) | ||||
| #endif | ||||
|  | ||||
| #if (!defined(MKSH_BUILDMAKEFILE4BSD) && !defined(MKSH_BUILDSH)) || (MKSH_BUILD_R != 521) | ||||
| #if (!defined(MKSH_BUILDMAKEFILE4BSD) && !defined(MKSH_BUILDSH)) || (MKSH_BUILD_R != 522) | ||||
| #error Must run Build.sh to compile this. | ||||
| extern void thiswillneverbedefinedIhope(void); | ||||
| int | ||||
| @@ -866,6 +866,10 @@ EXTERN const char T_function[] E_INIT(" function"); | ||||
| #define Tfunction	(T_function + 1)	/* "function" */ | ||||
| EXTERN const char T_funny_command[] E_INIT("funny $() command"); | ||||
| #define Tcommand	(T_funny_command + 10)	/* "command" */ | ||||
| EXTERN const char Tfg_badsubst[] E_INIT("fileglob: bad substitution"); | ||||
| #define Tbadsubst	(Tfg_badsubst + 10)	/* "bad substitution" */ | ||||
| EXTERN const char Tmissinghere[] E_INIT("missing here document"); | ||||
| #define Theredoc	(Tmissinghere + 8)	/* "here document" */ | ||||
| EXTERN const char TC_LEX1[] E_INIT("|&;<>() \t\n"); | ||||
| #define TC_IFSWS	(TC_LEX1 + 7)		/* space tab newline */ | ||||
|  | ||||
|   | ||||
							
								
								
									
										10
									
								
								syn.c
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								syn.c
									
									
									
									
									
								
							| @@ -23,7 +23,7 @@ | ||||
|  | ||||
| #include "sh.h" | ||||
|  | ||||
| __RCSID("$MirOS: src/bin/mksh/syn.c,v 1.109 2016/01/19 23:12:15 tg Exp $"); | ||||
| __RCSID("$MirOS: src/bin/mksh/syn.c,v 1.110 2016/01/21 18:24:44 tg Exp $"); | ||||
|  | ||||
| struct nesting_state { | ||||
| 	int start_token;	/* token than began nesting (eg, FOR) */ | ||||
| @@ -447,8 +447,8 @@ get_command(int cf) | ||||
| 		t = newtp((c == FOR) ? TFOR : TSELECT); | ||||
| 		musthave(LWORD, CMDASN); | ||||
| 		if (!is_wdvarname(yylval.cp, true)) | ||||
| 			yyerror("%s: %s\n", c == FOR ? "for" : Tselect, | ||||
| 			    "bad identifier"); | ||||
| 			yyerror("%s: bad identifier\n", | ||||
| 			    c == FOR ? "for" : Tselect); | ||||
| 		strdupx(t->str, ident, ATEMP); | ||||
| 		nesting_push(&old_nesting, c); | ||||
| 		t->vars = wordlist(); | ||||
| @@ -705,7 +705,7 @@ function_body(char *name, | ||||
| 	 */ | ||||
| 	for (p = sname; *p; p++) | ||||
| 		if (ctype(*p, C_QUOTE)) | ||||
| 			yyerror("%s: %s\n", sname, "invalid function name"); | ||||
| 			yyerror("%s: invalid function name\n", sname); | ||||
|  | ||||
| 	/* | ||||
| 	 * Note that POSIX allows only compound statements after foo(), | ||||
| @@ -872,7 +872,7 @@ syntaxerr(const char *what) | ||||
| 			goto Again; | ||||
| 		} | ||||
| 		/* don't quote the EOF */ | ||||
| 		yyerror("%s: %s %s\n", Tsynerr, "unexpected", "EOF"); | ||||
| 		yyerror("%s: unexpected EOF\n", Tsynerr); | ||||
| 		/* NOTREACHED */ | ||||
|  | ||||
| 	case LWORD: | ||||
|   | ||||
							
								
								
									
										4
									
								
								tree.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								tree.c
									
									
									
									
									
								
							| @@ -23,7 +23,7 @@ | ||||
|  | ||||
| #include "sh.h" | ||||
|  | ||||
| __RCSID("$MirOS: src/bin/mksh/tree.c,v 1.80 2016/01/14 22:30:43 tg Exp $"); | ||||
| __RCSID("$MirOS: src/bin/mksh/tree.c,v 1.81 2016/01/21 18:24:45 tg Exp $"); | ||||
|  | ||||
| #define INDENT	8 | ||||
|  | ||||
| @@ -1095,7 +1095,7 @@ dumptree(struct shf *shf, struct op *t) | ||||
| 		goto dumpleftandout; | ||||
| 	OPEN(TFUNCT) | ||||
| 		shf_fprintf(shf, " str<%s> ksh<%s>", t->str, | ||||
| 		    t->u.ksh_func ? "yes" : "no"); | ||||
| 		    t->u.ksh_func ? "true" : "false"); | ||||
| 		goto dumpleftandout; | ||||
| 	OPEN(TTIME) | ||||
| 		goto dumpleftandout; | ||||
|   | ||||
							
								
								
									
										4
									
								
								var.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								var.c
									
									
									
									
									
								
							| @@ -28,7 +28,7 @@ | ||||
| #include <sys/sysctl.h> | ||||
| #endif | ||||
|  | ||||
| __RCSID("$MirOS: src/bin/mksh/var.c,v 1.197 2016/01/14 22:49:33 tg Exp $"); | ||||
| __RCSID("$MirOS: src/bin/mksh/var.c,v 1.198 2016/01/21 18:24:45 tg Exp $"); | ||||
|  | ||||
| /*- | ||||
|  * Variables | ||||
| @@ -241,7 +241,7 @@ global(const char *n) | ||||
| 	c = (unsigned char)vn[0]; | ||||
| 	if (!ksh_isalphx(c)) { | ||||
| 		if (array) | ||||
| 			errorf("bad substitution"); | ||||
| 			errorf(Tbadsubst); | ||||
| 		vp = &vtemp; | ||||
| 		vp->flag = DEFINED; | ||||
| 		vp->type = 0; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user