annotate util.c @ 0:12567e0a7670 default tip

initial commit
author Yasuri <yasuri@charliesmp.net>
date Sun, 04 Oct 2026 12:56:43 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
1 /* See LICENSE file for copyright and license details. */
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
2 #include <errno.h>
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
3 #include <stdarg.h>
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
4 #include <stdio.h>
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
5 #include <stdlib.h>
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
6 #include <string.h>
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
7
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
8 #include "util.h"
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
9
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
10 void
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
11 die(const char *fmt, ...)
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
12 {
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
13 va_list ap;
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
14 int saved_errno;
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
15
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
16 saved_errno = errno;
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
17
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
18 va_start(ap, fmt);
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
19 vfprintf(stderr, fmt, ap);
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
20 va_end(ap);
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
21
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
22 if (fmt[0] && fmt[strlen(fmt)-1] == ':')
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
23 fprintf(stderr, " %s", strerror(saved_errno));
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
24 fputc('\n', stderr);
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
25
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
26 exit(1);
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
27 }
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
28
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
29 void *
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
30 ecalloc(size_t nmemb, size_t size)
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
31 {
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
32 void *p;
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
33
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
34 if (!(p = calloc(nmemb, size)))
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
35 die("calloc:");
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
36 return p;
12567e0a7670 initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
37 }