forked from bartvdbraak/blender
- use own string conversion function over PyUnicode_FromString when converting the argv
- report errors when files dont load when given from the command line but not running in background mode.
This commit is contained in:
parent
0540512866
commit
314121ee65
@ -127,6 +127,7 @@ void BKE_reportf(ReportList *reports, ReportType type, const char *format, ...)
|
||||
va_start(args, format);
|
||||
vprintf(format, args);
|
||||
va_end(args);
|
||||
fprintf(stdout, "\n"); /* otherise each report needs to include a \n */
|
||||
fflush(stdout); /* this ensures the message is printed before a crash */
|
||||
}
|
||||
|
||||
|
@ -213,25 +213,10 @@ void BPY_start_python( int argc, char **argv )
|
||||
/* sigh, why do python guys not have a char** version anymore? :( */
|
||||
{
|
||||
int i;
|
||||
#if 0
|
||||
PyObject *py_argv= PyList_New(argc);
|
||||
for (i=0; i<argc; i++)
|
||||
PyList_SET_ITEM(py_argv, i, PyUnicode_FromString(argv[i]));
|
||||
PyList_SET_ITEM(py_argv, i, PyC_UnicodeFromByte(argv[i])); /* should fix bug #20021 - utf path name problems, by replacing PyUnicode_FromString */
|
||||
|
||||
#else // should fix bug #20021 - utf path name problems
|
||||
PyObject *py_argv= PyList_New(0);
|
||||
for (i=0; i<argc; i++) {
|
||||
PyObject *item= PyUnicode_Decode(argv[i], strlen(argv[i]), Py_FileSystemDefaultEncoding, NULL);
|
||||
if(item==NULL) { // should never happen
|
||||
PyErr_Print();
|
||||
PyErr_Clear();
|
||||
}
|
||||
else {
|
||||
PyList_Append(py_argv, item);
|
||||
Py_DECREF(item);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
PySys_SetObject("argv", py_argv);
|
||||
Py_DECREF(py_argv);
|
||||
}
|
||||
|
@ -897,7 +897,10 @@ static int load_file(int argc, char **argv, void *data)
|
||||
} else {
|
||||
/* we are not running in background mode here, but start blender in UI mode with
|
||||
a file - this should do everything a 'load file' does */
|
||||
WM_read_file(C, filename, NULL);
|
||||
ReportList reports;
|
||||
BKE_reports_init(&reports, RPT_PRINT);
|
||||
WM_read_file(C, filename, &reports);
|
||||
BKE_reports_clear(&reports);
|
||||
}
|
||||
|
||||
G.file_loaded = 1;
|
||||
|
Loading…
Reference in New Issue
Block a user