summaryrefslogtreecommitdiffstats
path: root/bin/sh/var.c
diff options
context:
space:
mode:
Diffstat (limited to 'bin/sh/var.c')
-rw-r--r--bin/sh/var.c18
1 files changed, 6 insertions, 12 deletions
diff --git a/bin/sh/var.c b/bin/sh/var.c
index 6041459..48a0dc5 100644
--- a/bin/sh/var.c
+++ b/bin/sh/var.c
@@ -640,10 +640,11 @@ showvarscmd(int argc __unused, char **argv __unused)
*/
int
-exportcmd(int argc, char **argv)
+exportcmd(int argc __unused, char **argv)
{
struct var **vpp;
struct var *vp;
+ char **ap;
char *name;
char *p;
char *cmdname;
@@ -651,26 +652,19 @@ exportcmd(int argc, char **argv)
int flag = argv[0][0] == 'r'? VREADONLY : VEXPORT;
cmdname = argv[0];
- optreset = optind = 1;
- opterr = 0;
values = 0;
- while ((ch = getopt(argc, argv, "p")) != -1) {
+ while ((ch = nextopt("p")) != '\0') {
switch (ch) {
case 'p':
values = 1;
break;
- case '?':
- default:
- error("unknown option: -%c", optopt);
}
}
- argc -= optind;
- argv += optind;
- if (values && argc != 0)
+ if (values && *argptr != NULL)
error("-p requires no arguments");
- if (argc != 0) {
- while ((name = *argv++) != NULL) {
+ if (*argptr != NULL) {
+ for (ap = argptr; (name = *ap) != NULL; ap++) {
if ((p = strchr(name, '=')) != NULL) {
p++;
} else {
OpenPOWER on IntegriCloud