Revision: 20892
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20892
Author:   kazanbas
Date:     2009-06-15 11:26:31 +0200 (Mon, 15 Jun 2009)

Log Message:
-----------
Another fix in BPY_flag_from_seq: unrecognized flag is also an error.
Print operator return value for debugging.

Modified Paths:
--------------
    branches/soc-2009-kazanbas/release/ui/space_script.py
    branches/soc-2009-kazanbas/source/blender/python/intern/bpy_operator_wrap.c
    branches/soc-2009-kazanbas/source/blender/python/intern/bpy_util.c

Modified: branches/soc-2009-kazanbas/release/ui/space_script.py
===================================================================
--- branches/soc-2009-kazanbas/release/ui/space_script.py       2009-06-15 
08:12:28 UTC (rev 20891)
+++ branches/soc-2009-kazanbas/release/ui/space_script.py       2009-06-15 
09:26:31 UTC (rev 20892)
@@ -112,7 +112,7 @@
                     register_op(cls)
                     print("Registered it.")
 
-        return 'FINISHED'
+        return ('FINISHED',)
 
     def invoke(self, context, event):
         print("SCRIPT_OT_reload_scripts: invoke")

Modified: 
branches/soc-2009-kazanbas/source/blender/python/intern/bpy_operator_wrap.c
===================================================================
--- branches/soc-2009-kazanbas/source/blender/python/intern/bpy_operator_wrap.c 
2009-06-15 08:12:28 UTC (rev 20891)
+++ branches/soc-2009-kazanbas/source/blender/python/intern/bpy_operator_wrap.c 
2009-06-15 09:26:31 UTC (rev 20892)
@@ -316,7 +316,8 @@
                } else if (BPY_flag_from_seq(pyop_ret_flags, ret, &ret_flag) == 
-1) {
                         /* the returned value could not be converted into a 
flag */
                        pyop_error_report(op->reports);
-                       
+
+                       ret_flag = OPERATOR_CANCELLED;
                }
                /* there is no need to copy the py keyword dict modified by
                 * pyot->py_invoke(), back to the operator props since they are 
just
@@ -329,6 +330,29 @@
                Py_DECREF(ret);
        }
 
+       /* print operator return value */
+       if (mode != PYOP_POLL) {
+               char flag_str[100];
+               char class_name[100];
+               BPY_flag_def *flag_def = pyop_ret_flags;
+
+               strcpy(flag_str, "");
+               
+               while(flag_def->name) {
+                       if (ret_flag & flag_def->flag) {
+                               flag_str[1] ? sprintf(flag_str, "%s | %s", 
flag_str, flag_def->name) : strcpy(flag_str, flag_def->name);
+                       }
+                       flag_def++;
+               }
+
+               /* get class name */
+               item= PyObject_GetAttrString(py_class, PYOP_ATTR_IDNAME);
+               Py_DECREF(item);
+               strcpy(class_name, _PyUnicode_AsString(item));
+
+               fprintf(stderr, "%s's %s returned %s\n", class_name, mode == 
PYOP_EXEC ? "exec" : "invoke", flag_str);
+       }
+
        PyGILState_Release(gilstate);
 
        return ret_flag;

Modified: branches/soc-2009-kazanbas/source/blender/python/intern/bpy_util.c
===================================================================
--- branches/soc-2009-kazanbas/source/blender/python/intern/bpy_util.c  
2009-06-15 08:12:28 UTC (rev 20891)
+++ branches/soc-2009-kazanbas/source/blender/python/intern/bpy_util.c  
2009-06-15 09:26:31 UTC (rev 20892)
@@ -109,6 +109,9 @@
                error_val= 1;
        }
 
+       if (*flag == 0)
+               error_val = 1;
+
        if (error_val) {
                char *buf = bpy_flag_error_str(flagdef);
                PyErr_SetString(PyExc_AttributeError, buf);


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to