aboutsummaryrefslogtreecommitdiff
path: root/tmux.h
diff options
context:
space:
mode:
Diffstat (limited to 'tmux.h')
-rw-r--r--tmux.h29
1 files changed, 18 insertions, 11 deletions
diff --git a/tmux.h b/tmux.h
index c15c4f71..d76d65bd 100644
--- a/tmux.h
+++ b/tmux.h
@@ -1,4 +1,4 @@
-/* $Id: tmux.h,v 1.287 2009-03-28 15:43:41 nicm Exp $ */
+/* $Id: tmux.h,v 1.288 2009-03-28 16:30:05 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -482,16 +482,15 @@ struct mode_key_data {
#define GRID_FLAG_PADDING 0x4
#define GRID_FLAG_UTF8 0x8
-/* Grid cell. */
+/* Grid cell attributes. */
struct grid_cell {
- u_short data;
u_char attr;
u_char flags;
u_char fg;
u_char bg;
} __packed;
-/* Grid data. */
+/* Entire grid of cells. */
struct grid {
u_int sx;
u_int sy;
@@ -499,8 +498,10 @@ struct grid {
u_int hsize;
u_int hlimit;
- u_int *size;
+ u_int *size; /* row size */
+
struct grid_cell **data;
+ uint16_t **text;
};
/* Option data structures. */
@@ -589,7 +590,8 @@ struct input_ctx {
size_t len;
size_t off;
- struct grid_cell cell; /* current cell data */
+ struct grid_cell cell;
+ uint64_t text;
struct grid_cell saved_cell;
u_int saved_cx;
@@ -1054,7 +1056,7 @@ long long options_get_number(struct options *, const char *);
void tty_reset(struct tty *);
void tty_region(struct tty *, u_int, u_int, u_int);
void tty_cursor(struct tty *, u_int, u_int, u_int);
-void tty_cell(struct tty *, const struct grid_cell *);
+void tty_cell(struct tty *, const struct grid_cell *, uint64_t);
void tty_putcode(struct tty *, enum tty_code_code);
void tty_putcode1(struct tty *, enum tty_code_code, int);
void tty_putcode2(struct tty *, enum tty_code_code, int, int);
@@ -1373,8 +1375,9 @@ void grid_expand_line(struct grid *, u_int, u_int);
void grid_scroll_line(struct grid *);
const struct grid_cell *grid_peek_cell(struct grid *, u_int, u_int);
struct grid_cell *grid_get_cell(struct grid *, u_int, u_int);
-void grid_set_cell(
- struct grid *, u_int, u_int, const struct grid_cell *);
+void grid_set_cell(struct grid *, u_int, u_int, const struct grid_cell *);
+uint64_t grid_peek_text(struct grid *, u_int, u_int);
+void grid_set_text(struct grid *, u_int, u_int, uint64_t);
void grid_clear(struct grid *, u_int, u_int, u_int, u_int);
void grid_fill(struct grid *,
const struct grid_cell *, u_int, u_int, u_int, u_int);
@@ -1387,9 +1390,12 @@ void grid_move_cells(struct grid *, u_int, u_int, u_int, u_int);
/* grid-view.c */
const struct grid_cell *grid_view_peek_cell(struct grid *, u_int, u_int);
+uint64_t grid_view_peek_text(struct grid *, u_int, u_int);
struct grid_cell *grid_view_get_cell(struct grid *, u_int, u_int);
void grid_view_set_cell(
- struct grid *, u_int, u_int, const struct grid_cell *);
+ struct grid *, u_int, u_int, const struct grid_cell *);
+uint64_t grid_view_peek_text(struct grid *, u_int, u_int);
+void grid_view_set_text(struct grid *, u_int, u_int, uint64_t);
void grid_view_clear(struct grid *, u_int, u_int, u_int, u_int);
void grid_view_fill(struct grid *,
const struct grid_cell *, u_int, u_int, u_int, u_int);
@@ -1438,7 +1444,8 @@ void screen_write_kkeypadmode(struct screen_write_ctx *, int);
void screen_write_clearendofscreen(struct screen_write_ctx *);
void screen_write_clearstartofscreen(struct screen_write_ctx *);
void screen_write_clearscreen(struct screen_write_ctx *);
-void screen_write_cell(struct screen_write_ctx *, const struct grid_cell *);
+void screen_write_cell(
+ struct screen_write_ctx *, const struct grid_cell *, uint64_t);
/* screen-redraw.c */
void screen_redraw_screen(struct client *, struct screen *);