From f530523d9476a600c42e04ad76623aa96b2c29f8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net>
Date: Thu, 6 Mar 1997 18:53:23 -0800
Subject: [PATCH] implemented dirnode overloading

Rev: lib/master.pike:1.36
---
 lib/master.pike | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/lib/master.pike b/lib/master.pike
index 46cdeae961..8eb64b8170 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;
-- 
GitLab