From 682e08387837e29d923a0f53f473c5863686453f Mon Sep 17 00:00:00 2001 From: Steve Bennett Date: Fri, 1 Oct 2010 08:23:28 +1000 Subject: [PATCH] Highlight control characters Signed-off-by: Steve Bennett --- linenoise.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/linenoise.c b/linenoise.c index 0812467..c496841 100644 --- a/linenoise.c +++ b/linenoise.c @@ -81,6 +81,14 @@ * Sequence: ESC [ 2 J * Effect: clear the whole screen * + * For highlighting control characters, we also use: + * SO (enter StandOut) + * Sequence: ESC [ 7 m + * Effect: Uses some standout mode such as reverse video + * + * SE (Standout End) + * Sequence: ESC [ 0 m + * Effect: Exit standout mode */ #include @@ -210,9 +218,8 @@ static void refreshLine(int fd, const char *prompt, char *buf, size_t len, size_ if (buf[i] < ' ') { write(fd, buf + p, i - p); p = i + 1; - seq[0] = '^'; - seq[1] = buf[i] + '@'; - write(fd, seq, 2); + snprintf(seq,64,"\033[7m^%c\033[0m", buf[i] + '@'); + if (write(fd,seq,strlen(seq)) == -1) return; if (i < pos) { extra++; } -- 2.44.0