first
[dcc-suckless-config] / bdwm / util.c
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
7 #include "util.h"
8
9 void
10 die(const char *fmt, ...)
11 {
12         va_list ap;
13
14         va_start(ap, fmt);
15         vfprintf(stderr, fmt, ap);
16         va_end(ap);
17
18         if (fmt[0] && fmt[strlen(fmt)-1] == ':') {
19                 fputc(' ', stderr);
20                 perror(NULL);
21         } else {
22                 fputc('\n', stderr);
23         }
24
25         exit(1);
26 }
27
28 void *
29 ecalloc(size_t nmemb, size_t size)
30 {
31         void *p;
32
33         if (!(p = calloc(nmemb, size)))
34                 die("calloc:");
35         return p;
36 }