mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-08-19 23:28:54 +02:00
Remove broken attempt at parsing date-only
g_time_val_from_iso8601 was attempting to parse strings having only a date, but failed to actually set the timeval despite returning TRUE. Since the docs state that the function only parses strings containing a date and a time, just return FALSE in this case. Also remove an incomplete testcase for this behaviour that was just checking the boolean return value, but not timeval.
This commit is contained in:
@@ -299,8 +299,8 @@ g_time_val_add (GTimeVal *time_, glong microseconds)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* converts a broken down date representation, relative to UTC, to
|
/* converts a broken down date representation, relative to UTC,
|
||||||
* a timestamp; it uses timegm() if it's available.
|
* to a timestamp; it uses timegm() if it's available.
|
||||||
*/
|
*/
|
||||||
static time_t
|
static time_t
|
||||||
mktime_utc (struct tm *tm)
|
mktime_utc (struct tm *tm)
|
||||||
@@ -360,9 +360,9 @@ g_time_val_from_iso8601 (const gchar *iso_date,
|
|||||||
g_return_val_if_fail (iso_date != NULL, FALSE);
|
g_return_val_if_fail (iso_date != NULL, FALSE);
|
||||||
g_return_val_if_fail (time_ != NULL, FALSE);
|
g_return_val_if_fail (time_ != NULL, FALSE);
|
||||||
|
|
||||||
/* Ensure that the first character is a digit,
|
/* Ensure that the first character is a digit, the first digit
|
||||||
* the first digit of the date, otherwise we don't
|
* of the date, otherwise we don't have an ISO 8601 date
|
||||||
* have an ISO 8601 date */
|
*/
|
||||||
while (g_ascii_isspace (*iso_date))
|
while (g_ascii_isspace (*iso_date))
|
||||||
iso_date++;
|
iso_date++;
|
||||||
|
|
||||||
@@ -394,12 +394,7 @@ g_time_val_from_iso8601 (const gchar *iso_date,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (*iso_date != 'T')
|
if (*iso_date != 'T')
|
||||||
{
|
return FALSE;
|
||||||
/* Date only */
|
|
||||||
if (*iso_date == '\0')
|
|
||||||
return TRUE;
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
iso_date++;
|
iso_date++;
|
||||||
|
|
||||||
|
@@ -1347,7 +1347,7 @@ various_string_tests (void)
|
|||||||
g_assert (g_time_val_from_iso8601 (REF_INVALID1, &date) == FALSE);
|
g_assert (g_time_val_from_iso8601 (REF_INVALID1, &date) == FALSE);
|
||||||
g_assert (g_time_val_from_iso8601 (REF_INVALID2, &date) == FALSE);
|
g_assert (g_time_val_from_iso8601 (REF_INVALID2, &date) == FALSE);
|
||||||
g_assert (g_time_val_from_iso8601 (REF_INVALID3, &date) == FALSE);
|
g_assert (g_time_val_from_iso8601 (REF_INVALID3, &date) == FALSE);
|
||||||
g_assert (g_time_val_from_iso8601 (REF_STR_DATE_ONLY, &date) != FALSE);
|
g_assert (g_time_val_from_iso8601 (REF_STR_DATE_ONLY, &date) == FALSE);
|
||||||
g_assert (g_time_val_from_iso8601 (REF_STR_UTC, &date) != FALSE);
|
g_assert (g_time_val_from_iso8601 (REF_STR_UTC, &date) != FALSE);
|
||||||
if (g_test_verbose())
|
if (g_test_verbose())
|
||||||
g_print ("\t=> UTC stamp = %ld.%06ld (should be: %ld.%06ld) (%ld.%06ld off)\n",
|
g_print ("\t=> UTC stamp = %ld.%06ld (should be: %ld.%06ld) (%ld.%06ld off)\n",
|
||||||
|
Reference in New Issue
Block a user