Mirror of CollapseOS
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.3KB

  1. /*
  2. * Copyright (c) 2020 Byron Grobe
  3. *
  4. * Permission to use, copy, modify, and distribute this software for any
  5. * purpose with or without fee is hereby granted, provided that the above
  6. * copyright notice and this permission notice appear in all copies.
  7. *
  8. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  9. * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  10. * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  11. * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  12. * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  13. * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  14. * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  15. */
  16. #include <stdio.h>
  17. #include <stdlib.h>
  18. #define BUFSZ 32
  19. static const char intro[] = "static const unsigned char %s[] = {\n ";
  20. int main(int argc, char **argv) {
  21. int n;
  22. int col = 0;
  23. uint8_t buf[BUFSZ];
  24. if (argc < 2) {
  25. fprintf(stderr, "Specify a name for the data structure...\n");
  26. return 1;
  27. }
  28. printf(intro, argv[1]);
  29. while(!feof(stdin)) {
  30. n = fread(buf, 1, BUFSZ, stdin);
  31. for(int i = 0; i < n; ++i) {
  32. if (col+4 >= 76) {
  33. printf("\n ");
  34. col = 0;
  35. }
  36. printf("0x%.2x, ", buf[i]);
  37. col += 6;
  38. }
  39. }
  40. printf("};\n");
  41. }