[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: DD converts LF -> CR / LF

From: Eric Blake
Subject: Re: DD converts LF -> CR / LF
Date: Mon, 09 May 2005 06:52:29 -0600
User-agent: Mozilla Thunderbird 1.0.2 (Windows/20050317)

Hash: SHA1

According to Christopher Faylor on 5/8/2005 5:03 PM:
>>Hmm, overriding the explicit advice of the system administrator?  How
>>common is it for file systems to be mounted in text mode?  Why would
>>anyone do such a thing?  If it's sufficiently rare, then dd shouldn't
>>need to worry about it.
> It is not rare but, regardless, this email was the result of someone who
> was surprised by the fact that dd converted LF -> CRLF.  Whether it is
> common or not, I don't think it makes sense to surprise people who use
> dd when it is trivial to make it work in a more UNIX-like fashion (i.e.,
> do not convert LF -> CRLF).

The cygwin installer is being changed to more explicitly warn users that
text-mode mounts are usually a bad idea.  The problem is that the cygwin
system administrator is often the primary user, and is often naive about
the issues between text vs binary mounts (especially at the point in time
when they ran the installer).

However, Paul's arguments are starting to convince me (if only because
then I have fewer downstream patches to maintain) - respecting the
underlying mount point unless told otherwise can also be considered a
sensible behavior, and is adopted by several other utilities in coreutils.
 So long as there is command-line configurability to get both text and
binary behaviors (whether that be default binary, iflag=binary is a no-op,
and iflag=text always changes behavior; or default from underlying mount,
and both iflag=binary and iflag=text potentially change behavior), then a
cygwin FAQ can be written that tells the user how to make dd(1) meet
expectations (if it really is frequently asked).

I guess it comes down to how often is dd used in scripts vs.
interactively?  Note that this alias would give binary-only behavior in
interactive mode even when respecting the underlying mount points:

$ alias dd='dd iflag=binary oflag=binary'

iflag= is already a coreutils extension beyond POSIX, so this alias relies
on parsing multiple iflag= operands in the same way that POSIX requires
support for multiple conv= operands.  But since iflag= is a POSIX
extension, portable scripts that use dd cannot assume its existance, and
they will get whichever default behavior we choose (all binary, or
underlying mount).

- --
Life is short - so eat dessert first!

Eric Blake             address@hidden
Version: GnuPG v1.4.0 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org


reply via email to

[Prev in Thread] Current Thread [Next in Thread]