Update style to more BSDish and replace the big macro with a function.
This commit is contained in:
parent
dc891b0647
commit
76063daee5
@ -199,7 +199,8 @@ static const char *const color_terms[] = {
|
||||
/* strlcat and strlcpy are nice, shame glibc does not define them */
|
||||
#ifdef __GLIBC__
|
||||
# if ! defined (__UCLIBC__) && ! defined (__dietlibc__)
|
||||
static size_t strlcat(char *dst, const char *src, size_t size)
|
||||
static size_t
|
||||
strlcat(char *dst, const char *src, size_t size)
|
||||
{
|
||||
char *d = dst;
|
||||
const char *s = src;
|
||||
@ -226,18 +227,19 @@ static size_t strlcat(char *dst, const char *src, size_t size)
|
||||
return dst_n + (s - src);
|
||||
}
|
||||
|
||||
static size_t strlcpy(char *dst, const char *src, size_t size)
|
||||
static size_t
|
||||
strlcpy(char *dst, const char *src, size_t size)
|
||||
{
|
||||
const char *s = src;
|
||||
size_t n = size;
|
||||
|
||||
if (n && --n)
|
||||
do {
|
||||
if (! (*dst++ = *src++))
|
||||
if (!(*dst++ = *src++))
|
||||
break;
|
||||
} while (--n);
|
||||
|
||||
if (! n) {
|
||||
if (!n) {
|
||||
if (size)
|
||||
*dst = '\0';
|
||||
while (*src++);
|
||||
@ -248,9 +250,10 @@ static size_t strlcpy(char *dst, const char *src, size_t size)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
static bool yesno(const char *value)
|
||||
static bool
|
||||
yesno(const char *value)
|
||||
{
|
||||
if (! value) {
|
||||
if (!value) {
|
||||
errno = ENOENT;
|
||||
return false;
|
||||
}
|
||||
@ -272,7 +275,8 @@ static bool yesno(const char *value)
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool noyes(const char *value)
|
||||
static bool
|
||||
noyes(const char *value)
|
||||
{
|
||||
int serrno = errno;
|
||||
bool retval;
|
||||
@ -280,26 +284,29 @@ static bool noyes(const char *value)
|
||||
errno = 0;
|
||||
retval = yesno(value);
|
||||
if (errno == 0) {
|
||||
retval = ! retval;
|
||||
retval = !retval;
|
||||
errno = serrno;
|
||||
}
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
static bool is_quiet(void)
|
||||
static bool
|
||||
is_quiet(void)
|
||||
{
|
||||
return yesno(getenv("EINFO_QUIET"));
|
||||
}
|
||||
|
||||
static bool is_verbose(void)
|
||||
static bool
|
||||
is_verbose(void)
|
||||
{
|
||||
return yesno(getenv ("EINFO_VERBOSE"));
|
||||
}
|
||||
|
||||
/* Fake tgoto call - very crapy, but works for our needs */
|
||||
#ifndef HAVE_TERMCAP
|
||||
static char *tgoto(const char *cap, int a, int b)
|
||||
static char *
|
||||
tgoto(const char *cap, int a, int b)
|
||||
{
|
||||
static char buf[20];
|
||||
|
||||
@ -308,22 +315,22 @@ static char *tgoto(const char *cap, int a, int b)
|
||||
}
|
||||
#endif
|
||||
|
||||
static bool colour_terminal(FILE * __EINFO_RESTRICT f)
|
||||
static bool
|
||||
colour_terminal(FILE * __EINFO_RESTRICT f)
|
||||
{
|
||||
static int in_colour = -1;
|
||||
char *e;
|
||||
char *e, *ee, *end, *d, *p;
|
||||
int c;
|
||||
const char *_af = NULL;
|
||||
const char *_ce = NULL;
|
||||
const char *_ch = NULL;
|
||||
const char *_md = NULL;
|
||||
const char *_me = NULL;
|
||||
const char *_up = NULL;
|
||||
const char *_af = NULL, *_ce = NULL, *_ch = NULL;
|
||||
const char *_md = NULL, *_me = NULL, *_up = NULL;
|
||||
const char *bold;
|
||||
char tmp[100];
|
||||
char *p;
|
||||
unsigned int i = 0;
|
||||
#ifdef HAVE_TERMCAP
|
||||
char *bp;
|
||||
#endif
|
||||
|
||||
if (f && ! isatty(fileno(f)))
|
||||
if (f && !isatty(fileno(f)))
|
||||
return false;
|
||||
|
||||
if (noyes(getenv("EINFO_COLOR")))
|
||||
@ -335,26 +342,23 @@ static bool colour_terminal(FILE * __EINFO_RESTRICT f)
|
||||
return true;
|
||||
|
||||
term_is_cons25 = false;
|
||||
|
||||
if (! term) {
|
||||
if (!term) {
|
||||
term = getenv("TERM");
|
||||
if (! term)
|
||||
if (!term)
|
||||
return false;
|
||||
}
|
||||
|
||||
if (strcmp(term, "cons25") == 0)
|
||||
term_is_cons25 = true;
|
||||
|
||||
#ifdef HAVE_TERMCAP
|
||||
/* Check termcap to see if we can do colour or not */
|
||||
if (tgetent(termcapbuf, term) == 1) {
|
||||
char *bp = tcapbuf;
|
||||
|
||||
bp = tcapbuf;
|
||||
_af = tgetstr("AF", &bp);
|
||||
_ce = tgetstr("ce", &bp);
|
||||
_ch = tgetstr("ch", &bp);
|
||||
/* Our ch use also works with RI .... for now */
|
||||
if (! _ch)
|
||||
if (!_ch)
|
||||
_ch = tgetstr("RI", &bp);
|
||||
_md = tgetstr("md", &bp);
|
||||
_me = tgetstr("me", &bp);
|
||||
@ -377,29 +381,29 @@ static bool colour_terminal(FILE * __EINFO_RESTRICT f)
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
if (! _af)
|
||||
if (!_af)
|
||||
_af = AF;
|
||||
if (! _ce)
|
||||
if (!_ce)
|
||||
_ce = CE;
|
||||
if (! _ch)
|
||||
if (!_ch)
|
||||
_ch = CH;
|
||||
if (! _md)
|
||||
if (!_md)
|
||||
_md = MD;
|
||||
if (! _me)
|
||||
if (!_me)
|
||||
_me = ME;
|
||||
if (! _up)
|
||||
if (!_up)
|
||||
_up = UP;
|
||||
#ifdef HAVE_TERMCAP
|
||||
}
|
||||
|
||||
if (! _af || ! _ce || ! _me || !_md || ! _up) {
|
||||
if (!_af || !_ce || !_me || !_md || !_up) {
|
||||
in_colour = 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Many termcap databases don't have ch or RI even though they
|
||||
* do work */
|
||||
if (! _ch)
|
||||
if (!_ch)
|
||||
_ch = CH;
|
||||
#endif
|
||||
|
||||
@ -407,33 +411,28 @@ static bool colour_terminal(FILE * __EINFO_RESTRICT f)
|
||||
p = ebuffer;
|
||||
for (i = 0; i < sizeof(ecolors) / sizeof(ecolors[0]); i++) {
|
||||
tmp[0] = '\0';
|
||||
|
||||
if (ecolors[i].name) {
|
||||
const char *bold = _md;
|
||||
bold = _md;
|
||||
c = ecolors[i].def;
|
||||
|
||||
/* See if the user wants to override the colour
|
||||
* We use a :col;bold: format like 2;1: for bold green
|
||||
* and 1;0: for a normal red */
|
||||
if ((e = getenv("EINFO_COLOR"))) {
|
||||
char *ee = strstr(e, ecolors[i].name);
|
||||
|
||||
ee = strstr(e, ecolors[i].name);
|
||||
if (ee)
|
||||
ee += strlen(ecolors[i].name);
|
||||
|
||||
if (ee && *ee == '=') {
|
||||
char *d = strdup(ee + 1);
|
||||
d = strdup(ee + 1);
|
||||
if (d) {
|
||||
char *end = strchr(d, ':');
|
||||
end = strchr(d, ':');
|
||||
if (end)
|
||||
*end = '\0';
|
||||
|
||||
c = atoi(d);
|
||||
|
||||
end = strchr(d, ';');
|
||||
if (end && *++end == '0')
|
||||
bold = _me;
|
||||
|
||||
free(d);
|
||||
}
|
||||
}
|
||||
@ -460,7 +459,8 @@ static bool colour_terminal(FILE * __EINFO_RESTRICT f)
|
||||
return true;
|
||||
}
|
||||
|
||||
static int get_term_columns(FILE * __EINFO_RESTRICT stream)
|
||||
static int
|
||||
get_term_columns(FILE * __EINFO_RESTRICT stream)
|
||||
{
|
||||
struct winsize ws;
|
||||
char *env = getenv("COLUMNS");
|
||||
@ -469,7 +469,7 @@ static int get_term_columns(FILE * __EINFO_RESTRICT stream)
|
||||
|
||||
if (env) {
|
||||
i = strtoimax(env, &p, 10);
|
||||
if (! *p)
|
||||
if (!*p)
|
||||
return i;
|
||||
}
|
||||
|
||||
@ -479,13 +479,15 @@ static int get_term_columns(FILE * __EINFO_RESTRICT stream)
|
||||
return DEFAULT_COLS;
|
||||
}
|
||||
|
||||
void eprefix(const char *__EINFO_RESTRICT prefix)
|
||||
void
|
||||
eprefix(const char *__EINFO_RESTRICT prefix)
|
||||
{
|
||||
_eprefix = prefix;
|
||||
}
|
||||
hidden_def(eprefix)
|
||||
|
||||
static void elogv(int level, const char *__EINFO_RESTRICT fmt, va_list ap)
|
||||
static void
|
||||
elogv(int level, const char *__EINFO_RESTRICT fmt, va_list ap)
|
||||
{
|
||||
char *e = getenv("EINFO_LOG");
|
||||
va_list apc;
|
||||
@ -500,7 +502,8 @@ static void elogv(int level, const char *__EINFO_RESTRICT fmt, va_list ap)
|
||||
}
|
||||
}
|
||||
|
||||
void elog(int level, const char *__EINFO_RESTRICT fmt, ...)
|
||||
void
|
||||
elog(int level, const char *__EINFO_RESTRICT fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
@ -510,7 +513,8 @@ void elog(int level, const char *__EINFO_RESTRICT fmt, ...)
|
||||
}
|
||||
hidden_def(elog)
|
||||
|
||||
static int _eindent(FILE * __EINFO_RESTRICT stream)
|
||||
static int
|
||||
_eindent(FILE * __EINFO_RESTRICT stream)
|
||||
{
|
||||
char *env = getenv("EINFO_INDENT");
|
||||
int amount = 0;
|
||||
@ -525,7 +529,7 @@ static int _eindent(FILE * __EINFO_RESTRICT stream)
|
||||
amount = INDENT_MAX;
|
||||
|
||||
if (amount > 0)
|
||||
memset(indent, ' ', (size_t) amount);
|
||||
memset(indent, ' ', (size_t)amount);
|
||||
}
|
||||
|
||||
/* Terminate it */
|
||||
@ -533,32 +537,32 @@ static int _eindent(FILE * __EINFO_RESTRICT stream)
|
||||
return fprintf(stream, "%s", indent);
|
||||
}
|
||||
|
||||
static const char *_ecolor(FILE * __EINFO_RESTRICT f, ECOLOR color)
|
||||
static const char *
|
||||
_ecolor(FILE * __EINFO_RESTRICT f, ECOLOR color)
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
if (! colour_terminal(f))
|
||||
if (!colour_terminal(f))
|
||||
return "";
|
||||
|
||||
for (i = 0; i < sizeof(ecolors) / sizeof(ecolors[0]); i++) {
|
||||
for (i = 0; i < sizeof(ecolors) / sizeof(ecolors[0]); i++)
|
||||
if (ecolors[i].color == color)
|
||||
return ecolors_str[i];
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
hidden_def(ecolor)
|
||||
|
||||
const char *ecolor(ECOLOR color)
|
||||
const char *
|
||||
ecolor(ECOLOR color)
|
||||
{
|
||||
FILE *f = stdout;
|
||||
|
||||
/* Try and guess a valid tty */
|
||||
if (! isatty(fileno(f))) {
|
||||
if (!isatty(fileno(f))) {
|
||||
f = stderr;
|
||||
if (! isatty(fileno(f))) {
|
||||
if (!isatty(fileno(f))) {
|
||||
f = stdin;
|
||||
if (! isatty(fileno(f)))
|
||||
if (!isatty(fileno(f)))
|
||||
f = NULL;
|
||||
}
|
||||
}
|
||||
@ -574,7 +578,7 @@ const char *ecolor(ECOLOR color)
|
||||
#define EINFOVN(_file, _color) \
|
||||
{ \
|
||||
char *_e = getenv("EINFO_LASTCMD"); \
|
||||
if (_e && ! colour_terminal(_file) && strcmp(_e, "ewarn") != 0 && \
|
||||
if (_e && !colour_terminal(_file) && strcmp(_e, "ewarn") != 0 && \
|
||||
_e[strlen (_e) - 1] == 'n') \
|
||||
fprintf(_file, "\n"); \
|
||||
if (_eprefix) \
|
||||
@ -591,67 +595,69 @@ const char *ecolor(ECOLOR color)
|
||||
fprintf(_file, "%s", flush); \
|
||||
}
|
||||
|
||||
static int _einfovn(const char *__EINFO_RESTRICT fmt, va_list ap)
|
||||
static int
|
||||
_einfo(FILE *f, ECOLOR color, const char *__EINFO_RESTRICT fmt, va_list va)
|
||||
|
||||
{
|
||||
int retval = 0;
|
||||
char *last = getenv("EINFO_LASTCMD");
|
||||
va_list ap;
|
||||
|
||||
EINFOVN(stdout, ECOLOR_GOOD);
|
||||
if (last &&
|
||||
!colour_terminal(f) &&
|
||||
strcmp(last, "ewarn") != 0 &&
|
||||
last[strlen(last) - 1] == 'n')
|
||||
fprintf(f, "\n");
|
||||
if (_eprefix)
|
||||
fprintf(f, "%s%s%s|", _ecolor(f, color), _eprefix, _ecolor(f, ECOLOR_NORMAL));
|
||||
fprintf(f, " %s*%s ", _ecolor(f, color), _ecolor(f, ECOLOR_NORMAL));
|
||||
retval += _eindent(f);
|
||||
va_copy(ap, va);
|
||||
retval += vfprintf(f, fmt, ap) + 3;
|
||||
va_end(ap); \
|
||||
if (colour_terminal(f))
|
||||
fprintf(f, "%s", flush);
|
||||
return retval;
|
||||
}
|
||||
|
||||
static int _ewarnvn(const char *__EINFO_RESTRICT fmt, va_list ap)
|
||||
{
|
||||
int retval = 0;
|
||||
#define _einfovn(fmt, ap) _einfo(stdout, ECOLOR_GOOD, fmt, ap)
|
||||
#define _ewarnvn(fmt, ap) _einfo(stderr, ECOLOR_WARN, fmt, ap)
|
||||
#define _eerrorvn(fmt, ap) _einfo(stderr, ECOLOR_BAD, fmt, ap)
|
||||
|
||||
EINFOVN(stderr, ECOLOR_WARN);
|
||||
return retval;
|
||||
}
|
||||
|
||||
static int _eerrorvn(const char *__EINFO_RESTRICT fmt, va_list ap)
|
||||
{
|
||||
int retval = 0;
|
||||
|
||||
EINFOVN(stderr, ECOLOR_BAD);
|
||||
return retval;
|
||||
}
|
||||
|
||||
int einfon(const char *__EINFO_RESTRICT fmt, ...)
|
||||
int
|
||||
einfon(const char *__EINFO_RESTRICT fmt, ...)
|
||||
{
|
||||
int retval;
|
||||
va_list ap;
|
||||
|
||||
if (! fmt || is_quiet())
|
||||
if (!fmt || is_quiet())
|
||||
return 0;
|
||||
|
||||
va_start(ap, fmt);
|
||||
retval = _einfovn(fmt, ap);
|
||||
va_end(ap);
|
||||
|
||||
LASTCMD("einfon");
|
||||
|
||||
return retval;
|
||||
}
|
||||
hidden_def(einfon)
|
||||
|
||||
int ewarnn(const char *__EINFO_RESTRICT fmt, ...)
|
||||
int
|
||||
ewarnn(const char *__EINFO_RESTRICT fmt, ...)
|
||||
{
|
||||
int retval;
|
||||
va_list ap;
|
||||
|
||||
if (! fmt || is_quiet())
|
||||
if (!fmt || is_quiet())
|
||||
return 0;
|
||||
|
||||
va_start(ap, fmt);
|
||||
retval = _ewarnvn(fmt, ap);
|
||||
va_end(ap);
|
||||
|
||||
LASTCMD("ewarnn");
|
||||
|
||||
return retval;
|
||||
}
|
||||
hidden_def(ewarnn)
|
||||
|
||||
int eerrorn(const char *__EINFO_RESTRICT fmt, ...)
|
||||
int
|
||||
eerrorn(const char *__EINFO_RESTRICT fmt, ...)
|
||||
{
|
||||
int retval;
|
||||
va_list ap;
|
||||
@ -659,58 +665,53 @@ int eerrorn(const char *__EINFO_RESTRICT fmt, ...)
|
||||
va_start(ap, fmt);
|
||||
retval = _eerrorvn(fmt, ap);
|
||||
va_end(ap);
|
||||
|
||||
LASTCMD("errorn");
|
||||
|
||||
return retval;
|
||||
}
|
||||
hidden_def(eerrorn)
|
||||
|
||||
int einfo(const char *__EINFO_RESTRICT fmt, ...)
|
||||
int
|
||||
einfo(const char *__EINFO_RESTRICT fmt, ...)
|
||||
{
|
||||
int retval;
|
||||
va_list ap;
|
||||
|
||||
if (! fmt || is_quiet())
|
||||
if (!fmt || is_quiet())
|
||||
return 0;
|
||||
|
||||
va_start(ap, fmt);
|
||||
retval = _einfovn(fmt, ap);
|
||||
retval += printf("\n");
|
||||
va_end(ap);
|
||||
|
||||
LASTCMD("einfo");
|
||||
|
||||
return retval;
|
||||
}
|
||||
hidden_def(einfo)
|
||||
|
||||
int ewarn(const char *__EINFO_RESTRICT fmt, ...)
|
||||
int
|
||||
ewarn(const char *__EINFO_RESTRICT fmt, ...)
|
||||
{
|
||||
int retval;
|
||||
va_list ap;
|
||||
|
||||
if (! fmt || is_quiet())
|
||||
if (!fmt || is_quiet())
|
||||
return 0;
|
||||
|
||||
va_start(ap, fmt);
|
||||
elogv(LOG_WARNING, fmt, ap);
|
||||
retval = _ewarnvn(fmt, ap);
|
||||
retval += fprintf(stderr, "\n");
|
||||
va_end(ap);
|
||||
|
||||
LASTCMD("ewarn");
|
||||
|
||||
return retval;
|
||||
}
|
||||
hidden_def(ewarn)
|
||||
|
||||
void ewarnx(const char *__EINFO_RESTRICT fmt, ...)
|
||||
void
|
||||
ewarnx(const char *__EINFO_RESTRICT fmt, ...)
|
||||
{
|
||||
int retval;
|
||||
va_list ap;
|
||||
|
||||
if (fmt && ! is_quiet()) {
|
||||
if (fmt && !is_quiet()) {
|
||||
va_start(ap, fmt);
|
||||
elogv(LOG_WARNING, fmt, ap);
|
||||
retval = _ewarnvn(fmt, ap);
|
||||
@ -721,27 +722,26 @@ void ewarnx(const char *__EINFO_RESTRICT fmt, ...)
|
||||
}
|
||||
hidden_def(ewarnx)
|
||||
|
||||
int eerror(const char *__EINFO_RESTRICT fmt, ...)
|
||||
int
|
||||
eerror(const char *__EINFO_RESTRICT fmt, ...)
|
||||
{
|
||||
int retval;
|
||||
va_list ap;
|
||||
|
||||
if (! fmt)
|
||||
if (!fmt)
|
||||
return 0;
|
||||
|
||||
va_start(ap, fmt);
|
||||
elogv(LOG_ERR, fmt, ap);
|
||||
retval = _eerrorvn(fmt, ap);
|
||||
va_end(ap);
|
||||
retval += fprintf(stderr, "\n");
|
||||
|
||||
LASTCMD("eerror");
|
||||
|
||||
return retval;
|
||||
}
|
||||
hidden_def(eerror)
|
||||
|
||||
void eerrorx(const char *__EINFO_RESTRICT fmt, ...)
|
||||
void
|
||||
eerrorx(const char *__EINFO_RESTRICT fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
@ -752,46 +752,43 @@ void eerrorx(const char *__EINFO_RESTRICT fmt, ...)
|
||||
va_end(ap);
|
||||
fprintf(stderr, "\n");
|
||||
}
|
||||
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
hidden_def(eerrorx)
|
||||
|
||||
int ebegin(const char *__EINFO_RESTRICT fmt, ...)
|
||||
int
|
||||
ebegin(const char *__EINFO_RESTRICT fmt, ...)
|
||||
{
|
||||
int retval;
|
||||
va_list ap;
|
||||
|
||||
if (! fmt || is_quiet())
|
||||
if (!fmt || is_quiet())
|
||||
return 0;
|
||||
|
||||
va_start(ap, fmt);
|
||||
retval = _einfovn(fmt, ap);
|
||||
va_end(ap);
|
||||
retval += printf(" ...");
|
||||
if (colour_terminal(stdout))
|
||||
retval += printf("\n");
|
||||
|
||||
LASTCMD("ebegin");
|
||||
|
||||
return retval;
|
||||
}
|
||||
hidden_def(ebegin)
|
||||
|
||||
static void _eend(FILE * __EINFO_RESTRICT fp, int col, ECOLOR color,
|
||||
const char *msg)
|
||||
static void
|
||||
_eend(FILE * __EINFO_RESTRICT fp, int col, ECOLOR color, const char *msg)
|
||||
{
|
||||
int i;
|
||||
int cols;
|
||||
|
||||
if (! msg)
|
||||
if (!msg)
|
||||
return;
|
||||
|
||||
cols = get_term_columns(fp) - (strlen(msg) + 3);
|
||||
|
||||
/* cons25 is special - we need to remove one char, otherwise things
|
||||
* do not align properly at all. */
|
||||
if (! term) {
|
||||
if (!term) {
|
||||
term = getenv("TERM");
|
||||
if (term && strcmp(term, "cons25") == 0)
|
||||
term_is_cons25 = true;
|
||||
@ -816,7 +813,8 @@ static void _eend(FILE * __EINFO_RESTRICT fp, int col, ECOLOR color,
|
||||
}
|
||||
}
|
||||
|
||||
static int _do_eend(const char *cmd, int retval, const char *__EINFO_RESTRICT fmt, va_list ap)
|
||||
static int
|
||||
_do_eend(const char *cmd, int retval, const char *__EINFO_RESTRICT fmt, va_list ap)
|
||||
{
|
||||
int col = 0;
|
||||
FILE *fp = stdout;
|
||||
@ -832,54 +830,51 @@ static int _do_eend(const char *cmd, int retval, const char *__EINFO_RESTRICT fm
|
||||
col += fprintf(fp, "\n");
|
||||
va_end(apc);
|
||||
}
|
||||
|
||||
_eend(fp, col,
|
||||
retval == 0 ? ECOLOR_GOOD : ECOLOR_BAD,
|
||||
retval == 0 ? OK : NOT_OK);
|
||||
return retval;
|
||||
}
|
||||
|
||||
int eend(int retval, const char *__EINFO_RESTRICT fmt, ...)
|
||||
int
|
||||
eend(int retval, const char *__EINFO_RESTRICT fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
if (is_quiet())
|
||||
return retval;
|
||||
|
||||
va_start(ap, fmt);
|
||||
_do_eend("eend", retval, fmt, ap);
|
||||
va_end(ap);
|
||||
|
||||
LASTCMD("eend");
|
||||
|
||||
return retval;
|
||||
}
|
||||
hidden_def(eend)
|
||||
|
||||
int ewend(int retval, const char *__EINFO_RESTRICT fmt, ...)
|
||||
int
|
||||
ewend(int retval, const char *__EINFO_RESTRICT fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
if (is_quiet())
|
||||
return retval;
|
||||
|
||||
va_start(ap, fmt);
|
||||
_do_eend("ewend", retval, fmt, ap);
|
||||
va_end(ap);
|
||||
|
||||
LASTCMD("ewend");
|
||||
|
||||
return retval;
|
||||
}
|
||||
hidden_def(ewend)
|
||||
|
||||
void ebracket(int col, ECOLOR color, const char *msg)
|
||||
void
|
||||
ebracket(int col, ECOLOR color, const char *msg)
|
||||
{
|
||||
_eend(stdout, col, color, msg);
|
||||
}
|
||||
hidden_def(ebracket)
|
||||
|
||||
void eindent(void)
|
||||
void
|
||||
eindent(void)
|
||||
{
|
||||
char *env = getenv("EINFO_INDENT");
|
||||
int amount = 0;
|
||||
@ -891,11 +886,9 @@ void eindent(void)
|
||||
if (errno != 0)
|
||||
amount = 0;
|
||||
}
|
||||
|
||||
amount += INDENT_WIDTH;
|
||||
if (amount > INDENT_MAX)
|
||||
amount = INDENT_MAX;
|
||||
|
||||
snprintf(num, 10, "%08d", amount);
|
||||
setenv("EINFO_INDENT", num, 1);
|
||||
}
|
||||
@ -908,16 +901,14 @@ void eoutdent(void)
|
||||
char num[10];
|
||||
int serrno = errno;
|
||||
|
||||
if (! env)
|
||||
if (!env)
|
||||
return;
|
||||
|
||||
errno = 0;
|
||||
amount = strtoimax(env, NULL, 0);
|
||||
if (errno != 0)
|
||||
amount = 0;
|
||||
else
|
||||
amount -= INDENT_WIDTH;
|
||||
|
||||
if (amount <= 0)
|
||||
unsetenv("EINFO_INDENT");
|
||||
else {
|
||||
@ -928,86 +919,79 @@ void eoutdent(void)
|
||||
}
|
||||
hidden_def(eoutdent)
|
||||
|
||||
int einfovn(const char *__EINFO_RESTRICT fmt, ...)
|
||||
int
|
||||
einfovn(const char *__EINFO_RESTRICT fmt, ...)
|
||||
{
|
||||
int retval;
|
||||
va_list ap;
|
||||
|
||||
if (! fmt || ! is_verbose())
|
||||
if (!fmt || !is_verbose())
|
||||
return 0;
|
||||
|
||||
va_start(ap, fmt);
|
||||
retval = _einfovn(fmt, ap);
|
||||
va_end(ap);
|
||||
|
||||
LASTCMD("einfovn");
|
||||
|
||||
return retval;
|
||||
}
|
||||
hidden_def(einfovn)
|
||||
|
||||
int ewarnvn(const char *__EINFO_RESTRICT fmt, ...)
|
||||
int
|
||||
ewarnvn(const char *__EINFO_RESTRICT fmt, ...)
|
||||
{
|
||||
int retval;
|
||||
va_list ap;
|
||||
|
||||
if (! fmt || ! is_verbose())
|
||||
if (!fmt || !is_verbose())
|
||||
return 0;
|
||||
|
||||
va_start(ap, fmt);
|
||||
retval = _ewarnvn(fmt, ap);
|
||||
va_end(ap);
|
||||
|
||||
LASTCMD("ewarnvn");
|
||||
|
||||
return retval;
|
||||
}
|
||||
hidden_def(ewarnvn)
|
||||
|
||||
int einfov(const char *__EINFO_RESTRICT fmt, ...)
|
||||
int
|
||||
einfov(const char *__EINFO_RESTRICT fmt, ...)
|
||||
{
|
||||
int retval;
|
||||
va_list ap;
|
||||
|
||||
if (! fmt || ! is_verbose())
|
||||
if (!fmt || !is_verbose())
|
||||
return 0;
|
||||
|
||||
va_start(ap, fmt);
|
||||
retval = _einfovn(fmt, ap);
|
||||
retval += printf("\n");
|
||||
va_end(ap);
|
||||
|
||||
LASTCMD("einfov");
|
||||
|
||||
return retval;
|
||||
}
|
||||
hidden_def(einfov)
|
||||
|
||||
int ewarnv(const char *__EINFO_RESTRICT fmt, ...)
|
||||
int
|
||||
ewarnv(const char *__EINFO_RESTRICT fmt, ...)
|
||||
{
|
||||
int retval;
|
||||
va_list ap;
|
||||
|
||||
if (! fmt || ! is_verbose())
|
||||
if (!fmt || !is_verbose())
|
||||
return 0;
|
||||
|
||||
va_start(ap, fmt);
|
||||
retval = _ewarnvn(fmt, ap);
|
||||
retval += printf("\n");
|
||||
va_end(ap);
|
||||
|
||||
LASTCMD("ewarnv");
|
||||
|
||||
return retval;
|
||||
}
|
||||
hidden_def(ewarnv)
|
||||
|
||||
int ebeginv(const char *__EINFO_RESTRICT fmt, ...)
|
||||
int
|
||||
ebeginv(const char *__EINFO_RESTRICT fmt, ...)
|
||||
{
|
||||
int retval;
|
||||
va_list ap;
|
||||
|
||||
if (! fmt || ! is_verbose())
|
||||
if (!fmt || !is_verbose())
|
||||
return 0;
|
||||
|
||||
va_start(ap, fmt);
|
||||
@ -1016,55 +1000,51 @@ int ebeginv(const char *__EINFO_RESTRICT fmt, ...)
|
||||
if (colour_terminal(stdout))
|
||||
retval += printf("\n");
|
||||
va_end(ap);
|
||||
|
||||
LASTCMD("ebeginv");
|
||||
|
||||
return retval;
|
||||
}
|
||||
hidden_def(ebeginv)
|
||||
|
||||
int eendv(int retval, const char *__EINFO_RESTRICT fmt, ...)
|
||||
int
|
||||
eendv(int retval, const char *__EINFO_RESTRICT fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
if (! is_verbose())
|
||||
if (!is_verbose())
|
||||
return 0;
|
||||
|
||||
va_start(ap, fmt);
|
||||
_do_eend("eendv", retval, fmt, ap);
|
||||
va_end(ap);
|
||||
|
||||
LASTCMD("eendv");
|
||||
|
||||
return retval;
|
||||
}
|
||||
hidden_def(eendv)
|
||||
|
||||
int ewendv(int retval, const char *__EINFO_RESTRICT fmt, ...)
|
||||
int
|
||||
ewendv(int retval, const char *__EINFO_RESTRICT fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
if (! is_verbose())
|
||||
if (!is_verbose())
|
||||
return 0;
|
||||
|
||||
va_start(ap, fmt);
|
||||
_do_eend("ewendv", retval, fmt, ap);
|
||||
va_end(ap);
|
||||
|
||||
LASTCMD("ewendv");
|
||||
|
||||
return retval;
|
||||
}
|
||||
hidden_def(ewendv)
|
||||
|
||||
void eindentv(void)
|
||||
void
|
||||
eindentv(void)
|
||||
{
|
||||
if (is_verbose())
|
||||
eindent ();
|
||||
eindent();
|
||||
}
|
||||
hidden_def(eindentv)
|
||||
|
||||
void eoutdentv(void)
|
||||
void
|
||||
eoutdentv(void)
|
||||
{
|
||||
if (is_verbose())
|
||||
eoutdent();
|
||||
|
Loading…
Reference in New Issue
Block a user