#include #include #include #include #include void fatal (char *fmt, ...) { va_list argptr; va_start (argptr, fmt); (void) vfprintf (stderr, fmt, argptr); va_end (argptr); exit (1); } void tracex(char *fmt, ...) { FILE *fp; va_list argptr; if ((fp = fopen("trace", "a")) != NULL) { va_start (argptr, fmt); (void) vfprintf (fp, fmt, argptr); va_end (argptr); fclose(fp); } } void translate (char *source, char *s1, char *s2) { char *start; int ilen1, ilen2; if ((start = strstr (source, s1)) == NULL) return; ilen1 = strlen (s1); ilen2 = strlen (s2); memmove (start + ilen2, start + ilen1, strlen (start + ilen1) + 1); memcpy (start, s2, ilen2); return; } void initcurses (void) { #ifdef unix WINDOW *win; win = initscr (); keypad (win, 1); #else initscr (); #endif raw (); cbreak (); noecho (); nonl (); } void endcurses (void) { clear (); refresh (); endwin (); #ifdef unix /* delscreen (); */ #endif }