- fprintf(stderr, "WARNING: Syntax error on line %zu in '%s'%s", ln, fn, msg ? ": ": "\n");
- if (msg) {
- va_list argv;
+ char buf[0x1000] = {0};
+ va_list argv;
+
+ va_start(argv, msg);
+ vsnprintf(buf, 0x1000-1, msg, argv);
+ va_end(argv);
+
+ P->error(PSI_WARNING, "PSI syntax error on line %zu in '%s'%s%s",
+ ln, fn, msg ? ": ": "", buf);