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 containts 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:
Nicholas Marriott
2009-08-08 13:29:27 +00:00
parent e89e70e715
commit 5e01b6d663
7 changed files with 111 additions and 123 deletions

15
tmux.h
View File

@@ -500,6 +500,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;
@@ -511,11 +520,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. */