mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-22 04:50:07 +00:00
Update.
* iconvdata/iso646.c (gconv_init): Return correct error value if we run out of memory. * iconvdata/iso-2022-jp.c: Likewise.
This commit is contained in:
parent
c7ec9d75a7
commit
0937645101
@ -1,5 +1,9 @@
|
|||||||
1998-12-17 Ulrich Drepper <drepper@cygnus.com>
|
1998-12-17 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
|
* iconvdata/iso646.c (gconv_init): Return correct error value if we
|
||||||
|
run out of memory.
|
||||||
|
* iconvdata/iso-2022-jp.c: Likewise.
|
||||||
|
|
||||||
* iconv/gconv_db.c (gen_steps): Respect error return value from
|
* iconv/gconv_db.c (gen_steps): Respect error return value from
|
||||||
init functions and abort.
|
init functions and abort.
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Skeleton for a converison module.
|
/* Skeleton for a conversion module.
|
||||||
Copyright (C) 1998 Free Software Foundation, Inc.
|
Copyright (C) 1998 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
||||||
|
@ -132,34 +132,38 @@ gconv_init (struct gconv_step *step)
|
|||||||
}
|
}
|
||||||
|
|
||||||
result = GCONV_NOCONV;
|
result = GCONV_NOCONV;
|
||||||
if (dir != illegal_dir
|
if (dir != illegal_dir)
|
||||||
&& ((new_data
|
|
||||||
= (struct iso2022jp_data *) malloc (sizeof (struct iso2022jp_data)))
|
|
||||||
!= NULL))
|
|
||||||
{
|
{
|
||||||
new_data->dir = dir;
|
new_data
|
||||||
new_data->var = var;
|
= (struct iso2022jp_data *) malloc (sizeof (struct iso2022jp_data));
|
||||||
step->data = new_data;
|
|
||||||
|
|
||||||
if (dir == from_iso2022jp)
|
result = GCONV_NOMEM;
|
||||||
|
if (new_data != NULL)
|
||||||
{
|
{
|
||||||
step->min_needed_from = MIN_NEEDED_FROM;
|
new_data->dir = dir;
|
||||||
step->max_needed_from = MAX_NEEDED_FROM;
|
new_data->var = var;
|
||||||
step->min_needed_to = MIN_NEEDED_TO;
|
step->data = new_data;
|
||||||
step->max_needed_to = MIN_NEEDED_TO;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
step->min_needed_from = MIN_NEEDED_TO;
|
|
||||||
step->max_needed_from = MAX_NEEDED_TO;
|
|
||||||
step->min_needed_to = MIN_NEEDED_FROM;
|
|
||||||
step->max_needed_to = MIN_NEEDED_FROM + 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Yes, this is a stateful encoding. */
|
if (dir == from_iso2022jp)
|
||||||
step->stateful = 1;
|
{
|
||||||
|
step->min_needed_from = MIN_NEEDED_FROM;
|
||||||
|
step->max_needed_from = MAX_NEEDED_FROM;
|
||||||
|
step->min_needed_to = MIN_NEEDED_TO;
|
||||||
|
step->max_needed_to = MIN_NEEDED_TO;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
step->min_needed_from = MIN_NEEDED_TO;
|
||||||
|
step->max_needed_from = MAX_NEEDED_TO;
|
||||||
|
step->min_needed_to = MIN_NEEDED_FROM;
|
||||||
|
step->max_needed_to = MIN_NEEDED_FROM + 2;
|
||||||
|
}
|
||||||
|
|
||||||
result = GCONV_OK;
|
/* Yes, this is a stateful encoding. */
|
||||||
|
step->stateful = 1;
|
||||||
|
|
||||||
|
result = GCONV_OK;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
@ -106,7 +106,7 @@ static const char *names[] =
|
|||||||
[HU] = "MSZ_7795.3//",
|
[HU] = "MSZ_7795.3//",
|
||||||
[CU] = "NC_NC00-10//",
|
[CU] = "NC_NC00-10//",
|
||||||
[FR] = "NF_Z_62-010//",
|
[FR] = "NF_Z_62-010//",
|
||||||
[FR1] = "NF_Z_62-010_1973//", /* Note the we don't have the parenthesis
|
[FR1] = "NF_Z_62-010_1973//", /* Note that we don't have the parenthesis
|
||||||
in the name. */
|
in the name. */
|
||||||
[NO] = "NS_4551-1//",
|
[NO] = "NS_4551-1//",
|
||||||
[NO2] = "NS_4551-2//",
|
[NO2] = "NS_4551-2//",
|
||||||
@ -145,33 +145,36 @@ gconv_init (struct gconv_step *step)
|
|||||||
}
|
}
|
||||||
|
|
||||||
result = GCONV_NOCONV;
|
result = GCONV_NOCONV;
|
||||||
if (dir != illegal_dir
|
if (dir != illegal_dir)
|
||||||
&& ((new_data
|
|
||||||
= (struct iso646_data *) malloc (sizeof (struct iso646_data)))
|
|
||||||
!= NULL))
|
|
||||||
{
|
{
|
||||||
new_data->dir = dir;
|
new_data = (struct iso646_data *) malloc (sizeof (struct iso646_data));
|
||||||
new_data->var = var;
|
|
||||||
step->data = new_data;
|
|
||||||
|
|
||||||
if (var == from_iso646)
|
result = GCONV_NOMEM;
|
||||||
|
if (new_data != NULL)
|
||||||
{
|
{
|
||||||
step->min_needed_from = MIN_NEEDED_FROM;
|
new_data->dir = dir;
|
||||||
step->max_needed_from = MIN_NEEDED_FROM;
|
new_data->var = var;
|
||||||
step->min_needed_to = MIN_NEEDED_TO;
|
step->data = new_data;
|
||||||
step->max_needed_to = MIN_NEEDED_TO;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
step->min_needed_from = MIN_NEEDED_TO;
|
|
||||||
step->max_needed_from = MIN_NEEDED_TO;
|
|
||||||
step->min_needed_to = MIN_NEEDED_FROM;
|
|
||||||
step->max_needed_to = MIN_NEEDED_FROM;
|
|
||||||
}
|
|
||||||
|
|
||||||
step->stateful = 0;
|
if (var == from_iso646)
|
||||||
|
{
|
||||||
|
step->min_needed_from = MIN_NEEDED_FROM;
|
||||||
|
step->max_needed_from = MIN_NEEDED_FROM;
|
||||||
|
step->min_needed_to = MIN_NEEDED_TO;
|
||||||
|
step->max_needed_to = MIN_NEEDED_TO;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
step->min_needed_from = MIN_NEEDED_TO;
|
||||||
|
step->max_needed_from = MIN_NEEDED_TO;
|
||||||
|
step->min_needed_to = MIN_NEEDED_FROM;
|
||||||
|
step->max_needed_to = MIN_NEEDED_FROM;
|
||||||
|
}
|
||||||
|
|
||||||
result = GCONV_OK;
|
step->stateful = 0;
|
||||||
|
|
||||||
|
result = GCONV_OK;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
Loading…
Reference in New Issue
Block a user