summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2006-09-27 16:12:07 +0000
committerSergey Poznyakoff <gray@gnu.org.ua>2006-09-27 16:12:07 +0000
commit13ad8cc38171e6d044fbc1636eb47c8f9977f98e (patch)
treefda6bfac4fcda7f539f379a573cadd9b650f38ad
parent7671fb6d94f960d83a992f11780a1b9308fd5209 (diff)
downloadmailutils-13ad8cc38171e6d044fbc1636eb47c8f9977f98e.tar.gz
mailutils-13ad8cc38171e6d044fbc1636eb47c8f9977f98e.tar.bz2
mail_env_entry->set means that the entry was ever
set. mail_env_entry->v.bool is the actual value of boolean variables.
-rw-r--r--mail/util.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/mail/util.c b/mail/util.c
index c49014bc3..6835f8eeb 100644
--- a/mail/util.c
+++ b/mail/util.c
@@ -476,7 +476,7 @@ util_getenv (void *ptr, const char *variable, mail_env_data_t type, int warn)
break;
case Mail_env_boolean:
- *(int*)ptr = env->set;
+ *(int*)ptr = env->value.bool;
break;
default:
@@ -601,22 +601,24 @@ util_printenv (int set)
qsort (ep, count, sizeof *ep, envp_comp);
for (i = 0; i < count; i++)
{
- fprintf (ofile, "%s", ep[i]->var);
switch (ep[i]->type)
{
case Mail_env_number:
- fprintf (ofile, "=%d", ep[i]->value.number);
+ fprintf (ofile, "%s=%d", ep[i]->var, ep[i]->value.number);
break;
case Mail_env_string:
- fprintf (ofile, "=\"%s\"", ep[i]->value.string);
+ fprintf (ofile, "%s=\"%s\"", ep[i]->var, ep[i]->value.string);
break;
case Mail_env_boolean:
+ if (!ep[i]->value.bool)
+ fprintf (ofile, "no");
+ fprintf (ofile, "%s", ep[i]->var);
break;
case Mail_env_whatever:
- fprintf (ofile, _("oops?"));
+ fprintf (ofile, "%s %s", ep[i]->var, _("oops?"));
}
fprintf (ofile, "\n");
}
@@ -679,6 +681,7 @@ util_setenv (const char *variable, void *value, mail_env_data_t type,
break;
case Mail_env_boolean:
+ ep->value.bool = *(int*)value;
break;
default:

Return to:

Send suggestions and report system problems to the System administrator.