/*
 * This file was generated by the mkbuiltins program.
 */

#ifndef lint
static char rcsid[] = "b.c,v 1.2 1993/08/02 17:15:45 mycroft Exp";
#endif /* not lint */

#include "shell.h"
#include "builtins.h"

int bltincmd();
int bgcmd();
int breakcmd();
int cdcmd();
int dotcmd();
int echocmd();
int evalcmd();
int execcmd();
int exitcmd();
int exportcmd();
int fgcmd();
int getoptscmd();
int hashcmd();
int jobidcmd();
int jobscmd();
int lccmd();
int localcmd();
int pwdcmd();
int readcmd();
int returncmd();
int setcmd();
int setvarcmd();
int shiftcmd();
int trapcmd();
int truecmd();
int umaskcmd();
int unsetcmd();
int waitcmd();

int (*const builtinfunc[])() = {
	bltincmd,
	bgcmd,
	breakcmd,
	cdcmd,
	dotcmd,
	echocmd,
	evalcmd,
	execcmd,
	exitcmd,
	exportcmd,
	fgcmd,
	getoptscmd,
	hashcmd,
	jobidcmd,
	jobscmd,
	lccmd,
	localcmd,
	pwdcmd,
	readcmd,
	returncmd,
	setcmd,
	setvarcmd,
	shiftcmd,
	trapcmd,
	truecmd,
	umaskcmd,
	unsetcmd,
	waitcmd,
};

const struct builtincmd builtincmd[] = {
	"command", 0,
	"bg", 1,
	"break", 2,
	"continue", 2,
	"cd", 3,
	"chdir", 3,
	".", 4,
	"echo", 5,
	"eval", 6,
	"exec", 7,
	"exit", 8,
	"export", 9,
	"readonly", 9,
	"fg", 10,
	"getopts", 11,
	"hash", 12,
	"jobid", 13,
	"jobs", 14,
	"lc", 15,
	"local", 16,
	"pwd", 17,
	"read", 18,
	"return", 19,
	"set", 20,
	"setvar", 21,
	"shift", 22,
	"trap", 23,
	":", 24,
	"true", 24,
	"umask", 25,
	"unset", 26,
	"wait", 27,
	NULL, 0
};
