util/datamanager.lua
changeset 13190 affaf6d08d26
parent 13189 b57f45165e1e
child 13235 6a11d92ae436
--- a/util/datamanager.lua	Wed Jul 12 11:45:12 2023 +0200
+++ b/util/datamanager.lua	Wed Jun 07 00:39:30 2023 +0200
@@ -32,6 +32,7 @@
 
 local prosody = prosody;
 
+local blocksize = 0x1000;
 local raw_mkdir = lfs.mkdir;
 local atomic_append;
 local remove_blocks;
@@ -244,6 +245,12 @@
 	end
 
 	local pos = f:seek("end");
+	if (blocksize-(pos%blocksize)) < (#data%blocksize) then
+		-- pad to blocksize with newlines so that the next item is both on a new
+		-- block and a new line
+		atomic_append(f, ("\n"):rep(blocksize-(pos%blocksize)));
+		pos = f:seek("end");
+	end
 
 	local ok, msg = atomic_append(f, data);