struct grid_data -> struct grid. Stage 1 of the Grand Plan To Make UTF-8 Better.

This commit is contained in:
Nicholas Marriott 2009-03-28 15:43:41 +00:00
parent 8762338e30
commit 989d67ccd7
6 changed files with 79 additions and 79 deletions

View File

@ -1,4 +1,4 @@
/* $Id: cmd-list-windows.c,v 1.30 2009-01-19 18:23:40 nicm Exp $ */ /* $Id: cmd-list-windows.c,v 1.31 2009-03-28 15:43:41 nicm Exp $ */
/* /*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -49,7 +49,7 @@ cmd_list_windows_exec(struct cmd *self, struct cmd_ctx *ctx)
struct winlink *wl; struct winlink *wl;
struct window *w; struct window *w;
struct window_pane *wp; struct window_pane *wp;
struct grid_data *gd; struct grid *gd;
u_int i; u_int i;
unsigned long long size; unsigned long long size;
const char *name; const char *name;

View File

@ -1,4 +1,4 @@
/* $Id: grid-view.c,v 1.6 2009-01-10 01:51:21 nicm Exp $ */ /* $Id: grid-view.c,v 1.7 2009-03-28 15:43:41 nicm Exp $ */
/* /*
* Copyright (c) 2008 Nicholas Marriott <nicm@users.sourceforge.net> * Copyright (c) 2008 Nicholas Marriott <nicm@users.sourceforge.net>
@ -32,14 +32,14 @@
/* Get cell for reading. */ /* Get cell for reading. */
const struct grid_cell * const struct grid_cell *
grid_view_peek_cell(struct grid_data *gd, u_int px, u_int py) grid_view_peek_cell(struct grid *gd, u_int px, u_int py)
{ {
return (grid_peek_cell(gd, grid_view_x(gd, px), grid_view_y(gd, py))); return (grid_peek_cell(gd, grid_view_x(gd, px), grid_view_y(gd, py)));
} }
/* Get cell for writing. */ /* Get cell for writing. */
struct grid_cell * struct grid_cell *
grid_view_get_cell(struct grid_data *gd, u_int px, u_int py) grid_view_get_cell(struct grid *gd, u_int px, u_int py)
{ {
return (grid_get_cell(gd, grid_view_x(gd, px), grid_view_y(gd, py))); return (grid_get_cell(gd, grid_view_x(gd, px), grid_view_y(gd, py)));
} }
@ -47,14 +47,14 @@ grid_view_get_cell(struct grid_data *gd, u_int px, u_int py)
/* Set cell. */ /* Set cell. */
void void
grid_view_set_cell( grid_view_set_cell(
struct grid_data *gd, u_int px, u_int py, const struct grid_cell *gc) struct grid *gd, u_int px, u_int py, const struct grid_cell *gc)
{ {
grid_set_cell(gd, grid_view_x(gd, px), grid_view_y(gd, py), gc); grid_set_cell(gd, grid_view_x(gd, px), grid_view_y(gd, py), gc);
} }
/* Clear area. */ /* Clear area. */
void void
grid_view_clear(struct grid_data *gd, u_int px, u_int py, u_int nx, u_int ny) grid_view_clear(struct grid *gd, u_int px, u_int py, u_int nx, u_int ny)
{ {
GRID_DEBUG(gd, "px=%u, py=%u, nx=%u, ny=%u", px, py, nx, ny); GRID_DEBUG(gd, "px=%u, py=%u, nx=%u, ny=%u", px, py, nx, ny);
@ -66,7 +66,7 @@ grid_view_clear(struct grid_data *gd, u_int px, u_int py, u_int nx, u_int ny)
/* Fill area. */ /* Fill area. */
void void
grid_view_fill(struct grid_data *gd, grid_view_fill(struct grid *gd,
const struct grid_cell *gc, u_int px, u_int py, u_int nx, u_int ny) const struct grid_cell *gc, u_int px, u_int py, u_int nx, u_int ny)
{ {
GRID_DEBUG(gd, "px=%u, py=%u, nx=%u, ny=%u", px, py, nx, ny); GRID_DEBUG(gd, "px=%u, py=%u, nx=%u, ny=%u", px, py, nx, ny);
@ -79,7 +79,7 @@ grid_view_fill(struct grid_data *gd,
/* Scroll region up. */ /* Scroll region up. */
void void
grid_view_scroll_region_up(struct grid_data *gd, u_int rupper, u_int rlower) grid_view_scroll_region_up(struct grid *gd, u_int rupper, u_int rlower)
{ {
GRID_DEBUG(gd, "rupper=%u, rlower=%u", rupper, rlower); GRID_DEBUG(gd, "rupper=%u, rlower=%u", rupper, rlower);
@ -96,7 +96,7 @@ grid_view_scroll_region_up(struct grid_data *gd, u_int rupper, u_int rlower)
/* Scroll region down. */ /* Scroll region down. */
void void
grid_view_scroll_region_down(struct grid_data *gd, u_int rupper, u_int rlower) grid_view_scroll_region_down(struct grid *gd, u_int rupper, u_int rlower)
{ {
GRID_DEBUG(gd, "rupper=%u, rlower=%u", rupper, rlower); GRID_DEBUG(gd, "rupper=%u, rlower=%u", rupper, rlower);
@ -108,7 +108,7 @@ grid_view_scroll_region_down(struct grid_data *gd, u_int rupper, u_int rlower)
/* Insert lines. */ /* Insert lines. */
void void
grid_view_insert_lines(struct grid_data *gd, u_int py, u_int ny) grid_view_insert_lines(struct grid *gd, u_int py, u_int ny)
{ {
u_int sy; u_int sy;
@ -124,7 +124,7 @@ grid_view_insert_lines(struct grid_data *gd, u_int py, u_int ny)
/* Insert lines in region. */ /* Insert lines in region. */
void void
grid_view_insert_lines_region( grid_view_insert_lines_region(
struct grid_data *gd, u_int rupper, u_int rlower, u_int py, u_int ny) struct grid *gd, u_int rupper, u_int rlower, u_int py, u_int ny)
{ {
GRID_DEBUG( GRID_DEBUG(
gd, "rupper=%u, rlower=%u, py=%u, ny=%u", rupper, rlower, py, ny); gd, "rupper=%u, rlower=%u, py=%u, ny=%u", rupper, rlower, py, ny);
@ -138,7 +138,7 @@ grid_view_insert_lines_region(
/* Delete lines. */ /* Delete lines. */
void void
grid_view_delete_lines(struct grid_data *gd, u_int py, u_int ny) grid_view_delete_lines(struct grid *gd, u_int py, u_int ny)
{ {
u_int sy; u_int sy;
@ -154,7 +154,7 @@ grid_view_delete_lines(struct grid_data *gd, u_int py, u_int ny)
/* Delete lines inside scroll region. */ /* Delete lines inside scroll region. */
void void
grid_view_delete_lines_region( grid_view_delete_lines_region(
struct grid_data *gd, u_int rupper, u_int rlower, u_int py, u_int ny) struct grid *gd, u_int rupper, u_int rlower, u_int py, u_int ny)
{ {
GRID_DEBUG( GRID_DEBUG(
gd, "rupper=%u, rlower=%u, py=%u, ny=%u", rupper, rlower, py, ny); gd, "rupper=%u, rlower=%u, py=%u, ny=%u", rupper, rlower, py, ny);
@ -168,7 +168,7 @@ grid_view_delete_lines_region(
/* Insert characters. */ /* Insert characters. */
void void
grid_view_insert_cells(struct grid_data *gd, u_int px, u_int py, u_int nx) grid_view_insert_cells(struct grid *gd, u_int px, u_int py, u_int nx)
{ {
u_int sx; u_int sx;
@ -187,7 +187,7 @@ grid_view_insert_cells(struct grid_data *gd, u_int px, u_int py, u_int nx)
/* Delete characters. */ /* Delete characters. */
void void
grid_view_delete_cells(struct grid_data *gd, u_int px, u_int py, u_int nx) grid_view_delete_cells(struct grid *gd, u_int px, u_int py, u_int nx)
{ {
u_int sx; u_int sx;

48
grid.c
View File

@ -1,4 +1,4 @@
/* $Id: grid.c,v 1.9 2009-02-16 18:51:39 nicm Exp $ */ /* $Id: grid.c,v 1.10 2009-03-28 15:43:41 nicm Exp $ */
/* /*
* Copyright (c) 2008 Nicholas Marriott <nicm@users.sourceforge.net> * Copyright (c) 2008 Nicholas Marriott <nicm@users.sourceforge.net>
@ -41,12 +41,12 @@ const struct grid_cell grid_default_cell = { ' ', 0, 0, 8, 8 };
memcpy(&gd->data[py][px], gc, sizeof gd->data[py][px]); \ memcpy(&gd->data[py][px], gc, sizeof gd->data[py][px]); \
} while (0) } while (0)
int grid_check_x(struct grid_data *, u_int); int grid_check_x(struct grid *, u_int);
int grid_check_y(struct grid_data *, u_int); int grid_check_y(struct grid *, u_int);
#ifdef DEBUG #ifdef DEBUG
int int
grid_check_x(struct grid_data *gd, u_int px) grid_check_x(struct grid *gd, u_int px)
{ {
if ((px) >= (gd)->sx) if ((px) >= (gd)->sx)
log_fatalx("x out of range: %u", px); log_fatalx("x out of range: %u", px);
@ -54,7 +54,7 @@ grid_check_x(struct grid_data *gd, u_int px)
} }
int int
grid_check_y(struct grid_data *gd, u_int py) grid_check_y(struct grid *gd, u_int py)
{ {
if ((py) >= (gd)->hsize + (gd)->sy) if ((py) >= (gd)->hsize + (gd)->sy)
log_fatalx("y out of range: %u", py); log_fatalx("y out of range: %u", py);
@ -62,7 +62,7 @@ grid_check_y(struct grid_data *gd, u_int py)
} }
#else #else
int int
grid_check_x(struct grid_data *gd, u_int px) grid_check_x(struct grid *gd, u_int px)
{ {
if ((px) >= (gd)->sx) { if ((px) >= (gd)->sx) {
log_debug("x out of range: %u", px); log_debug("x out of range: %u", px);
@ -72,7 +72,7 @@ grid_check_x(struct grid_data *gd, u_int px)
} }
int int
grid_check_y(struct grid_data *gd, u_int py) grid_check_y(struct grid *gd, u_int py)
{ {
if ((py) >= (gd)->hsize + (gd)->sy) { if ((py) >= (gd)->hsize + (gd)->sy) {
log_debug("y out of range: %u", py); log_debug("y out of range: %u", py);
@ -83,10 +83,10 @@ grid_check_y(struct grid_data *gd, u_int py)
#endif #endif
/* Create a new grid. */ /* Create a new grid. */
struct grid_data * struct grid *
grid_create(u_int sx, u_int sy, u_int hlimit) grid_create(u_int sx, u_int sy, u_int hlimit)
{ {
struct grid_data *gd; struct grid *gd;
gd = xmalloc(sizeof *gd); gd = xmalloc(sizeof *gd);
gd->sx = sx; gd->sx = sx;
@ -103,7 +103,7 @@ grid_create(u_int sx, u_int sy, u_int hlimit)
/* Destroy grid. */ /* Destroy grid. */
void void
grid_destroy(struct grid_data *gd) grid_destroy(struct grid *gd)
{ {
u_int yy; u_int yy;
@ -121,7 +121,7 @@ grid_destroy(struct grid_data *gd)
/* Compare grids. */ /* Compare grids. */
int int
grid_compare(struct grid_data *ga, struct grid_data *gb) grid_compare(struct grid *ga, struct grid *gb)
{ {
struct grid_cell *gca, *gcb; struct grid_cell *gca, *gcb;
u_int xx, yy; u_int xx, yy;
@ -145,7 +145,7 @@ grid_compare(struct grid_data *ga, struct grid_data *gb)
/* Scroll a line into the history. */ /* Scroll a line into the history. */
void void
grid_scroll_line(struct grid_data *gd) grid_scroll_line(struct grid *gd)
{ {
u_int yy; u_int yy;
@ -173,7 +173,7 @@ grid_scroll_line(struct grid_data *gd)
/* Reduce line to fit to cell. */ /* Reduce line to fit to cell. */
void void
grid_reduce_line(struct grid_data *gd, u_int py, u_int sx) grid_reduce_line(struct grid *gd, u_int py, u_int sx)
{ {
if (sx >= gd->size[py]) if (sx >= gd->size[py])
return; return;
@ -184,7 +184,7 @@ grid_reduce_line(struct grid_data *gd, u_int py, u_int sx)
/* Expand line to fit to cell. */ /* Expand line to fit to cell. */
void void
grid_expand_line(struct grid_data *gd, u_int py, u_int sx) grid_expand_line(struct grid *gd, u_int py, u_int sx)
{ {
u_int xx; u_int xx;
@ -199,7 +199,7 @@ grid_expand_line(struct grid_data *gd, u_int py, u_int sx)
/* Get cell for reading. */ /* Get cell for reading. */
const struct grid_cell * const struct grid_cell *
grid_peek_cell(struct grid_data *gd, u_int px, u_int py) grid_peek_cell(struct grid *gd, u_int px, u_int py)
{ {
if (grid_check_x(gd, px) != 0) if (grid_check_x(gd, px) != 0)
return (&grid_default_cell); return (&grid_default_cell);
@ -213,7 +213,7 @@ grid_peek_cell(struct grid_data *gd, u_int px, u_int py)
/* Get cell at relative position (for writing). */ /* Get cell at relative position (for writing). */
struct grid_cell * struct grid_cell *
grid_get_cell(struct grid_data *gd, u_int px, u_int py) grid_get_cell(struct grid *gd, u_int px, u_int py)
{ {
if (grid_check_x(gd, px) != 0) if (grid_check_x(gd, px) != 0)
return (NULL); return (NULL);
@ -227,7 +227,7 @@ grid_get_cell(struct grid_data *gd, u_int px, u_int py)
/* Set cell at relative position. */ /* Set cell at relative position. */
void void
grid_set_cell( grid_set_cell(
struct grid_data *gd, u_int px, u_int py, const struct grid_cell *gc) struct grid *gd, u_int px, u_int py, const struct grid_cell *gc)
{ {
if (grid_check_x(gd, px) != 0) if (grid_check_x(gd, px) != 0)
return; return;
@ -243,7 +243,7 @@ grid_set_cell(
* cells. * cells.
*/ */
void void
grid_clear(struct grid_data *gd, u_int px, u_int py, u_int nx, u_int ny) grid_clear(struct grid *gd, u_int px, u_int py, u_int nx, u_int ny)
{ {
u_int xx, yy; u_int xx, yy;
@ -277,7 +277,7 @@ grid_clear(struct grid_data *gd, u_int px, u_int py, u_int nx, u_int ny)
/* Fill area. */ /* Fill area. */
void void
grid_fill(struct grid_data *gd, grid_fill(struct grid *gd,
const struct grid_cell *gc, u_int px, u_int py, u_int nx, u_int ny) const struct grid_cell *gc, u_int px, u_int py, u_int nx, u_int ny)
{ {
u_int xx, yy; u_int xx, yy;
@ -306,7 +306,7 @@ grid_fill(struct grid_data *gd,
/* Clear lines. This just frees and truncates the lines. */ /* Clear lines. This just frees and truncates the lines. */
void void
grid_clear_lines(struct grid_data *gd, u_int py, u_int ny) grid_clear_lines(struct grid *gd, u_int py, u_int ny)
{ {
u_int yy; u_int yy;
@ -332,14 +332,14 @@ grid_clear_lines(struct grid_data *gd, u_int py, u_int ny)
/* Fill a group of lines. */ /* Fill a group of lines. */
void void
grid_fill_lines( grid_fill_lines(
struct grid_data *gd, const struct grid_cell *gc, u_int py, u_int ny) struct grid *gd, const struct grid_cell *gc, u_int py, u_int ny)
{ {
grid_fill(gd, gc, 0, py, gd->sx, ny); grid_fill(gd, gc, 0, py, gd->sx, ny);
} }
/* Move a group of lines. */ /* Move a group of lines. */
void void
grid_move_lines(struct grid_data *gd, u_int dy, u_int py, u_int ny) grid_move_lines(struct grid *gd, u_int dy, u_int py, u_int ny)
{ {
u_int yy; u_int yy;
@ -378,7 +378,7 @@ grid_move_lines(struct grid_data *gd, u_int dy, u_int py, u_int ny)
/* Clear a group of cells. */ /* Clear a group of cells. */
void void
grid_clear_cells(struct grid_data *gd, u_int px, u_int py, u_int nx) grid_clear_cells(struct grid *gd, u_int px, u_int py, u_int nx)
{ {
u_int xx; u_int xx;
@ -403,7 +403,7 @@ grid_clear_cells(struct grid_data *gd, u_int px, u_int py, u_int nx)
/* Move a group of cells. */ /* Move a group of cells. */
void void
grid_move_cells(struct grid_data *gd, u_int dx, u_int px, u_int py, u_int nx) grid_move_cells(struct grid *gd, u_int dx, u_int px, u_int py, u_int nx)
{ {
u_int xx; u_int xx;

View File

@ -1,4 +1,4 @@
/* $Id: screen-write.c,v 1.37 2009-03-05 20:27:51 nicm Exp $ */ /* $Id: screen-write.c,v 1.38 2009-03-28 15:43:41 nicm Exp $ */
/* /*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -75,7 +75,7 @@ screen_write_copy(struct screen_write_ctx *ctx,
struct screen *src, u_int px, u_int py, u_int nx, u_int ny) struct screen *src, u_int px, u_int py, u_int nx, u_int ny)
{ {
struct screen *s = ctx->s; struct screen *s = ctx->s;
struct grid_data *gd = src->grid; struct grid *gd = src->grid;
const struct grid_cell *gc; const struct grid_cell *gc;
u_int xx, yy, cx, cy; u_int xx, yy, cx, cy;
@ -516,7 +516,7 @@ void
screen_write_cell(struct screen_write_ctx *ctx, const struct grid_cell *gc) screen_write_cell(struct screen_write_ctx *ctx, const struct grid_cell *gc)
{ {
struct screen *s = ctx->s; struct screen *s = ctx->s;
struct grid_data *gd = s->grid; struct grid *gd = s->grid;
u_int width, xx; u_int width, xx;
const struct grid_cell *hc; const struct grid_cell *hc;
struct grid_cell *ic, tc; struct grid_cell *ic, tc;

View File

@ -1,4 +1,4 @@
/* $Id: screen.c,v 1.78 2009-01-10 01:51:22 nicm Exp $ */ /* $Id: screen.c,v 1.79 2009-03-28 15:43:41 nicm Exp $ */
/* /*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -87,7 +87,7 @@ screen_resize(struct screen *s, u_int sx, u_int sy)
void void
screen_resize_x(struct screen *s, u_int sx) screen_resize_x(struct screen *s, u_int sx)
{ {
struct grid_data *gd = s->grid; struct grid *gd = s->grid;
const struct grid_cell *gc; const struct grid_cell *gc;
u_int xx, yy; u_int xx, yy;
@ -128,8 +128,8 @@ screen_resize_x(struct screen *s, u_int sx)
void void
screen_resize_y(struct screen *s, u_int sy) screen_resize_y(struct screen *s, u_int sy)
{ {
struct grid_data *gd = s->grid; struct grid *gd = s->grid;
u_int oy, yy, ny; u_int oy, yy, ny;
if (sy == 0) if (sy == 0)
fatalx("zero size"); fatalx("zero size");

64
tmux.h
View File

@ -1,4 +1,4 @@
/* $Id: tmux.h,v 1.286 2009-03-28 14:08:09 nicm Exp $ */ /* $Id: tmux.h,v 1.287 2009-03-28 15:43:41 nicm Exp $ */
/* /*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -492,7 +492,7 @@ struct grid_cell {
} __packed; } __packed;
/* Grid data. */ /* Grid data. */
struct grid_data { struct grid {
u_int sx; u_int sx;
u_int sy; u_int sy;
@ -543,7 +543,7 @@ struct screen_sel {
struct screen { struct screen {
char *title; char *title;
struct grid_data *grid; /* grid data */ struct grid *grid; /* grid data */
u_int cx; /* cursor x */ u_int cx; /* cursor x */
u_int cy; /* cursor y */ u_int cy; /* cursor y */
@ -1365,44 +1365,44 @@ int attributes_fromstring(const char *);
/* grid.c */ /* grid.c */
extern const struct grid_cell grid_default_cell; extern const struct grid_cell grid_default_cell;
struct grid_data *grid_create(u_int, u_int, u_int); struct grid *grid_create(u_int, u_int, u_int);
void grid_destroy(struct grid_data *); void grid_destroy(struct grid *);
int grid_compare(struct grid_data *, struct grid_data *); int grid_compare(struct grid *, struct grid *);
void grid_reduce_line(struct grid_data *, u_int, u_int); void grid_reduce_line(struct grid *, u_int, u_int);
void grid_expand_line(struct grid_data *, u_int, u_int); void grid_expand_line(struct grid *, u_int, u_int);
void grid_scroll_line(struct grid_data *); void grid_scroll_line(struct grid *);
const struct grid_cell *grid_peek_cell(struct grid_data *, u_int, u_int); const struct grid_cell *grid_peek_cell(struct grid *, u_int, u_int);
struct grid_cell *grid_get_cell(struct grid_data *, u_int, u_int); struct grid_cell *grid_get_cell(struct grid *, u_int, u_int);
void grid_set_cell( void grid_set_cell(
struct grid_data *, u_int, u_int, const struct grid_cell *); struct grid *, u_int, u_int, const struct grid_cell *);
void grid_clear(struct grid_data *, u_int, u_int, u_int, u_int); void grid_clear(struct grid *, u_int, u_int, u_int, u_int);
void grid_fill(struct grid_data *, void grid_fill(struct grid *,
const struct grid_cell *, u_int, u_int, u_int, u_int); const struct grid_cell *, u_int, u_int, u_int, u_int);
void grid_fill_lines( void grid_fill_lines(
struct grid_data *, const struct grid_cell *, u_int, u_int); struct grid *, const struct grid_cell *, u_int, u_int);
void grid_clear_lines(struct grid_data *, u_int, u_int); void grid_clear_lines(struct grid *, u_int, u_int);
void grid_move_lines(struct grid_data *, u_int, u_int, u_int); void grid_move_lines(struct grid *, u_int, u_int, u_int);
void grid_clear_cells(struct grid_data *, u_int, u_int, u_int); void grid_clear_cells(struct grid *, u_int, u_int, u_int);
void grid_move_cells(struct grid_data *, u_int, u_int, u_int, u_int); void grid_move_cells(struct grid *, u_int, u_int, u_int, u_int);
/* grid-view.c */ /* grid-view.c */
const struct grid_cell *grid_view_peek_cell(struct grid_data *, u_int, u_int); const struct grid_cell *grid_view_peek_cell(struct grid *, u_int, u_int);
struct grid_cell *grid_view_get_cell(struct grid_data *, u_int, u_int); struct grid_cell *grid_view_get_cell(struct grid *, u_int, u_int);
void grid_view_set_cell( void grid_view_set_cell(
struct grid_data *, u_int, u_int, const struct grid_cell *); struct grid *, u_int, u_int, const struct grid_cell *);
void grid_view_clear(struct grid_data *, u_int, u_int, u_int, u_int); void grid_view_clear(struct grid *, u_int, u_int, u_int, u_int);
void grid_view_fill(struct grid_data *, void grid_view_fill(struct grid *,
const struct grid_cell *, u_int, u_int, u_int, u_int); const struct grid_cell *, u_int, u_int, u_int, u_int);
void grid_view_scroll_region_up(struct grid_data *, u_int, u_int); void grid_view_scroll_region_up(struct grid *, u_int, u_int);
void grid_view_scroll_region_down(struct grid_data *, u_int, u_int); void grid_view_scroll_region_down(struct grid *, u_int, u_int);
void grid_view_insert_lines(struct grid_data *, u_int, u_int); void grid_view_insert_lines(struct grid *, u_int, u_int);
void grid_view_insert_lines_region( void grid_view_insert_lines_region(
struct grid_data *, u_int, u_int, u_int, u_int); struct grid *, u_int, u_int, u_int, u_int);
void grid_view_delete_lines(struct grid_data *, u_int, u_int); void grid_view_delete_lines(struct grid *, u_int, u_int);
void grid_view_delete_lines_region( void grid_view_delete_lines_region(
struct grid_data *, u_int, u_int, u_int, u_int); struct grid *, u_int, u_int, u_int, u_int);
void grid_view_insert_cells(struct grid_data *, u_int, u_int, u_int); void grid_view_insert_cells(struct grid *, u_int, u_int, u_int);
void grid_view_delete_cells(struct grid_data *, u_int, u_int, u_int); void grid_view_delete_cells(struct grid *, u_int, u_int, u_int);
/* screen-write.c */ /* screen-write.c */
void screen_write_start( void screen_write_start(