commit e19ffccd5318595dc30262ecc88ab3bd90b30ad8
parent 9942b74efc813b4a309c0f570d07b222b98f3795
Author: LRN <lrn1986@gmail.com>
Date: Tue, 21 Apr 2015 15:52:25 +0000
Make ole2 extractor compatible with newer libgsf
Diffstat:
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
@@ -638,6 +638,7 @@ AM_CONDITIONAL(HAVE_GSF, test "x$have_gsf" = "xtrue")
# produce new line
echo ""
AC_CHECK_LIB(gsf-1, gsf_init, AC_DEFINE(HAVE_GSF_INIT,1,[gsf_init supported]))
+AC_CHECK_LIB(gsf-1, gsf_doc_meta_data_read_from_msole, AC_DEFINE(HAVE_GSF_DOC_META_DATA_READ_FROM_MSOLE,1,[gsf_doc_meta_data_read_from_msole supported]))
AC_CHECK_PROG([HAVE_ZZUF],[zzuf], 1, 0)
AM_CONDITIONAL(HAVE_ZZUF, test 0 != $HAVE_ZZUF)
diff --git a/src/plugins/ole2_extractor.c b/src/plugins/ole2_extractor.c
@@ -283,17 +283,27 @@ process (GsfInput *in,
{
struct ProcContext pc;
GsfDocMetaData *sections;
+ GError *error;
pc.proc = proc;
pc.proc_cls = proc_cls;
pc.ret = 0;
sections = gsf_doc_meta_data_new ();
- if (NULL == gsf_msole_metadata_read (in, sections))
+#ifdef HAVE_GSF_DOC_META_DATA_READ_FROM_MSOLE
+ error = gsf_doc_meta_data_read_from_msole (sections, in);
+#else
+ error = gsf_msole_metadata_read (in, sections);
+#endif
+ if (NULL == error)
{
gsf_doc_meta_data_foreach (sections,
&process_metadata,
&pc);
}
+ else
+ {
+ g_error_free (error);
+ }
g_object_unref (G_OBJECT (sections));
return pc.ret;
}