From 958c20872a662808be8353b33904f1e30c2d0fcf Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 11 Jun 2015 16:57:31 +1000 Subject: Add argument --python-expr to pass Python directly This works like Python's -c argument, handy to be able to avoid writing small scripts to disk. --- source/blender/python/BPY_extern.h | 1 + source/blender/python/intern/bpy_interface.c | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) (limited to 'source/blender/python') diff --git a/source/blender/python/BPY_extern.h b/source/blender/python/BPY_extern.h index a5cf0b94c62..815beebb159 100644 --- a/source/blender/python/BPY_extern.h +++ b/source/blender/python/BPY_extern.h @@ -86,6 +86,7 @@ void BPY_driver_reset(void); float BPY_driver_exec(struct ChannelDriver *driver, const float evaltime); int BPY_button_exec(struct bContext *C, const char *expr, double *value, const bool verbose); +int BPY_string_exec_ex(struct bContext *C, const char *expr, bool use_eval); int BPY_string_exec(struct bContext *C, const char *expr); void BPY_DECREF(void *pyob_ptr); /* Py_DECREF() */ diff --git a/source/blender/python/intern/bpy_interface.c b/source/blender/python/intern/bpy_interface.c index 4be63042c1e..2c893c37bd6 100644 --- a/source/blender/python/intern/bpy_interface.c +++ b/source/blender/python/intern/bpy_interface.c @@ -607,7 +607,7 @@ int BPY_button_exec(bContext *C, const char *expr, double *value, const bool ver return error_ret; } -int BPY_string_exec(bContext *C, const char *expr) +int BPY_string_exec_ex(bContext *C, const char *expr, bool use_eval) { PyGILState_STATE gilstate; PyObject *main_mod = NULL; @@ -630,7 +630,7 @@ int BPY_string_exec(bContext *C, const char *expr) bmain_back = bpy_import_main_get(); bpy_import_main_set(CTX_data_main(C)); - retval = PyRun_String(expr, Py_eval_input, py_dict, py_dict); + retval = PyRun_String(expr, use_eval ? Py_eval_input : Py_file_input, py_dict, py_dict); bpy_import_main_set(bmain_back); @@ -650,6 +650,10 @@ int BPY_string_exec(bContext *C, const char *expr) return error_ret; } +int BPY_string_exec(bContext *C, const char *expr) +{ + return BPY_string_exec_ex(C, expr, true); +} void BPY_modules_load_user(bContext *C) { -- cgit v1.2.3