aboutsummaryrefslogtreecommitdiff
path: root/shell
diff options
context:
space:
mode:
authorRon Yorston <rmy@pobox.com>2023-08-30 13:07:13 +0100
committerRon Yorston <rmy@pobox.com>2023-08-30 13:07:13 +0100
commit2af141a2c069c56d56f110414f600f3a38ad8617 (patch)
tree0709c2d3ec4babe557a6fdcbe5334d3665bea0a4 /shell
parent89e67c6f7a77e0e16cbf394f18d4cb121e37f544 (diff)
downloadbusybox-w32-2af141a2c069c56d56f110414f600f3a38ad8617.tar.gz
busybox-w32-2af141a2c069c56d56f110414f600f3a38ad8617.tar.bz2
busybox-w32-2af141a2c069c56d56f110414f600f3a38ad8617.zip
ash: changes to login shell functionality
Upstream BusyBox supports the usual Unix functionality where the login process adds a '-' prefix to the shell's argv[0]. Since busybox-w32 doesn't have a login process this serves no purpose and can be removed. Instead it would be useful to have a way to invoke a login shell without requiring any arguments. Advantages would be: - easier to configure busybox-w32 'ash' as the SSH login shell; - double clicking on a shell binary could start a login shell. Add 'lash' as an alias for 'ash' which starts a login shell without requiring the '-l' option. Saves 16 bytes.
Diffstat (limited to 'shell')
-rw-r--r--shell/ash.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/shell/ash.c b/shell/ash.c
index 2ea87a049..95f399b0b 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -209,6 +209,9 @@
209//applet:IF_ASH(APPLET(ash, BB_DIR_BIN, BB_SUID_DROP)) 209//applet:IF_ASH(APPLET(ash, BB_DIR_BIN, BB_SUID_DROP))
210// APPLET_ODDNAME:name main location suid_type help 210// APPLET_ODDNAME:name main location suid_type help
211//applet:IF_SH_IS_ASH( APPLET_ODDNAME(sh, ash, BB_DIR_BIN, BB_SUID_DROP, ash)) 211//applet:IF_SH_IS_ASH( APPLET_ODDNAME(sh, ash, BB_DIR_BIN, BB_SUID_DROP, ash))
212//applet:IF_PLATFORM_MINGW32(
213//applet:IF_SH_IS_ASH( APPLET_ODDNAME(lash, ash, BB_DIR_BIN, BB_SUID_DROP, ash))
214//applet:)
212//applet:IF_BASH_IS_ASH(APPLET_ODDNAME(bash, ash, BB_DIR_BIN, BB_SUID_DROP, ash)) 215//applet:IF_BASH_IS_ASH(APPLET_ODDNAME(bash, ash, BB_DIR_BIN, BB_SUID_DROP, ash))
213 216
214//kbuild:lib-$(CONFIG_SHELL_ASH) += ash.o ash_ptr_hack.o shell_common.o 217//kbuild:lib-$(CONFIG_SHELL_ASH) += ash.o ash_ptr_hack.o shell_common.o
@@ -15999,7 +16002,11 @@ procargs(char **argv)
15999 int login_sh; 16002 int login_sh;
16000 16003
16001 xargv = argv; 16004 xargv = argv;
16005#if ENABLE_PLATFORM_MINGW32
16006 login_sh = applet_name[0] == 'l';
16007#else
16002 login_sh = xargv[0] && xargv[0][0] == '-'; 16008 login_sh = xargv[0] && xargv[0][0] == '-';
16009#endif
16003#if NUM_SCRIPTS > 0 16010#if NUM_SCRIPTS > 0
16004 if (minusc) 16011 if (minusc)
16005 goto setarg0; 16012 goto setarg0;