Initial Contribution
diff --git a/sh/builtins.c b/sh/builtins.c
new file mode 100644
index 0000000..344dbd6
--- /dev/null
+++ b/sh/builtins.c
@@ -0,0 +1,61 @@
+/*
+ * This file was generated by the mkbuiltins program.
+ */
+
+#include "shell.h"
+#include "builtins.h"
+
+const struct builtincmd builtincmd[] = {
+
+ { "command", bltincmd },
+ { "bg", bgcmd },
+ { "cd", cdcmd },
+ { "chdir", cdcmd },
+ { "echo", echocmd },
+ { "exp", expcmd },
+ { "let", expcmd },
+ { "false", falsecmd },
+#if WITH_HISTORY
+ { "fc", histcmd },
+ { "inputrc", inputrc },
+#endif
+ { "fg", fgcmd },
+ { "getopts", getoptscmd },
+ { "hash", hashcmd },
+ { "jobid", jobidcmd },
+ { "jobs", jobscmd },
+ { "local", localcmd },
+#ifndef SMALL
+#endif
+ { "pwd", pwdcmd },
+ { "read", readcmd },
+ { "setvar", setvarcmd },
+ { "true", truecmd },
+ { "type", typecmd },
+ { "umask", umaskcmd },
+ { "unalias", unaliascmd },
+ { "wait", waitcmd },
+ { "alias", aliascmd },
+ { "ulimit", ulimitcmd },
+ { "wordexp", wordexpcmd },
+ { 0, 0 },
+};
+
+const struct builtincmd splbltincmd[] = {
+ { "break", breakcmd },
+ { "continue", breakcmd },
+ { ".", dotcmd },
+ { "eval", evalcmd },
+ { "exec", execcmd },
+ { "exit", exitcmd },
+ { "export", exportcmd },
+ { "readonly", exportcmd },
+ { "return", returncmd },
+ { "set", setcmd },
+ { "shift", shiftcmd },
+ { "times", timescmd },
+ { "trap", trapcmd },
+ { ":", truecmd },
+ { "unset", unsetcmd },
+ { 0, 0 },
+};