diff --git a/lib/master.pike.in b/lib/master.pike.in index 11f65f6db7da0c2e4951f9f173af4a465055a6ee..10d7ccb79b7f5fbe8496ae8da15908f214829527 100644 --- a/lib/master.pike.in +++ b/lib/master.pike.in @@ -1,4 +1,4 @@ -/* $Id: master.pike.in,v 1.15 1998/04/19 00:08:53 hubbe Exp $ +/* $Id: master.pike.in,v 1.16 1998/04/20 02:34:03 hubbe Exp $ * * Master-file for Pike. * @@ -45,7 +45,6 @@ string basename(string x) string describe_backtrace(mixed *trace); object low_cast_to_object(string oname, string current_file); -string pike_library_path; string *pike_include_path=({}); string *pike_module_path=({}); string *pike_program_path=({}); @@ -378,16 +377,14 @@ object cast_to_object(string oname, string current_file) class dirnode { string dirname; - object tm; mixed module; mapping cache=([]); - void create(string name, object the_master) + void create(string name) { dirname=name; - tm=the_master; - if(module=tm->findmodule(dirname+"/module")) + if(module=findmodule(dirname+"/module")) if(mixed tmp=module->_module_value) module=tmp; } @@ -397,7 +394,7 @@ class dirnode if(module) if(object o=module[index]) return o; index = dirname+"/"+index; - if(object o=tm->findmodule(index)) + if(object o=findmodule(index)) { if(mixed tmp=o->_module_value) o=tmp; return o; @@ -433,7 +430,7 @@ object findmodule(string fullname) if(mixed *stat=master_file_stat(fullname+".pmod")) { if(stat[1]==-2) - return fc[fullname]=dirnode(fullname+".pmod",this_object()); + return fc[fullname]=dirnode(fullname+".pmod"); } if(o=low_cast_to_object(fullname+".pmod","/.")) @@ -447,18 +444,22 @@ object findmodule(string fullname) return fc[fullname]=UNDEFINED; } -mixed resolv(string identifier, string|void current_file) +mixed handle_import(string what, string|void current_file) { - mixed ret; string *tmp,path; - if(current_file) { tmp=explode_path(current_file); - tmp[-1]=identifier; + tmp[-1]=what; path=combine_path_with_cwd( tmp*"/"); - ret=findmodule(path); } + return fc[path]=dirnode(path); +} + +mixed resolv(string identifier, string|void current_file) +{ + mixed ret; + string *tmp,path; if(!ret) { @@ -467,15 +468,8 @@ mixed resolv(string identifier, string|void current_file) string file=combine_path(path,identifier); if(ret=findmodule(file)) break; } - - if(!ret) - { - string path=combine_path(pike_library_path+"/modules",identifier); - ret=findmodule(path); - } } - if(ret) { if(mixed tmp=ret->_module_value) ret=tmp; @@ -513,9 +507,6 @@ void _main(string *orig_argv, string *env) add_include_path("¤lib_prefix¤/include"); add_module_path("¤lib_prefix¤/modules"); - add_program_path(getcwd()); - add_module_path(getcwd()); - q=(getenv("PIKE_INCLUDE_PATH")||"")/":"-({""}); for(i=sizeof(q)-1;i>=0;i--) add_include_path(q[i]); @@ -730,22 +721,6 @@ string handle_include(string f, path=0; } - if(!path) - { - path=combine_path(pike_library_path+"/include",f); - if(!master_file_stat(path)) path=0; - } - } - - if(path) - { - /* Handle preload */ - - if(path[-1]=='h' && path[-2]=='.' && - master_file_stat(path[0..sizeof(path)-2]+"pre.pike")) - { - cast_to_object(path[0..sizeof(path)-2]+"pre.pike","/"); - } } return path;