[glib/filechooserentry: 4/10] fileinfo: Add g_file_attribute_matcher_print()
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib/filechooserentry: 4/10] fileinfo: Add g_file_attribute_matcher_print()
- Date: Tue, 8 Nov 2011 12:34:16 +0000 (UTC)
commit 7d383646a074d0d998dec26bc019f7c37ad2f9df
Author: Benjamin Otte <otte redhat com>
Date: Tue Nov 1 19:06:39 2011 +0100
fileinfo: Add g_file_attribute_matcher_print()
This is to be mainly used for debugging and tests.
docs/reference/gio/gio-sections.txt | 1 +
gio/gfileinfo.c | 40 +++++++++++++++++++++++++++++++++++
gio/gfileinfo.h | 1 +
gio/gio.symbols | 1 +
4 files changed, 43 insertions(+), 0 deletions(-)
---
diff --git a/docs/reference/gio/gio-sections.txt b/docs/reference/gio/gio-sections.txt
index 49ac6b1..71cdf40 100644
--- a/docs/reference/gio/gio-sections.txt
+++ b/docs/reference/gio/gio-sections.txt
@@ -370,6 +370,7 @@ g_file_attribute_matcher_matches
g_file_attribute_matcher_matches_only
g_file_attribute_matcher_enumerate_namespace
g_file_attribute_matcher_enumerate_next
+g_file_attribute_matcher_print
<SUBSECTION Standard>
GFileInfoClass
G_FILE_INFO
diff --git a/gio/gfileinfo.c b/gio/gfileinfo.c
index 0cdd036..498db0f 100644
--- a/gio/gfileinfo.c
+++ b/gio/gfileinfo.c
@@ -2488,3 +2488,43 @@ g_file_attribute_matcher_enumerate_next (GFileAttributeMatcher *matcher)
return get_attribute_for_id (sub_matcher->id);
}
}
+
+/**
+ * g_file_attribute_matcher_print:
+ * @matcher: (allow-none): a #GFileAttributeMatcher.
+ *
+ * Prints what the matcher is matching against. The format will be
+ * equal to the format passed to g_file_attribute_matcher_new().
+ * The output however, might not be identical, as the matcher may
+ * decide to use a different order or omit needless parts.
+ *
+ * Returns: a string describing the attributes the matcher matches
+ * against or %NULL if @matcher was %NULL.
+ *
+ * Since: 2.32
+ **/
+char *
+g_file_attribute_matcher_print (GFileAttributeMatcher *matcher)
+{
+ GString *string;
+ guint i;
+
+ if (matcher == NULL)
+ return NULL;
+
+ if (matcher->all)
+ return g_strdup ("*");
+
+ string = g_string_new ("");
+ for (i = 0; i < matcher->sub_matchers->len; i++)
+ {
+ SubMatcher *submatcher = &g_array_index (matcher->sub_matchers, SubMatcher, i);
+
+ if (i > 0)
+ g_string_append_c (string, ',');
+
+ g_string_append (string, get_attribute_for_id (submatcher->id));
+ }
+
+ return g_string_free (string, FALSE);
+}
diff --git a/gio/gfileinfo.h b/gio/gfileinfo.h
index 90188eb..d209bb4 100644
--- a/gio/gfileinfo.h
+++ b/gio/gfileinfo.h
@@ -946,6 +946,7 @@ gboolean g_file_attribute_matcher_matches_only (GFileAttributeMa
gboolean g_file_attribute_matcher_enumerate_namespace (GFileAttributeMatcher *matcher,
const char *ns);
const char * g_file_attribute_matcher_enumerate_next (GFileAttributeMatcher *matcher);
+char * g_file_attribute_matcher_print (GFileAttributeMatcher *matcher);
G_END_DECLS
diff --git a/gio/gio.symbols b/gio/gio.symbols
index a96b827..91138f3 100644
--- a/gio/gio.symbols
+++ b/gio/gio.symbols
@@ -437,6 +437,7 @@ g_file_attribute_matcher_matches
g_file_attribute_matcher_matches_only
g_file_attribute_matcher_enumerate_namespace
g_file_attribute_matcher_enumerate_next
+g_file_attribute_matcher_print
g_file_input_stream_get_type
g_file_input_stream_query_info
g_file_input_stream_query_info_async
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]