Download | Plain Text | Line Numbers
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <errno.h>
#include "global.h"
/* global variables */
volatile sig_atomic_t error = 0; /* error flag */
char *me = NULL; /* name of myself (argv[0]) */
char* charmap[128] =
{
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL, /* backspace */
NULL, /* space */
NULL, /* linefeed */
NULL,
NULL,
NULL, /* carrige return */
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
"bla", /* space */
NULL, /* ! */
NULL, /* " */
NULL, /* # */
NULL, /* $ */
NULL, /* % */
NULL, /* & */
NULL, /* ' */
NULL, /* ( */
NULL, /* ) */
NULL, /* * */
NULL, /* + */
NULL, /* , */
NULL, /* - */
"la", /* . */
NULL, /* / */
NULL, /* 0 */
NULL, /* 1 */
NULL, /* 2 */
NULL, /* 3 */
NULL, /* 4 */
NULL, /* 5 */
NULL, /* 6 */
NULL, /* 7 */
NULL, /* 8 */
NULL, /* 9 */
NULL, /* : */
NULL, /* ; */
NULL, /* < */
NULL, /* = */
NULL, /* > */
NULL, /* ? */
NULL, /* @ */
"risikolos", /* A */
"neue", /* B */
"Wege", /* C */
"gehen", /* D */
"geeignet", /* E */
"Baum", /* F */
"anklage", /* G */
"die", /* H */
"Revolution", /* I */
"kugeln", /* J */
"Lust", /* K */
"lecker", /* L */
"Kreuter", /* M */
"Auge", /* N */
"ausstellen", /* O */
"benutzt", /* P */
"werden", /* Q */
"Ecke", /* R */
"Blut", /* S */
"Arche", /* T */
"Katze", /* U */
"Abfall", /* V */
"Clown", /* W */
"Stadtmuseum", /* X */
"Beiwagen", /* Y */
"Radio", /* Z */
NULL, /* [ */
NULL, /* \ */
NULL, /* ] */
NULL, /* ^ */
NULL, /* _ */
NULL, /* ` */
"Schilderung", /* a */
"Garten", /* b */
"ist", /* c */
"helfen", /* d */
"Publizist", /* e */
"Feigling", /* f */
"Kartoffelschnitzel", /* g */
"heute", /* h */
"dilettantisch", /* i */
"Design", /* j */
"Zuschauer", /* k */
"Ansicht", /* l */
"umspringen", /* m */
"mit", /* n */
"Antrieb", /* o */
"der", /* p */
"tue", /* q */
"das", /* r */
"Himmel", /* s */
"klar", /* t */
"Weib", /* u */
"von", /* v */
"drohen", /* w */
"nutzen", /* x */
"Zuschuss", /* y */
"denken", /* z */
NULL, /* { */
NULL, /* | */
NULL, /* } */
NULL, /* ~ */
NULL, /* DEL */
};
void vprintferr(const char *fmt, va_list ap)
{
(void) fprintf(stderr, "%s: ", me);
(void) vfprintf(stderr, fmt, ap);
if (errno)
(void) fprintf(stderr, ": %s.", strerror(errno));
(void) fprintf(stderr, "\n");
error = 1;
}
void printferr(const char *fmt, ...)
{
va_list ap;
(void) va_start(ap, fmt);
(void) vprintferr(fmt, ap);
(void) va_end(ap);
}
void bailout(const char *fmt, ...)
{
va_list ap;
if (fmt != NULL)
{
(void) va_start(ap, fmt);
(void) vprintferr(fmt, ap);
(void) va_end(ap);
}
(void) exit(EXIT_FAILURE);
}