+ tal_append_fmt(&score->error, "%s:", source);
+ tal_append_vfmt(&score->error, errorfmt, ap);
+ score->error = tal_strcat(score, take(score->error), "\n");
+}
+
+
+
+void score_error(struct score *score, const char *source,
+ const char *errorfmt, ...)
+{
+ va_list ap;
+
+ va_start(ap, errorfmt);
+ score_error_vfmt(score, source, errorfmt, ap);
+ va_end(ap);
+}
+
+void score_file_error(struct score *score, struct ccan_file *f, unsigned line,
+ const char *errorfmt, ...)
+{
+ va_list ap;
+ char *source;
+
+ struct file_error *fe = tal(score, struct file_error);
+ fe->file = f;
+ fe->line = line;
+ list_add_tail(&score->per_file_errors, &fe->list);
+