]> code.citadel.org Git - citadel.git/blobdiff - webcit/calendar_tools.c
* icaltime_from_webform() now populates struct icaltimetype directly instead of conve...
[citadel.git] / webcit / calendar_tools.c
index b2d9fb090ca9bfe061583e01473c1f4813822d1e..334e6a7d313186b3e033c9c7c004d2a83271d809 100644 (file)
@@ -122,27 +122,24 @@ void display_icaltimetype_as_webform(struct icaltimetype *t, char *prefix, int d
  */
 void icaltime_from_webform(struct icaltimetype *t, char *prefix) {
        char vname[32];
-       struct tm tm;
-       struct icaltimetype t2;
 
-       /* Stuff tm with zero values */
-       memset(&tm, 0, sizeof(struct tm));
+       /* Stuff with zero values */
+       memset(t, 0, sizeof(struct icaltimetype));
 
-       /* Get the year/month/date all in one shot */
-       strptime((char*)BSTR(prefix), "%Y-%m-%d", &tm);
+       /* Get the year/month/date all in one shot -- it will be in ISO YYYY-MM-DD format */
+       sscanf((char*)BSTR(prefix), "%04d-%02d-%02d", &t->year, &t->month, &t->day);
 
        /* hour */
        sprintf(vname, "%s_hour", prefix);
-       tm.tm_hour = IBSTR(vname);
+       t->hour = IBSTR(vname);
 
        /* minute */
        sprintf(vname, "%s_minute", prefix);
-       tm.tm_min = IBSTR(vname);
+       t->minute = IBSTR(vname);
 
-       /* now convert to icaltimetyepe */
-       t2 = icaltime_from_timet_with_zone(mktime(&tm), 0, get_default_icaltimezone());
-       t2.zone = get_default_icaltimezone();
-       memcpy(t, &t2, sizeof(struct icaltimetype));
+       /* time zone is set to the default zone for this server */
+       t->is_utc = 0;
+       t->zone = get_default_icaltimezone();
 }