* iconv/gconv_db.c (gen_steps): Respect error return value from
	init functions and abort.
This commit is contained in:
Ulrich Drepper 1998-12-17 11:18:37 +00:00
parent 4798763f3f
commit c7ec9d75a7
2 changed files with 19 additions and 6 deletions

View File

@ -1,5 +1,8 @@
1998-12-17 Ulrich Drepper <drepper@cygnus.com>
* iconv/gconv_db.c (gen_steps): Respect error return value from
init functions and abort.
* iconvdata/iso646.c: Recognize NF_Z_62-010_1973 as charset name.
1998-12-17 H.J. Lu <hjl@gnu.org>

View File

@ -181,6 +181,7 @@ gen_steps (struct derivation_step *best, const char *toset,
{
int failed = 0;
status = GCONV_OK;
*nsteps = step_cnt;
current = best;
while (step_cnt-- > 0)
@ -220,7 +221,18 @@ gen_steps (struct derivation_step *best, const char *toset,
/* Call the init function. */
if (result[step_cnt].init_fct != NULL)
_CALL_DL_FCT (result[step_cnt].init_fct, (&result[step_cnt]));
{
status = _CALL_DL_FCT (result[step_cnt].init_fct,
(&result[step_cnt]));
if (status != GCONV_OK)
{
failed = 1;
/* Make sure we unload this modules. */
--step_cnt;
break;
}
}
current = current->last;
}
@ -239,13 +251,11 @@ gen_steps (struct derivation_step *best, const char *toset,
free (result);
*nsteps = 0;
*handle = NULL;
status = GCONV_NOCONV;
if (status == GCONV_OK)
status = GCONV_NOCONV;
}
else
{
*handle = result;
status = GCONV_OK;
}
*handle = result;
}
else
{