pike.git
/
src
/
modules
/
JSON
/
JSON.pmod.in
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/modules/JSON/JSON.pmod.in:47:
protected void create(string err_str, int err_pos, void|string reason, void|array bt) { this_program::err_str = err_str; this_program::err_pos = err_pos; string pre_context = err_pos > 13 ? sprintf ("...%O", err_str[err_pos - 10..err_pos - 1]) : err_pos > 0 ? sprintf ("%O", err_str[..err_pos - 1]) : "";
+
if (err_pos >= sizeof (err_str))
+
err_str = sprintf ("%s-><-", pre_context);
+
else {
string post_context = err_pos < sizeof (err_str) - 14 ? sprintf ("%O...", err_str[err_pos + 1..err_pos + 10]) : err_pos + 1 < sizeof (err_str) ? sprintf ("%O", err_str[err_pos + 1..]) : "";
-
err_str = sprintf ("%s->[%c]<-%s", pre_context, err_str[err_pos], post_context);
+
err_str = sprintf ("%s->[%c]<-%s",
+
pre_context, err_str[err_pos], post_context);
+
}
if (reason) ::create(sprintf("Error decoding JSON at position %d %s: %s.\n", err_pos, err_str, reason), bt); else ::create(sprintf("Error decoding JSON at position %d %s\n", err_pos, err_str), bt); } } void decode_error(string err_str, int err_pos, void|string reason, void|mixed ... args) { if (sizeof(args)) reason = sprintf(reason, @args); throw(DecodeError(err_str, err_pos, reason, backtrace()[..<1])); } #endif // constant (@module@)