aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2000-06-29 20:20:14 +0000
committerEric Andersen <andersen@codepoet.org>2000-06-29 20:20:14 +0000
commit5d41d60f1e78aceb92555596c3a58c13c65d4e5b (patch)
tree51ac3363a0e3e2eb955b8d3e8c5d6548e05f7e16
parent2e1148b2393b1bcb72804a0c0de1408ca02a0189 (diff)
downloadbusybox-w32-5d41d60f1e78aceb92555596c3a58c13c65d4e5b.tar.gz
busybox-w32-5d41d60f1e78aceb92555596c3a58c13c65d4e5b.tar.bz2
busybox-w32-5d41d60f1e78aceb92555596c3a58c13c65d4e5b.zip
Added support for being a login shell, so things like '-su' or '-sh' (stuff
where argv[0][0]=='-') will now always invoke the shell. Now you can use BusyBox as a login shell. -Erik
-rw-r--r--Changelog3
-rw-r--r--applets/busybox.c7
-rw-r--r--busybox.c7
3 files changed, 17 insertions, 0 deletions
diff --git a/Changelog b/Changelog
index c674ab275..11464b675 100644
--- a/Changelog
+++ b/Changelog
@@ -12,6 +12,9 @@
12 Fix thanks to Arne Bernin <arne@matrix.loopback.org> 12 Fix thanks to Arne Bernin <arne@matrix.loopback.org>
13 * Added support for "sh -c command args...", thanks to 13 * Added support for "sh -c command args...", thanks to
14 Marius Groeger <mgroeger@sysgo.de> 14 Marius Groeger <mgroeger@sysgo.de>
15 * Added support for being a login shell, so things like
16 '-su' or '-sh' (stuff where argv[0][0]=='-') will now always
17 invoke the shell. Now you can use BusyBox as a login shell.
15 18
16 -Erik Andersen 19 -Erik Andersen
17 20
diff --git a/applets/busybox.c b/applets/busybox.c
index 48ca05408..486ef4d77 100644
--- a/applets/busybox.c
+++ b/applets/busybox.c
@@ -479,6 +479,13 @@ int main(int argc, char **argv)
479 479
480 *argv = name; 480 *argv = name;
481 481
482#ifdef BB_SH
483 /* Add in a special case hack -- whenever **argv == '-'
484 * (i.e. '-su' or '-sh') always invoke the shell */
485 if (**argv == '-')
486 exit(((*(shell_main)) (argc, argv)));
487#endif
488
482 while (a->name != 0) { 489 while (a->name != 0) {
483 if (strcmp(name, a->name) == 0) { 490 if (strcmp(name, a->name) == 0) {
484 exit(((*(a->main)) (argc, argv))); 491 exit(((*(a->main)) (argc, argv)));
diff --git a/busybox.c b/busybox.c
index 48ca05408..486ef4d77 100644
--- a/busybox.c
+++ b/busybox.c
@@ -479,6 +479,13 @@ int main(int argc, char **argv)
479 479
480 *argv = name; 480 *argv = name;
481 481
482#ifdef BB_SH
483 /* Add in a special case hack -- whenever **argv == '-'
484 * (i.e. '-su' or '-sh') always invoke the shell */
485 if (**argv == '-')
486 exit(((*(shell_main)) (argc, argv)));
487#endif
488
482 while (a->name != 0) { 489 while (a->name != 0) {
483 if (strcmp(name, a->name) == 0) { 490 if (strcmp(name, a->name) == 0) {
484 exit(((*(a->main)) (argc, argv))); 491 exit(((*(a->main)) (argc, argv)));