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.
Tento commit je obsažen v:
C. McEnroe 2021-01-26 22:14:12 -05:00
rodič a18ced53df
revize 52c58128c8
2 změnil soubory, kde provedl 4 přidání a 0 odebrání

Zobrazit soubor

@ -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
Zobrazit soubor

@ -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;