Sync OpenBSD patchset 226:

Change the way the grid is stored, previously it was:

- a two-dimensional array of cells;
- a two-dimensional array of utf8 data;
- an array of line lengths.

Now it is a single array of a new struct grid_line each of which represents a
line and contains the length and an array of cells and an array of utf8 data.

This will make it easier to add additional per-line members, such as flags.
This commit is contained in:
Tiago Cunha
2009-08-09 17:28:24 +00:00
parent 5b56ea1816
commit 37b0bcd7c1
7 changed files with 118 additions and 130 deletions

17
tmux.h
View File

@ -1,4 +1,4 @@
/* $Id: tmux.h,v 1.405 2009-08-09 17:19:18 tcunha Exp $ */
/* $Id: tmux.h,v 1.406 2009-08-09 17:28:23 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -499,6 +499,15 @@ struct grid_utf8 {
u_char data[UTF8_SIZE];
} __packed;
/* Grid line. */
struct grid_line {
u_int cellsize;
struct grid_cell *celldata;
u_int utf8size;
struct grid_utf8 *utf8data;
} __packed;
/* Entire grid of cells. */
struct grid {
int flags;
@ -510,11 +519,7 @@ struct grid {
u_int hsize;
u_int hlimit;
u_int *size;
struct grid_cell **data;
u_int *usize;
struct grid_utf8 **udata;
struct grid_line *linedata;
};
/* Option data structures. */