# HG changeset patch # User sheepluva # Date 1402576968 -7200 # Node ID 03b615d3c6e1af0e769ba0eabc32fa1d8f289b69 # Parent e9c85a0acdd2190c17cc22512087e59a3f13170e further WIP (better error messages) diff -r e9c85a0acdd2 -r 03b615d3c6e1 hedgewars/uScript.pas --- a/hedgewars/uScript.pas Thu Jun 12 14:11:22 2014 +0200 +++ b/hedgewars/uScript.pas Thu Jun 12 14:42:48 2014 +0200 @@ -119,10 +119,16 @@ LuaError(call + ': ' + error + ' function syntax: ' + call + ' ( ' + paramsyntax + ' )'); end; +procedure LuaParameterCountError(expected, call, paramsyntax: shortstring; wrongcount: LongInt); inline; +begin + // TODO: i18n? + LuaCallError('Wrong number of parameters! (is: ' + inttostr(wrongcount) + ', should be: '+ expected + ')', call, paramsyntax); +end; + +// TODO remove this precedure after all references have been changed to one of the checks below procedure LuaParameterCountError(call, paramsyntax: shortstring; wrongcount: LongInt); inline; begin - // TODO: i18n? - LuaCallError('Wrong number of parameters (' + inttostr(wrongcount) + ')!', call, paramsyntax); + LuaCallError('Wrong number of parameters! (actual: ' + inttostr(wrongcount) + ')', call, paramsyntax); end; // compare with allowed count @@ -132,7 +138,7 @@ c:= lua_gettop(L); if c <> count then begin - LuaParameterCountError(call, paramsyntax, c); + LuaParameterCountError('exactly ' + inttostr(count), call, paramsyntax, c); exit(false); end; @@ -145,7 +151,7 @@ actual:= lua_gettop(L); if (actual <> count1) and (actual <> count2) then begin - LuaParameterCountError(call, paramsyntax, actual); + LuaParameterCountError('either ' + inttostr(count1) + ' or ' + inttostr(count2), call, paramsyntax, actual); exit(false); end; @@ -158,7 +164,7 @@ actual:= lua_gettop(L); if (actual < minCount) then begin - LuaParameterCountError(call, paramsyntax, actual); + LuaParameterCountError(inttostr(minCount) + ' or more', call, paramsyntax, actual); exit(false); end;