summaryrefslogtreecommitdiff
path: root/src/piece-table.c
diff options
context:
space:
mode:
authorEkaitz Zarraga <ekaitz@elenq.tech>2025-08-13 00:22:14 +0200
committerEkaitz Zarraga <ekaitz@elenq.tech>2025-08-13 00:41:13 +0200
commitbb85111bc6d9f4f596f1cac6000a218b74ced376 (patch)
tree0eca2d68d073b2f2f97c5a5e4974dcce826f38b9 /src/piece-table.c
parent6ab9c91dccd1a52efdf531a6d5e9a10932f26f68 (diff)
piece-table: Better formatting and naming
Diffstat (limited to 'src/piece-table.c')
-rw-r--r--src/piece-table.c58
1 files changed, 11 insertions, 47 deletions
diff --git a/src/piece-table.c b/src/piece-table.c
index c170216..43728e4 100644
--- a/src/piece-table.c
+++ b/src/piece-table.c
@@ -20,49 +20,10 @@
#include <stdlib.h>
#include <string.h>
#include <assert.h>
+#include "piece-table-internals.h"
-typedef struct
- {
- size_t used;
- size_t size;
- char *contents;
- }
-text_buffer;
-
-typedef struct _piece
- {
- text_buffer *buffer;
- size_t start;
- size_t length;
- struct _piece *next;
- struct _piece *prev;
- }
-piece;
-
-typedef struct _piece_buffer
- {
- size_t used;
- size_t size;
- struct _piece_buffer *next;
- piece *start;
- }
-piece_buffer;
-
-typedef struct _piece_table
- {
- text_buffer orig;
- text_buffer add;
- piece_buffer *pieces;
- piece *sentinel;
- piece *empty;
- size_t length;
-
- piece *cached;
- size_t cached_offset;
- }
-piece_table;
+/* text_buffer */
-
void
text_buffer_init (text_buffer *tb)
{
@@ -128,6 +89,8 @@ text_buffer_free (text_buffer *tb)
}
+/* piece_buffer */
+
piece_buffer *
piece_buffer_create (size_t size)
{
@@ -175,6 +138,8 @@ piece_buffer_bump (piece_buffer *pb)
}
+/* piece_table */
+
void
piece_table_piece_mark_empty (piece_table *pt, piece *p)
{
@@ -222,7 +187,7 @@ piece_table_piece_split (piece_table *pt, piece *p, size_t pos)
}
void
-piece_find_by_pos (piece_table *pt, size_t pos)
+piece_table_piece_find (piece_table *pt, size_t pos)
{
piece *cur;
assert (pos < pt->length);
@@ -283,7 +248,7 @@ piece_table_insert (piece_table *pt, size_t pos, char *in, size_t len)
}
else
{
- piece_find_by_pos (pt, pos);
+ piece_table_piece_find (pt, pos);
start = piece_table_piece_split (pt, pt->cached,
pos - pt->cached_offset);
}
@@ -340,7 +305,7 @@ piece_table_delete (piece_table *pt, size_t pos, size_t len)
}
else
{
- piece_find_by_pos (pt, pos);
+ piece_table_piece_find (pt, pos);
off_start = pt->cached_offset;
start = piece_table_piece_split (pt, pt->cached,
pos - pt->cached_offset);
@@ -352,7 +317,7 @@ piece_table_delete (piece_table *pt, size_t pos, size_t len)
}
else
{
- piece_find_by_pos (pt, pos + len);
+ piece_table_piece_find (pt, pos + len);
end = piece_table_piece_split (pt, pt->cached,
pos + len - pt->cached_offset)->next;
}
@@ -415,7 +380,6 @@ piece_table_create (char *orig, size_t size)
return piece_table_create_from ("", 0);
}
-
void
piece_table_destroy (piece_table *pt)
{
@@ -429,7 +393,7 @@ char
piece_table_index (piece_table *pt, size_t pos)
{
assert (pos < pt->length);
- piece_find_by_pos (pt, pos);
+ piece_table_piece_find (pt, pos);
return text_buffer_index (pt->cached->buffer,
pt->cached->start + pos - pt->cached_offset);
}