OS/2: don't report failures on Unicode conversion on older OS/2 installs.
This commit is contained in:
parent
e728c65912
commit
7a26b83733
|
@ -135,11 +135,22 @@ static char *cvtUtf8ToCodepage(const char *utf8str)
|
||||||
|
|
||||||
static char *cvtCodepageToUtf8(const char *cpstr)
|
static char *cvtCodepageToUtf8(const char *cpstr)
|
||||||
{
|
{
|
||||||
|
const size_t len = strlen(cpstr) + 1;
|
||||||
|
char *retvalbuf = (char *) allocator.Malloc(len * 4);
|
||||||
char *retval = NULL;
|
char *retval = NULL;
|
||||||
if (uconvdll)
|
|
||||||
|
BAIL_IF(!retvalbuf, PHYSFS_ERR_OUT_OF_MEMORY, NULL);
|
||||||
|
|
||||||
|
if (!uconvdll)
|
||||||
|
{
|
||||||
|
/* There's really not much we can do on older OS/2s except pray this
|
||||||
|
is latin1-compatible. */
|
||||||
|
retval = retvalbuf;
|
||||||
|
PHYSFS_utf8FromLatin1(cpstr, retval, len * 4);
|
||||||
|
} /* if */
|
||||||
|
else
|
||||||
{
|
{
|
||||||
int rc;
|
int rc;
|
||||||
size_t len = strlen(cpstr) + 1;
|
|
||||||
size_t cplen = len;
|
size_t cplen = len;
|
||||||
size_t unilen = len;
|
size_t unilen = len;
|
||||||
size_t subs = 0;
|
size_t subs = 0;
|
||||||
|
@ -151,12 +162,11 @@ static char *cvtCodepageToUtf8(const char *cpstr)
|
||||||
GOTO_IF(rc != ULS_SUCCESS, PHYSFS_ERR_BAD_FILENAME, done);
|
GOTO_IF(rc != ULS_SUCCESS, PHYSFS_ERR_BAD_FILENAME, done);
|
||||||
GOTO_IF(subs > 0, PHYSFS_ERR_BAD_FILENAME, done);
|
GOTO_IF(subs > 0, PHYSFS_ERR_BAD_FILENAME, done);
|
||||||
assert(cplen == 0);
|
assert(cplen == 0);
|
||||||
retval = (char *) allocator.Malloc(len * 4);
|
retval = retvalbuf;
|
||||||
GOTO_IF(!retval, PHYSFS_ERR_OUT_OF_MEMORY, done);
|
|
||||||
PHYSFS_utf8FromUcs2((const PHYSFS_uint16 *) uc2ptr, retval, len * 4);
|
PHYSFS_utf8FromUcs2((const PHYSFS_uint16 *) uc2ptr, retval, len * 4);
|
||||||
done:
|
done:
|
||||||
__PHYSFS_smallFree(uc2ptr);
|
__PHYSFS_smallFree(uc2ptr);
|
||||||
} /* if */
|
} /* else */
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
} /* cvtCodepageToUtf8 */
|
} /* cvtCodepageToUtf8 */
|
||||||
|
|
Loading…
Reference in New Issue