diff --git a/lib/modules/Tools.pmod/Hilfe.pmod b/lib/modules/Tools.pmod/Hilfe.pmod index b71fdf1816e129308832ca9a1d535615103a81ec..526f14e39656fa0ca765defe7d6de4f51a3bdd7e 100644 --- a/lib/modules/Tools.pmod/Hilfe.pmod +++ b/lib/modules/Tools.pmod/Hilfe.pmod @@ -2,7 +2,7 @@ // Incremental Pike Evaluator // -// $Id: Hilfe.pmod,v 1.32 2002/02/26 16:13:35 nilsson Exp $ +// $Id: Hilfe.pmod,v 1.33 2002/02/27 11:51:03 nilsson Exp $ constant hilfe_todo = #"List of known Hilfe bugs/room for improvements: @@ -838,13 +838,12 @@ class Evaluator { existed = 1; } - object o = hilfe_compile("class ___HilfeWrapper {\n" + - type + " " + code + + object o = hilfe_compile(type + " " + code + ";\nmixed ___HilfeWrapper() { return " + - var + "; }\n}\n", var); + var + "; }\n", var); if( o && hilfe_error( catch( variables[var] = - o->___HilfeWrapper()->___HilfeWrapper() ) ) ) { + o->___HilfeWrapper() ) ) ) { types[var] = type; } else if(existed) @@ -864,10 +863,10 @@ class Evaluator { ";\nmixed ___HilfeWrapper() { return " + var + "; }\n", var); - if( o && hilfe_error( catch( vtype[var] = o->___HilfeWrapper() ) ) ) { - ; - } - else if(existed) + if( o && hilfe_error( catch( vtype[var] = o->___HilfeWrapper() ) ) ) + return; + + if(existed) vtype[var] = old_value; } @@ -1105,7 +1104,7 @@ class Evaluator { map(indices(variables), lambda(string f) { - return sprintf("%s %s;", types[f], f); + return sprintf("%s %s=___hilfe.%s;", types[f], f, f); }) * "\n" + "\n" + "\nmapping query_variables() { return ([\n"+ @@ -1143,10 +1142,6 @@ class Evaluator { return 0; } - // Populate variables - foreach(variables; string name; mixed value) - o[name] = value; - return o; }