#include <unistd.h>
#include <loc/libloc.h>
+#include <loc/format.h>
#include "libloc-private.h"
#include "stringpool.h"
LOC_EXPORT size_t loc_stringpool_write(struct loc_stringpool* pool, FILE* f) {
size_t size = loc_stringpool_get_size(pool);
- return fwrite(pool->data, sizeof(*pool->data), size, f);
+ size_t bytes_written = fwrite(pool->data, sizeof(*pool->data), size, f);
+
+ // Move to next page boundary
+ while (bytes_written % LOC_DATABASE_PAGE_SIZE > 0)
+ bytes_written += fwrite("", 1, 1, f);
+
+ return bytes_written;
}