From cd9dfc3b7b73715840b63180e2e4bfdb6e7ca9a4 Mon Sep 17 00:00:00 2001 From: landley Date: Wed, 18 Oct 2006 18:38:16 -0400 Subject: Next drop of toysh, plus more infratructure. --- main.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'main.c') diff --git a/main.c b/main.c index 90d80c78..57fb7f4e 100644 --- a/main.c +++ b/main.c @@ -17,6 +17,7 @@ struct toy_list toy_list[] = { {"cd", cd_main, TOYFLAG_NOFORK}, {"df", df_main, TOYFLAG_USR|TOYFLAG_SBIN}, {"exit", exit_main, TOYFLAG_NOFORK}, + {"sh", toysh_main, TOYFLAG_BIN}, {"toysh", toysh_main, TOYFLAG_BIN} }; @@ -51,6 +52,16 @@ struct toy_list *toy_find(char *name) } } +void toy_init(struct toy_list *which, char *argv[]) +{ + // Free old toys contents here? + + toys.which = which; + toys.argv = argv; + for (toys.argc = 0; argv[toys.argc]; toys.argc++); + toys.exitval = 1; +} + // Run a toy. void toy_exec(char *argv[]) { @@ -59,12 +70,7 @@ void toy_exec(char *argv[]) which = toy_find(argv[0]); if (!which) return; - // Free old toys contents here? - - toys.which = which; - toys.argv = argv; - for (toys.argc = 0; argv[toys.argc]; toys.argc++); - toys.exitval = 1; + toy_init(which, argv); exit(toys.which->toy_main()); } -- cgit v1.2.3