[Turn on line numbering]arg traceback, @args; var line, out, pre, lines, cur, x, error; // $parse_lib.traceback(traceback(), lines, pre); // -1 lines represents the full error // pre is set to "! " unless otherwise specified. [(lines ?= -1), (pre ?= "! "), (error ?= 0)] = args; out = [pre + "=> " + traceback[1][2]]; pre += " "; // The primary error if (error == 0) out += [pre + "Thrown by " + ._traceback(@traceback[2].subrange(2))]; else out += [pre + "Error " + error + " caused by " + ._traceback(@traceback[2].subrange(2))]; // The rest of it for x in [1 .. traceback.length() - 2] { if (x <= lines || lines == -1) { line = traceback[x + 2][1] + ": "; line += ._traceback(@traceback[x + 2].subrange(2)); out += [pre + line]; } } if (user()) user().set_last_traceback([time(), traceback, out]); return out;
// Created 27-Mar-1995 as a part of ColdCore, see: @help Credit