diff -Nuar busybox-1.9.1.old/loginutils/Config.in busybox-1.9.1/loginutils/Config.in --- busybox-1.9.1.old/loginutils/Config.in Tue Feb 12 10:03:11 2008 +++ busybox-1.9.1/loginutils/Config.in Thu Feb 14 11:48:31 2008 @@ -88,6 +88,13 @@ help Utility for creating a new user account. +config FEATURE_ADDUSER_LONG_OPTIONS + bool "Enable long options" + default n + depends on ADDUSER && GETOPT_LONG + help + Support long options for the adduser applet. + config DELUSER bool "deluser" default n diff -Nuar busybox-1.9.1.old/loginutils/adduser.c busybox-1.9.1/loginutils/adduser.c --- busybox-1.9.1.old/loginutils/adduser.c Thu Feb 14 10:25:33 2008 +++ busybox-1.9.1/loginutils/adduser.c Thu Feb 14 13:32:47 2008 @@ -66,6 +66,19 @@ bb_error_msg_and_die("cannot execute %s, you must set password manually", prog); } +#if ENABLE_FEATURE_ADDUSER_LONG_OPTIONS +static const char adduser_longopts[] ALIGN1 = + "home\0" Required_argument "h" + "gecos\0" Required_argument "g" + "shell\0" Required_argument "s" + "ingroup\0" Required_argument "G" + "disabled-password\0" No_argument "D" + "empty-password\0" No_argument "D" + "system\0" No_argument "S" + "no-create-home\0" No_argument "H" + ; +#endif + /* * adduser will take a login_name as its first parameter. * home, shell, gecos: @@ -77,6 +90,10 @@ struct passwd pw; const char *usegroup = NULL; FILE *file; + +#if ENABLE_FEATURE_ADDUSER_LONG_OPTIONS + applet_long_options = adduser_longopts; +#endif /* got root? */ if (geteuid()) {