#ifndef RAS_SHELL_BUILTIN_H #define RAS_SHELL_BUILTIN_H #include "shell.h" typedef struct { char* cmd; RasShellFunc func; } RasShellBuiltin; extern const RasShellBuiltin ras_shell_builtins[]; #define RAS_SHELL_BUILTIN_DECL(func) \ int ras_shell_builtin_##func(int argc, char* argv[], RasShell* shell) #define RAS_SHELL_BUILTIN_ENTRY(func) \ { #func, ras_shell_builtin_##func } #define RAS_SHELL_BUILTIN_ENTRY_NULL \ { NULL, NULL} RAS_SHELL_BUILTIN_DECL (cd); RAS_SHELL_BUILTIN_DECL (echo); RAS_SHELL_BUILTIN_DECL (exit); RAS_SHELL_BUILTIN_DECL (false); RAS_SHELL_BUILTIN_DECL (logout); RAS_SHELL_BUILTIN_DECL (printenv); RAS_SHELL_BUILTIN_DECL (pwd); RAS_SHELL_BUILTIN_DECL (set); RAS_SHELL_BUILTIN_DECL (setenv); RAS_SHELL_BUILTIN_DECL (shopt); RAS_SHELL_BUILTIN_DECL (tacat); RAS_SHELL_BUILTIN_DECL (tapipe); RAS_SHELL_BUILTIN_DECL (true); RAS_SHELL_BUILTIN_DECL (tty); RAS_SHELL_BUILTIN_DECL (type); RAS_SHELL_BUILTIN_DECL (umask); RAS_SHELL_BUILTIN_DECL (unset); RAS_SHELL_BUILTIN_DECL (unsetenv); #endif /* RAS_SHELL_BUILTIN_H */