#include <sm/gen.h>
SM_RCSID("@(#)$Id: strexit.c,v 1.3 2001/01/15 18:39:11 ca Exp $")
#include <sm/string.h>
#include <sm/sysexits.h>
char *
sm_strexit(ex)
int ex;
{
char *msg;
static char buf[64];
msg = sm_sysexitmsg(ex);
if (msg == NULL)
{
(void) sm_snprintf(buf, sizeof buf, "Unknown exit status %d",
ex);
msg = buf;
}
return msg;
}
char *
sm_sysexitmsg(ex)
int ex;
{
char *msg;
msg = sm_sysexmsg(ex);
if (msg != NULL)
return &msg[11];
else
return msg;
}
char *
sm_sysexmsg(ex)
int ex;
{
switch (ex)
{
case EX_USAGE:
return " 500 5.0.0 Command line usage error";
case EX_DATAERR:
return " 501 5.6.0 Data format error";
case EX_NOINPUT:
return ":550 5.3.0 Cannot open input";
case EX_NOUSER:
return " 550 5.1.1 User unknown";
case EX_NOHOST:
return " 550 5.1.2 Host unknown";
case EX_UNAVAILABLE:
return " 554 5.0.0 Service unavailable";
case EX_SOFTWARE:
return ":554 5.3.0 Internal error";
case EX_OSERR:
return ":451 4.0.0 Operating system error";
case EX_OSFILE:
return ":554 5.3.5 System file missing";
case EX_CANTCREAT:
return ":550 5.0.0 Can't create output";
case EX_IOERR:
return ":451 4.0.0 I/O error";
case EX_TEMPFAIL:
return " 450 4.0.0 Deferred";
case EX_PROTOCOL:
return " 554 5.5.0 Remote protocol error";
case EX_NOPERM:
return ":550 5.0.0 Insufficient permission";
case EX_CONFIG:
return " 554 5.3.5 Local configuration error";
default:
return NULL;
}
}