#include "jansson_private.h"
typedef struct {
+ const char *start;
const char *fmt;
char token;
json_error_t *error;
static void set_error(scanner_t *s, const char *fmt, ...)
{
va_list ap;
+ size_t pos;
va_start(ap, fmt);
- jsonp_error_vset(s->error, s->line, s->column, fmt, ap);
+
+ pos = (size_t)(s->fmt - s->start);
+ jsonp_error_vset(s->error, s->line, s->column, pos, fmt, ap);
+
va_end(ap);
}
jsonp_error_init(error, "");
if(!fmt || !*fmt) {
- jsonp_error_set(error, 1, 1, "Null or empty format string");
+ jsonp_error_set(error, -1, -1, 0, "Null or empty format string");
return NULL;
}
s.error = error;
s.flags = flags;
- s.fmt = fmt;
+ s.fmt = s.start = fmt;
s.line = 1;
s.column = 0;
jsonp_error_init(error, "");
if(!fmt || !*fmt) {
- jsonp_error_set(error, 1, 1, "Null or empty format string");
+ jsonp_error_set(error, -1, -1, 0, "Null or empty format string");
return -1;
}
s.error = error;
s.flags = flags;
- s.fmt = fmt;
+ s.fmt = s.start = fmt;
s.line = 1;
s.column = 0;