small spam reduction..
authorhgn <hgodden00@gmail.com>
Wed, 5 Mar 2025 17:14:29 +0000 (17:14 +0000)
committerhgn <hgodden00@gmail.com>
Wed, 5 Mar 2025 17:14:29 +0000 (17:14 +0000)
vg_log.c

index 1a042afcde19319c0af9f22ea52e771e5d9b08f5..242fbb1c2b3a2e629071418d0da866f5ee5addd3 100644 (file)
--- a/vg_log.c
+++ b/vg_log.c
@@ -49,10 +49,30 @@ void _vg_logx_va( FILE *file, const char *location, const char *prefix,
 #endif
 
        char buffer[4096], line[96];
+   static char last_buffer[4096];
+   static int dupe_counter = 1;
+
    vsnprintf( buffer, VG_ARRAY_LEN(buffer), fmt, args );
+   int line_length = snprintf( line, 90, "%s%7s" KNRM "|%s ", colour, prefix, colour );
+
+   if( !strcmp( last_buffer, buffer ) )
+   {
+      dupe_counter ++;
+      fprintf( file, "repeat x%d\r", dupe_counter );
+#ifdef VG_ENGINE
+      if( SDL_UnlockMutex( vg_log.mutex ) )
+         vg_fatal_error( "" );
+#endif
+      return;
+   }
+
+   if( dupe_counter > 1 )
+   {
+      fprintf( file, "\n" );
+      dupe_counter = 1;
+   }
 
-   int line_length = snprintf( line, 90, "%s%7s" KNRM "|%s ", 
-                               colour, prefix, colour );
+   strcpy( last_buffer, buffer );
 
    for( u32 i=0; i<VG_ARRAY_LEN(buffer); i ++ )
    {