Mercurial > geeqie
diff src/cache-loader.c @ 1288:10073464e6aa
use metadata_read_* functions where possible
switch exiv2 to utf8 charset
support for exiv2 formatting that depends on other tags:
http://dev.robotbattle.com/bugs/view.php?id=0000516
author | nadvornik |
---|---|
date | Sat, 07 Feb 2009 19:01:21 +0000 |
parents | 8b89e3ff286b |
children | c9949c19a6d0 |
line wrap: on
line diff
--- a/src/cache-loader.c Fri Feb 06 23:49:03 2009 +0000 +++ b/src/cache-loader.c Sat Feb 07 19:01:21 2009 +0000 @@ -16,6 +16,7 @@ #include "filedata.h" #include "exif.h" +#include "metadata.h" #include "md5-util.h" #include "ui_fileops.h" @@ -125,31 +126,24 @@ !cl->cd->have_date) { time_t date = -1; - ExifData *exif; + gchar *text; - exif = exif_read_fd(cl->fd); - if (exif) + text = metadata_read_string(cl->fd, "formatted.DateTime", METADATA_FORMATTED); + if (text) { - gchar *text; + struct tm t; - text = exif_get_data_as_text(exif, "formatted.DateTime"); - if (text) - { - struct tm t; + memset(&t, 0, sizeof(t)); - memset(&t, 0, sizeof(t)); - - if (sscanf(text, "%d:%d:%d %d:%d:%d", &t.tm_year, &t.tm_mon, &t.tm_mday, - &t.tm_hour, &t.tm_min, &t.tm_sec) == 6) - { - t.tm_year -= 1900; - t.tm_mon -= 1; - t.tm_isdst = -1; - date = mktime(&t); - } - g_free(text); + if (sscanf(text, "%d:%d:%d %d:%d:%d", &t.tm_year, &t.tm_mon, &t.tm_mday, + &t.tm_hour, &t.tm_min, &t.tm_sec) == 6) + { + t.tm_year -= 1900; + t.tm_mon -= 1; + t.tm_isdst = -1; + date = mktime(&t); } - exif_free_fd(cl->fd, exif); + g_free(text); } cl->cd->date = date;