"Marcus Comstedt (ACROSS) (Hail Ilpalazzo!) @ Pike (-) developers forum" <10353@lyskom.lysator.liu.se> wrote:
You need to put your code inside a function. Try calling it "main".
Well I was hoping that would be assumed.

But maybe me posting the whole bit of code will help...

void handle_error(array|object trace, void|object o)
{
  if(mixed x=catch {

    object ferr = Stdio.File("C:/EMAGE/sys/data/log/run.c", "wca+");
   
    string sWrite = describe_backtrace(trace);
   
    int nLine;
    string sFunc;
    string sFile;
    string sParams;
    string sOut = "";
   
    if(o)
    {
        sOut += "Error occured in: " + object_name(o) + "\n";
    }
   
    foreach(sWrite/"\n", string s)
    {
        if(sscanf(s, "%s:%d:%*s->%s(%s", sFile, nLine, sFunc, sParams) == 5)
        {
            string sLine = (string)nLine;
            string sTemp = "   ";
           
            sLine = sTemp[0 .. sizeof(sTemp) - sizeof(sLine)] + sLine + " ";
            sTemp = "                    ";
            sFunc = sFunc + sTemp[0 .. sizeof(sTemp) - sizeof(sFunc)];
           
            sOut += sLine + sFunc + sFile + " (" + sParams + ")\n";
        }
        else
        {
            if(s != "")
            {
                sOut += s + "\t" + ctime(time());
            }
        }       
    }
   
    sOut += "\n";
   
    ferr->Write(sOut);
  }) {
    // One reason for this might be too little stack space, which
    // easily can occur for "out of stack" errors. It should help to
    // tune up the STACK_MARGIN values in interpret.c then.
    werror("Error in handle_error in master object:\n");
    if(catch {
      catch {
    if (catch {
      string msg = [string]x[0];
      werror("%s", msg);
      array bt = [array]x[1];
      werror("%O\n", bt);
    }) {
      werror("%O\n", x);
    }
      };
      werror("Original error:\n"
         "%O\n", trace);
    }) {
      werror("sprintf() failed to write error.\n");
    }
  }
}


now this is inside a modified master.pike. The code has worked on previous versions of pike. So not sure why it does not work now.


Yahoo! Photos
Ring in the New Year with Photo Calendars. Add photos, events, holidays, whatever.