The aim was to fix up some unsupported cases in glibc and related implementations, and clearly we only managed to do so partially.
Thank you: I've applied the change (and a regression test) to 2.5.0-to-be. On Wed, 21 Mar 2007, [EMAIL PROTECTED] wrote: > Full_Name: John Brzustowski > Version: R-devel-trunk > OS: linux (problem under Windows too) > Submission from: (NULL) (74.101.124.238) > > > (This bug was discovered by Phil Taylor, Acadia University.) > I'm not sure from reading the documentation whether strptime(x, "%j") is meant > to be supported, but if so, there is a bug which prevents it from working on > the > first day of months after January: > >> strptime(31:33, "%j") > [1] "2007-01-31" NA "2007-02-02" > > # the full extent of R's taunting > strptime(1 + cumsum(c(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30)), "%j") > [1] NA NA NA NA NA NA NA NA NA NA NA >> > > The problem is an edge-case comparison in datetime.c:glibc_fix(). This > generates a date like "Jan 32", which validate_tm() catches and NAs. > (Values of field tm->tm_yday start at 0, not 1.) > ================================================================================= > PATCH: > > --- R/src/main/datetime.c (revision 40860) > +++ R/src/main/datetime.c (working copy) > @@ -796,7 +796,7 @@ > if(tm->tm_yday != NA_INTEGER) { > /* since we have yday, let that take precedence over mon/mday */ > int yday = tm->tm_yday, mon = 0; > - while(yday > (tmp = days_in_month[mon] + > + while(yday >= (tmp = days_in_month[mon] + > ((mon==1 && isleap(1900+tm->tm_year))? 1 : 0))) { > yday -= tmp; > mon++; > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel > -- Brian D. Ripley, [EMAIL PROTECTED] Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595 ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel