Fixed basedir/userdir calculation.
This commit is contained in:
parent
b5bc50b726
commit
ece998dd3a
|
@ -230,6 +230,7 @@ int __PHYSFS_platformInit(void)
|
||||||
APIRET rc;
|
APIRET rc;
|
||||||
PTIB ptib;
|
PTIB ptib;
|
||||||
PPIB ppib;
|
PPIB ppib;
|
||||||
|
PHYSFS_sint32 len;
|
||||||
|
|
||||||
assert(baseDir == NULL);
|
assert(baseDir == NULL);
|
||||||
|
|
||||||
|
@ -237,7 +238,19 @@ int __PHYSFS_platformInit(void)
|
||||||
rc = DosQueryModuleName(ppib->pib_hmte, sizeof (buf), (PCHAR) buf);
|
rc = DosQueryModuleName(ppib->pib_hmte, sizeof (buf), (PCHAR) buf);
|
||||||
BAIL_IF_MACRO(os2err(rc) != NO_ERROR, NULL, 0);
|
BAIL_IF_MACRO(os2err(rc) != NO_ERROR, NULL, 0);
|
||||||
|
|
||||||
baseDir = (char *) malloc(strlen(buf) + 1);
|
/* chop off filename, leave path. */
|
||||||
|
for (len = strlen(buf) - 1; len >= 0; len--)
|
||||||
|
{
|
||||||
|
if (buf[len] == '\\')
|
||||||
|
{
|
||||||
|
buf[++len] = '\0';
|
||||||
|
break;
|
||||||
|
} /* if */
|
||||||
|
} /* for */
|
||||||
|
|
||||||
|
assert(len > 0); /* should have been an "x:\\" on the front on string. */
|
||||||
|
|
||||||
|
baseDir = (char *) malloc(len + 1);
|
||||||
BAIL_IF_MACRO(baseDir == NULL, ERR_OUT_OF_MEMORY, 0);
|
BAIL_IF_MACRO(baseDir == NULL, ERR_OUT_OF_MEMORY, 0);
|
||||||
strcpy(baseDir, buf);
|
strcpy(baseDir, buf);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue