libsl

shared code master of various suckless projects
git clone git://git.suckless.org/libsl
Log | Files | Refs | LICENSE

util.c (572B)


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