cmdline-opts/gen.pl: Open input files in CRLF mode

On Windows it's possible to have input files with CRLF line endings and
a perl that defaults to LF line endings (eg msysgit). Currently that
results in generator output of mixed line endings of CR, LF and CRLF.

This change fixes that issue in the most succinct way by opening the
files in :crlf text mode even when the perl being used does not default
to that mode. (On operating systems that don't have a separate text mode
it's essentially a no-op.) The output continues to be in the perl's
native line ending.
This commit is contained in:
Jay Satiro 2017-01-16 18:26:08 -05:00 committed by Daniel Stenberg
parent 4c49b83597
commit d0837f36db
2 changed files with 20 additions and 4 deletions

View File

@ -1,5 +1,21 @@
#!/usr/bin/perl
=begin comment
This script generates the manpage.
Example: gen.pl mainpage > curl.1
Dev notes:
We open *input* files in :crlf translation (a no-op on many platforms) in
case we have CRLF line endings in Windows but a perl that defaults to LF.
Unfortunately it seems some perls like msysgit can't handle a global input-only
:crlf so it has to be specified on each file open for text input.
=end comment
=cut
my $some_dir=".";
opendir(my $dh, $some_dir) || die "Can't opendir $some_dir: $!";
@ -85,7 +101,7 @@ sub added {
sub single {
my ($f, $standalone)=@_;
open(F, "<$f") ||
open(F, "<:crlf", "$f") ||
return 1;
my $short;
my $long;
@ -219,7 +235,7 @@ sub single {
sub getshortlong {
my ($f)=@_;
open(F, "<$f");
open(F, "<:crlf", "$f");
my $short;
my $long;
my $help;
@ -265,7 +281,7 @@ sub indexoptions {
sub header {
my ($f)=@_;
open(F, "<$f");
open(F, "<:crlf", "$f");
my @d;
while(<F>) {
push @d, $_;

View File

@ -3,6 +3,6 @@ Long: use-ascii
Help: Use ASCII/text transfer
Protocols: FTP LDAP
---
Enable ASCII transfer. For FTP, this can also be enforced by using an URL that
Enable ASCII transfer. For FTP, this can also be enforced by using a URL that
ends with ";type=A". This option causes data sent to stdout to be in text mode
for win32 systems.