···
ctx->esc_values[0] = ctx->rows - 1;
ctx->set_cursor_pos(ctx, ctx->esc_values[1], ctx->esc_values[0]);
-
for (size_t i = 0; i < ctx->esc_values[0]; i++) {
size_t old_scroll_top_margin = ctx->scroll_top_margin;
ctx->scroll_top_margin = y;
-
for (size_t i = 0; i < ctx->esc_values[0]; i++) {
ctx->scroll_top_margin = old_scroll_top_margin;
···
ctx->move_character(ctx, i - ctx->esc_values[0], y, i, y);
ctx->set_cursor_pos(ctx, ctx->cols - ctx->esc_values[0], y);
-
for (size_t i = 0; i < ctx->esc_values[0]; i++)
ctx->raw_putchar(ctx, ' ');
ctx->set_cursor_pos(ctx, x, y);
···
ctx->esc_values[0] = ctx->rows - 1;
ctx->set_cursor_pos(ctx, ctx->esc_values[1], ctx->esc_values[0]);
+
size_t count = ctx->esc_values[0] > ctx->rows ? ctx->rows : ctx->esc_values[0];
+
for (size_t i = 0; i < count; i++) {
size_t old_scroll_top_margin = ctx->scroll_top_margin;
ctx->scroll_top_margin = y;
+
size_t count = ctx->esc_values[0] > ctx->rows ? ctx->rows : ctx->esc_values[0];
+
for (size_t i = 0; i < count; i++) {
ctx->scroll_top_margin = old_scroll_top_margin;
···
ctx->move_character(ctx, i - ctx->esc_values[0], y, i, y);
ctx->set_cursor_pos(ctx, ctx->cols - ctx->esc_values[0], y);
+
size_t count = ctx->esc_values[0] > ctx->cols ? ctx->cols : ctx->esc_values[0];
+
for (size_t i = 0; i < count; i++)
ctx->raw_putchar(ctx, ' ');
ctx->set_cursor_pos(ctx, x, y);