From 14a019da2027e07be1fd06555bb6fbe11eabf3c7 Mon Sep 17 00:00:00 2001 From: arbee Date: Sun, 31 May 2015 15:55:57 -0400 Subject: [PATCH] mac: Image card now accepts paths starting with '$' for your $HOME needs. Also fixed a crash if the path is invalid. [R. Belmont] --- src/emu/bus/nubus/nubus_image.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/emu/bus/nubus/nubus_image.c b/src/emu/bus/nubus/nubus_image.c index 8178b6ec870..d002a3badca 100644 --- a/src/emu/bus/nubus/nubus_image.c +++ b/src/emu/bus/nubus/nubus_image.c @@ -282,7 +282,7 @@ WRITE32_MEMBER( nubus_image_device::file_cmd_w ) strcpy((char*)filectx.filename, (char*)filectx.curdir); break; case kFileCmdSetDir: - if(filectx.filename[0] == '/') { + if ((filectx.filename[0] == '/') || (filectx.filename[0] == '$')) { strcpy((char*)filectx.curdir, (char*)filectx.filename); } else { strcat((char*)filectx.curdir, "/"); @@ -293,10 +293,15 @@ WRITE32_MEMBER( nubus_image_device::file_cmd_w ) if(filectx.dirp) osd_closedir(filectx.dirp); filectx.dirp = osd_opendir((const char *)filectx.curdir); case kFileCmdGetNextListing: - dp = osd_readdir(filectx.dirp); - if(dp) { - strncpy((char*)filectx.filename, dp->name, sizeof(filectx.filename)); - } else { + if (filectx.dirp) { + dp = osd_readdir(filectx.dirp); + if(dp) { + 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)); } break;