diff options
author | Joe <rbo@gmx.us> | 2024-12-26 16:04:49 +0100 |
---|---|---|
committer | Joe <rbo@gmx.us> | 2024-12-26 16:04:49 +0100 |
commit | 9c8bc4e708647be16b6c69a28603c3542db9c100 (patch) | |
tree | 18ef2626c9db480d5122b99d34c2b40fa1afcd01 /util.c | |
parent | up (diff) | |
download | dmenu-9c8bc4e708647be16b6c69a28603c3542db9c100.tar.gz dmenu-9c8bc4e708647be16b6c69a28603c3542db9c100.tar.bz2 dmenu-9c8bc4e708647be16b6c69a28603c3542db9c100.tar.xz dmenu-9c8bc4e708647be16b6c69a28603c3542db9c100.tar.zst dmenu-9c8bc4e708647be16b6c69a28603c3542db9c100.zip |
5.3
Diffstat (limited to 'util.c')
-rw-r--r-- | util.c | 36 |
1 files changed, 19 insertions, 17 deletions
@@ -1,4 +1,5 @@ /* See LICENSE file for copyright and license details. */ +#include <errno.h> #include <stdarg.h> #include <stdio.h> #include <stdlib.h> @@ -6,30 +7,31 @@ #include "util.h" -void * -ecalloc(size_t nmemb, size_t size) -{ - void *p; - - if (!(p = calloc(nmemb, size))) - die("calloc:"); - return p; -} - void -die(const char *fmt, ...) { +die(const char *fmt, ...) +{ va_list ap; + int saved_errno; + + saved_errno = errno; va_start(ap, fmt); vfprintf(stderr, fmt, ap); va_end(ap); - if (fmt[0] && fmt[strlen(fmt)-1] == ':') { - fputc(' ', stderr); - perror(NULL); - } else { - fputc('\n', stderr); - } + if (fmt[0] && fmt[strlen(fmt)-1] == ':') + fprintf(stderr, " %s", strerror(saved_errno)); + fputc('\n', stderr); exit(1); } + +void * +ecalloc(size_t nmemb, size_t size) +{ + void *p; + + if (!(p = calloc(nmemb, size))) + die("calloc:"); + return p; +} |