From f1d4e0fb637bd9c3f5ad72c22cb5a716c3e669c8 Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Wed, 28 Mar 2012 15:15:12 +0200 Subject: mmcli: prefix all NMEA traces in order to get a pretty print --- cli/mmcli-common.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'cli/mmcli-common.c') diff --git a/cli/mmcli-common.c b/cli/mmcli-common.c index ff02b572..600939ae 100644 --- a/cli/mmcli-common.c +++ b/cli/mmcli-common.c @@ -19,6 +19,7 @@ */ #include +#include #include @@ -1110,3 +1111,40 @@ mmcli_get_common_sms_string (void) { return sms_str; } + +gchar * +mmcli_prefix_newlines (const gchar *prefix, + const gchar *str) +{ + GString *prefixed_string = NULL; + const gchar *line_start = str; + const gchar *line_end; + + while ((line_end = strchr (line_start, '\n'))) { + gssize line_length; + + line_length = line_end - line_start; + if (line_start[line_length - 1] == '\r') + line_length--; + + if (line_length > 0) { + if (prefixed_string) { + /* If not the first line, add the prefix */ + g_string_append_printf (prefixed_string, + "\n%s", prefix); + } else { + prefixed_string = g_string_new (""); + } + + g_string_append_len (prefixed_string, + line_start, + line_length); + } + + line_start = line_end + 1; + } + + return (prefixed_string ? + g_string_free (prefixed_string, FALSE) : + NULL); +} -- cgit v1.2.3-70-g09d2