Handle displaying control characters better
This commit is contained in:
parent
f5ba357eac
commit
1c0db7e5da
17
kilo.c
17
kilo.c
@ -997,7 +997,22 @@ void editorDrawRows(struct abuf *ab)
|
|||||||
int j;
|
int j;
|
||||||
for (j = 0; j < len; j++)
|
for (j = 0; j < len; j++)
|
||||||
{
|
{
|
||||||
if (hl[j] == HL_NORMAL)
|
// Make control characters "readable"
|
||||||
|
if (iscntrl(c[j]))
|
||||||
|
{
|
||||||
|
char sym = (c[j] <= 26) ? '@' + c[j] : '?';
|
||||||
|
abAppend(ab, "\x1b[7m", 4);
|
||||||
|
abAppend(ab, &sym, 1);
|
||||||
|
abAppend(ab, "\x1b[m", 3);
|
||||||
|
// Restore the previous highlighting color
|
||||||
|
if (current_color != -1)
|
||||||
|
{
|
||||||
|
char buf[16];
|
||||||
|
int clen = snprintf(buf, sizeof(buf), "\x1b[%dm", current_color);
|
||||||
|
abAppend(ab, buf, clen);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (hl[j] == HL_NORMAL)
|
||||||
{
|
{
|
||||||
if (current_color != -1)
|
if (current_color != -1)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user