s3:smb2_create: check for SMB2_CREATE_TAG_DHNC first
[Samba/gebeck_regimport.git] / lib / ccan / err / err.c
blob9e0e20c86fa9f34c074e6caf38bc1f182e7b3f74
1 #include "err.h"
3 #if !HAVE_ERR_H
4 #include <stdarg.h>
5 #include <stdio.h>
6 #include <errno.h>
7 #include <string.h>
8 #include <stdlib.h>
10 static const char *progname = "unknown program";
12 void err_set_progname(const char *name)
14 progname = name;
17 void NORETURN err(int eval, const char *fmt, ...)
19 int err_errno = errno;
20 va_list ap;
22 fprintf(stderr, "%s: ", progname);
23 va_start(ap, fmt);
24 vfprintf(stderr, fmt, ap);
25 va_end(ap);
26 fprintf(stderr, ": %s\n", strerror(err_errno));
27 exit(eval);
30 void NORETURN errx(int eval, const char *fmt, ...)
32 va_list ap;
34 fprintf(stderr, "%s: ", progname);
35 va_start(ap, fmt);
36 vfprintf(stderr, fmt, ap);
37 va_end(ap);
38 fprintf(stderr, "\n");
39 exit(eval);
42 void warn(const char *fmt, ...)
44 int err_errno = errno;
45 va_list ap;
47 fprintf(stderr, "%s: ", progname);
48 va_start(ap, fmt);
49 vfprintf(stderr, fmt, ap);
50 va_end(ap);
51 fprintf(stderr, ": %s\n", strerror(err_errno));
54 void warnx(const char *fmt, ...)
56 va_list ap;
58 fprintf(stderr, "%s: ", progname);
59 va_start(ap, fmt);
60 vfprintf(stderr, fmt, ap);
61 va_end(ap);
62 fprintf(stderr, "\n");
64 #endif