From 05a4eae605de84e58869462dd14e966629b648da Mon Sep 17 00:00:00 2001 From: Ron Koenderink Date: Sun, 29 May 2005 16:22:14 +0000 Subject: [PATCH] (output,screen): In ASCII mode, remove standout bit if the client does not support standout mode. In UTF8 mode, remove SO/SI characters if the client does not support standout mode. --- src/client/servcmd.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/client/servcmd.c b/src/client/servcmd.c index 3a2a3abc..1d420a29 100644 --- a/src/client/servcmd.c +++ b/src/client/servcmd.c @@ -326,10 +326,7 @@ output(int code, char *buf, FILE *auxfi) else if (pipe_fp) fprintf(pipe_fp, "%s\n", buf); else { - if (SO && SE) - screen(buf); - else - fputs(buf, stdout); + screen(buf); if (code == C_FLUSH) (void)fflush(stdout); else @@ -344,13 +341,21 @@ screen(char *buf) while ((c = *buf++)) { if (eight_bit_clean) { - if (c == 14) fputs(SO, stdout); - else if (c == 15) fputs(SE, stdout); + if (c == 14) { + if (SO) + fputs(SO, stdout); + } + else if (c == 15) { + if (SE) + fputs(SE, stdout); + } else putchar(c); } else if (c & 0x80) { - fputs(SO, stdout); + if (SO) + fputs(SO, stdout); putchar(c & 0x7f); - fputs(SE, stdout); + if (SE) + fputs(SE, stdout); } else putchar(c); }