#! /bin/sh

# Written by Peter Ekberg, peda@lysator.liu.se

(exec ${AWK} -v BINMODE="rw" '
BEGIN {
  if (ARGC != 2) {
    print "bin2c: Usage '\''bin2c variable_name'\''" | "cat 1>&2"
    exit 1
  }
  printf ("\nunsigned char %s[] = {\n\t", ARGV[1])
  delete ARGV[1]

  for (;;) {
    if (getline buf <= 0)
      break
    data = data buf RT
  }

  for (i = 0; i <= 255; ++i) {
    t = sprintf("%c", i)
    _ord_[t] = i
  }

  count = 0;
  for (i = 1; i <= length(data); ++i) {
    printf ("0x%02x", _ord_[substr(data, i, 1)])
    if (i == length(data))
      break
    if (++count == 8) {
      count = 0;
      printf (",\n\t")
    }
    else
      printf (", ")
  }
  printf (" };\n")
}	
' "$@")
