pike.git / lib / master.pike.in

version» Context lines:

pike.git/lib/master.pike.in:1:   /* -*- Pike -*-    * -  * $Id: master.pike.in,v 1.85 1999/12/13 22:15:31 grubba Exp $ +  * $Id: master.pike.in,v 1.86 1999/12/21 23:46:39 per Exp $    *    * Master-file for Pike.    *    * Based on master.pike 1.67.    */      // Some configurable parameters useful for debugging      #define PIKE_AUTORELOAD   
pike.git/lib/master.pike.in:536:    if(object o=low_cast_to_object(oname, current_file))    return o;    error("Cast to object failed\n");   }      class dirnode   {    string dirname;    mixed module;    mapping cache=([]); +  array files;       void create(string name)    {    dirname=name;       if(module=findmodule(dirname+"/module"))    if(mixed tmp=module->_module_value)    module=tmp;    }       object|program ind(string index)    { -  if(module) { +  if(module) +  {    object o;    if(!zero_type(o=module[index])) return o;    }    -  +  if( !files ) +  files = get_dir(dirname); +  +  int ret; +  foreach( files, string s ) +  { +  if( search(s, index)!=-1 || search(index,s)!=-1 ) +  { +  ret=1; +  break; +  } +  } +  if(!ret) +  return UNDEFINED;    index = dirname+"/"+index;    if(object o=findmodule(index))    {    if(mixed tmp=o->_module_value) o=tmp;    return o;    } -  return cast_to_program(index,0); +  return cast_to_program( index, 0 );    }       object|program `[](string index)    {    mixed ret;    if(!zero_type(ret=cache[index]))    {    if(ret!=0) return ret;    return UNDEFINED;    }
pike.git/lib/master.pike.in:591:    if (_cache_full) {    return;    }       if (module) {    foreach(indices(module), string index) {    cache[index] = module[index];    }    }    -  foreach(get_dir(dirname), string fname) { +  if( !files ) +  files = get_dir(dirname); +  foreach(files, string fname) {    catch {    if (((< ".pike", ".pmod" >)[fname[sizeof(fname)-5..]]) &&    !zero_type(`[](fname[..sizeof(fname)-6]))) {    continue;    }    };    catch {    if ((fname[sizeof(fname)-3..] == ".so") &&    !zero_type(`[](fname[..sizeof(fname)-4]))) {    continue;
pike.git/lib/master.pike.in:1449:    }       if(!arrayp(trace))    {    ret+="No backtrace.\n";    }else{    for(e = sizeof(trace)-1; e>=0; e--)    {    mixed tmp;    string row; -  +  if( arrayp(trace[e]) && +  (sizeof(trace[e]) > 2) && +  (trace[e][2] == _main) && +  (sizeof(trace)>1) ) +  continue;    if (mixed err=catch {    tmp = trace[e];    if(stringp(tmp))    {    row=tmp;    }    else if(arrayp(tmp))    {    string pos;    if(sizeof(tmp)>=2 && stringp(tmp[0])) {    if (intp(tmp[1])) {    pos=trim_file_name(tmp[0])+":"+tmp[1];    } else {    pos = sprintf("%s:Bad line %t", trim_file_name(tmp[0]), tmp[1]);    }    }else{    mixed desc="Unknown program";    if(sizeof(tmp)>=3 && functionp(tmp[2]))    { -  catch { +  catch +  {    if(mixed tmp=function_object(tmp[2]))    if(tmp=object_program(tmp))    if(tmp=describe_program(tmp))    desc=tmp;    };    }    pos=desc;    }       string data;