From 52c5799df7d699a9b74b2d0175f64d6e3c8fdd38 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net>
Date: Tue, 23 May 2000 18:21:38 -0700
Subject: [PATCH] Parser.C should now resolv properly

Rev: lib/master.pike.in:1.120
Rev: src/modules/Parser/parser.c:1.6
---
 lib/master.pike.in          | 17 ++++++++++++++++-
 src/modules/Parser/parser.c |  9 +++++++--
 2 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/lib/master.pike.in b/lib/master.pike.in
index cf30473af7..b057f30fff 100644
--- a/lib/master.pike.in
+++ b/lib/master.pike.in
@@ -1,6 +1,6 @@
 /* -*- Pike -*-
  *	
- * $Id: master.pike.in,v 1.119 2000/05/13 16:48:20 mast Exp $
+ * $Id: master.pike.in,v 1.120 2000/05/24 01:21:33 hubbe Exp $
  * 
  * Master-file for Pike.
  *
@@ -609,6 +609,10 @@ class dirnode
 	  module=tmp;
       return !module;
     }
+
+    mixed `[](string index) { if(module) return module[index]; }
+    array(string) _indices() { if(module) return indices(module); }
+    array _values() { if(module) return values(module); }
   }
 
   static mixed ind(string index)
@@ -705,6 +709,12 @@ class dirnode
     fill_cache();
     return values(cache)-({0});
   }
+
+  string _sprintf(int as)
+    {
+      return sprintf("master()->dirnode(%O)",dirname);
+    }
+  
 };
 
 static class ZERO_TYPE {};
@@ -715,6 +725,11 @@ class joinnode
   array(object|mapping) joined_modules;
   mapping(string:mixed) cache=([]);
 
+  string _sprintf(int as)
+    {
+      return sprintf("master()->joinnode(%O)",joined_modules);
+    }
+
   void create(array(object|mapping) _joined_modules)
   {
     joined_modules = _joined_modules;
diff --git a/src/modules/Parser/parser.c b/src/modules/Parser/parser.c
index a574ba4809..825f06f907 100644
--- a/src/modules/Parser/parser.c
+++ b/src/modules/Parser/parser.c
@@ -1,7 +1,7 @@
 #include "global.h"
 #include "stralloc.h"
 #include "global.h"
-RCSID("$Id: parser.c,v 1.5 1999/12/30 20:42:03 mast Exp $");
+RCSID("$Id: parser.c,v 1.6 2000/05/24 01:21:38 hubbe Exp $");
 #include "pike_macros.h"
 #include "interpret.h"
 #include "program.h"
@@ -144,7 +144,12 @@ static void parser_magic_index(INT32 args)
       push_int(0);
       SAFE_APPLY_MASTER("resolv",2);
       stack_swap();
-      f_index(2);
+      if(sp[-2].type == T_INT)
+      {
+	pop_stack();
+      }else{
+	f_index(2);
+      }
    }
    stack_swap();
    pop_stack();
-- 
GitLab