Mercurial > aewl
comparison util.c @ 3:e969f3575b7a
several new changes, made gridmenu working
author | Anselm R. Garbe <garbeam@wmii.de> |
---|---|
date | Mon, 10 Jul 2006 19:46:24 +0200 |
parents | a79188fe4a40 |
children | e5018cae273f |
comparison
equal
deleted
inserted
replaced
2:a79188fe4a40 | 3:e969f3575b7a |
---|---|
4 */ | 4 */ |
5 | 5 |
6 #include <stdarg.h> | 6 #include <stdarg.h> |
7 #include <stdio.h> | 7 #include <stdio.h> |
8 #include <stdlib.h> | 8 #include <stdlib.h> |
9 #include <string.h> | |
9 | 10 |
10 void | 11 void |
11 error(char *errstr, ...) { | 12 error(char *errstr, ...) { |
12 va_list ap; | 13 va_list ap; |
13 va_start(ap, errstr); | 14 va_start(ap, errstr); |
14 vfprintf(stderr, errstr, ap); | 15 vfprintf(stderr, errstr, ap); |
15 va_end(ap); | 16 va_end(ap); |
16 exit(1); | 17 exit(1); |
17 } | 18 } |
18 | 19 |
20 static void | |
21 bad_malloc(unsigned int size) | |
22 { | |
23 fprintf(stderr, "fatal: could not malloc() %d bytes\n", | |
24 (int) size); | |
25 exit(1); | |
26 } | |
27 | |
28 void * | |
29 emallocz(unsigned int size) | |
30 { | |
31 void *res = calloc(1, size); | |
32 if(!res) | |
33 bad_malloc(size); | |
34 return res; | |
35 } | |
36 | |
37 void * | |
38 emalloc(unsigned int size) | |
39 { | |
40 void *res = malloc(size); | |
41 if(!res) | |
42 bad_malloc(size); | |
43 return res; | |
44 } | |
45 | |
46 void * | |
47 erealloc(void *ptr, unsigned int size) | |
48 { | |
49 void *res = realloc(ptr, size); | |
50 if(!res) | |
51 bad_malloc(size); | |
52 return res; | |
53 } | |
54 | |
55 char * | |
56 estrdup(const char *str) | |
57 { | |
58 void *res = strdup(str); | |
59 if(!res) | |
60 bad_malloc(strlen(str)); | |
61 return res; | |
62 } | |
63 | |
64 void | |
65 failed_assert(char *a, char *file, int line) | |
66 { | |
67 fprintf(stderr, "Assertion \"%s\" failed at %s:%d\n", a, file, line); | |
68 abort(); | |
69 } | |
70 | |
71 void | |
72 swap(void **p1, void **p2) | |
73 { | |
74 void *tmp = *p1; | |
75 *p1 = *p2; | |
76 *p2 = tmp; | |
77 } |