* Structure definitions
**************************************************************************/
#define FILENAME_LENGTH 24
--#define MESSAGE_LENGTH 256
typedef struct _ScriptError {
char filename[FILENAME_LENGTH];
-- char message[MESSAGE_LENGTH+1];
int lineno;
} ScriptError;
return g_script_error.filename;
}
--/*****************************************************************************/
--/* Description: This function will return the short message of the error */
--/* that has occured in the python script. */
--/*****************************************************************************/
--const char *BPY_Err_getMessage( void )
--{
-- return g_script_error.message;
--}
--
/*****************************************************************************/
/* Description: Return PyString filename from a traceback object */
/*****************************************************************************/
} else {
g_script_error.lineno = -1;
}
-- v = PyObject_GetAttrString( err, "text" );
-- if ( v && PyString_Check(v) ) {
-- strcpy(g_script_error.message, "Invalid syntax: ");
-- strncpy(g_script_error.message+16, PyString_AS_STRING( v ), MESSAGE_LENGTH-16);
-- g_script_error.message[MESSAGE_LENGTH]= '\0';
-- Py_DECREF( v );
-- } else {
-- strcpy(g_script_error.message, "Invalid Syntax");
-- }
/* this avoids an abort in Python 2.3's garbage collecting: */
PyErr_Clear( );
return;
FILENAME_LENGTH );
Py_DECREF(v);
}
-- v = PyObject_GetAttrString( err, "message" );
-- if ( v && PyString_Check(v) ) {
-- strncpy(g_script_error.message, PyString_AS_STRING( v ), MESSAGE_LENGTH);
-- g_script_error.message[MESSAGE_LENGTH]= '\0';
-- Py_DECREF( v );
-- } else {
-- g_script_error.message[0] = '\0';
-- }
Py_DECREF( tb );
}
}
}
--static void txt_print_error(SpaceText *st, char* str)
--{
-- if (curarea->spacetype != SPACE_TEXT) return;
-- drawtextspace(curarea, st);
-- glColor3ub(128, 16, 16);
-- glRecti(22, curarea->winy-2, curarea->winx-2, curarea->winy-st->lheight-3);
-- glColor3ub(255, 32, 32);
-- glRasterPos2i(22, curarea->winy-st->lheight);
-- BMF_DrawString(spacetext_get_font(st), str);
-- curarea->win_swap= WIN_BACK_OK;
--}
--
void run_python_script(SpaceText *st)
{
char *py_filename;
if (!st->text) return;
if (!strcmp(py_filename, st->text->id.name+2)) {
-- //error_pyscript( );
++ error_pyscript( );
if (lineno >= 0) {
txt_move_toline(text, lineno-1, 0);
txt_sel_line(text);
pop_space_text(st);
-- }
-- txt_print_error(st, BPY_Err_getMessage());
++ }
} else {
error("Error in other (possibly external) file, "\
"check console");
-- }
++ }
}
}
case PKEY:
if (G.qual == LR_ALTKEY) {
run_python_script(st);
++ do_draw= 1;
}
break; /* BREAK P */
case QKEY: