svn commit: r273802 - in head/bin/sh: . tests/parameters

Craig Rodrigues rodrigc at FreeBSD.org
Wed Oct 29 02:17:51 UTC 2014


Hi,

The tests started failing after this commit.  Can you take a look?

https://jenkins.freebsd.org/jenkins/job/FreeBSD_HEAD-tests2/143/console

--
Craig
 On Oct 28, 2014 3:14 PM, "Jilles Tjoelker" <jilles at freebsd.org> wrote:

> Author: jilles
> Date: Tue Oct 28 22:14:31 2014
> New Revision: 273802
> URL: https://svnweb.freebsd.org/changeset/base/273802
>
> Log:
>   Treat IFS separators in "$*" as quoted.
>
>   This makes a difference if IFS starts with *, ?, [ or a CTL* byte.
>
> Added:
>   head/bin/sh/tests/parameters/positional6.0   (contents, props changed)
>   head/bin/sh/tests/parameters/positional7.0   (contents, props changed)
> Modified:
>   head/bin/sh/expand.c
>   head/bin/sh/tests/parameters/Makefile
>
> Modified: head/bin/sh/expand.c
>
> ==============================================================================
> --- head/bin/sh/expand.c        Tue Oct 28 21:06:04 2014        (r273801)
> +++ head/bin/sh/expand.c        Tue Oct 28 22:14:31 2014        (r273802)
> @@ -878,7 +878,7 @@ varvalue(const char *name, int quoted, i
>         int num;
>         char *p;
>         int i;
> -       char sep;
> +       char sep[2];
>         char **ap;
>
>         switch (*name) {
> @@ -912,15 +912,18 @@ varvalue(const char *name, int quoted, i
>                 /* FALLTHROUGH */
>         case '*':
>                 if (ifsset())
> -                       sep = ifsval()[0];
> +                       sep[0] = ifsval()[0];
>                 else
> -                       sep = ' ';
> +                       sep[0] = ' ';
> +               sep[1] = '\0';
>                 for (ap = shellparam.p ; (p = *ap++) != NULL ; ) {
>                         strtodest(p, flag, subtype, quoted);
>                         if (!*ap)
>                                 break;
> -                       if (sep || (flag & EXP_FULL && !quoted && **ap !=
> '\0'))
> -                               STPUTC(sep, expdest);
> +                       if (sep[0])
> +                               strtodest(sep, flag, subtype, quoted);
> +                       else if (flag & EXP_FULL && !quoted && **ap !=
> '\0')
> +                               STPUTC('\0', expdest);
>                 }
>                 return;
>         default:
>
> Modified: head/bin/sh/tests/parameters/Makefile
>
> ==============================================================================
> --- head/bin/sh/tests/parameters/Makefile       Tue Oct 28 21:06:04 2014
>       (r273801)
> +++ head/bin/sh/tests/parameters/Makefile       Tue Oct 28 22:14:31 2014
>       (r273802)
> @@ -18,6 +18,8 @@ FILES+=               positional2.0
>  FILES+=                positional3.0
>  FILES+=                positional4.0
>  FILES+=                positional5.0
> +FILES+=                positional6.0
> +FILES+=                positional7.0
>  FILES+=                pwd1.0
>  FILES+=                pwd2.0
>
>
> Added: head/bin/sh/tests/parameters/positional6.0
>
> ==============================================================================
> --- /dev/null   00:00:00 1970   (empty, because file is newly added)
> +++ head/bin/sh/tests/parameters/positional6.0  Tue Oct 28 22:14:31 2014
>       (r273802)
> @@ -0,0 +1,7 @@
> +# $FreeBSD$
> +
> +IFS=?
> +set p r
> +v=pqrs
> +r=${v#"$*"}
> +[ "$r" = pqrs ]
>
> Added: head/bin/sh/tests/parameters/positional7.0
>
> ==============================================================================
> --- /dev/null   00:00:00 1970   (empty, because file is newly added)
> +++ head/bin/sh/tests/parameters/positional7.0  Tue Oct 28 22:14:31 2014
>       (r273802)
> @@ -0,0 +1,8 @@
> +# $FreeBSD$
> +
> +set -- / ''
> +IFS=*
> +set -- "$*"
> +IFS=:
> +args="$*"
> +[ "$#:$args" = "1:/*" ]
>
>


More information about the svn-src-head mailing list