[INTERPRETER]
* BUG: Val() correctly detect dates now, when the date or the time separator is a space character. git-svn-id: svn://localhost/gambas/trunk@7326 867c0c6c-44f3-4631-809d-bfa615b0a4ec
This commit is contained in:
parent
0a2fc05ba5
commit
dc46e9d20b
1 changed files with 22 additions and 22 deletions
|
@ -481,7 +481,17 @@ bool DATE_from_string(const char *str, int len, VALUE *val, bool local)
|
||||||
|
|
||||||
c = COMMON_get_unicode_char();
|
c = COMMON_get_unicode_char();
|
||||||
|
|
||||||
if ((c < 0) || isspace(c))
|
if (c == info->date_sep)
|
||||||
|
{
|
||||||
|
set_date(&date, info->date_order[0], nbr);
|
||||||
|
set_date(&date, info->date_order[1], nbr2);
|
||||||
|
|
||||||
|
if (read_integer(&nbr))
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
set_date(&date, info->date_order[2], nbr);
|
||||||
|
}
|
||||||
|
else if ((c < 0) || isspace(c))
|
||||||
{
|
{
|
||||||
i = 0;
|
i = 0;
|
||||||
|
|
||||||
|
@ -493,16 +503,6 @@ bool DATE_from_string(const char *str, int len, VALUE *val, bool local)
|
||||||
if (info->date_order[i] == LO_YEAR) i++;
|
if (info->date_order[i] == LO_YEAR) i++;
|
||||||
set_date(&date, info->date_order[i], nbr2);
|
set_date(&date, info->date_order[i], nbr2);
|
||||||
}
|
}
|
||||||
else if (c == info->date_sep)
|
|
||||||
{
|
|
||||||
set_date(&date, info->date_order[0], nbr);
|
|
||||||
set_date(&date, info->date_order[1], nbr2);
|
|
||||||
|
|
||||||
if (read_integer(&nbr))
|
|
||||||
return TRUE;
|
|
||||||
|
|
||||||
set_date(&date, info->date_order[2], nbr);
|
|
||||||
}
|
|
||||||
|
|
||||||
jump_space();
|
jump_space();
|
||||||
|
|
||||||
|
@ -525,17 +525,7 @@ bool DATE_from_string(const char *str, int len, VALUE *val, bool local)
|
||||||
|
|
||||||
c = COMMON_get_unicode_char();
|
c = COMMON_get_unicode_char();
|
||||||
|
|
||||||
if ((c < 0) || isspace(c))
|
if (c == info->time_sep)
|
||||||
{
|
|
||||||
i = 0;
|
|
||||||
|
|
||||||
if (info->time_order[i] == LO_SECOND) i++;
|
|
||||||
set_time(&date, info->time_order[i], nbr); i++;
|
|
||||||
|
|
||||||
if (info->time_order[i] == LO_SECOND) i++;
|
|
||||||
set_time(&date, info->time_order[i], nbr2);
|
|
||||||
}
|
|
||||||
else if (c == info->time_sep)
|
|
||||||
{
|
{
|
||||||
set_time(&date, info->time_order[0], nbr);
|
set_time(&date, info->time_order[0], nbr);
|
||||||
set_time(&date, info->time_order[1], nbr2);
|
set_time(&date, info->time_order[1], nbr2);
|
||||||
|
@ -553,6 +543,16 @@ bool DATE_from_string(const char *str, int len, VALUE *val, bool local)
|
||||||
date.msec = nbr;
|
date.msec = nbr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if ((c < 0) || isspace(c))
|
||||||
|
{
|
||||||
|
i = 0;
|
||||||
|
|
||||||
|
if (info->time_order[i] == LO_SECOND) i++;
|
||||||
|
set_time(&date, info->time_order[i], nbr); i++;
|
||||||
|
|
||||||
|
if (info->time_order[i] == LO_SECOND) i++;
|
||||||
|
set_time(&date, info->time_order[i], nbr2);
|
||||||
|
}
|
||||||
|
|
||||||
c = get_char();
|
c = get_char();
|
||||||
if ((c < 0) || isspace(c))
|
if ((c < 0) || isspace(c))
|
||||||
|
|
Loading…
Reference in a new issue