X-Spam-Check-By: sourceware.org
Date: Wed, 26 Apr 2006 10:08:58 +0200
From: Peter Ekberg <peda@lysator.liu.se>
To: cygwin@cygwin.com
Subject: Re: [Patch] patch -Z not working if timestamp contains seconds >=59.5
Message-ID: <20060426080858.GA14738@sellafield.lysator.liu.se>
References: <054c01c668a4$554924e0$a501a8c0@CAM.ARTIMI.COM> <444E95C0.9080708@t-online.de>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <444E95C0.9080708@t-online.de>
User-Agent: Mutt/1.5.11
Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm
Precedence: bulk
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie.com@cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe@cygwin.com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-help@cygwin.com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner@cygwin.com
Mail-Followup-To: cygwin@cygwin.com
Delivered-To: mailing list cygwin@cygwin.com

On Tue, Apr 25, 2006 at 11:33:52PM +0200, Christian Franke wrote:
> Dave Korn wrote:
> >...
> >diff -rup patch-2.5.8-8.orig/partime.c patch-2.5.8-8/partime.c
> >--- patch-2.5.8-8.orig/partime.c	2002-12-15 21:37:32.001000000 +0100
> >+++ patch-2.5.8-8/partime.c	2006-04-25 12:14:59.797168500 +0200
> >@@ -753,6 +753,8 @@ parse_pattern_letter (s, c, t)
> > 	int frac;
> > 	s = parse_decimal (s, 2, 0, 60, 1, &t->tm.tm_sec, &frac);
> > 	t->tm.tm_sec += frac;
> >+	if (t->tm.tm_sec > 59)
> >+	  t->tm.tm_sec = 59;
> >       }
> >       break;
> > 
> >
> >  I'm not sure if rounding errors can be a good idea when makefiles might 
> >  be
> >involved.  Why isn't your code propagating the carry, i.e. setting tm_sec 
> >to
> >zero and incrmenting the minutes?
> 
> 
> ... and then propagate the carry to hours, to days, ...,
> finally handle leap years and invalid local times during DST change?
> 
> The patch simply changes rounding mode for a small interval from 
> round-to-nearest to round-down.
> This IMO does not add any new monotonicity issues.

If you thought about all that, maybe you also thought about leap seconds?
Isn't it valid to have 60 in the seconds field when a leap second is added?

Cheers,
Peter

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

