GNU bug report logs - #19240
cut 8.22 adds newline

Previous Next

Package: coreutils;

Reported by: John Kendall <john <at> capps.com>

Date: Mon, 1 Dec 2014 16:44:01 UTC

Severity: normal

Tags: notabug

Done: Eric Blake <eblake <at> redhat.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Eric Blake <eblake <at> redhat.com>
To: Paul Eggert <eggert <at> cs.ucla.edu>, John Kendall <john <at> capps.com>, "19240 <at> debbugs.gnu.org" <19240 <at> debbugs.gnu.org>
Cc: Bob Proulx <bob <at> proulx.com>
Subject: bug#19240: cut 8.22 adds newline
Date: Thu, 04 Dec 2014 14:48:17 -0700
[Message part 1 (text/plain, inline)]
On 12/04/2014 01:39 PM, Paul Eggert wrote:
> On 12/04/2014 10:41 AM, John Kendall wrote:
>> echo "$FILE ===========================\c"| cut -c1-30
> 
> Since you're going to have to rewrite it anyway if you want it to be
> portable, I suggest doing it this way:
> 
> printf '%.30s' "$FILE ==========================="
> 
> as it's a lot more efficient anyway.

Be careful; the POSIX specification of '%.30s' does NOT work well with
multibyte characters; it is specified as:

http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap05.html#tag_05
"precision
    Gives the minimum number of digits to appear for the d, o, i, u, x,
or X conversion specifiers (the field is padded with leading zeros), the
number of digits to appear after the radix character for the e and f
conversion specifiers, the maximum number of significant digits for the
g conversion specifier; or the maximum number of bytes to be written
from a string in the s conversion specifier. The precision shall take
the form of a <period> ( '.' ) followed by a decimal digit string; a
null digit string is treated as zero."

which means that it CAN and WILL corrupt output if the number of bytes
written falls in the middle of a multi-byte character.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

[signature.asc (application/pgp-signature, attachment)]

This bug report was last modified 10 years and 171 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.