Add numbers to buffer lines

This directly correlates hard-wrapped lines with the soft lines
they were wrapped from.

Choosing uint here because it doesn't change the size of struct
Line. It doesn't at all matter since buffers only hold 1024 lines
at a time anyway.
master
C. McEnroe 2021-01-26 22:14:12 -05:00
parent a18ced53df
commit 52c58128c8
2 changed files with 4 additions and 0 deletions

View File

@ -102,6 +102,7 @@ static int flow(struct Lines *hard, int cols, const struct Line *soft) {
int flowed = 1; int flowed = 1;
struct Line *line = linesNext(hard); struct Line *line = linesNext(hard);
line->num = soft->num;
line->heat = soft->heat; line->heat = soft->heat;
line->time = soft->time; line->time = soft->time;
line->str = strdup(soft->str); line->str = strdup(soft->str);
@ -177,6 +178,7 @@ static int flow(struct Lines *hard, int cols, const struct Line *soft) {
flowed++; flowed++;
line = linesNext(hard); line = linesNext(hard);
line->num = soft->num;
line->heat = soft->heat; line->heat = soft->heat;
line->time = 0; line->time = 0;
@ -203,6 +205,7 @@ int bufferPush(
enum Heat heat, time_t time, const char *str enum Heat heat, time_t time, const char *str
) { ) {
struct Line *soft = linesNext(&buffer->soft); struct Line *soft = linesNext(&buffer->soft);
soft->num = buffer->soft.len;
soft->heat = heat; soft->heat = heat;
soft->time = time; soft->time = time;
soft->str = strdup(str); soft->str = strdup(str);

1
chat.h
View File

@ -301,6 +301,7 @@ int uiSave(const char *name);
enum { BufferCap = 1024 }; enum { BufferCap = 1024 };
struct Buffer; struct Buffer;
struct Line { struct Line {
uint num;
enum Heat heat; enum Heat heat;
time_t time; time_t time;
char *str; char *str;