request for code explanation: rxvt_term::scr_reset()
Raphaƫl
raphael.droz at gmail.com
Sat Jan 26 11:32:04 CET 2013
Hi,
I intend to understand some parts of the code of rxvt_term::scr_reset():
While trying to keep "track" of a line (according to term_start), I
found that resizing the terminal would make its value jump suddenly.
When resize happens, this triggers rxvt_term::scr_reset()
- if scrollback is 1000, saveLines == 1000
--> total_rows = nrow + saveLines
- if, before resizing, you had put at least 1 line in the scrollback
then prev_row_buf != 0
then happens "add or delete rows as appropriate" (around screen.C:290)
then if(top_row),
--> term_start = total_rows - nrow (== saveLines) // issue ?
That means, if you had 1 line in the scrollback, term_start was 1, but
as soon as the window is resized (eg: from 24 to 25 rows), it becomes
total_rows = 1000 + 25, and term_start = 1000 instead of being back to 0.
I can't see any direct implication over the existing terminal behavior,
but this variation of term_start is confusing for me from a code perspective.
Explanation appreciated.
regards
More information about the rxvt-unicode
mailing list