msgdump tool
authorhgn <hgodden00@gmail.com>
Tue, 21 Nov 2023 16:04:14 +0000 (16:04 +0000)
committerhgn <hgodden00@gmail.com>
Tue, 21 Nov 2023 16:04:14 +0000 (16:04 +0000)
src/msgdump.c [new file with mode: 0644]
vg_loader.h
vg_msg.h

diff --git a/src/msgdump.c b/src/msgdump.c
new file mode 100644 (file)
index 0000000..2532338
--- /dev/null
@@ -0,0 +1,55 @@
+// Copyright (C) 2021-2023 Harry Godden (hgn) - All Rights Reserved
+
+#define VG_TOOLS
+#include "vg/vg.h"
+#include "vg/vg_msg.h"
+
+#define CHUNK_SIZE 4096
+
+int main( int argc, char *argv[] ){
+   assert(argc);
+
+       if( argc < 2 ){
+               vg_error( "Usage: %s <file>\n", argv[0] );
+               return 0;
+       }
+
+   FILE *f = fopen( argv[1], "rb" );
+       if( !f ){
+      vg_error( "vg_disk_open_read: %s\n", strerror(errno) );
+   }
+
+   void *buffer = NULL;
+   u64 current = 0;
+
+   /* read in chunks */
+   for( u32 i=0; 1; i++ ){
+      buffer = realloc( buffer, current + CHUNK_SIZE );
+      u64 l = fread( buffer + current, 1, CHUNK_SIZE, f );
+      current += l;
+
+      if( l != CHUNK_SIZE ){
+         if( feof( f ) ){
+            break;
+         }
+         else{
+            if( ferror( f ) ){
+               fclose(f);
+               vg_fatal_error( "read error" );
+            }
+            else{
+               fclose(f);
+               vg_fatal_error( "unknown error codition" );
+            }
+         }
+      }
+   }
+
+   fclose( f );
+
+   vg_msg msg;
+   vg_msg_init( &msg, buffer, current );
+   vg_msg_print( &msg, current );
+
+   free( buffer );
+}
index cdd29ebc302d80266e6041865d706571b296b68f..fcae755bef1e2d4d3865814c626f86bd5503b047 100644 (file)
@@ -219,7 +219,7 @@ static void vg_loader_start( void(*pfn)(void *data), void *data )
    SDL_SemWait( vg.sem_loader );
 
    vg.thread_data = data;
-   SDL_CreateThread( _vg_loader_thread, "Loader thread", pfn );
+   SDL_CreateThread( _vg_loader_thread, "vg: loader", pfn );
 }
 
 /*
index a41b24c1e914712617c6d6042085b08c99795fdb..13f15dde56fc73b4a7bc6996ca45c407de82eb93 100644 (file)
--- a/vg_msg.h
+++ b/vg_msg.h
@@ -634,7 +634,7 @@ static void vg_msg_print( vg_msg *msg, u32 len ){
 
             printf( "'%s': ", cmd.key );
 
-            if( count > 1 ) printf( "'{' " );
+            if( count > 1 ) printf( "{ " );
 
             for( u32 i=0; i<count; i++ ){
                const void *p = cmd.value + size*i;
@@ -663,7 +663,7 @@ static void vg_msg_print( vg_msg *msg, u32 len ){
                if( i+1<count ) printf(", ");
             }
 
-            if( count > 1 ) printf( "'}'" );
+            if( count > 1 ) printf( " }" );
             printf( "\n" );
          }
       }