diff --git a/lib/master.pike b/lib/master.pike index 46cdeae961fc6adc16587109f26662b391796bce..8eb64b81702dfb8c67f666facc1adcb4a6404bea 100644 --- a/lib/master.pike +++ b/lib/master.pike @@ -215,11 +215,19 @@ class dirnode void create(string name) { dirname=name; } object|program `[](string index) { - index=dirname+"/"+index; - if(object o=((object)"/master")->findmodule(index)) + object m=((object)"/master"); + if(mixed o=m->findmodule(dirname+"/module")) { - if(mixed tmp=o->_module_value) - return tmp; + if(mixed tmp=o->_module_value) o=tmp; + if(o=o[index]) + { + if(mixed tmp=o->_module_value) o=tmp; + return o; + } + } + if(object o=((object)"/master")->findmodule(dirname+"/"+index)) + { + if(mixed tmp=o->_module_value) o=tmp; return o; } return (program) index;