/me is annoyed
I read, IIRC in the Cederqvist, that 'cvs tag' sets a sticky tag onto the cwd… it doesn’t, apparently. (I actually like it better this way, but one needs to know!)
This commit is contained in:
		
							
								
								
									
										6
									
								
								check.t
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								check.t
									
									
									
									
									
								
							| @@ -1,4 +1,4 @@ | |||||||
| # $MirOS: src/bin/mksh/check.t,v 1.344 2009/11/28 14:21:41 tg Exp $ | # $MirOS: src/bin/mksh/check.t,v 1.345 2009/11/28 14:27:58 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 $ | ||||||
| @@ -6699,12 +6699,8 @@ description: | |||||||
| 	Check some corner cases | 	Check some corner cases | ||||||
| stdin: | stdin: | ||||||
| 	print % $% . | 	print % $% . | ||||||
| 	set -U |  | ||||||
| 	x='a	b' |  | ||||||
| 	print c ${%x} . |  | ||||||
| expected-stdout: | expected-stdout: | ||||||
| 	% $% . | 	% $% . | ||||||
| 	c -1 . |  | ||||||
| --- | --- | ||||||
| name: wcswidth-3 | name: wcswidth-3 | ||||||
| description: | description: | ||||||
|   | |||||||
							
								
								
									
										7
									
								
								eval.c
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								eval.c
									
									
									
									
									
								
							| @@ -22,7 +22,7 @@ | |||||||
|  |  | ||||||
| #include "sh.h" | #include "sh.h" | ||||||
|  |  | ||||||
| __RCSID("$MirOS: src/bin/mksh/eval.c,v 1.75 2009/11/28 14:21:43 tg Exp $"); | __RCSID("$MirOS: src/bin/mksh/eval.c,v 1.76 2009/11/28 14:27:59 tg Exp $"); | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * string expansion |  * string expansion | ||||||
| @@ -949,13 +949,12 @@ varsub(Expand *xp, const char *sp, const char *word, | |||||||
| 		} else { | 		} else { | ||||||
| 			p = str_val(global(sp)); | 			p = str_val(global(sp)); | ||||||
| 			zero_ok = p != null; | 			zero_ok = p != null; | ||||||
| 			c = stype == '#' ? (int)utflen(p) : | 			c = stype == '#' ? (int)utflen(p) : utf_mbswidth(p); | ||||||
| 			    utf_mbswidth(p, false); |  | ||||||
| 		} | 		} | ||||||
| 		if (Flag(FNOUNSET) && c == 0 && !zero_ok) | 		if (Flag(FNOUNSET) && c == 0 && !zero_ok) | ||||||
| 			errorf("%s: parameter not set", sp); | 			errorf("%s: parameter not set", sp); | ||||||
| 		*stypep = 0; /* unqualified variable/string substitution */ | 		*stypep = 0; /* unqualified variable/string substitution */ | ||||||
| 		xp->str = shf_smprintf("%d", c); | 		xp->str = shf_smprintf("%u", (unsigned int)c); | ||||||
| 		return (XSUB); | 		return (XSUB); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										6
									
								
								exec.c
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								exec.c
									
									
									
									
									
								
							| @@ -22,7 +22,7 @@ | |||||||
|  |  | ||||||
| #include "sh.h" | #include "sh.h" | ||||||
|  |  | ||||||
| __RCSID("$MirOS: src/bin/mksh/exec.c,v 1.69 2009/11/28 14:21:43 tg Exp $"); | __RCSID("$MirOS: src/bin/mksh/exec.c,v 1.70 2009/11/28 14:28:00 tg Exp $"); | ||||||
|  |  | ||||||
| static int comexec(struct op *, struct tbl *volatile, const char **, | static int comexec(struct op *, struct tbl *volatile, const char **, | ||||||
|     int volatile, volatile int *); |     int volatile, volatile int *); | ||||||
| @@ -1380,7 +1380,7 @@ pr_menu(const char * const *ap) | |||||||
| 		i = strlen(*pp); | 		i = strlen(*pp); | ||||||
| 		if (i > aocts) | 		if (i > aocts) | ||||||
| 			aocts = i; | 			aocts = i; | ||||||
| 		i = utf_mbswidth(*pp, true); | 		i = utf_mbswidth(*pp); | ||||||
| 		if (i > acols) | 		if (i > acols) | ||||||
| 			acols = i; | 			acols = i; | ||||||
| 	} | 	} | ||||||
| @@ -1420,7 +1420,7 @@ pr_list(char * const *ap) | |||||||
| 		i = strlen(*pp); | 		i = strlen(*pp); | ||||||
| 		if (i > aocts) | 		if (i > aocts) | ||||||
| 			aocts = i; | 			aocts = i; | ||||||
| 		i = utf_mbswidth(*pp, true); | 		i = utf_mbswidth(*pp); | ||||||
| 		if (i > acols) | 		if (i > acols) | ||||||
| 			acols = i; | 			acols = i; | ||||||
| 	} | 	} | ||||||
|   | |||||||
							
								
								
									
										19
									
								
								expr.c
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								expr.c
									
									
									
									
									
								
							| @@ -22,7 +22,7 @@ | |||||||
|  |  | ||||||
| #include "sh.h" | #include "sh.h" | ||||||
|  |  | ||||||
| __RCSID("$MirOS: src/bin/mksh/expr.c,v 1.38 2009/11/28 14:21:44 tg Exp $"); | __RCSID("$MirOS: src/bin/mksh/expr.c,v 1.39 2009/11/28 14:28:00 tg Exp $"); | ||||||
|  |  | ||||||
| /* The order of these enums is constrained by the order of opinfo[] */ | /* The order of these enums is constrained by the order of opinfo[] */ | ||||||
| enum token { | enum token { | ||||||
| @@ -683,15 +683,8 @@ utf_widthadj(const char *src, const char **dst) | |||||||
| 	return (width); | 	return (width); | ||||||
| } | } | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * In lenient mode, characters of width -1 are handled as one column |  | ||||||
|  * per octet (kind of as a strlen replacement). Users of lenient mo- |  | ||||||
|  * de should reconsider the code. |  | ||||||
|  * In strict mode, this behaves like wcswidth(3) and returns -1 upon |  | ||||||
|  * encounter of a control multibyte character. |  | ||||||
|  */ |  | ||||||
| int | int | ||||||
| utf_mbswidth(const char *s, bool lenient) | utf_mbswidth(const char *s) | ||||||
| { | { | ||||||
| 	size_t len; | 	size_t len; | ||||||
| 	unsigned int wc; | 	unsigned int wc; | ||||||
| @@ -701,14 +694,10 @@ utf_mbswidth(const char *s, bool lenient) | |||||||
| 		return (strlen(s)); | 		return (strlen(s)); | ||||||
|  |  | ||||||
| 	while (*s) | 	while (*s) | ||||||
| 		if ((len = utf_mbtowc(&wc, s)) == (size_t)-1) { | 		if (((len = utf_mbtowc(&wc, s)) == (size_t)-1) || | ||||||
|  by_octet: | 		    ((cw = utf_wcwidth(wc)) == -1)) { | ||||||
| 			s++; | 			s++; | ||||||
| 			width += 1; | 			width += 1; | ||||||
| 		} else if ((cw = utf_wcwidth(wc)) == -1) { |  | ||||||
| 			if (lenient) |  | ||||||
| 				goto by_octet; |  | ||||||
| 			return (-1); |  | ||||||
| 		} else { | 		} else { | ||||||
| 			s += len; | 			s += len; | ||||||
| 			width += cw; | 			width += cw; | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								funcs.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								funcs.c
									
									
									
									
									
								
							| @@ -25,7 +25,7 @@ | |||||||
|  |  | ||||||
| #include "sh.h" | #include "sh.h" | ||||||
|  |  | ||||||
| __RCSID("$MirOS: src/bin/mksh/funcs.c,v 1.143 2009/11/28 14:21:44 tg Exp $"); | __RCSID("$MirOS: src/bin/mksh/funcs.c,v 1.144 2009/11/28 14:28:01 tg Exp $"); | ||||||
|  |  | ||||||
| #if HAVE_KILLPG | #if HAVE_KILLPG | ||||||
| /* | /* | ||||||
| @@ -1551,7 +1551,7 @@ c_kill(const char **wp) | |||||||
| 				w = strlen(sigtraps[j].mess); | 				w = strlen(sigtraps[j].mess); | ||||||
| 				if (w > mess_octs) | 				if (w > mess_octs) | ||||||
| 					mess_octs = w; | 					mess_octs = w; | ||||||
| 				w = utf_mbswidth(sigtraps[j].mess, true); | 				w = utf_mbswidth(sigtraps[j].mess); | ||||||
| 				if (w > mess_cols) | 				if (w > mess_cols) | ||||||
| 					mess_cols = w; | 					mess_cols = w; | ||||||
| 			} | 			} | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								misc.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								misc.c
									
									
									
									
									
								
							| @@ -29,7 +29,7 @@ | |||||||
| #include <grp.h> | #include <grp.h> | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| __RCSID("$MirOS: src/bin/mksh/misc.c,v 1.132 2009/11/28 14:21:45 tg Exp $"); | __RCSID("$MirOS: src/bin/mksh/misc.c,v 1.133 2009/11/28 14:28:02 tg Exp $"); | ||||||
|  |  | ||||||
| unsigned char chtypes[UCHAR_MAX + 1];	/* type bits for unsigned char */ | unsigned char chtypes[UCHAR_MAX + 1];	/* type bits for unsigned char */ | ||||||
|  |  | ||||||
| @@ -154,7 +154,7 @@ printoptions(bool verbose) | |||||||
| 				len = strlen(options[i].name); | 				len = strlen(options[i].name); | ||||||
| 				if (len > octs) | 				if (len > octs) | ||||||
| 					octs = len; | 					octs = len; | ||||||
| 				len = utf_mbswidth(options[i].name, true); | 				len = utf_mbswidth(options[i].name); | ||||||
| 				if (len > oi.opt_width) | 				if (len > oi.opt_width) | ||||||
| 					oi.opt_width = len; | 					oi.opt_width = len; | ||||||
| 			} | 			} | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								sh.h
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								sh.h
									
									
									
									
									
								
							| @@ -134,7 +134,7 @@ | |||||||
| #endif | #endif | ||||||
|  |  | ||||||
| #ifdef EXTERN | #ifdef EXTERN | ||||||
| __RCSID("$MirOS: src/bin/mksh/sh.h,v 1.363 2009/11/28 14:21:45 tg Exp $"); | __RCSID("$MirOS: src/bin/mksh/sh.h,v 1.364 2009/11/28 14:28:02 tg Exp $"); | ||||||
| #endif | #endif | ||||||
| #define MKSH_VERSION "R39 2009/11/22" | #define MKSH_VERSION "R39 2009/11/22" | ||||||
|  |  | ||||||
| @@ -1361,7 +1361,7 @@ int v_evaluate(struct tbl *, const char *, volatile int, bool); | |||||||
| size_t utf_mbtowc(unsigned int *, const char *); | size_t utf_mbtowc(unsigned int *, const char *); | ||||||
| size_t utf_wctomb(char *, unsigned int); | size_t utf_wctomb(char *, unsigned int); | ||||||
| int utf_widthadj(const char *, const char **); | int utf_widthadj(const char *, const char **); | ||||||
| int utf_mbswidth(const char *, bool); | int utf_mbswidth(const char *); | ||||||
| const char *utf_skipcols(const char *, int); | const char *utf_skipcols(const char *, int); | ||||||
| size_t utf_ptradj(const char *); | size_t utf_ptradj(const char *); | ||||||
| int utf_wcwidth(unsigned int); | int utf_wcwidth(unsigned int); | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								shf.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								shf.c
									
									
									
									
									
								
							| @@ -22,7 +22,7 @@ | |||||||
|  |  | ||||||
| #include "sh.h" | #include "sh.h" | ||||||
|  |  | ||||||
| __RCSID("$MirOS: src/bin/mksh/shf.c,v 1.34 2009/11/28 14:21:46 tg Exp $"); | __RCSID("$MirOS: src/bin/mksh/shf.c,v 1.35 2009/11/28 14:28:03 tg Exp $"); | ||||||
|  |  | ||||||
| /* flags to shf_emptybuf() */ | /* flags to shf_emptybuf() */ | ||||||
| #define EB_READSW	0x01	/* about to switch to reading */ | #define EB_READSW	0x01	/* about to switch to reading */ | ||||||
| @@ -932,7 +932,7 @@ shf_vfprintf(struct shf *shf, const char *fmt, va_list args) | |||||||
| 		case 's': | 		case 's': | ||||||
| 			if (!(s = va_arg(args, const char *))) | 			if (!(s = va_arg(args, const char *))) | ||||||
| 				s = "(null)"; | 				s = "(null)"; | ||||||
| 			len = utf_mbswidth(s, true); | 			len = utf_mbswidth(s); | ||||||
| 			break; | 			break; | ||||||
|  |  | ||||||
| 		case 'c': | 		case 'c': | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								var.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								var.c
									
									
									
									
									
								
							| @@ -22,7 +22,7 @@ | |||||||
|  |  | ||||||
| #include "sh.h" | #include "sh.h" | ||||||
|  |  | ||||||
| __RCSID("$MirOS: src/bin/mksh/var.c,v 1.97 2009/11/28 14:21:47 tg Exp $"); | __RCSID("$MirOS: src/bin/mksh/var.c,v 1.98 2009/11/28 14:28:03 tg Exp $"); | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Variables |  * Variables | ||||||
| @@ -574,7 +574,7 @@ formatstr(struct tbl *vp, const char *s) | |||||||
| 	char *p, *q; | 	char *p, *q; | ||||||
| 	size_t psiz; | 	size_t psiz; | ||||||
|  |  | ||||||
| 	olen = utf_mbswidth(s, true); | 	olen = utf_mbswidth(s); | ||||||
|  |  | ||||||
| 	if (vp->flag & (RJUST|LJUST)) { | 	if (vp->flag & (RJUST|LJUST)) { | ||||||
| 		if (!vp->u2.field)	/* default field width */ | 		if (!vp->u2.field)	/* default field width */ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user