Date: Wed, 17 Sep 2003 07:20:06 -0700 (PDT) From: Robert Drehmel <robert@zoot.drehmel.com> To: freebsd-bugs@FreeBSD.org Subject: Re: bin/56147: FreeBSD/NetBSD /bin/sh mishandles positional parameters in "case" Message-ID: <200309171420.h8HEK6ID013950@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/56147; it has been noted by GNATS.
From: Robert Drehmel <robert@zoot.drehmel.com>
To: freebsd-gnats-submit@FreeBSD.org, prj@po.cwru.edu
Cc:
Subject: Re: bin/56147: FreeBSD/NetBSD /bin/sh mishandles positional parameters in "case"
Date: Wed, 17 Sep 2003 16:01:27 +0200
Hello.
Does the attached patch fix your problem?
(patch against -CURRENT's version)
ciao,
-robert
Index: expand.c
===================================================================
RCS file: /home/ncvs/src/bin/sh/expand.c,v
retrieving revision 1.45
diff -u -r1.45 expand.c
--- expand.c 3 Aug 2003 04:28:10 -0000 1.45
+++ expand.c 17 Sep 2003 13:06:19 -0000
@@ -637,7 +637,7 @@
int easy;
int quotes = flag & (EXP_FULL | EXP_CASE | EXP_REDIR);
- varflags = *p++;
+ varflags = (unsigned char)*p++;
subtype = varflags & VSTYPE;
var = p;
special = 0;
@@ -673,7 +673,8 @@
if (set && subtype != VSPLUS) {
/* insert the value of the variable */
if (special) {
- varvalue(var, varflags & VSQUOTE, flag & EXP_FULL);
+ varvalue(var, varflags & VSQUOTE,
+ flag & (EXP_FULL | EXP_CASE));
if (subtype == VSLENGTH) {
varlen = expdest - stackblock() - startloc;
STADJUST(-varlen, expdest);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200309171420.h8HEK6ID013950>
