Diff

core/configmanager.lua @ 466:0ecfd89c2cc0

Fix for configmanager when config file can't be found
author Matthew Wild <mwild1@gmail.com>
date Sat, 29 Nov 2008 03:26:46 +0000
parent 376:6d87944df37c
child 519:cccd610a0ef9
line wrap: on
line diff
--- a/core/configmanager.lua	Sat Nov 29 02:28:00 2008 +0000
+++ b/core/configmanager.lua	Sat Nov 29 03:26:46 2008 +0000
@@ -2,6 +2,7 @@
 local _G = _G;
 local 	setmetatable, loadfile, pcall, rawget, rawset, io = 
 		setmetatable, loadfile, pcall, rawget, rawset, io;
+
 module "configmanager"
 
 local parsers = {};
@@ -52,18 +53,21 @@
 
 function load(filename, format)
 	format = format or filename:match("%w+$");
+
 	if parsers[format] and parsers[format].load then
-		local f = io.open(filename);
+		local f, err = io.open(filename);
 		if f then 
 			local ok, err = parsers[format].load(f:read("*a"));
 			f:close();
 			return ok, err;
 		end
+		return f, err;
 	end
+
 	if not format then
 		return nil, "no parser specified";
 	else
-		return false, "no parser";
+		return nil, "no parser for "..(format);
 	end
 end
 
@@ -118,4 +122,4 @@
 	
 end
 
-return _M;
\ No newline at end of file
+return _M;