aboutsummaryrefslogtreecommitdiff
path: root/lib/err.c
blob: fd4218ef2bb9e7b4288bdfb9f59155e17e382e3a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <stdarg.h>
#include "../ninitfeatures.h"
#include "../djb/buffer.h"

#if 0
void err(int fd, const char *m, ...) /*EXTRACT_INCL*/
#endif

#ifdef ERRMSG_BUFFER
#define P(S)	buffer_puts(X,S)
#define E()	err_b(buffer *X, const char *m, ...)

#else
#define P(S)	errmsg_puts(X,S)
#define E()	err(int X, const char *m, ...)
#endif

extern const char *errmsg_argv0;

void E() {
  const char *s=m;
  va_list a;
  va_start(a,m);

  if (errmsg_argv0) {
    P(errmsg_argv0);
    P(": ");
  }

  while (s) {
    P(s);    
    s=va_arg(a,const char*);
  }
  P("\n");
#ifndef ERRMSG_BUFFER
  P(0);
#endif
  va_end(a);
}