static int gsf_list_props (int argc, char **argv) { GsfInfile *infile; GsfDocMetaData *meta_data; char const *filename; GSList *names = NULL; if (argc != 1) return 1; filename = argv[0]; infile = open_archive (filename); if (!infile) return 1; meta_data = get_meta_data (infile, filename); gsf_doc_meta_data_foreach (meta_data, cb_collect_names, &names); names = g_slist_sort (names, (GCompareFunc)strcmp); g_slist_foreach (names, (GFunc)cb_print_names, NULL); g_slist_free (names); g_object_unref (meta_data); g_object_unref (infile); return 0; }
static void collect_metadata(ChupaMetadata *metadata, GODoc *document) { GsfDocMetaData *work_book_metadata; work_book_metadata = go_doc_get_meta_data(document); gsf_doc_meta_data_foreach(work_book_metadata, cb_metadata_foreach, metadata); }
static void print_summary_stream (GsfInfile * msole, const char * file_name, const char * stream_name, GHashTable * human_readable_names) { GsfInput * stream = gsf_infile_child_by_name (msole, stream_name); if (stream != NULL) { GsfDocMetaData *meta_data = gsf_doc_meta_data_new (); GError *err = NULL; err = gsf_msole_metadata_read (stream, meta_data); if (err != NULL) { g_warning ("Error getting metadata for %s->%s: %s", file_name, stream_name, err->message); g_error_free (err); err = NULL; } else gsf_doc_meta_data_foreach (meta_data, (GHFunc) cb_print_property, human_readable_names); g_object_unref (meta_data); g_object_unref (G_OBJECT (stream)); } }
/** * gsf_doc_meta_dump: * @meta: #GsfDocMetaData * * A debugging utility to dump the content of @meta via g_print **/ void gsf_doc_meta_dump (GsfDocMetaData const *meta) { gsf_doc_meta_data_foreach (meta, (GHFunc) cb_print_property, NULL); }