Fixed basedir/userdir calculation.

This commit is contained in:
Ryan C. Gordon 2002-07-27 06:38:28 +00:00
parent b5bc50b726
commit ece998dd3a
1 changed files with 14 additions and 1 deletions

View File

@ -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);