diff options
author | Niels De Graef <nielsdegraef@gmail.com> | 2022-07-06 21:50:37 +0200 |
---|---|---|
committer | Niels De Graef <nielsdegraef@gmail.com> | 2022-07-07 13:41:34 +0200 |
commit | 350453053c13bd528de53d0003c0af4444dcd0f5 (patch) | |
tree | 107d782f2e8348eb5d043f213f3d7d90d7e7b29c /gcr | |
parent | 194df5463acef43f07ada8bfb05e20aeffb94a42 (diff) | |
download | gcr-350453053c13bd528de53d0003c0af4444dcd0f5.tar.gz |
Drop remaning uses of strptime()
Diffstat (limited to 'gcr')
-rw-r--r-- | gcr/gcr-record.c | 22 | ||||
-rw-r--r-- | gcr/meson.build | 1 |
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' |