#include "hex.h"
#include <stdio.h>

hexdmp_error_t stderr_hexdmp(const char * description, const unsigned char * data_ptr, size_t datasz){
  if(description) {
    fprintf(stderr,"%s:\n", description);
  }
  if(datasz == 0) {
    fprintf(stderr,"No Data, Size is 0");
    return HEXDMP_OK;
  }
  if(!data_ptr) {
    fprintf(stderr,"No data pointer");
    return HEXDMP_ERROR;
  }
  for(size_t i = 0; i < datasz; i += 16) {
    // First print the offset.
    fprintf(stderr, "%08x", (unsigned) i);
    // Now print the next (at most) 16 characters.
    for(size_t j = 0; (j < 16) && (i+j) < datasz; j++) {
      fprintf(stderr, " %02x", data_ptr[i+j]);
    }
    // Print a newline.
    fprintf(stderr, "\n");
  }
  return HEXDMP_OK;
}
