PyAPI: Use separate writes for operator reports

This allows us to temp override the stdout and extract individual reports
This commit is contained in:
Campbell Barton 2015-07-12 22:16:54 +10:00
parent 532b735ee8
commit 2fd3b9ad84

@ -36,6 +36,7 @@
#include "RNA_types.h"
#include "BLI_utildefines.h"
#include "BLI_listbase.h"
#include "BLI_string.h"
#include "BPY_extern.h"
@ -251,12 +252,10 @@ static PyObject *pyop_call(PyObject *UNUSED(self), PyObject *args)
error_val = BPy_reports_to_error(reports, PyExc_RuntimeError, false);
/* operator output is nice to have in the terminal/console too */
if (reports->list.first) {
char *report_str = BKE_reports_string(reports, 0); /* all reports */
if (report_str) {
PySys_WriteStdout("%s\n", report_str);
MEM_freeN(report_str);
if (!BLI_listbase_is_empty(&reports->list)) {
Report *report;
for (report = reports->list.first; report; report = report->next) {
PySys_WriteStdout("%s: %s\n", report->typestr, report->message);
}
}