In order to find the "real meat" of the display_line function I started to slowly remove most of the lines of the function as long as it does not break emacs and text can be typed. In the end I was left with this a 20-25 lines function (excluding comments and spaces): (I have attached this function too) static bool display_line (struct it *it, int cursor_vpos) { struct glyph_row *row = it->glyph_row; /* Clear the result glyph row and enable it. */ prepare_desired_row (it->w, row, false); row->y = it->current_y; /* Loop generating characters. The loop is left with IT on the next character to display. */ while (true) { /* Retrieve the next thing to display. Value is false if end of buffer reached. */ if (!get_next_display_element (it)) { break; } PRODUCE_GLYPHS (it); at_end_of_line: /* Is this a line end? If yes, we're also done, after making sure that a non-default face is extended up to the right margin of the window. */ if (ITERATOR_AT_END_OF_LINE_P (it)) { /* Consume the line end. This skips over invisible lines. */ set_iterator_to_next (it, true); break; } set_iterator_to_next (it, true); } /* Compute pixel dimensions of this line. */ compute_line_metrics (it); /* Prepare for the next line. This line starts horizontally at (X HPOS) = (0 0). Vertical positions are incremented. As a convenience for the caller, IT->glyph_row is set to the next row to be used. */ it->current_y += row->height; ++it->glyph_row; return MATRIX_ROW_DISPLAYS_TEXT_P (row); } Obviously most of the things do not work such as bidi, word wrapping, displaying cursor and line numbers but still text is being shown in rows one after the other and it can be scrolled, but now there are no lines mentioning the hpos, the x-coordinate, first_visible_x or last_visible_x, does that mean I do not understand the display_line function? I thought its function was to fill a row with glyphs in the desired matrix to display it on the glass but now I cannot find a line which fills the matrix. You had advised to swap the x and y coordinates, but here there is no x coordinate present! How can the redisplay still work? >> Regrettably my inexperience is causing hurdles therefore any guidance would be a huge help. > Don't give up. And thanks for working on this. Thank you for bearing with me.