From c3b1ffa015fd2d89ad8b567c80485ecc23e89d6a Mon Sep 17 00:00:00 2001
From: Mathieu L Bouchard <matju@artengine.ca>
Date: Mon, 4 Aug 2014 22:12:21 -0400
Subject: [PATCH] print tcl error messages in terminal, with their statement,
 in bright colours

---
 pd/src/t_tkcmd.c | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/pd/src/t_tkcmd.c b/pd/src/t_tkcmd.c
index 777b182ed..8114a51ed 100644
--- a/pd/src/t_tkcmd.c
+++ b/pd/src/t_tkcmd.c
@@ -553,17 +553,19 @@ static int pdCmd(ClientData cd, Tcl_Interp *interp, int argc,  char **argv)
 
 /***********  "c" level access to tk functions. ******************/
 
+#define DEBUG_TCL
+
 void tcl_mess(char *s)
 {
     int result;
 
-    // PRODUCTION VERSION
+#ifdef DEBUG_TCL
+    char catch_s[strlen(s)];
+    sprintf(catch_s, "%s", s);
+#else
     char catch_s[strlen(s)+10];
     sprintf(catch_s, "catch { %s }", s);
-
-    // DEBUGGING VERSION
-    //char catch_s[strlen(s)];
-    //sprintf(catch_s, "%s", s);
+#endif
 
     Tcl_Obj *messageObjPtr = Tcl_NewStringObj(catch_s,-1);
     Tcl_IncrRefCount(messageObjPtr);
@@ -571,7 +573,9 @@ void tcl_mess(char *s)
     Tcl_DecrRefCount(messageObjPtr);
     if (result != TCL_OK)
     {
-        if (tk_pdinterp) printf("%s\n",  Tcl_GetStringResult(tk_pdinterp));
+        if (tk_pdinterp) printf("in sys_gui \e[0;1;36m%s\e[31m%s\e[0m\n",
+            s, Tcl_GetStringResult(tk_pdinterp));
+        else printf("no error\n");
     }
 }
 
-- 
GitLab