Check EOL before terminating an argument

If EOL-style is LF not CR/LF, it is eaten and parsing arguments
continue. This prevents hooks from running. For examples, if
.git/hooks/pre-commit whose EOL-style is LF exists, then the following
error occurs when trying [git commit].

-----
sh.exe: #: No such file or directory
-----

    modified:   compat/os2.c
Determine FILE_EXECTYPE_CMD with an extension

    modified:   compat/os2.c
Assume a shell script if FILE_EXETYPE_UNKNOWN

For examples, commit-msg hook of coreutils starts like this.

-----
eval '(exit $?0)' && eval 'exec perl -w "$0" ${1+"$@"}'
  & eval 'exec perl -w "$0" $argv:q'
      if 0;
-----

On OS/2, the executables can be executed directly, batch files can
be executed via CMD.EXE or 4OS2.EXE. In case of scripts with sharpbang
have an information about the interpreter which can execute them. But
any others cannot be executed without third-party interpreters such as
sh. They cannot be executed anyway. So trying to execute them via sh
has no problem.

    modified:   compat/os2.c