[libgsf] Remove deprecated GTimeVal usage
- From: Morten Welinder <mortenw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgsf] Remove deprecated GTimeVal usage
- Date: Mon, 27 Jan 2020 23:43:23 +0000 (UTC)
commit fb8fa3e2e3808326040c11af340144c4172419f4
Author: Marc-André Lureau <marcandre lureau redhat com>
Date: Wed Jan 15 21:46:13 2020 +0400
Remove deprecated GTimeVal usage
Signed-off-by: Marc-André Lureau <marcandre lureau redhat com>
Edited by MW to avoid g_autoptr.
gsf/gsf-infile-msole.c | 11 +++++++----
gsf/gsf-input.c | 16 +++++++++-------
gsf/gsf-outfile-msole.c | 7 ++++---
3 files changed, 20 insertions(+), 14 deletions(-)
---
diff --git a/gsf/gsf-infile-msole.c b/gsf/gsf-infile-msole.c
index a618246..312599d 100644
--- a/gsf/gsf-infile-msole.c
+++ b/gsf/gsf-infile-msole.c
@@ -281,15 +281,18 @@ static GDateTime *
datetime_from_filetime (guint64 ft)
{
static const guint64 epoch = G_GINT64_CONSTANT (11644473600);
- GTimeVal tv;
+ GDateTime *dt, *res;
+
if (!ft)
return NULL;
/* ft is number of 100ns since Jan 1 1601 */
- tv.tv_usec = (ft % 10000000u) / 10;
- tv.tv_sec = (ft / 10000000u) - epoch;
- return g_date_time_new_from_timeval_local (&tv);
+ dt = g_date_time_new_from_unix_local (ft / 10000000u - epoch);
+ res = g_date_time_add (dt, (ft % 10000000u) / 10);
+ g_date_time_unref (dt);
+
+ return res;
}
diff --git a/gsf/gsf-input.c b/gsf/gsf-input.c
index 752268b..7723ff6 100644
--- a/gsf/gsf-input.c
+++ b/gsf/gsf-input.c
@@ -631,24 +631,26 @@ gboolean
gsf_input_set_modtime_from_stat (GsfInput *input,
const struct stat *st)
{
- GDateTime *modtime;
- GTimeVal tv;
+ GDateTime *modtime = NULL, *ut = NULL;
gboolean res;
+ gint64 sec, usec;
if (st->st_mtime == (time_t)-1)
return FALSE;
- tv.tv_sec = st->st_mtime;
+ sec = st->st_mtime;
#if defined (HAVE_STRUCT_STAT_ST_MTIMENSEC)
- tv.tv_usec = st->st_mtimensec / 1000;
+ usec = st->st_mtimensec / 1000;
#elif defined (HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC)
- tv.tv_usec = st->st_mtim.tv_nsec / 1000;
+ usec = st->st_mtim.tv_nsec / 1000;
#else
- tv.tv_usec = 0;
+ usec = 0;
#endif
- modtime = g_date_time_new_from_timeval_utc (&tv);
+ ut = g_date_time_new_from_unix_utc (sec);
+ modtime = g_date_time_add (ut, usec);
res = gsf_input_set_modtime (GSF_INPUT (input), modtime);
+ g_date_time_unref (ut);
g_date_time_unref (modtime);
return res;
diff --git a/gsf/gsf-outfile-msole.c b/gsf/gsf-outfile-msole.c
index dd27f41..5a15a40 100644
--- a/gsf/gsf-outfile-msole.c
+++ b/gsf/gsf-outfile-msole.c
@@ -283,13 +283,14 @@ static guint64
datetime_to_filetime (GDateTime *dt)
{
static const guint64 epoch = G_GINT64_CONSTANT (11644473600);
- GTimeVal tv;
+
if (!dt)
return 0u;
/* ft is number of 100ns since Jan 1 1601 */
- g_date_time_to_timeval (dt, &tv);
- return (tv.tv_sec + epoch) * 10000000u + tv.tv_usec * 10u;
+
+ return (g_date_time_to_unix(dt) + epoch) * 10000000u
+ + g_date_time_get_microsecond(dt) * 10u;
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]