mac: Image card now accepts paths starting with '$' for your $HOME needs. Also fixed a crash if the path is invalid. [R. Belmont]

This commit is contained in:
arbee 2015-05-31 15:55:57 -04:00
parent bf4f1beaa2
commit 14a019da20

View File

@ -282,7 +282,7 @@ WRITE32_MEMBER( nubus_image_device::file_cmd_w )
strcpy((char*)filectx.filename, (char*)filectx.curdir); strcpy((char*)filectx.filename, (char*)filectx.curdir);
break; break;
case kFileCmdSetDir: case kFileCmdSetDir:
if(filectx.filename[0] == '/') { if ((filectx.filename[0] == '/') || (filectx.filename[0] == '$')) {
strcpy((char*)filectx.curdir, (char*)filectx.filename); strcpy((char*)filectx.curdir, (char*)filectx.filename);
} else { } else {
strcat((char*)filectx.curdir, "/"); strcat((char*)filectx.curdir, "/");
@ -293,10 +293,15 @@ WRITE32_MEMBER( nubus_image_device::file_cmd_w )
if(filectx.dirp) osd_closedir(filectx.dirp); if(filectx.dirp) osd_closedir(filectx.dirp);
filectx.dirp = osd_opendir((const char *)filectx.curdir); filectx.dirp = osd_opendir((const char *)filectx.curdir);
case kFileCmdGetNextListing: case kFileCmdGetNextListing:
dp = osd_readdir(filectx.dirp); if (filectx.dirp) {
if(dp) { dp = osd_readdir(filectx.dirp);
strncpy((char*)filectx.filename, dp->name, sizeof(filectx.filename)); if(dp) {
} else { strncpy((char*)filectx.filename, dp->name, sizeof(filectx.filename));
} else {
memset(filectx.filename, 0, sizeof(filectx.filename));
}
}
else {
memset(filectx.filename, 0, sizeof(filectx.filename)); memset(filectx.filename, 0, sizeof(filectx.filename));
} }
break; break;