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 'buffer.c')
-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);
f&follow=1'>Generate tagsJune McEnroe 2017-10-03Simplify Makefile with pattern ruleJune McEnroe Insert rant about how GNU make handles the .c rule with extra dependencies. Also I don't care that everything links curses now. 2017-09-27Remove leading blank linesJune McEnroe 2017-09-27Add merge.c to READMEJune McEnroe 2017-09-03Assert client coords are valid after movementJune McEnroe 2017-09-03Relicense AGPLJune McEnroe I know it's already published under a permissive license in what is probably its final form, but I want to license it AGPL anyway on principle following some conversations I had about open source, corporations and copyleft. 2017-09-01Revert "Add client readOnly mode"June McEnroe This reverts commit 34f25ae40a3db9369e9d98b3814f2b93bbc21451. 2017-09-01Remove clientRemove call from clientCastJune McEnroe If an error occurs on a client socket during a broadcast, that client will show up in the kqueue loop with EV_EOF and get removed that way. Tested by sending SIGKILL to a client and watching its cursor disappear. 2017-09-01Add client readOnly modeJune McEnroe 2017-08-31Clean up merge toolJune McEnroe Choose the version with the most recent access if the modify times are the same. 2017-08-31Choose B for tiles with equal modify timesJune McEnroe This way newer access counts and times will be preserved. 2017-08-31Add quick data file merge toolJune McEnroe Hopefully I won't have to use it ever again. 2017-08-30Use only foreground color for selecting spawnJune McEnroe 2017-08-29Add four additional spawnsJune McEnroe 2017-08-28Add respawningJune McEnroe 2017-08-26Move license above includesJune McEnroe Why was it down there? 2017-08-26Snapshot metadataJune McEnroe 2017-08-26Add meta.c to READMEJune McEnroe 2017-08-26Use MakefileJune McEnroe