From 903728f6f1e32808b1fbeadfc821e9748e781e20 Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Sat, 3 Nov 2007 03:17:55 +0000 Subject: [PATCH] Monotone-Parent: 0cead9c9acf2f6167ebb5f33124979426871bdf9 Monotone-Revision: a9d4c92fe142a3db2b26db48a0763e64cb3adc1d Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2007-11-03T03:17:55 Monotone-Branch: ca.inverse.sogo --- SOPE/NGCards/ChangeLog | 6 ++++++ SOPE/NGCards/iCalDateHolder.m | 17 ++++++++++------- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/SOPE/NGCards/ChangeLog b/SOPE/NGCards/ChangeLog index 801f22856..549ad5a29 100644 --- a/SOPE/NGCards/ChangeLog +++ b/SOPE/NGCards/ChangeLog @@ -1,3 +1,9 @@ +2007-11-02 Wolfgang Sourdeau + + * iCalDateHolder.m ([iCalDateHolder -awakeAfterUsingSaxDecoder:]): + make use of cStringUsingEncoding: instead of getString:length: to + retrieve the buffer content to work-around a bug in gnustep-base. + 2007-11-01 Wolfgang Sourdeau * CardGroup.m ([CardGroup +parseFromSource:source]): make sure the diff --git a/SOPE/NGCards/iCalDateHolder.m b/SOPE/NGCards/iCalDateHolder.m index c6e73890a..7115447c8 100644 --- a/SOPE/NGCards/iCalDateHolder.m +++ b/SOPE/NGCards/iCalDateHolder.m @@ -130,14 +130,17 @@ static NSTimeZone *gmt = nil; if ([s rangeOfString:@"T"].length == 0 && [s length] == 8) { /* hm, maybe a date without a time? like an allday event! */ int year, month, day; - char buf[16]; - [s getCString:&(buf[0])]; - - buf[9] = '\0'; - day = atoi(&(buf[6])); buf[6] = '\0'; - month = atoi(&(buf[4])); buf[4] = '\0'; - year = atoi(&(buf[0])); + char *buf; + + buf = strdup([s cStringUsingEncoding: NSASCIIStringEncoding]); + day = atoi(buf + 6); + buf[6] = '\0'; + month = atoi(buf + 4); + buf[4] = '\0'; + year = atoi(buf); + free (buf); + date = [NSCalendarDate dateWithYear:year month:month day:day hour:0 minute:0 second:0 timeZone:tz];