Sha256: d0eb46537aaaf0756e0dbe887fad2f1765ee78d7be5c3b61f434219cea04824a
Contents?: true
Size: 822 Bytes
Versions: 2
Compression:
Stored size: 822 Bytes
Contents
/* err.c * Copyright (c) 2011, Peter Ohler * All rights reserved. */ #include <stdarg.h> #include "err.h" void ox_err_set(Err e, VALUE clas, const char *format, ...) { va_list ap; va_start(ap, format); e->clas = clas; vsnprintf(e->msg, sizeof(e->msg) - 1, format, ap); va_end(ap); } _Noreturn void ox_err_raise(Err e) { rb_raise(e->clas, "%s", e->msg); } void _ox_err_set_with_location(Err err, const char *msg, const char *xml, const char *current, const char* file, int line) { int xline = 1; int col = 1; for (; xml < current && '\n' != *current; current--) { col++; } for (; xml < current; current--) { if ('\n' == *current) { xline++; } } ox_err_set(err, ox_parse_error_class, "%s at line %d, column %d [%s:%d]\n", msg, xline, col, file, line); }
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ox-2.8.0 | ext/ox/err.c |
ox-2.7.0 | ext/ox/err.c |