#include "debug.h"

#ifdef NEED_DEBUG_HELPER
#include <stdio.h>
#include <time.h>
#include <sys/time.h>

void debug_print_time()
{
 struct timeval debug_tv;
 struct tm *debug_tm;
 char debug_buffer[10];

 gettimeofday(&debug_tv,NULL);
 debug_tm=localtime(&debug_tv.tv_sec);
 strftime(debug_buffer,10, "%T",debug_tm);
 fprintf(stderr,"%s.%06d: ",debug_buffer,(int)debug_tv.tv_usec);
}

#endif

#ifdef NEED_HEXDUMP_HELPER
#include <stdio.h>

void hexdump(unsigned char *data,int len)
{
 int count;
 int count2;
 int max;

 for(count=0;count<len;count+=16)
 {
#ifdef SET_DEBUG_PRINT_PREFIX
  fprintf(stderr,"%s",SET_DEBUG_PRINT_PREFIX);
#endif
  fprintf(stderr,"%04x  ",count);

  max=count+16;
  if (max>len) max=len;

  for(count2=count;count2<max;count2++)
  {
   if (count2%8==0) fprintf(stderr," ");
   fprintf(stderr,"%02x ",data[count2]);
  }

  if (max<count+16)
  {
   for(count2=max;count2<count+16;count2++)
   {
    if (count2%8==0) fprintf(stderr," ");
    fprintf(stderr,"   ");
   }
  }
  fprintf(stderr,"  ");

  for(count2=count;count2<max;count2++)
  {
   if (count2%8==0) fprintf(stderr," ");
   if ((data[count2]>=32) && (data[count2]<127))
   {
    fprintf(stderr,"%c",data[count2]);
   } else {
    fprintf(stderr,".");
   }
  }

  fprintf(stderr,"\n");
 }
}
#endif