emacs-bug-tracker
[Top][All Lists]
Advanced

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

[debbugs-tracker] bug#13394: closed (Misalignment for "seq -w")


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#13394: closed (Misalignment for "seq -w")
Date: Wed, 09 Jan 2013 12:07:01 +0000

Your message dated Wed, 09 Jan 2013 12:05:33 +0000
with message-id <address@hidden>
and subject line Re: bug#13394: Misalignment for "seq -w"
has caused the debbugs.gnu.org bug report #13394,
regarding Misalignment for "seq -w"
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden)


-- 
13394: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13394
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: Misalignment for "seq -w" Date: Wed, 9 Jan 2013 11:14:53 +0100 (CET)
Dear all,

There are the following problems with the -w parameter of the seq tool:

$seq -w -1 1.0 0
-1.0
0.0
1.0

But it should print:
-1.0
00.0
01.0

A similar problem is observable for: 
$seq -w 10 -.1 1 | head

Best regards,
 Marcel



--- End Message ---
--- Begin Message --- Subject: Re: bug#13394: Misalignment for "seq -w" Date: Wed, 09 Jan 2013 12:05:33 +0000 User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20120615 Thunderbird/13.0.1
On 01/09/2013 11:01 AM, Erik Auerswald wrote:
Hi,

On 01/09/2013 11:34 AM, Bernhard Voelker wrote:
On 01/09/2013 11:14 AM, Marcel Böhme wrote:

There are the following problems with the -w parameter of the seq tool:
[...]

Hmm, according to the TEXI manual, the FIRST number should also use
a fixed point decimal representation when the -w option is used:
[...]
But that leaves the question open if there's a reason for this.
I.e. if it's just documented behavior, a requirement of some
standard or due to compatibility reasons.

That seems to be just documented behavior, since seq is not standardized by 
POSIX and other seq implementations ([1],[2],[3]) don't document this. On the 
contrary, a common example is 'seq -w 0 .05 .1'.

This example works fine with GNU seq:

$ seq -w 0 .05 .1
0.00
0.05
0.10

Even when counting to negative numbers:

$ seq -w 0 -.05 -.1
00.00
-0.05
-0.10

Starting with a negative number with a fractional step size breaks equal width 
for non-negative numbers:

$ seq -w -1 .5 1
-1.0
-0.5
0.0
0.5
1.0

$ seq --version | head -n1
seq (GNU coreutils) 8.13

Looks like a bug. I'll fix with:

diff --git a/src/seq.c b/src/seq.c
index e1b467c..3eb53f8 100644
--- a/src/seq.c
+++ b/src/seq.c
@@ -332,6 +332,8 @@ get_default_format (operand first, operand step, operand 
last)
             last_width--;  /* don't include space for '.' */
           if (last.precision == 0 && prec)
             last_width++;  /* include space for '.' */
+          if (first.precision == 0 && prec)
+            first_width++;  /* include space for '.' */
           size_t width = MAX (first_width, last_width);
           if (width <= INT_MAX)
             {




--- End Message ---

reply via email to

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