summaryrefslogtreecommitdiff
path: root/gcr
diff options
context:
space:
mode:
authorNiels De Graef <nielsdegraef@gmail.com>2022-07-06 21:50:37 +0200
committerNiels De Graef <nielsdegraef@gmail.com>2022-07-07 13:41:34 +0200
commit350453053c13bd528de53d0003c0af4444dcd0f5 (patch)
tree107d782f2e8348eb5d043f213f3d7d90d7e7b29c /gcr
parent194df5463acef43f07ada8bfb05e20aeffb94a42 (diff)
downloadgcr-350453053c13bd528de53d0003c0af4444dcd0f5.tar.gz
Drop remaning uses of strptime()
Diffstat (limited to 'gcr')
-rw-r--r--gcr/gcr-record.c22
-rw-r--r--gcr/meson.build1
2 files changed, 10 insertions, 13 deletions
diff --git a/gcr/gcr-record.c b/gcr/gcr-record.c
index 414396e..e928200 100644
--- a/gcr/gcr-record.c
+++ b/gcr/gcr-record.c
@@ -588,10 +588,11 @@ GDateTime *
_gcr_record_get_date (GcrRecord *record,
guint column)
{
- const gchar *raw;
- gulong result;
- gchar *end = NULL;
- struct tm tm;
+ const char *raw;
+ guint64 result;
+ char *end = NULL;
+ GTimeZone *tz;
+ GDateTime *ret;
g_return_val_if_fail (record, NULL);
@@ -600,7 +601,7 @@ _gcr_record_get_date (GcrRecord *record,
return NULL;
/* Try to parse as a number */
- result = strtoul (raw, &end, 10);
+ result = g_ascii_strtoull (raw, &end, 10);
if (end != NULL && end[0] == '\0') {
if (result == 0)
return NULL;
@@ -609,14 +610,11 @@ _gcr_record_get_date (GcrRecord *record,
}
/* Try to parse as a date */
- memset (&tm, 0, sizeof (tm));
- end = strptime (raw, "%Y-%m-%d", &tm);
- if (!end || end[0]) {
- g_debug ("invalid date value: %s", raw);
- return NULL;
- }
+ tz = g_time_zone_new_utc ();
+ ret = g_date_time_new_from_iso8601 (raw, tz);
+ g_time_zone_unref (tz);
- return g_date_time_new_utc (tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, 0, 0, 0);
+ return ret;
}
/**
diff --git a/gcr/meson.build b/gcr/meson.build
index d3f231d..414e5c2 100644
--- a/gcr/meson.build
+++ b/gcr/meson.build
@@ -131,7 +131,6 @@ gcr_cflags = [
'-DGCR_API_SUBJECT_TO_CHANGE',
'-DGCK_API_SUBJECT_TO_CHANGE',
'-DP11_KIT_API_SUBJECT_TO_CHANGE',
- '-D_XOPEN_SOURCE', # Needed for strptime()
]
gcr_symbolmap = meson.current_source_dir() / 'libgcr.map'