mirror of
https://github.com/tmux/tmux.git
synced 2025-01-12 03:08:46 +00:00
Merge branch 'obsd-master'
This commit is contained in:
commit
a4a7c3c68d
19
grid.c
19
grid.c
@ -145,12 +145,14 @@ grid_extended_cell(struct grid_line *gl, struct grid_cell_entry *gce,
|
|||||||
return (gcp);
|
return (gcp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Get line data. */
|
||||||
struct grid_line *
|
struct grid_line *
|
||||||
grid_get_line(struct grid *gd, u_int line)
|
grid_get_line(struct grid *gd, u_int line)
|
||||||
{
|
{
|
||||||
return (&gd->linedata[line]);
|
return (&gd->linedata[line]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Adjust number of lines. */
|
||||||
void
|
void
|
||||||
grid_adjust_lines(struct grid *gd, u_int lines)
|
grid_adjust_lines(struct grid *gd, u_int lines)
|
||||||
{
|
{
|
||||||
@ -284,6 +286,15 @@ grid_compare(struct grid *ga, struct grid *gb)
|
|||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Trim lines from the history. */
|
||||||
|
static void
|
||||||
|
grid_trim_history(struct grid *gd, u_int ny)
|
||||||
|
{
|
||||||
|
grid_free_lines(gd, 0, ny);
|
||||||
|
memmove(&gd->linedata[0], &gd->linedata[ny],
|
||||||
|
(gd->hsize + gd->sy - ny) * (sizeof *gd->linedata));
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Collect lines from the history if at the limit. Free the top (oldest) 10%
|
* Collect lines from the history if at the limit. Free the top (oldest) 10%
|
||||||
* and shift up.
|
* and shift up.
|
||||||
@ -306,9 +317,7 @@ grid_collect_history(struct grid *gd)
|
|||||||
* Free the lines from 0 to ny then move the remaining lines over
|
* Free the lines from 0 to ny then move the remaining lines over
|
||||||
* them.
|
* them.
|
||||||
*/
|
*/
|
||||||
grid_free_lines(gd, 0, ny);
|
grid_trim_history(gd, ny);
|
||||||
memmove(&gd->linedata[0], &gd->linedata[ny],
|
|
||||||
(gd->hsize + gd->sy - ny) * (sizeof *gd->linedata));
|
|
||||||
|
|
||||||
gd->hsize -= ny;
|
gd->hsize -= ny;
|
||||||
if (gd->hscrolled > gd->hsize)
|
if (gd->hscrolled > gd->hsize)
|
||||||
@ -338,9 +347,7 @@ grid_scroll_history(struct grid *gd, u_int bg)
|
|||||||
void
|
void
|
||||||
grid_clear_history(struct grid *gd)
|
grid_clear_history(struct grid *gd)
|
||||||
{
|
{
|
||||||
grid_free_lines(gd, 0, gd->hsize);
|
grid_trim_history(gd, gd->hsize);
|
||||||
memmove(&gd->linedata[0], &gd->linedata[gd->hsize],
|
|
||||||
gd->sy * (sizeof *gd->linedata));
|
|
||||||
|
|
||||||
gd->hscrolled = 0;
|
gd->hscrolled = 0;
|
||||||
gd->hsize = 0;
|
gd->hsize = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user