mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-17 10:27:41 +00:00
(current_column): Fix column computation in the
presence of display table entries. (current_column_1, Fmove_to_column, compute_motion): Likewise.
This commit is contained in:
parent
dd42b31ac4
commit
f1004faf26
2 changed files with 17 additions and 0 deletions
|
|
@ -1,5 +1,9 @@
|
|||
2001-07-23 Gerd Moellmann <gerd@gnu.org>
|
||||
|
||||
* 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.
|
||||
|
|
|
|||
13
src/indent.c
13
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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue