die() replaces EBARF and BARF
and allow us to add -pedantic
to CFLAGS
HFIKAPN3TBMDVBDG7SZLX4ZJMSFFDGINTO6C2SKO5IVYUILGCQEQC
VJ3BNHJ4Z4DSKGGQMEJTSSHGI3NLK54HTP5GBT4FFRGS2TTVKKFAC
RMV5MH5OBOLKZ46NYZPTAPGJ6O6M7U3HTX5JH3FYQ2SKIPSQWAVQC
72X5JCFZ7GEZVWWH7SM2YVNBOWCPFQVO2D7AFSWYK73EVJRPZRBAC
QO4HGTGWT2R4CXQONLUGEI36G6UGVDMHNR2IOZ47S3H2YTE5TCOQC
GFTS3IVLML6FY526XUUZAAUDTWZAHJTH7MD4HIC7ZMVZJOOFA7MQC
RCVYDHBOZZPRA4TJELQ2AAV224QJEOWYUX33FPVV4R2U6F5DZVCAC
AXYOCJJNJECLJKI6EFQRIB4OZDZVSTCC4YEO7YAMS3QVNLXGK5HQC
7B74AT3BXYB7PVW4F6SGQNPMHOU5TEV5TZ54CG6VSQI46XSEKWXQC
4QUF4MKRSB5LYYS5FSYTCDSIEMYIERI2BQZLRGJ3GIGVYCPJVEPAC
6LVZRZGDURMWBUBXHFGV4HGB7L5M2FKCYGJCAU3X2PK74VJQ6RCAC
7L3TU7JVWPBPHN7WF4TJ263BZ6BC3AYRRW6PULFUP5JZUGWWNUSAC
O7NGXVYAM6W2CKJIXBQILGONIRRKXNO6I6YXX2FEVBBQY6MRGPVQC
BFWKVWAIUKHCZVRA62GW6QZUEUKQLW365HUWIVKTEIPJNJSOZBAQC
65GPTMYLVOQPVAKNBCN5RHHZEL7USZYSJ4VJQO7LYBCS7BZM7BYAC
D425ND7AT3F7QJ3CCSESMVDOC3J5C5P32M5SJDBHECZJXLHNQ2FAC
WWYCDUXC3LTWNEZL464AILJV5JXWG2ZGL2BPXSKN24MHEN6GXFLQC
2QL2H4REDZT46FI3LQ4RYEMQYZBNBK3IC3KH3XERAJU3NCZWMNYQC
WSRZTSPBWOSDVVEINEYXKFBEQ62H66Y3QZ7ZNIRHI4YFDN5C4N3AC
ZOOCZQBGZ4PCOU54EPPUPWNOIFWCM5RMZ4EFL2WFR7LFJTAMHZGAC
UCSTVE5NIAIQ3NJL5YLDFDKDPOCJS6NMAGABSWG67RGCPH47JQEQC
OKQDKOVUGULJA6E4XL4VMUHPT4IOFYBFBJAU7QXNNPP6PJ4DYLVAC
VCNLR5X75OAXVKPZQHF5RUZ7BONBUC6RPGO2NZEUD3FZ7TEVL66AC
ZDQJLNDNDQPWEEWF2QZDRY5LZNJS653SDUQZDHK6EQPH7N4MHXUQC
6XZIQSMIVP2GZ5S3UCKEVNDSLTHSQEVSXLV4UIFF3G3SRCGJPXYAC
AX4DPXMMD3V3MV2ZMVAWKTDJ67NPQGELE7SMJDGW7VAGUJY5W63QC
4BYBMSUPXXIGSAXUSUXAHPDEH7TBF67YN2CKVPXAXC34QEDTMV2AC
2X6Y5GAVZKHNJ2DDBVUIU7UQKFWLLFGDX542WJU4QBFLJJCFJNGAC
FS5MGWPFVAIDEUAZQ5XZDURFFLILJ3GBYMTFUPUFWKRJSJ5DFLZQC
TOFCZFUYVBVEBHMKVG6G5MKCAEF2QCQ4GKMKGQUSJRLGLDZEJF4QC
QPIH44BS3UQOFH7SUW5JGWQ7EK6CGTPVBB57PKRU7EOK6PLVTQAQC
LQPHYO7IIMLXHUD5IK657BO4BE3SGT5HYDRJDU5OFDF5YUXKIRTAC
FAGFMJELLBID6PONKHW7CKVRTZLEFAQQRF4FSE3LBCERN2ONFC6QC
WMN7AWGSUJORMCEMVPKDN22OK5WXUMLOKOG55RGBVPUIPSADXFZAC
ZPSXARCBIT2LZ4PLNMKXHIEEWG3XLVXXISIZDYNGFACDI5I256NQC
XUF22VC6FRHE755HMNIKOHMPKGZWSS4WBML4POEN43TH3QYRWRAAC
/* See LICENSE.dwm file for copyright and license details. */
void die(const char *fmt, ...);
void *ecalloc(size_t nmemb, size_t size);
/* See LICENSE.dwm file for copyright and license details. */
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#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, ...) {
va_list ap;
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);
}
exit(1);
}
CFLAGS ?= -g -Wall -Wextra -Werror -Wno-unused-parameter -Wno-sign-compare -Wno-unused-function -Wno-unused-variable -Wno-unused-result -Wdeclaration-after-statement
CFLAGS ?= -g -Wall -Wextra -Werror -Wno-unused-parameter -Wno-sign-compare -Wno-unused-function -Wno-unused-variable -Wno-unused-result -Wdeclaration-after-statement -pedantic