If a line contains a tab character and roughly has the same number of characters (whether combined UTF-8 or not) as there are window columns (curwp->w_cols) then the point will jump to the column of curwp->w_cols - 3, where 3 is the extra length added by the tab character.
One jumped to that new position, you can't use move up until you jump to the beginning of the line or move down a line.
My guess is that it has something to do with the display function in display.c
If a line contains a tab character and roughly has the same number of characters (whether combined UTF-8 or not) as there are window columns (curwp->w_cols) then the point will jump to the column of `curwp->w_cols - 3`, where _3_ is the extra length added by the tab character.
One jumped to that new position, you can't use move up until you jump to the beginning of the line or move down a line.
My guess is that it has something to do with the `display` function in `display.c`
If a line contains a tab character and roughly has the same number of characters (whether combined UTF-8 or not) as there are window columns (curwp->w_cols) then the point will jump to the column of
curwp->w_cols - 3
, where 3 is the extra length added by the tab character.One jumped to that new position, you can't use move up until you jump to the beginning of the line or move down a line.
My guess is that it has something to do with the
display
function indisplay.c