Net2/usr/src/contrib/usr.x25/lib/x25err.c

Compare this file to the similar file:
Show the results in this format:

#include <netccitt/x25err.h>

extern	int errno, sys_nerr;
extern	char *sys_errlist[];

char *
x25err(who)
char *who;
{
	register char *ep, *bp;
	static char buf[80];

	switch(errno) {
	case EXRESET:
		ep = "Call reset";
		break;

	case EXROUT:
		ep = "Reset - out of order";
		break;

	case EXRRPE:
		ep = "Reset - remote procedure error";
		break;

	case EXRLPE:
		ep = "Reset - local procedure error";
		break;

	case EXRNCG:
		ep = "Reset - network congestion";
		break;

	case EXCLEAR:
		ep = "Clear - remote directive";
		break;

	case EXCBUSY:
		ep = "Clear - number is busy";
		break;

	case EXCOUT:
		ep = "Clear - out of order";
		break;

	case EXCRPE:
		ep = "Clear - remote procedure error";
		break;

	case EXCRRC:
		ep = "Clear - collect call refused";
		break;

	case EXCINV:
		ep = "Clear - invalid call";
		break;

	case EXCAB:
		ep = "Clear - access barred";
		break;

	case EXCLPE:
		ep = "Clear - local procedure error";
		break;

	case EXCNCG:
		ep = "Clear - network congestion";
		break;

	case EXCNOB:
		ep = "Clear - not obtainable";
		break;

	default:
		ep = errno >= 0 && errno < sys_nerr ?
			sys_errlist[errno] : "Unknown error";
	}
	bp = buf;
	if (who) {
		while (bp < buf+sizeof (buf)-2-1 && (*bp++ = *who++));
		bp[-1] = ':';
		*bp++ = ' ';
	}
	while (bp < buf+sizeof (buf)-1 && (*bp++ = *ep++));
	*bp++ = '\0';
	return (buf);
}