#include "a.h"

enum
{
	EPLAN9 = 0x19283745	/* see /usr/local/plan9/src/lib9/errstr.c */
};

typedef struct Error Error;
struct Error
{
	char *text;
	int err;
	int len;
};

static Error errortab[] = {
	{ "permitted", EPERM },
	{ "permission", EACCES },
	{ "access", EACCES },
	{ "exists", EEXIST },
	{ "exist", ENOENT },
	{ "no such", ENOENT },
	{ "not found", ENOENT },
	{ "input/output", EIO },
	{ "timeout", ETIMEDOUT },
	{ "timed out", ETIMEDOUT },
	{ "i/o", EIO },
	{ "too long", E2BIG },
	{ "interrupt", EINTR },
	{ "no such", ENODEV },
	{ "bad file", EBADF },
	{ " fid ", EBADF },
	{ "temporar", EAGAIN },
	{ "memory", ENOMEM },
	{ "is a directory", EISDIR },
	{ "directory", ENOTDIR },
	{ "argument", EINVAL },
	{ "pipe", EPIPE },
	{ "in use", EBUSY },
	{ "busy", EBUSY },
	{ "illegal", EINVAL },
	{ "read-only", EROFS },
	{ "read only", EROFS },
	{ "proto", EPROTO },
	{ "entry", ENOENT },
};

int
errstr2errno(void)
{
	char e[ERRMAX];
	int i, len;
	
	if(errno != EPLAN9)
		return errno;

	if(errortab[0].len == 0)
		for(i=0; i<nelem(errortab); i++)
			errortab[i].len = strlen(errortab[i].text);

	rerrstr(e, sizeof e);
	len = strlen(e);
	for(i=0; i<nelem(errortab); i++)
		if(errortab[i].len <= len && cistrstr(e, errortab[i].text))
			return errortab[i].err;
	return ERANGE;	/* who knows - be blatantly wrong */
}

