Add a flags member to the grid_line struct and use it to differentiate lines

wrapped at the screen edge from those terminated by a newline. Then use this
when copying to combine wrapped lines together into one.
This commit is contained in:
Nicholas Marriott
2009-08-08 15:57:49 +00:00
parent 5e01b6d663
commit 06ddd3dcf8
4 changed files with 47 additions and 21 deletions

7
tmux.h
View File

@ -484,6 +484,9 @@ struct mode_key_table {
#define GRID_FLAG_PADDING 0x4
#define GRID_FLAG_UTF8 0x8
/* Grid line flags. */
#define GRID_LINE_WRAPPED 0x1
/* Grid cell data. */
struct grid_cell {
u_char attr;
@ -507,6 +510,8 @@ struct grid_line {
u_int utf8size;
struct grid_utf8 *utf8data;
int flags;
} __packed;
/* Entire grid of cells. */
@ -1504,7 +1509,7 @@ void screen_write_reverseindex(struct screen_write_ctx *);
void screen_write_scrollregion(struct screen_write_ctx *, u_int, u_int);
void screen_write_insertmode(struct screen_write_ctx *, int);
void screen_write_mousemode(struct screen_write_ctx *, int);
void screen_write_linefeed(struct screen_write_ctx *);
void screen_write_linefeed(struct screen_write_ctx *, int);
void screen_write_carriagereturn(struct screen_write_ctx *);
void screen_write_kcursormode(struct screen_write_ctx *, int);
void screen_write_kkeypadmode(struct screen_write_ctx *, int);