/* @(#)error.c 1.1 1/26/85 */ #include "kermit.h" #include "errors.h" /* * Externals defined in library. */ extern int errno; /* System error return code */ #ifdef unix extern char *sys_errlist[]; /* Array of error messages */ extern int sys_nerr; /* Size of sys_errlist[] */ #endif extern VOID exit (); /* Close files and exit */ extern int fprintf (); /* Formatted print to stream */ /* * Local functions. */ static VOID Perror (); /*VARARGS1*/ VOID Error (error, arg1) int error; char *arg1; { DBUG_ENTER ("Error"); (VOID) fprintf (stderr, "kermit: "); switch (error) { case HOST_RAW: (VOID) fprintf (stderr, "can't set host tty to raw mode"); Perror (); break; case REMOTE_RAW: (VOID) fprintf (stderr, "can't set remote tty to raw mode"); Perror (); break; case HOST_COOKED: (VOID) fprintf (stderr, "can't restore host tty modes"); Perror (); break; case REMOTE_COOKED: (VOID) fprintf (stderr, "can't restore remote tty modes"); Perror (); break; case HOST_TCGETA: (VOID) fprintf (stderr, "can't get host tty modes"); Perror (); break; case REMOTE_TCGETA: (VOID) fprintf (stderr, "can't get remote tty modes"); Perror (); break; case REMTTY: (VOID) fprintf (stderr, "can't open communication line %s", arg1); Perror (); break; case CONNECT: (VOID) fprintf (stderr, "nothing to connect to.\n"); break; case PHOTO: (VOID) fprintf (stderr, "can't open photo file %s", arg1); Perror (); break; case RCVFILE: (VOID) fprintf (stderr, "can't create file %s", arg1); Perror (); break; case SPEED: (VOID) fprintf (stderr, "bad line speed %d\n", arg1); break; case MODE: (VOID) fprintf (stderr, "must specify -c, -s, or -r\n"); break; case NOCONNECT: (VOID) fprintf (stderr, "sorry, connect not implemented!\n"); break; default: (VOID) fprintf (stderr, "bug!, bad error code %d\n", error); break; } (VOID) fflush (stderr); DBUG_VOID_RETURN; } VOID WrapUp (status) int status; { DBUG_ENTER ("Wrapup"); exit (status); DBUG_VOID_RETURN; } static VOID Perror () { #ifdef unix if (errno > sys_nerr) { (VOID) fprintf (stderr, ": !! bad errno %d !!\n", errno); } else { (VOID) fprintf (stderr, ": %s\n", sys_errlist[errno]); } #else (VOID) fprintf (stderr, ": !\n", errno); #endif /* unix */ }