~petersanchez/st

fbc6ec3207fa1298ec8347697ddea6b3e78f13d0 — Aurélien Aptel 13 years ago 9d82bdd
resize from the top.
1 files changed, 15 insertions(+), 2 deletions(-)

M st.c
M st.c => st.c +15 -2
@@ 1060,12 1060,25 @@ tresize(int col, int row) {
	int i;
	int minrow = MIN(row, term.row);
	int mincol = MIN(col, term.col);
	int slide = term.c.y - row + 1;

	if(col < 1 || row < 1)
		return;

	/* free uneeded rows */
	for(i = row; i < term.row; i++) {
	/* free unneeded rows */
	i = 0;
	if(slide > 0) {
		/* slide screen to keep cursor where we expect it -
		 * tscrollup would work here, but we can optimize to
		 * memmove because we're freeing the earlier lines */
		for(/* i = 0 */; i < slide; i++) {
			free(term.line[i]);
			free(term.alt[i]);
		}
		memmove(term.line, term.line + slide, row * sizeof(Line));
		memmove(term.alt, term.alt + slide, row * sizeof(Line));
	}
	for(i += row; i < term.row; i++) {
		free(term.line[i]);
		free(term.alt[i]);
	}