From e14594640a4c8bc4f7213c9cedbc0e3526aaf331 Mon Sep 17 00:00:00 2001 From: bodea Date: Fri, 3 Dec 2004 06:41:11 +0000 Subject: [PATCH] skip newlines in ringbuffer messages --- Changes | 1 + cli.c | 52 +++++++++++++++++++++++++++------------------------- 2 files changed, 28 insertions(+), 25 deletions(-) diff --git a/Changes b/Changes index 676e2aa..e6ac0bf 100644 --- a/Changes +++ b/Changes @@ -3,6 +3,7 @@ changes, propagated in the heartbeats; the master with the highest # of changes (that has kept in contact with the LAC through the outage) prevails. +- Skip newlines in ringbuffer messages to CLI. * Wed Dec 1 2004 Brendan O'Dea 2.0.12 - The "This time, for sure!" release. diff --git a/cli.c b/cli.c index f840a68..515185f 100644 --- a/cli.c +++ b/cli.c @@ -2,7 +2,7 @@ // vim: sw=8 ts=8 char const *cvs_name = "$Name: $"; -char const *cvs_id_cli = "$Id: cli.c,v 1.38 2004/12/01 02:51:06 bodea Exp $"; +char const *cvs_id_cli = "$Id: cli.c,v 1.39 2004/12/03 06:41:11 bodea Exp $"; #include #include @@ -1861,42 +1861,44 @@ static int cmd_set(struct cli_def *cli, char *command, char **argv, int argc) int regular_stuff(struct cli_def *cli) { - int i = debug_rb_tail; - int reprompt = 0; + int out = 0; + int i; #ifdef RINGBUFFER - while (i != ringbuffer->tail) + for (i = debug_rb_tail; i != ringbuffer->tail; i = (i + 1) % RINGBUFFER_SIZE) { - int show_message = 0; + char *m = ringbuffer->buffer[i].message; + char *p; + int show = 0; + + if (!*m) continue; - if (*ringbuffer->buffer[i].message) + switch (ringbuffer->buffer[i].level) { - // Always show messages if we are doing general debug - if (ringbuffer->buffer[i].level == 0 && debug_flags.critical) show_message = 1; - if (ringbuffer->buffer[i].level == 1 && debug_flags.error) show_message = 1; - if (ringbuffer->buffer[i].level == 2 && debug_flags.warning) show_message = 1; - if (ringbuffer->buffer[i].level == 3 && debug_flags.info) show_message = 1; - if (ringbuffer->buffer[i].level == 4 && debug_flags.calls) show_message = 1; - if (ringbuffer->buffer[i].level == 5 && debug_flags.data) show_message = 1; + case 0: show = debug_flags.critical; break; + case 1: show = debug_flags.error; break; + case 2: show = debug_flags.warning; break; + case 3: show = debug_flags.info; break; + case 4: show = debug_flags.calls; break; + case 5: show = debug_flags.data; break; } - if (show_message) - { - cli_print(cli, "\r%s-%u-%u %s", - debug_levels[(int)ringbuffer->buffer[i].level], - ringbuffer->buffer[i].tunnel, - ringbuffer->buffer[i].session, - ringbuffer->buffer[i].message); + if (!show) continue; - reprompt = 1; - } + if (!(p = strchr(m, '\n'))) + p = m + strlen(p); + + cli_print(cli, "\r%s-%u-%u %.*s", + debug_levels[(int)ringbuffer->buffer[i].level], + ringbuffer->buffer[i].tunnel, + ringbuffer->buffer[i].session, + p - m, m); - if (++i == ringbuffer->tail) break; - if (i == RINGBUFFER_SIZE) i = 0; + out++; } debug_rb_tail = ringbuffer->tail; - if (reprompt) + if (out) cli_reprompt(cli); #endif return CLI_OK; -- 2.20.1