From 7817523a685f0dbba2e074a448099558a54b1b9c Mon Sep 17 00:00:00 2001 From: "arg@10ksloc.org" Date: Fri, 4 Aug 2006 09:35:27 +0200 Subject: initial import --- util.c | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 util.c (limited to 'util.c') diff --git a/util.c b/util.c new file mode 100644 index 0000000..dff7af7 --- /dev/null +++ b/util.c @@ -0,0 +1,68 @@ +/* + * (C)opyright MMVI Anselm R. Garbe + * See LICENSE file for license details. + */ +#include "dmenu.h" +#include +#include +#include +#include +#include +#include + +/* static */ + +static void +bad_malloc(unsigned int size) +{ + eprint("fatal: could not malloc() %u bytes\n", size); +} + +/* extern */ + +void * +emalloc(unsigned int size) +{ + void *res = malloc(size); + if(!res) + bad_malloc(size); + return res; +} + +void * +emallocz(unsigned int size) +{ + void *res = calloc(1, size); + + if(!res) + bad_malloc(size); + return res; +} + +void +eprint(const char *errstr, ...) +{ + va_list ap; + + va_start(ap, errstr); + vfprintf(stderr, errstr, ap); + va_end(ap); + exit(EXIT_FAILURE); +} + +char * +estrdup(const char *str) +{ + void *res = strdup(str); + if(!res) + bad_malloc(strlen(str)); + return res; +} + +void +swap(void **p1, void **p2) +{ + void *tmp = *p1; + *p1 = *p2; + *p2 = tmp; +} -- cgit v1.2.3