* Copyright (c) 1995-2003, Index Data
* See the file LICENSE for details.
*
- * $Id: odr.c,v 1.42 2003-05-19 14:37:38 adam Exp $
+ * $Id: odr.c,v 1.45 2003-06-19 21:09:25 adam Exp $
*
*/
#if HAVE_CONFIG_H
"Stack overflow",
"Length of constructed type different from sum of members",
"Overflow writing definite length of constructed type",
- "HTTP Bad Request"
+ "Bad HTTP Request"
};
char *odr_errmsg(int n)
void odr_perror(ODR o, char *message)
{
- fprintf(stderr, "%s: %s\n", message, odr_errlist[o->error]);
+ const char *e = odr_getelement(o);
+ int err, x;
+
+ err = odr_geterrorx(o, &x);
+ fprintf(stderr, "%s: %s (code %d:%d)", message, odr_errlist[err], err, x);
+ if (e && *e)
+ fprintf (stderr, " element %s", e);
+ fprintf(stderr, "\n");
}
int odr_geterror(ODR o)
return o->error;
}
+char *odr_getelement(ODR o)
+{
+ return o->op->element;
+}
+
void odr_seterror(ODR o, int error, int id)
{
o->error = error;
o->op->error_id = id;
+ o->op->element[0] = '\0';
+}
+
+void odr_setelement(ODR o, const char *element)
+{
+ if (element)
+ {
+ strncpy(o->op->element, element, sizeof(o->op->element)-1);
+ o->op->element[sizeof(o->op->element)-1] = '\0';
+ }
}
void odr_setprint(ODR o, FILE *file)