35 |
else |
else |
36 |
{ |
{ |
37 |
int i = 0; |
int i = 0; |
38 |
char *value = NULL; |
|
|
struct mail_env_entry *entry = NULL; |
|
39 |
for (i = 1; i < argc; i++) |
for (i = 1; i < argc; i++) |
40 |
{ |
{ |
41 |
if (!strncmp ("no", argv[i], 2)) |
if (!strncmp ("no", argv[i], 2)) |
42 |
{ |
{ |
43 |
entry = util_find_env (&argv[i][2]); |
util_setenv (&argv[i][2], NULL, Mail_env_boolean, 1); |
|
if (entry == NULL) |
|
|
return 1; |
|
|
entry->set = 0; |
|
|
if (entry->value) |
|
|
free (entry->value); |
|
|
entry->value = NULL; |
|
44 |
} |
} |
45 |
else if (i+1 < argc && argv[i+1][0] == '=') |
else if (i+1 < argc && argv[i+1][0] == '=') |
46 |
{ |
{ |
47 |
entry = util_find_env (argv[i]); |
int nval; |
48 |
if (entry == NULL) |
char *name = argv[i]; |
49 |
return 1; |
char *p; |
50 |
|
|
51 |
i += 2; |
i += 2; |
52 |
if (i >= argc) |
if (i >= argc) |
53 |
break; |
break; |
54 |
value = strdup (argv[i]); |
|
55 |
entry->set = 1; |
nval = strtoul (argv[i], &p, NULL); |
56 |
if (entry->value) |
if (*p == 0) |
57 |
free (entry->value); |
util_setenv (name, &nval, Mail_env_number, 1); |
58 |
entry->value = value; |
else |
59 |
|
util_setenv (name, argv[i], Mail_env_string, 1); |
60 |
} |
} |
61 |
else |
else |
62 |
{ |
{ |
63 |
entry = util_find_env(argv[i]); |
int dummy; |
64 |
if (entry == NULL) |
util_setenv (argv[i], &dummy, Mail_env_boolean, 1); |
|
return 1; |
|
|
entry->set = 1; |
|
|
if (entry->value) |
|
|
free (entry->value); |
|
|
entry->value = NULL; |
|
65 |
} |
} |
66 |
} |
} |
67 |
return 0; |
return 0; |