Forum: Ruby-core win32/configure.bat should have CRLF eol-style.

Ba7345a85653fd9c1022361df622abfb?d=identicon&s=25 unknown (Guest)
on 2014-08-16 15:06
(Received via mailing list)
Issue #10145 has been updated by Masamitsu Murase.


Nobuyoshi Nakada wrote:
> Masamitsu Murase wrote:
> > win32/configure.bat does not parse command line arguments correctly with
revision 47015 and later.
>
> Reverted by r47017.

I understood the current situation.
r47017 changed eol-style of configure.bat to CRLF from LF, but
configure.bat still has "LF" as "svn:eol-style" attribute.

As a result,

* curl http://svn.ruby-lang.org/repos/ruby/trunk/win32/co... -o
curl.bat
  => curl.bat has CRLF.
* svn export
http://svn.ruby-lang.org/repos/ruby/trunk/win32/co... export.bat
  => export.bat has LF.

This behavior may depend on Subversion client...

Is the current behavior expected?

----------------------------------------
Bug #10145: win32/configure.bat should have CRLF eol-style.
https://bugs.ruby-lang.org/issues/10145#change-48375

* Author: Masamitsu Murase
* Status: Rejected
* Priority: Normal
* Assignee:
* Category:
* Target version:
* ruby -v: ruby 2.2.0dev (2014-08-16 trunk 47200) [i386-mswin32_100]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
win32/configure.bat does not parse command line arguments correctly with
revision 47015 and later.

For example, "win32\configure.bat --disable-install-doc
--prefix=D:\test" outputs invalid "prefix" definition in Makefile.

It seems that this issue is caused by strange behavior of cmd.exe for
Bat file, which includes LF eol.
i.e. This issue does not occur with revision 46795 and older.

How to reproduce this issue:

1 Run the following command on command prompt in the root directory of
ruby source.

~~~
win32\configure.bat --disable-install-doc --prefix=D:\test
~~~

2 Then, Makefile contains invalid variable definitions.
  "prefix" and "EXTOUT" are invalid.

~~~
### Makefile for ruby  ###
MAKE = nmake
srcdir = .
prefix = /usr
EXTSTATIC =
RDOCTARGET = nodoc
EXTOUT = D:\test
...
~~~

  The expected output is the following:

~~~
### Makefile for ruby  ###
MAKE = nmake
srcdir = .
prefix = D:/test
EXTSTATIC =
RDOCTARGET = nodoc
...
~~~

I have not investigated the detail of this strange behavior of cmd.exe,
but I think that cmd.exe does not expect LF eol-style.
If there is no specific reason, configure.bat should have CRLF eol
instead.

Regards,
Murase
This topic is locked and can not be replied to.