version 1.7, 2009/10/26 21:42:04 |
version 1.8, 2009/11/11 18:56:07 |
|
|
|
|
if (ch != EOF) |
if (ch != EOF) |
break; |
break; |
if (argc == 0) |
|
goto out; |
|
|
|
for (i = 0; i < argc; i++) { |
while (argc != 0) { |
equals = strchr(argv[i], '='); |
equals = strchr(argv[0], '='); |
whitespace = argv[i] + strcspn(argv[i], " \t"); |
whitespace = argv[0] + strcspn(argv[0], " \t"); |
if (equals == NULL || equals > whitespace) |
if (equals == NULL || equals > whitespace) |
break; |
break; |
environ_put(&global_environ, argv[i]); |
environ_put(&global_environ, argv[0]); |
memmove(&argv[i], &argv[i + 1], argc - i - 1); |
|
argc--; |
argc--; |
|
memmove(argv, argv + 1, argc * (sizeof *argv)); |
} |
} |
if (argc == 0) |
if (argc == 0) |
goto out; |
goto out; |
|
|
if (buf != NULL) |
if (buf != NULL) |
xfree(buf); |
xfree(buf); |
|
|
while (--argc >= 0) |
if (argv != NULL) { |
xfree(argv[argc]); |
for (i = 0; i < argc; i++) |
if (argv != NULL) |
xfree(argv[argc]); |
xfree(argv); |
xfree(argv); |
|
} |
|
|
return (rval); |
return (rval); |
} |
} |