--- hatari/src/gui-sdl/dlgRom.c 2019/04/01 07:11:58 1.1.1.1 +++ hatari/src/gui-sdl/dlgRom.c 2019/04/01 07:13:17 1.1.1.3 @@ -4,7 +4,7 @@ This file is distributed under the GNU Public License, version 2 or at your option any later version. Read the file gpl.txt for details. */ -char DlgRom_rcsid[] = "Hatari $Id: dlgRom.c,v 1.1.1.1 2019/04/01 07:11:58 root Exp $"; +const char DlgRom_rcsid[] = "Hatari $Id: dlgRom.c,v 1.1.1.3 2019/04/01 07:13:17 root Exp $"; #include "main.h" #include "configuration.h" @@ -67,16 +67,18 @@ void DlgRom_Main(void) do { - but = SDLGui_DoDialog(romdlg); + but = SDLGui_DoDialog(romdlg, NULL); switch (but) { case DLGROM_TOSBROWSE: strcpy(tmpname, DialogParams.Rom.szTosImageFileName); - File_MakeAbsoluteName(tmpname); if (SDLGui_FileSelect(tmpname, NULL, FALSE)) /* Show and process the file selection dlg */ { - strcpy(DialogParams.Rom.szTosImageFileName, tmpname); - File_ShrinkName(szDlgTosName, DialogParams.Rom.szTosImageFileName, sizeof(szDlgTosName)-1); + if (!File_DoesFileNameEndWithSlash(tmpname) && File_Exists(tmpname)) + { + strcpy(DialogParams.Rom.szTosImageFileName, tmpname); + File_ShrinkName(szDlgTosName, DialogParams.Rom.szTosImageFileName, sizeof(szDlgTosName)-1); + } } break; @@ -90,13 +92,21 @@ void DlgRom_Main(void) File_MakeAbsoluteName(tmpname); if (SDLGui_FileSelect(tmpname, NULL, FALSE)) /* Show and process the file selection dlg */ { - strcpy(DialogParams.Rom.szCartridgeImageFileName, tmpname); - File_ShrinkName(szDlgCartName, DialogParams.Rom.szCartridgeImageFileName, sizeof(szDlgCartName)-1); + if (!File_DoesFileNameEndWithSlash(tmpname) && File_Exists(tmpname)) + { + strcpy(DialogParams.Rom.szCartridgeImageFileName, tmpname); + File_ShrinkName(szDlgCartName, DialogParams.Rom.szCartridgeImageFileName, sizeof(szDlgCartName)-1); + } + else + { + szDlgCartName[0] = 0; + DialogParams.Rom.szCartridgeImageFileName[0] = 0; + } } break; } } - while (but!=DLGROM_EXIT && !bQuitProgram); + while (but != DLGROM_EXIT && but != SDLGUI_QUIT && !bQuitProgram); free(tmpname); }