From 5e01b6d663abc086847c9bec145edeb9cd91530a Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Sat, 8 Aug 2009 13:29:27 +0000 Subject: 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. --- cmd-server-info.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'cmd-server-info.c') diff --git a/cmd-server-info.c b/cmd-server-info.c index ce038e12..a79f2520 100644 --- a/cmd-server-info.c +++ b/cmd-server-info.c @@ -57,6 +57,7 @@ cmd_server_info_exec(unused struct cmd *self, struct cmd_ctx *ctx) struct tty_term_code_entry *ent; struct utsname un; struct grid *gd; + struct grid_line *gl; u_int i, j, k; char out[80]; char *tim; @@ -120,15 +121,16 @@ cmd_server_info_exec(unused struct cmd *self, struct cmd_ctx *ctx) lines = ulines = size = usize = 0; gd = wp->base.grid; for (k = 0; k < gd->hsize + gd->sy; k++) { - if (gd->data[k] != NULL) { + gl = &gd->linedata[k]; + if (gl->celldata != NULL) { lines++; - size += gd->size[k] * - sizeof (**gd->data); + size += gl->cellsize * + sizeof *gl->celldata; } - if (gd->udata[k] != NULL) { + if (gl->utf8data != NULL) { ulines++; - usize += gd->usize[k] * - sizeof (**gd->udata); + usize += gl->utf8size * + sizeof *gl->utf8data; } } ctx->print(ctx, "%6u: %s %lu %d %u/%u, %zu " -- cgit