Branch: Tag:

2003-11-18

2003-11-18 11:03:45 by Martin Stjernholm <mast@lysator.liu.se>

Use CompileCallbackError to signal all file read errors in a compact
way.

Rev: lib/master.pike.in:1.311

6:   // Pike is distributed under GPL, LGPL and MPL. See the file COPYING   // for more information.   // - // $Id: master.pike.in,v 1.310 2003/11/14 06:11:38 mast Exp $ + // $Id: master.pike.in,v 1.311 2003/11/18 11:03:45 mast Exp $      #pike __REAL_VERSION__   
299:   //! @[compile()], @[cpp()], @[compile_file()]   //!   program compile_string(string source, void|string filename, -  object|void handler) +  object|void handler, +  void|program p, +  void|object o)   {    return compile(cpp(source, filename||"-", 1, handler,    compat_major, compat_minor),    handler,    compat_major, -  compat_minor); +  compat_minor, +  p, +  o);   }      //!
756:    resolv_debug ("low_findprog %s: compiling, mkobj: %O\n", fname, mkobj);    INC_RESOLV_MSG_DEPTH();    programs[fname]=ret=__empty_program(0, fname); +  AUTORELOAD_CHECK_FILE (fname); +  string src; +  if (array|object err = catch (src = master_read_file (fname))) { +  DEC_RESOLV_MSG_DEPTH(); +  resolv_debug ("low_findprog %s: failed to read file\n", fname); +  objects[ret] = no_value; +  ret=programs[fname]=0; // Negative cache. +  compile_cb_rethrow (err); +  }    if ( mixed e=catch { -  ret=compile_file(fname, -  handler, +  ret=compile_string(src, fname, handler,    ret,    mkobj? (objects[ret]=__null_program()) : 0);    } )
779:    "%s\n", pname, ext, describe_backtrace(backtrace()) );    }    -  if (array|object err = catch (ret = load_module(fakeroot(fname)))) +  if (array|object err = catch (ret = load_module(fakeroot(fname)))) { +  DEC_RESOLV_MSG_DEPTH(); +  resolv_debug ("low_findprog %s: failed to load binary\n", fname); +  objects[ret] = no_value; +  ret=programs[fname]=0; // Negative cache.    compile_cb_rethrow (err); -  +  }    resolv_debug ("low_findprog %s: loaded binary\n", fname);   #endif /* load_module */    }
2054:    //!    string read_include(string f)    { -  AUTORELOAD_CHECK_FILE(f) -  return master_read_file(f); +  AUTORELOAD_CHECK_FILE(f); +  if (array|object err = catch { +  return master_read_file (f); +  }) +  compile_cb_rethrow (err);    }       string _sprintf(int t)