diff --git a/src/chars.c b/src/chars.c index 99c41f7d7c8fef5be4286dba4fad86572069e7b8..60f9ec8120aaabda016485b05f11152a00720adb 100644 --- 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