]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
stats: event exporter - Use category exporting helper to avoid duplicates (tabtext)
authorJosef 'Jeff' Sipek <jeff.sipek@open-xchange.com>
Fri, 21 Aug 2020 18:31:12 +0000 (14:31 -0400)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Fri, 11 Sep 2020 13:35:56 +0000 (13:35 +0000)
src/stats/event-exporter-fmt-tab-text.c

index e4875e99f09b980569e11210b58661133781522d..2b8ea01f3d7b0659acfb8be659c4c5195cdfc2bc 100644 (file)
@@ -81,16 +81,10 @@ static void tabtext_export_timestamps(string_t *dest, struct event *event,
        str_append_c(dest, '\t');
 }
 
-static void append_category(string_t *dest, struct event_category *cat)
+static void append_category(string_t *dest, const char *cat)
 {
-       /* append parent's categories */
-       if (cat->parent != NULL)
-               append_category(dest, cat->parent);
-
-       /* append this */
        str_append(dest, "category:");
-       str_append_tabescaped(dest, cat->name);
-       str_append_c(dest, '\t');
+       str_append_tabescaped(dest, cat);
 }
 
 static void tabtext_export_categories(string_t *dest, struct event *event,
@@ -98,14 +92,15 @@ static void tabtext_export_categories(string_t *dest, struct event *event,
 {
        struct event_category *const *cats;
        unsigned int count;
-       unsigned int i;
 
        if ((info->include & EVENT_EXPORTER_INCL_CATEGORIES) == 0)
                return;
 
        cats = event_get_categories(event, &count);
-       for (i = 0; i < count; i++)
-               append_category(dest, cats[i]);
+       event_export_helper_fmt_categories(dest, cats, count,
+                                          append_category, "\t");
+
+       str_append_c(dest, '\t'); /* extra \t to have something to remove later */
 }
 
 static void tabtext_export_fields(string_t *dest, struct event *event,