+ unsigned long opt;
+ llist_t *unset_env = NULL;
+ extern char **environ;
+
+ bb_opt_complementally = "u::";
+ bb_applet_long_options = env_long_options;
+
+ opt = bb_getopt_ulflags(argc, argv, "+iu:", &unset_env);
+
+ argv += optind;
+ if (*argv && (argv[0][0] == '-') && !argv[0][1]) {
+ opt |= 1;
+ ++argv;
+ }
+
+ if(opt & 1)
+ environ = cleanenv;
+ else if(opt & 2) {
+ while(unset_env) {
+ unsetenv(unset_env->data);
+ unset_env = unset_env->link;
+ }
+ }
+
+ while (*argv && ((p = strchr(*argv, '=')) != NULL)) {
+ if (putenv(*argv) < 0) {
+ bb_perror_msg_and_die("putenv");