From f1004faf26f399e86f2000ef7702f4142de0a64b Mon Sep 17 00:00:00 2001 From: Gerd Moellmann Date: Mon, 23 Jul 2001 14:47:42 +0000 Subject: [PATCH] (current_column): Fix column computation in the presence of display table entries. (current_column_1, Fmove_to_column, compute_motion): Likewise. --- src/ChangeLog | 4 ++++ src/indent.c | 13 +++++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/ChangeLog b/src/ChangeLog index 790b79e07cd..b8702273e7f 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,9 @@ 2001-07-23 Gerd Moellmann + * indent.c (current_column): Fix column computation in the + presence of display table entries. + (current_column_1, Fmove_to_column, compute_motion): Likewise. + * dispnew.c (adjust_glyph_matrix): In the optimization for windows whose height has changed, use the new window height to compute which rows to invalidate. diff --git a/src/indent.c b/src/indent.c index 49768ea5206..2d0ea9fcae9 100644 --- a/src/indent.c +++ b/src/indent.c @@ -465,6 +465,13 @@ current_column () col = 0; tab_seen = 1; } + else if (VECTORP (charvec)) + /* With a display table entry, C is displayed as is, and + not displayed as \NNN or as ^N. If C is a single-byte + character, it takes one column. If C is multi-byte in + an unibyte buffer, it's translated to unibyte, so it + also takes one column. */ + ++col; else col += (ctl_arrow && c < 0200) ? 2 : 4; } @@ -607,6 +614,8 @@ current_column_1 () scan_byte += bytes; col += width; } + else if (VECTORP (charvec)) + ++col; else if (ctl_arrow && (c < 040 || c == 0177)) col += 2; else if (c < 040 || c >= 0177) @@ -1016,6 +1025,8 @@ The return value is the current column.") col += tab_width; col = col / tab_width * tab_width; } + else if (VECTORP (charvec)) + ++col; else if (ctl_arrow && (c < 040 || c == 0177)) col += 2; else if (c < 040 || c == 0177) @@ -1654,6 +1665,8 @@ compute_motion (from, fromvpos, fromhpos, did_motion, to, tovpos, tohpos, width, wide_column_end_hpos = hpos + wide_column; hpos += width; } + else if (VECTORP (charvec)) + ++hpos; else hpos += (ctl_arrow && c < 0200) ? 2 : 4; } -- 2.39.5