#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;
}
