On Wed, Oct 26, 2016 at 4:16 PM, Jeff Adamson <jwadam...@us.ibm.com> wrote:
>
> I am feeling pretty good as the introduction of the newline to the printf
> does not fundamentally change much about the updated processing. My main
> concern was if that additional newline was going to make it into the final
> arguments as extra text. This does not seem to be the case on mac or
> ubuntu, so I guess sed must always eat the last newline when piped in this
> manner.
> I think the most important takaway from the 1.9.7 release are the quoting
> of the final eval, the padding the argument before escaping to support
> empty and whitespace, and the newline for the sed input on Solaris.
>
> Not sure if attachments would go through mailing list so I'll just copy and
> paste inline as they are short.
>
> My ant file is test.xml. Used to echo's a bunch of input properties. The
> trailing _ is to delimit the value to make it readable and prevent ant echo
> from trimming the output:
>
> <project default="run">
>     <target name="run">
>         <echo message="hello world"/>
>         <echo message="foo=${foo}_"/>
>         <echo message="bar=${bar}_"/>
>         <echo message="nl=${nl}_"/>
>         <echo message="nlnl=${nlnl}_"/>
>         <echo message="nlnlnl=${nlnlnl}_"/>
>         <echo message="doublespace=${doublespace}_"/>
>         <echo message="end"/>
>     </target>
> </project>
>
> My test.sh passes a variety of characters as the properties to be echoed.
> Includes literals that use an unballanced single-quote, double-quote,
> backtick, dollar, backslash (trailing on value). Also properties with 1, 2,
> and 3 consecutive trailing newline literals to see if they come through
> accurately. The execdebug flag shows each original argument and the
> quoted/escaped form of the argument used within eval.
>
> =========================
> #!/bin/sh
>
> ant >/dev/null || exit 1
>
> # literal newline char
> NL="
> "
>
> ./dist/bin/ant --execdebug \
>   "-Dfoo=dollar\$_backtick\`_single'_double\"_trailingbackslash\\" \
>   "-Dbar=trailingnewline$NL" \
>   "-Dnl=$NL" \
>   "-Dnlnl=$NL$NL" \
>   "-Dnlnlnl=$NL$NL$NL" \
>   "-Ddoublespace=  " \
>   "-Dx=y" \
>   "-f" "test.xml"
> =========================
>
> Expected output is:
>
> Buildfile: /home/jwa/Developer/projects/apache/ant/test.xml
>
> run:
>      [echo] hello world
>      [echo] foo=dollar$_backtick`_single'_double"_trailingbackslash\_
>      [echo] bar=trailingnewline
>      [echo] _
>      [echo] nl=
>      [echo] _
>      [echo] nlnl=
>      [echo]
>      [echo] _
>      [echo] nlnlnl=
>      [echo]
>      [echo]
>      [echo] _
>      [echo] doublespace=  _
>      [echo] end
>
>
>
> Regards,
> Jeff Adamson

Yes, that works perfectly! On Solaris 11, with your latest version of
the ant wrapper. When I run your test.sh, with the test.xml, I get
exactly the correct output.

However, with esc_tool=awk it fails. Don't know why yet, but the first
property makes it fail already:

[[
bash-4.1> ./ant.new
"-Dfoo=dollar\$_backtick\`_single'_double\"_trailingbackslash\\" -f
test.xml
Buildfile: build.xml does not exist!
Build failed
]]

With -version there is no problem, and running with '-f test.xml'
without properties also works (and fwiw, "-Ddoublespace=  " also
works).

-- 
Johan

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org
For additional commands, e-mail: dev-h...@ant.apache.org

Reply via email to