Subject: bug#14493: MSYS line ending problem in t/cxx-demo.sh

From: Stefano Lattarini <[email-masked]>
Date: Wed, 29 May 2013 10:57:06 +0200

On 05/29/2013 01:43 AM, Peter Rosin wrote:
> Hi!
> 
> I have this interesting log snippet from a failed run of t/cxx-demo.sh
> on the master branch (commit baf8a1c22acce0908):
>
And as you noted in your follow-up message, the problem is the same on
the micro branch (87e49f4f040c8ab))

> 
> + for p in play work
> + ./play
> + cat exp.play
> We are playing :-)
> Howdy, play!
> + cat got.play
> We are playing :-)
> Howdy, play!
> + diff exp.play got.play
> 1,2c1,2
> < We are playing :-)
> < Howdy, play!
> ---
>> We are playing :-)
>> Howdy, play!
> + am_exit_trap 1
> + exit_status=1
> 
> 
> This is on MSYS, and I strongly suspect a line ending discrepancy.
> The output from ./play is likely to have CRNL line endings, while
> exp.play is likely to have NL line endings. diff then barfs.
>
Any suggestion on how to easily fix this?

If not, I have a utterly untested idea:

  - Add a new helper function to t/ax/am-test-lib.sh that tells whether
    we are running on MinGW or no (you can steal existing code from the
    'require_tool()' function).

  - Use it in cxx-demo.sh to determine whether we are running under
    MinGW.

  - If that's the case, use perl to normalize the line endings (turning
    all CR-LF into simple LF).

Is this doable?

Thanks,
  Stefano