GccStyleErrorMessages

From CSWiki
Jump to: navigation, search

Causes chuck to generate gcc style/format error messages to make the edit/compile/listen cycle much easier using emacs compilation mode.

--- chuck_errmsg.cpp    2006-09-19 14:54:42.000000000 -0600
+++ chuck_errmsg.cpp    2006-10-14 22:23:33.000000000 -0600
@@ -40,6 +40,8 @@
 #include "util_thread.h"


+#define GCC_STYLE_ERROR_MESSAGES
+
 // global
 int EM_tokPos = 0;
 int EM_lineNum = 1;
@@ -128,6 +130,13 @@
         num--;
     }

+#ifdef GCC_STYLE_ERROR_MESSAGES
+   fprintf(stderr, "%s:%d: error: ", *fileName ? mini(fileName) : "chuck", num);
+   va_start(ap, message);
+   vfprintf(stderr, message, ap);
+   va_end(ap);
+   fprintf(stderr, "\n");
+#else
     fprintf( stderr, "[%s]:", *fileName ? mini(fileName) : "chuck" );
     sprintf( g_lasterror, "[%s]:", *fileName ? mini(fileName) : "chuck" );
     if(lines)
@@ -145,6 +154,7 @@
     fprintf(stderr, "\n");
     fflush( stderr );
     strcat( g_lasterror, g_buffer );
+#endif
 }


@@ -153,6 +163,14 @@
 {
     va_list ap;

+
+#ifdef GCC_STYLE_ERROR_MESSAGES
+    fprintf(stderr, "%s:%d: error: ", *fileName ? mini(fileName) : "chuck", line);
+    va_start(ap, message);
+    vfprintf(stderr, message, ap);
+    va_end(ap);
+    fprintf(stderr, "\n");
+#else
     fprintf( stderr, "[%s]:", *fileName ? mini(fileName) : "chuck" );
     sprintf( g_lasterror, "[%s]:", *fileName ? mini(fileName) : "chuck" );
     if(line)
@@ -171,6 +189,7 @@

     strcat( g_lasterror, g_buffer );
     fprintf( stderr, "\n" );
+#endif
     fflush( stderr );
 }

@@ -180,6 +199,13 @@
 {
     va_list ap;

+#ifdef GCC_STYLE_ERROR_MESSAGES
+   fprintf(stderr, "%s:%d: error: ", *fileName ? mini(fileName) : "chuck", line);
+   va_start(ap, message);
+   vfprintf(stderr, message, ap);
+   va_end(ap);
+   fprintf(stderr, "\n");
+#else
     fprintf( stderr, "[%s]:", *fileName ? mini(fileName) : "chuck" );
     sprintf( g_lasterror, "[%s]:", *fileName ? mini(fileName) : "chuck" );
     if(line)
@@ -190,7 +216,8 @@
     }
     fprintf( stderr, " " );
     strcat( g_lasterror, " " );
-
+#endif
+
     va_start( ap, message );
     vfprintf( stderr, message, ap );
     vsprintf( g_buffer, message, ap );