util.datamanager: Don't delete data when first entry in table is 'false'. My favourite bug so far.
authorMatthew Wild <mwild1@gmail.com>
Sun, 22 Mar 2009 20:50:37 +0000
changeset 915 0fe5bf7ab81d
parent 914 50850f15340c
child 916 f0743928ef7e
util.datamanager: Don't delete data when first entry in table is 'false'. My favourite bug so far.
util/datamanager.lua
--- a/util/datamanager.lua	Sun Mar 22 17:54:29 2009 +0000
+++ b/util/datamanager.lua	Sun Mar 22 20:50:37 2009 +0000
@@ -102,7 +102,8 @@
 	f:write("return ");
 	append(f, data);
 	f:close();
-	if not next(data) then -- try to delete empty datastore
+	if next(data) == nil then -- try to delete empty datastore
+		log("debug", "Removing empty %s datastore for user %s@%s", datastore, username, host);
 		os_remove(getpath(username, host, datastore));
 	end
 	-- we write data even when we are deleting because lua doesn't have a
@@ -141,7 +142,8 @@
 		f:write(");\n");
 	end
 	f:close();
-	if not next(data) then -- try to delete empty datastore
+	if next(data) == nil then -- try to delete empty datastore
+		log("debug", "Removing empty %s datastore for user %s@%s", datastore, username, host);
 		os_remove(getpath(username, host, datastore, "list"));
 	end
 	-- we write data even when we are deleting because lua doesn't have a