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