diff options
author | June McEnroe <june@causal.agency> | 2021-01-26 22:14:12 -0500 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2021-01-26 22:14:12 -0500 |
commit | 52c58128c83a4e6207afd75318446793fd0110ff (patch) | |
tree | 9d472e3bb7f3029b1a737c3b51a55ae0b5786e3b | |
parent | Rename and move scroll functions closer to where they are used (diff) | |
download | catgirl-52c58128c83a4e6207afd75318446793fd0110ff.tar.gz catgirl-52c58128c83a4e6207afd75318446793fd0110ff.zip |
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.
-rw-r--r-- | buffer.c | 3 | ||||
-rw-r--r-- | chat.h | 1 |
2 files changed, 4 insertions, 0 deletions
diff --git a/buffer.c b/buffer.c index 49943ba..47d0955 100644 --- a/buffer.c +++ b/buffer.c @@ -102,6 +102,7 @@ static int flow(struct Lines *hard, int cols, const struct Line *soft) { int flowed = 1; struct Line *line = linesNext(hard); + line->num = soft->num; line->heat = soft->heat; line->time = soft->time; line->str = strdup(soft->str); @@ -177,6 +178,7 @@ static int flow(struct Lines *hard, int cols, const struct Line *soft) { flowed++; line = linesNext(hard); + line->num = soft->num; line->heat = soft->heat; line->time = 0; @@ -203,6 +205,7 @@ int bufferPush( enum Heat heat, time_t time, const char *str ) { struct Line *soft = linesNext(&buffer->soft); + soft->num = buffer->soft.len; soft->heat = heat; soft->time = time; soft->str = strdup(str); diff --git a/chat.h b/chat.h index 4c9b32b..6ecd91a 100644 --- a/chat.h +++ b/chat.h @@ -301,6 +301,7 @@ int uiSave(const char *name); enum { BufferCap = 1024 }; struct Buffer; struct Line { + uint num; enum Heat heat; time_t time; char *str; |