Skip to content

Commit

Permalink
Merge branch 'obsd-master'
Browse files Browse the repository at this point in the history
  • Loading branch information
ThomasAdam committed Sep 25, 2015
2 parents b037284 + 28f23f1 commit 20c3adc
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 7 deletions.
4 changes: 1 addition & 3 deletions cmd-clear-history.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,7 @@ cmd_clear_history_exec(struct cmd *self, struct cmd_q *cmdq)

if (wp->mode == &window_copy_mode)
window_pane_reset_mode(wp);

grid_move_lines(gd, 0, gd->hsize, gd->sy);
gd->hsize = 0;
grid_clear_history(gd);

return (CMD_RETURN_NORMAL);
}
20 changes: 16 additions & 4 deletions grid.c
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,18 @@ grid_scroll_history(struct grid *gd)
gd->hsize++;
}

/* Clear the history. */
void
grid_clear_history(struct grid *gd)
{
grid_clear_lines(gd, 0, gd->hsize);
grid_move_lines(gd, 0, gd->hsize, gd->sy);

gd->hsize = 0;
gd->linedata = xreallocarray(gd->linedata, gd->sy,
sizeof *gd->linedata);
}

/* Scroll a region up, moving the top line into the history. */
void
grid_scroll_history_region(struct grid *gd, u_int upper, u_int lower)
Expand Down Expand Up @@ -344,8 +356,8 @@ grid_move_lines(struct grid *gd, u_int dy, u_int py, u_int ny)
grid_clear_lines(gd, yy, 1);
}

memmove(
&gd->linedata[dy], &gd->linedata[py], ny * (sizeof *gd->linedata));
memmove(&gd->linedata[dy], &gd->linedata[py],
ny * (sizeof *gd->linedata));

/* Wipe any lines that have been moved (without freeing them). */
for (yy = py; yy < py + ny; yy++) {
Expand All @@ -371,8 +383,8 @@ grid_move_cells(struct grid *gd, u_int dx, u_int px, u_int py, u_int nx)

grid_expand_line(gd, py, px + nx);
grid_expand_line(gd, py, dx + nx);
memmove(
&gl->celldata[dx], &gl->celldata[px], nx * sizeof *gl->celldata);
memmove(&gl->celldata[dx], &gl->celldata[px],
nx * sizeof *gl->celldata);

/* Wipe any cells that have been moved. */
for (xx = px; xx < px + nx; xx++) {
Expand Down
1 change: 1 addition & 0 deletions tmux.h
Original file line number Diff line number Diff line change
Expand Up @@ -1843,6 +1843,7 @@ int grid_compare(struct grid *, struct grid *);
void grid_collect_history(struct grid *);
void grid_scroll_history(struct grid *);
void grid_scroll_history_region(struct grid *, u_int, u_int);
void grid_clear_history(struct grid *);
void grid_expand_line(struct grid *, u_int, u_int);
const struct grid_cell *grid_peek_cell(struct grid *, u_int, u_int);
const struct grid_line *grid_peek_line(struct grid *, u_int);
Expand Down

0 comments on commit 20c3adc

Please sign in to comment.