nano

nano with my custom patches
git clone git://bsandro.tech/nano
Log | Files | Refs | README | LICENSE

commit 4172268bd2552cf77540357f070abd216e834277
parent a9f79a6130796858f66550fd5faa6e3099e59105
Author: Benno Schulenberg <bensberg@justemail.net>
Date:   Sat, 28 May 2016 15:56:16 +0200

chars: the representation of control characters is always two columns wide

Diffstat:
Msrc/chars.c | 18+++---------------
1 file changed, 3 insertions(+), 15 deletions(-)

diff --git a/src/chars.c b/src/chars.c @@ -423,22 +423,10 @@ int parse_mbchar(const char *buf, char *chr, size_t *col) * current value of col. */ if (*buf == '\t') *col += tabsize - *col % tabsize; - /* If we have a control character, get its width using one - * column for the "^" that will be displayed in front of it, - * and the width in columns of its visible equivalent as - * returned by control_mbrep(). */ + /* If we have a control character, it's two columns wide: one + * column for the "^", and one for the visible character. */ else if (is_cntrl_mbchar(buf)) { - char *ctrl_buf_mb = charalloc(MB_CUR_MAX); - int ctrl_buf_mb_len; - - (*col)++; - - ctrl_buf_mb = control_mbrep(buf, ctrl_buf_mb, - &ctrl_buf_mb_len); - - *col += mbwidth(ctrl_buf_mb); - - free(ctrl_buf_mb); + *col += 2; /* If we have a normal character, get its width in columns * normally. */ } else