You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by se...@apache.org on 2008/03/11 15:25:36 UTC
svn commit: r635937 - /webservices/axis2/trunk/c/util/src/date_time.c
Author: senaka
Date: Tue Mar 11 07:25:32 2008
New Revision: 635937
URL: http://svn.apache.org/viewvc?rev=635937&view=rev
Log:
Fixing Issues reported in AXIS2C-1049
Modified:
webservices/axis2/trunk/c/util/src/date_time.c
Modified: webservices/axis2/trunk/c/util/src/date_time.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/src/date_time.c?rev=635937&r1=635936&r2=635937&view=diff
==============================================================================
--- webservices/axis2/trunk/c/util/src/date_time.c (original)
+++ webservices/axis2/trunk/c/util/src/date_time.c Tue Mar 11 07:25:32 2008
@@ -110,8 +110,17 @@
int msec;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- sscanf(time_str, "%d:%d:%d.%dZ", &hour, &min,
- &sec, &msec);
+ if (strchr(time_str, '.'))
+ {
+ sscanf(time_str, "%d:%d:%d.%dZ", &hour, &min,
+ &sec, &msec);
+ }
+ else
+ {
+ sscanf(time_str, "%d:%d:%dZ", &hour, &min,
+ &sec);
+ msec = 0;
+ }
if (hour < 0 || hour > 23)
{
return AXIS2_FAILURE;
@@ -145,10 +154,10 @@
int min;
int sec;
int msec;
- int tz_hour;
+ int tz_hour;
int tz_min;
- axis2_bool_t tz_pos = AXIS2_TRUE;;
+ axis2_bool_t tz_pos = AXIS2_TRUE;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
@@ -163,13 +172,31 @@
if (tz_pos)
{
- sscanf(time_str, "%d:%d:%d.%d+%d:%d", &hour, &min,
- &sec, &msec, &tz_hour, &tz_min);
+ if (strchr(time_str, '.'))
+ {
+ sscanf(time_str, "%d:%d:%d.%d+%d:%d", &hour, &min,
+ &sec, &msec, &tz_hour, &tz_min);
+ }
+ else
+ {
+ sscanf(time_str, "%d:%d:%d+%d:%d", &hour, &min,
+ &sec, &tz_hour, &tz_min);
+ msec = 0;
+ }
}
else
{
- sscanf(time_str, "%d:%d:%d.%d-%d:%d", &hour, &min,
- &sec, &msec, &tz_hour, &tz_min);
+ if (strchr(time_str, '.'))
+ {
+ sscanf(time_str, "%d:%d:%d.%d-%d:%d", &hour, &min,
+ &sec, &msec, &tz_hour, &tz_min);
+ }
+ else
+ {
+ sscanf(time_str, "%d:%d:%d-%d:%d", &hour, &min,
+ &sec, &tz_hour, &tz_min);
+ msec = 0;
+ }
}
if (hour < 0 || hour > 23)
{
@@ -229,7 +256,6 @@
{
is_year_neg++;
}
-
sscanf(date_str + is_year_neg, "%d-%d-%d", &year, &mon,
&day);
if (is_year_neg)
@@ -290,10 +316,18 @@
{
is_year_neg++;
}
-
- sscanf(date_time_str + is_year_neg, "%d-%d-%dT%d:%d:%d.%dZ", &year,
- &mon, &day, &hour, &min,
- &sec, &msec);
+ if (strchr(date_time_str, '.'))
+ {
+ sscanf(date_time_str + is_year_neg, "%d-%d-%dT%d:%d:%d.%dZ", &year,
+ &mon, &day, &hour, &min,
+ &sec, &msec);
+ }
+ else
+ {
+ sscanf(date_time_str + is_year_neg, "%d-%d-%dT%d:%d:%dZ", &year,
+ &mon, &day, &hour, &min, &sec);
+ msec = 0;
+ }
if (is_year_neg)
{
@@ -362,10 +396,10 @@
int min;
int sec;
int msec;
- int tz_hour;
+ int tz_hour;
int tz_min;
int is_year_neg = 0;
- axis2_bool_t tz_pos = AXIS2_FALSE;;
+ axis2_bool_t tz_pos = AXIS2_FALSE;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
@@ -389,15 +423,37 @@
if (tz_pos)
{
- sscanf(date_time_str + is_year_neg, "%d-%d-%dT%d:%d:%d.%d+%d:%d", &year,
- &mon, &day, &hour, &min,
- &sec, &msec, &tz_hour, &tz_min);
+ if (strchr(date_time_str, '.'))
+ {
+ sscanf(date_time_str + is_year_neg, "%d-%d-%dT%d:%d:%d.%d+%d:%d", &year,
+ &mon, &day, &hour, &min,
+ &sec, &msec, &tz_hour, &tz_min);
+ }
+ else
+ {
+ sscanf(date_time_str + is_year_neg, "%d-%d-%dT%d:%d:%d+%d:%d", &year,
+ &mon, &day, &hour, &min,
+ &sec, &tz_hour, &tz_min);
+
+ msec = 0;
+ }
}
else
{
- sscanf(date_time_str + is_year_neg, "%d-%d-%dT%d:%d:%d.%d-%d:%d", &year,
- &mon, &day, &hour, &min,
- &sec, &msec, &tz_hour, &tz_min);
+ if (strchr(date_time_str, '.'))
+ {
+ sscanf(date_time_str + is_year_neg, "%d-%d-%dT%d:%d:%d.%d-%d:%d", &year,
+ &mon, &day, &hour, &min,
+ &sec, &msec, &tz_hour, &tz_min);
+ }
+ else
+ {
+ sscanf(date_time_str + is_year_neg, "%d-%d-%dT%d:%d:%d-%d:%d", &year,
+ &mon, &day, &hour, &min,
+ &sec, &tz_hour, &tz_min);
+
+ msec = 0;
+ }
}
if (is_year_neg)
@@ -842,7 +898,7 @@
int min;
int sec;
int msec;
- int tz_hour;
+ int tz_hour;
int tz_min;
axis2_bool_t tz_pos = AXIS2_FALSE;
@@ -1038,7 +1094,7 @@
int min)
{
axutil_date_time_t * date_time = NULL;
- axutil_date_time_t *ret = NULL;
+ axutil_date_time_t *ret = NULL;
if (date_time_in->tz_hour && date_time_in->tz_min)
{
return NULL;
@@ -1054,8 +1110,7 @@
date_time->tz_min = min;
date_time->tz_pos = is_positive ? AXIS2_FALSE : AXIS2_TRUE;
- ret =
- axutil_date_time_local_to_utc(date_time, env);
+ ret = axutil_date_time_local_to_utc(date_time, env);
ret->tz_hour = hour;
ret->tz_min = min;
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org