diff options
author | Christian Persch <chpe@src.gnome.org> | 2018-05-02 19:32:52 +0200 |
---|---|---|
committer | Christian Persch <chpe@src.gnome.org> | 2018-05-02 19:32:52 +0200 |
commit | d62c6ee988371cdf2af84a7898cee686c484aff8 (patch) | |
tree | 409a12aa4ed77e9499d1999f5237cdfe9556a2c1 | |
parent | e8ee9f7868dfdbce6bb9607bcd659bb30580cb5f (diff) | |
download | gnome-terminal-d62c6ee988371cdf2af84a7898cee686c484aff8.tar.gz |
client: legacy: Fix output commenting
Make sure each line starts with '#' even if the message
contains embedded newlines.
-rw-r--r-- | src/terminal-options.c | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/src/terminal-options.c b/src/terminal-options.c index e00ca925..d1e8a4a4 100644 --- a/src/terminal-options.c +++ b/src/terminal-options.c @@ -41,27 +41,25 @@ static int verbosity = 1; -/* @freeme is a workaround for Clang; see gnome-terminal bug 790318. */ -static char * G_GNUC_FORMAT (2) -format_as_comment (char** freeme, const char *format) -{ - return *freeme = g_strdup_printf ("# %s", format); -} - void terminal_fprintf (FILE* fp, int verbosity_level, const char* format, ...) { - if (verbosity < verbosity_level) - return; - - gs_free char* freeme; - va_list args; - va_start(args, format); - g_vfprintf(fp, format_as_comment(&freeme, format), args); - va_end(args); + if (verbosity < verbosity_level) + return; + + va_list args; + va_start(args, format); + gs_free char *str = g_strdup_vprintf(format, args); + va_end(args); + + gs_strfreev char **lines = g_strsplit_set(str, "\n\r", -1); + for (gsize i = 0; lines[i]; ++i) { + if (lines[i][0] != '\0') + g_fprintf(fp, "# %s\n", lines[i]); + } } #if GLIB_CHECK_VERSION (2, 50, 0) |