From 335592b8d6a7708d0e220a778af1194ce0f70be8 Mon Sep 17 00:00:00 2001 From: CaS Date: Thu, 3 Jul 2003 20:24:11 +0000 Subject: [PATCH] Calendar date tidyups git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@17092 72102866-910b-0410-8b05-ffd578937521 --- ChangeLog | 7 +++++++ Source/NSCalendarDate.m | 11 +++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0c5dcd7a1..baab929d5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2003-07-03 Richard Frith-Macdonald + + * Source/NSCalendarDate: ([-initWithString:calendarFormat:]) default + year to 0001 s the gregorian calendar does not go earlier. + ([-initWithYear:month:day:hour:minute:second:timeZone:]) don't + override a previously set calendar format. + 2003-07-01 David Ayers * Headers/gnustep/base/GSObjCRuntime.h/m (GSPrintf), diff --git a/Source/NSCalendarDate.m b/Source/NSCalendarDate.m index fe4731a76..898d306a9 100644 --- a/Source/NSCalendarDate.m +++ b/Source/NSCalendarDate.m @@ -588,7 +588,11 @@ static inline int getDigits(const char *from, char *to, int limit) else { int milliseconds = 0; - int year = 0, month = 1, day = 1; + /* Default to gregorian year one ... there is no year zero and + * the algorithms we use look odd for earlier dates. + */ + int year = 1; + int month = 1, day = 1; int hour = 0, min = 0, sec = 0; NSTimeZone *tz = nil; BOOL ampm = NO; @@ -1274,7 +1278,10 @@ static inline int getDigits(const char *from, char *to, int limit) { _time_zone = RETAIN(aTimeZone); } - _calendar_format = cformat; + if (_calendar_format == nil) + { + _calendar_format = cformat; + } _seconds_since_ref = s; /*