From: Steve Bennett Date: Thu, 30 Sep 2010 22:23:28 +0000 (+1000) Subject: Highlight control characters X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=682e08387837e29d923a0f53f473c5863686453f;p=linenoise.git Highlight control characters Signed-off-by: Steve Bennett --- 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++; }