mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-22 08:26:27 +00:00
Try again!
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@13179 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
b98dcb3191
commit
8275cd6629
1 changed files with 25 additions and 6 deletions
|
@ -1624,10 +1624,21 @@ tables:
|
|||
outbytesleft = (bsize - old) * sizeof(unichar);
|
||||
}
|
||||
rval = iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft);
|
||||
if (rval == (size_t)-1 && errno != E2BIG)
|
||||
if (rval == (size_t)-1)
|
||||
{
|
||||
result = NO;
|
||||
break;
|
||||
if (errno == E2BIG)
|
||||
{
|
||||
unsigned old = bsize;
|
||||
|
||||
GROW();
|
||||
outbuf = (char*)&ptr[dpos];
|
||||
outbytesleft = (bsize - old) * sizeof(unichar);
|
||||
}
|
||||
else
|
||||
{
|
||||
result = NO;
|
||||
break;
|
||||
}
|
||||
}
|
||||
dpos = (bsize * sizeof(unichar) - outbytesleft) / sizeof(unichar);
|
||||
}
|
||||
|
@ -2133,9 +2144,17 @@ tables:
|
|||
outbytesleft = (bsize - old);
|
||||
}
|
||||
rval = iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft);
|
||||
if (rval == (size_t)-1 && errno != E2BIG)
|
||||
if (rval == (size_t)-1)
|
||||
{
|
||||
if (errno == EILSEQ)
|
||||
if (errno == E2BIG)
|
||||
{
|
||||
unsigned old = bsize;
|
||||
|
||||
GROW();
|
||||
outbuf = (char*)&ptr[dpos];
|
||||
outbytesleft = (bsize - old);
|
||||
}
|
||||
else if (errno == EILSEQ)
|
||||
{
|
||||
if (strict == YES)
|
||||
{
|
||||
|
@ -2154,7 +2173,7 @@ tables:
|
|||
inbytesleft -= sizeof(unichar);
|
||||
}
|
||||
}
|
||||
else if (errno != E2BIG)
|
||||
else
|
||||
{
|
||||
result = NO;
|
||||
break;
|
||||
|
|
Loading…
Reference in a new issue