util.c 517 B

12345678910111213141516171819202122232425262728293031323334353637
  1. /* See LICENSE file for copyright and license details. */
  2. #include <stdarg.h>
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <string.h>
  6. #include "util.h"
  7. void
  8. die(const char *fmt, ...)
  9. {
  10. va_list ap;
  11. va_start(ap, fmt);
  12. vfprintf(stderr, fmt, ap);
  13. va_end(ap);
  14. if (fmt[0] && fmt[strlen(fmt)-1] == ':') {
  15. fputc(' ', stderr);
  16. perror(NULL);
  17. } else {
  18. fputc('\n', stderr);
  19. }
  20. exit(1);
  21. }
  22. void *
  23. ecalloc(size_t nmemb, size_t size)
  24. {
  25. void *p;
  26. if (!(p = calloc(nmemb, size)))
  27. die("calloc:");
  28. return p;
  29. }