summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/piece-table.c6
-rw-r--r--src/piece-table.h2
2 files changed, 5 insertions, 3 deletions
diff --git a/src/piece-table.c b/src/piece-table.c
index b29f3be..6c9e850 100644
--- a/src/piece-table.c
+++ b/src/piece-table.c
@@ -416,10 +416,12 @@ piece_table_index (piece_table *pt, size_t pos)
}
void
-piece_table_to_string (piece_table *pt, char *buf)
+piece_table_to_string (piece_table *pt, char *buf, size_t size)
{
size_t i;
- for (i = 0; i < pt->length; i++)
+ if (pt->length < size)
+ size = pt->length;
+ for (i = 0; i < size; i++)
{
buf[i] = piece_table_index (pt, i);
}
diff --git a/src/piece-table.h b/src/piece-table.h
index e90d2fa..ee39958 100644
--- a/src/piece-table.h
+++ b/src/piece-table.h
@@ -29,7 +29,7 @@ char piece_table_index (piece_table *pt, size_t pos);
void piece_table_insert (piece_table *pt, size_t pos, char *in, size_t len);
void piece_table_delete (piece_table *pt, size_t pos, size_t len);
-void piece_table_to_string (piece_table *pt, char *buf);
+void piece_table_to_string (piece_table *pt, char *buf, size_t size);
size_t piece_table_length (piece_table *pt);
#endif