• add patch from Robert Luberda <robert@debian.org> fixing the
four-argument form of test (yet again…), thanks • drop the obsolete (pre-POSIX) form “test -t” without fd
This commit is contained in:
		
							
								
								
									
										36
									
								
								check.t
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								check.t
									
									
									
									
									
								
							| @@ -1,4 +1,4 @@ | |||||||
| # $MirOS: src/bin/mksh/check.t,v 1.450 2011/05/05 00:04:55 tg Exp $ | # $MirOS: src/bin/mksh/check.t,v 1.451 2011/05/06 15:41:21 tg Exp $ | ||||||
| # $OpenBSD: bksl-nl.t,v 1.2 2001/01/28 23:04:56 niklas Exp $ | # $OpenBSD: bksl-nl.t,v 1.2 2001/01/28 23:04:56 niklas Exp $ | ||||||
| # $OpenBSD: history.t,v 1.5 2001/01/28 23:04:56 niklas Exp $ | # $OpenBSD: history.t,v 1.5 2001/01/28 23:04:56 niklas Exp $ | ||||||
| # $OpenBSD: read.t,v 1.3 2003/03/10 03:48:16 david Exp $ | # $OpenBSD: read.t,v 1.3 2003/03/10 03:48:16 david Exp $ | ||||||
| @@ -25,7 +25,7 @@ | |||||||
| # http://www.research.att.com/~gsf/public/ifs.sh | # http://www.research.att.com/~gsf/public/ifs.sh | ||||||
|  |  | ||||||
| expected-stdout: | expected-stdout: | ||||||
| 	@(#)MIRBSD KSH R39 2011/05/04 | 	@(#)MIRBSD KSH R39 2011/05/06 | ||||||
| description: | description: | ||||||
| 	Check version of shell. | 	Check version of shell. | ||||||
| stdin: | stdin: | ||||||
| @@ -8787,3 +8787,35 @@ stdin: | |||||||
| expected-stdout: | expected-stdout: | ||||||
| 	bar | 	bar | ||||||
| --- | --- | ||||||
|  | name: debian-117-1 | ||||||
|  | description: | ||||||
|  | 	Check test - bug#465250 | ||||||
|  | stdin: | ||||||
|  | 	test \( ! -e \) ; echo $? | ||||||
|  | expected-stdout: | ||||||
|  | 	1 | ||||||
|  | --- | ||||||
|  | name: debian-117-2 | ||||||
|  | description: | ||||||
|  | 	Check test - bug#465250 | ||||||
|  | stdin: | ||||||
|  | 	test \(  -e \) ; echo $? | ||||||
|  | expected-stdout: | ||||||
|  | 	0 | ||||||
|  | --- | ||||||
|  | name: debian-117-3 | ||||||
|  | description: | ||||||
|  | 	Check test - bug#465250 | ||||||
|  | stdin: | ||||||
|  | 	test ! -e  ; echo $? | ||||||
|  | expected-stdout: | ||||||
|  | 	1 | ||||||
|  | --- | ||||||
|  | name: debian-117-4 | ||||||
|  | description: | ||||||
|  | 	Check test - bug#465250 | ||||||
|  | stdin: | ||||||
|  | 	test  -e  ; echo $? | ||||||
|  | expected-stdout: | ||||||
|  | 	0 | ||||||
|  | --- | ||||||
|   | |||||||
							
								
								
									
										19
									
								
								funcs.c
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								funcs.c
									
									
									
									
									
								
							| @@ -38,7 +38,7 @@ | |||||||
| #endif | #endif | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| __RCSID("$MirOS: src/bin/mksh/funcs.c,v 1.185 2011/04/09 21:01:01 tg Exp $"); | __RCSID("$MirOS: src/bin/mksh/funcs.c,v 1.186 2011/05/06 15:41:23 tg Exp $"); | ||||||
|  |  | ||||||
| #if HAVE_KILLPG | #if HAVE_KILLPG | ||||||
| /* | /* | ||||||
| @@ -2542,11 +2542,23 @@ c_test(const char **wp) | |||||||
| 	 * our parser does the right thing for the omitted steps. | 	 * our parser does the right thing for the omitted steps. | ||||||
| 	 */ | 	 */ | ||||||
| 	if (argc <= 5) { | 	if (argc <= 5) { | ||||||
| 		const char **owp = wp; | 		const char **owp = wp, **owpend = te.wp_end; | ||||||
| 		int invert = 0; | 		int invert = 0; | ||||||
| 		Test_op op; | 		Test_op op; | ||||||
| 		const char *opnd1, *opnd2; | 		const char *opnd1, *opnd2; | ||||||
|  |  | ||||||
|  | 		if (argc >= 2 && ((*te.isa)(&te, TM_OPAREN))) { | ||||||
|  | 			te.pos.wp = te.wp_end - 1; | ||||||
|  | 			if ((*te.isa)(&te, TM_CPAREN)) { | ||||||
|  | 				argc -= 2; | ||||||
|  | 				te.wp_end--; | ||||||
|  | 				te.pos.wp = owp + 2; | ||||||
|  | 			} else { | ||||||
|  | 				te.pos.wp = owp + 1; | ||||||
|  | 				te.wp_end = owpend; | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  |  | ||||||
| 		while (--argc >= 0) { | 		while (--argc >= 0) { | ||||||
| 			if ((*te.isa)(&te, TM_END)) | 			if ((*te.isa)(&te, TM_END)) | ||||||
| 				return (!0); | 				return (!0); | ||||||
| @@ -2567,8 +2579,6 @@ c_test(const char **wp) | |||||||
| 			} | 			} | ||||||
| 			if (argc == 1) { | 			if (argc == 1) { | ||||||
| 				opnd1 = (*te.getopnd)(&te, TO_NONOP, 1); | 				opnd1 = (*te.getopnd)(&te, TO_NONOP, 1); | ||||||
| 				if (strcmp(opnd1, "-t") == 0) |  | ||||||
| 				    break; |  | ||||||
| 				res = (*te.eval)(&te, TO_STNZE, opnd1, | 				res = (*te.eval)(&te, TO_STNZE, opnd1, | ||||||
| 				    NULL, 1); | 				    NULL, 1); | ||||||
| 				if (invert & 1) | 				if (invert & 1) | ||||||
| @@ -2581,6 +2591,7 @@ c_test(const char **wp) | |||||||
| 				break; | 				break; | ||||||
| 		} | 		} | ||||||
| 		te.pos.wp = owp + 1; | 		te.pos.wp = owp + 1; | ||||||
|  | 		te.wp_end = owpend; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	return (test_parse(&te)); | 	return (test_parse(&te)); | ||||||
|   | |||||||
							
								
								
									
										8
									
								
								mksh.1
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								mksh.1
									
									
									
									
									
								
							| @@ -1,4 +1,4 @@ | |||||||
| .\" $MirOS: src/bin/mksh/mksh.1,v 1.259 2011/05/05 00:04:58 tg Exp $ | .\" $MirOS: src/bin/mksh/mksh.1,v 1.260 2011/05/06 15:41:24 tg Exp $ | ||||||
| .\" $OpenBSD: ksh.1,v 1.140 2011/04/23 10:14:59 sobrado Exp $ | .\" $OpenBSD: ksh.1,v 1.140 2011/04/23 10:14:59 sobrado Exp $ | ||||||
| .\"- | .\"- | ||||||
| .\" Copyright © 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, | .\" Copyright © 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, | ||||||
| @@ -72,7 +72,7 @@ | |||||||
| .\" with -mandoc, it might implement .Mx itself, but we want to | .\" with -mandoc, it might implement .Mx itself, but we want to | ||||||
| .\" use our own definition. And .Dd must come *first*, always. | .\" use our own definition. And .Dd must come *first*, always. | ||||||
| .\" | .\" | ||||||
| .Dd $Mdocdate: May 5 2011 $ | .Dd $Mdocdate: May 6 2011 $ | ||||||
| .\" | .\" | ||||||
| .\" Check which macro package we use | .\" Check which macro package we use | ||||||
| .\" | .\" | ||||||
| @@ -4229,14 +4229,12 @@ socket. | |||||||
| .It Fl s Ar file | .It Fl s Ar file | ||||||
| .Ar file | .Ar file | ||||||
| is not empty. | is not empty. | ||||||
| .It Fl t Op Ar fd | .It Fl t Ar fd | ||||||
| File descriptor | File descriptor | ||||||
| .Ar fd | .Ar fd | ||||||
| is a | is a | ||||||
| .Xr tty 4 | .Xr tty 4 | ||||||
| device. | device. | ||||||
| .Ar fd |  | ||||||
| may be left out, in which case it is taken to be 1. |  | ||||||
| .It Fl u Ar file | .It Fl u Ar file | ||||||
| .Ar file Ns 's | .Ar file Ns 's | ||||||
| mode has the setuid bit set. | mode has the setuid bit set. | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								sh.h
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								sh.h
									
									
									
									
									
								
							| @@ -151,9 +151,9 @@ | |||||||
| #endif | #endif | ||||||
|  |  | ||||||
| #ifdef EXTERN | #ifdef EXTERN | ||||||
| __RCSID("$MirOS: src/bin/mksh/sh.h,v 1.468 2011/05/05 00:04:59 tg Exp $"); | __RCSID("$MirOS: src/bin/mksh/sh.h,v 1.469 2011/05/06 15:41:25 tg Exp $"); | ||||||
| #endif | #endif | ||||||
| #define MKSH_VERSION "R39 2011/05/04" | #define MKSH_VERSION "R39 2011/05/06" | ||||||
|  |  | ||||||
| #ifndef MKSH_INCLUDES_ONLY | #ifndef MKSH_INCLUDES_ONLY | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user