summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/piece-table.c15
-rw-r--r--src/piece-table.h3
2 files changed, 12 insertions, 6 deletions
diff --git a/src/piece-table.c b/src/piece-table.c
index 7ca95f1..85966f7 100644
--- a/src/piece-table.c
+++ b/src/piece-table.c
@@ -363,18 +363,16 @@ piece_table_delete(piece_table *pt, size_t pos, size_t len)
pt->length -= len;
}
-
piece_table *
-piece_table_create (char *orig)
+piece_table_create_from (char *orig, size_t size)
{
piece *original;
piece_table * pt = malloc (sizeof (*pt));
- size_t len = strlen(orig); /* obtain from the outside? */
- pt->length = len;
+ pt->length = size;
/* Original buffer */
text_buffer_init(&pt->orig);
- text_buffer_fill(&pt->orig, orig, len);
+ text_buffer_fill(&pt->orig, orig, size);
/* Add buffer */
text_buffer_init(&pt->add);
@@ -397,6 +395,13 @@ piece_table_create (char *orig)
return pt;
}
+piece_table *
+piece_table_create (char *orig, size_t size)
+{
+ return piece_table_create_from ("", 0);
+}
+
+
void
piece_table_destroy (piece_table *pt)
{
diff --git a/src/piece-table.h b/src/piece-table.h
index ee39958..0182aad 100644
--- a/src/piece-table.h
+++ b/src/piece-table.h
@@ -22,7 +22,8 @@
typedef struct _piece_table piece_table;
-piece_table *piece_table_create ();
+piece_table *piece_table_create (void);
+piece_table * piece_table_create_from (char *orig, size_t size);
void piece_table_destroy (piece_table * piece_table);
char piece_table_index (piece_table *pt, size_t pos);