From 3bd77bceb1345d36fa7c4ce1c32942509ed01f99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Tue, 18 Jun 2019 21:55:39 +0200 Subject: [PATCH] csi: CSI log messages are now single line --- csi.c | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/csi.c b/csi.c index 50951781..ed223f55 100644 --- a/csi.c +++ b/csi.c @@ -5,6 +5,10 @@ #include #include +#if defined(_DEBUG) + #include +#endif + #define LOG_MODULE "csi" #define LOG_ENABLE_DBG 1 #include "log.h" @@ -78,13 +82,28 @@ csi_sgr(struct terminal *term) bool csi_dispatch(struct terminal *term, uint8_t final) { - LOG_DBG("CSI: %zu paramaters, final = %c", term->vt.params.idx, final); - for (size_t i = 0; i < term->vt.params.idx; i++) { - LOG_DBG(" #%zu: %u", i, term->vt.params.v[i].value); - for (size_t j = 0; j < term->vt.params.v[i].sub.idx; j++) - LOG_DBG(" #%zu: %u", j, term->vt.params.v[i].sub.value[j]); +#if defined(_DEBUG) + char log[1024]; + int c = snprintf(log, sizeof(log), "CSI: "); + + for (size_t i = 0; i < term->vt.params.idx; i++){ + c += snprintf(&log[c], sizeof(log) - c, "%d", + term->vt.params.v[i].value); + + for (size_t j = 0; i < term->vt.params.v[i].sub.idx; j++) { + c += snprintf(&log[c], sizeof(log) - c, ":%d", + term->vt.params.v[i].sub.value[j]); + } + + c += snprintf(&log[c], sizeof(log) - c, "%s", + i == term->vt.params.idx - 1 ? "" : ";"); } + c += snprintf(&log[c], sizeof(log) - c, "%c (%zu parameters)", + final, term->vt.params.idx); + LOG_DBG("%s", log); +#endif + if (term->vt.intermediates.idx == 0) { switch (final) { case 'c':