diff options
Diffstat (limited to 'glib/poppler-date.cc')
-rw-r--r-- | glib/poppler-date.cc | 40 |
1 files changed, 10 insertions, 30 deletions
diff --git a/glib/poppler-date.cc b/glib/poppler-date.cc index e3141c1f..9957d11e 100644 --- a/glib/poppler-date.cc +++ b/glib/poppler-date.cc @@ -17,6 +17,7 @@ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ +#include <goo/glibc.h> #include <DateInfo.h> #include "poppler-date.h" @@ -33,36 +34,15 @@ * * Since: 0.12 **/ -gboolean -poppler_date_parse (const gchar *date, - time_t *timet) +gboolean poppler_date_parse(const gchar *date, time_t *timet) { - gint year, mon, day, hour, min, sec, tz_hour, tz_minute; - gchar tz; - struct tm time; - time_t retval; - - /* See PDF Reference 1.3, Section 3.8.2 for PDF Date representation */ - // TODO do something with the timezone information - if (!parseDateString (date, &year, &mon, &day, &hour, &min, &sec, &tz, &tz_hour, &tz_minute)) - return FALSE; - - time.tm_year = year - 1900; - time.tm_mon = mon - 1; - time.tm_mday = day; - time.tm_hour = hour; - time.tm_min = min; - time.tm_sec = sec; - time.tm_wday = -1; - time.tm_yday = -1; - time.tm_isdst = -1; /* 0 = DST off, 1 = DST on, -1 = don't know */ - - /* compute tm_wday and tm_yday and check date */ - retval = mktime (&time); - if (retval == (time_t) - 1) - return FALSE; - - *timet = retval; + time_t t; + GooString dateString(date); + t = dateStringToTime(&dateString); + if (t == (time_t)-1) { + return FALSE; + } - return TRUE; + *timet = t; + return TRUE; } |