Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2010-10-27 10:05:22 +0400
committerCampbell Barton <ideasman42@gmail.com>2010-10-27 10:05:22 +0400
commit676829ccba10da1d83f809ad243685707bb7543d (patch)
tree6dc48b011794fe29ebed3f0a8f82425ccdcdacc2 /source/blender/python/generic/bpy_internal_import.c
parent27b527c164fcb4b4bd13a1fc49c6627ed460baa6 (diff)
workaround for python bug [#24400] If Script is executed with TEXT Editor, it becomes an error.
having the blend file as a part of the __file__ variable is not essential, this is fixed in python 3.2 so add an ifdef and don't use the blend file path for py older then 3.2.
Diffstat (limited to 'source/blender/python/generic/bpy_internal_import.c')
-rw-r--r--source/blender/python/generic/bpy_internal_import.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/source/blender/python/generic/bpy_internal_import.c b/source/blender/python/generic/bpy_internal_import.c
index 3ee0c76a44a..643ee1e143f 100644
--- a/source/blender/python/generic/bpy_internal_import.c
+++ b/source/blender/python/generic/bpy_internal_import.c
@@ -26,7 +26,13 @@
* ***** END GPL LICENSE BLOCK *****
*/
+#include <Python.h>
+#include "compile.h" /* for the PyCodeObject */
+#include "eval.h" /* for PyEval_EvalCode */
+#include "osdefs.h" /* for 'SEP' */
+
#include "bpy_internal_import.h"
+
#include "DNA_text_types.h"
#include "MEM_guardedalloc.h"
@@ -62,16 +68,17 @@ void bpy_import_main_set(struct Main *maggie)
/* returns a dummy filename for a textblock so we can tell what file a text block comes from */
void bpy_text_filename_get(char *fn, Text *text)
{
- sprintf(fn, "%s/%s", text->id.lib ? text->id.lib->filepath : G.main->name, text->id.name+2);
-
- /* XXX, this is a bug in python's Py_CompileString()!
+#if PY_VERSION_HEX >= 0x03020000
+ sprintf(fn, "%s%c%s", text->id.lib ? text->id.lib->filepath : G.main->name, SEP, text->id.name+2);
+#else
+ /* this is a bug in python's Py_CompileString()!, fixed for python 3.2.
the string encoding should not be required to be utf-8
- reported: http://bugs.python.org/msg115202
- */
- BLI_utf8_invalid_strip(fn, strlen(fn));
+ reported: http://bugs.python.org/msg115202 */
+ strcpy(fn, text->id.name+2);
+#endif
}
-PyObject *bpy_text_import( Text *text )
+PyObject *bpy_text_import(Text *text)
{
char *buf = NULL;
char modulename[24];