fix environment handling

SVN revision: 55397
This commit is contained in:
Sebastian Dransfeld 2010-12-09 08:56:46 +00:00
parent b525e964d0
commit dcbbc1ef37
1 changed files with 6 additions and 11 deletions

View File

@ -84,12 +84,8 @@ environment_store(void)
char *env; char *env;
char **e; char **e;
while (environment) EINA_LIST_FREE(environment, env)
{
env = eina_list_data_get(environment);
free(env); free(env);
environment = eina_list_remove_list(environment, environment);
}
for (e = environ; *e; e++) for (e = environ; *e; e++)
environment = eina_list_append(environment, strdup(*e)); environment = eina_list_append(environment, strdup(*e));
@ -102,7 +98,7 @@ environment_restore(void)
char *e; char *e;
if (!environment) return; if (!environment) return;
*environ = NULL; clearenv();
EINA_LIST_FOREACH(environment, l, e) EINA_LIST_FOREACH(environment, l, e)
putenv(e); putenv(e);
} }
@ -113,6 +109,7 @@ main(int argc, char ** argv)
int i, passed = 0, num_tests = 0; int i, passed = 0, num_tests = 0;
Eina_List *run = NULL; Eina_List *run = NULL;
double total; double total;
char *env;
eina_init(); eina_init();
ecore_init(); ecore_init();
@ -167,11 +164,9 @@ main(int argc, char ** argv)
} }
printf("\n-----------------\n"); printf("\n-----------------\n");
while (environment) clearenv();
{ EINA_LIST_FREE(environment, env)
free(eina_list_data_get(environment)); free(env);
environment = eina_list_remove_list(environment, environment);
}
printf("Passed %d of %d tests.\n", passed, num_tests); printf("Passed %d of %d tests.\n", passed, num_tests);
while (run) while (run)