+ buffer = vg_linear_extend( lin_alloc, buffer, VG_FILE_IO_CHUNK_SIZE );
+
+ u64 l = fread( buffer + current, 1, VG_FILE_IO_CHUNK_SIZE, f );
+ current += l;
+
+ if( l != VG_FILE_IO_CHUNK_SIZE )
+ {
+ if( feof( f ) )
+ {
+ break;
+ }
+ else
+ {
+ if( ferror( f ) )
+ {
+ fclose(f);
+ vg_fatal_exit_loop( "read error" );
+ }
+ else
+ {
+ fclose(f);
+ vg_fatal_exit_loop( "unknown error codition" );
+ }
+ }
+ }