summary refs log tree commit diff
path: root/buffer.c
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2021-01-26 22:14:12 -0500
committerJune McEnroe <june@causal.agency>2021-01-26 22:14:12 -0500
commit52c58128c83a4e6207afd75318446793fd0110ff (patch)
tree9d472e3bb7f3029b1a737c3b51a55ae0b5786e3b /buffer.c
parentRename and move scroll functions closer to where they are used (diff)
downloadcatgirl-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.
Diffstat (limited to '')
-rw-r--r--buffer.c3
1 files changed, 3 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);