I'm not sure I understand the question. Are you saying that if you ignore
the line overflow, termination of a line, etc., you can write code that does
display characters column-wise?
I thought that displaying line row wise is the "base" of the display_line function with code for
line truncation, overflow, bidi etc added on top of it in "if" blocks, so if I could just get the base to work (i.e. displaying lines in a column)
then I could work on the the finer details.
Am I wrong?
In any case, it is hard to discuss this without seeing the code which
doesn't work. Is the code you wrote available anywhere for review?
Unfortunately it is no longer available.
One line which I remember causing a problem though was line 24500 in src/xdisp.c
row->y = it->current_y;
if I changed it to: row->x = it->current_x; Emacs no longer displays characters.