diff --git a/lib/master.pike.in b/lib/master.pike.in index cf30473af782b36891a0c11d216a36d492f060b3..b057f30fff7392f82320f7b3796c6e49dba013d2 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 a574ba4809b6827fd0d3449dfb15e17074e90585..825f06f907e24d045a4f19c97ab113d27c10651e 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();