@@ -424,35 +424,48 @@ void git__hexdump(const char *buffer, size_t len)
424424 last_line = (len % LINE_WIDTH );
425425
426426 for (i = 0 ; i < line_count ; ++ i ) {
427+ printf ("%08" PRIxZ " " , (i * LINE_WIDTH ));
428+
427429 line = buffer + (i * LINE_WIDTH );
428- for (j = 0 ; j < LINE_WIDTH ; ++ j , ++ line )
429- printf ("%02X " , (unsigned char )* line & 0xFF );
430+ for (j = 0 ; j < LINE_WIDTH ; ++ j , ++ line ) {
431+ printf ("%02x " , (unsigned char )* line & 0xFF );
432+
433+ if (j == (LINE_WIDTH / 2 ))
434+ printf (" " );
435+ }
430436
431- printf ("| " );
437+ printf (" | " );
432438
433439 line = buffer + (i * LINE_WIDTH );
434440 for (j = 0 ; j < LINE_WIDTH ; ++ j , ++ line )
435441 printf ("%c" , (* line >= 32 && * line <= 126 ) ? * line : '.' );
436442
437- printf ("\n" );
443+ printf ("| \n" );
438444 }
439445
440446 if (last_line > 0 ) {
447+ printf ("%08" PRIxZ " " , (line_count * LINE_WIDTH ));
441448
442449 line = buffer + (line_count * LINE_WIDTH );
443- for (j = 0 ; j < last_line ; ++ j , ++ line )
444- printf ("%02X " , (unsigned char )* line & 0xFF );
450+ for (j = 0 ; j < last_line ; ++ j , ++ line ) {
451+ printf ("%02x " , (unsigned char )* line & 0xFF );
452+
453+ if (j == (LINE_WIDTH / 2 ))
454+ printf (" " );
455+ }
445456
457+ if (j < (LINE_WIDTH / 2 ))
458+ printf (" " );
446459 for (j = 0 ; j < (LINE_WIDTH - last_line ); ++ j )
447- printf (" " );
460+ printf (" " );
448461
449- printf ("| " );
462+ printf (" | " );
450463
451464 line = buffer + (line_count * LINE_WIDTH );
452465 for (j = 0 ; j < last_line ; ++ j , ++ line )
453466 printf ("%c" , (* line >= 32 && * line <= 126 ) ? * line : '.' );
454467
455- printf ("\n" );
468+ printf ("| \n" );
456469 }
457470
458471 printf ("\n" );
0 commit comments