]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
Get default statefile name from config file path
authorToni Wilen <twilen@winuae.net>
Tue, 19 Mar 2024 16:59:02 +0000 (18:59 +0200)
committerToni Wilen <twilen@winuae.net>
Tue, 19 Mar 2024 16:59:02 +0000 (18:59 +0200)
od-win32/win32.cpp
od-win32/win32gui.cpp

index d20c4fe8d17007217e3ca44842c164589a312699..d77ef79410f5cc8990c157852f160346f2f0d47d 100644 (file)
@@ -6007,10 +6007,22 @@ void target_setdefaultstatefilename(const TCHAR *name)
        if (!name || !name[0]) {
                _tcscat(path, _T("default.uss"));
        } else {
-               _tcscat(path, name);
-               const TCHAR *p = _tcsrchr(name, '.');
+               const TCHAR *p2 = _tcsrchr(name, '\\');
+               const TCHAR *p3 = _tcsrchr(name, '/');
+               const TCHAR *p1 = NULL;
+               if (p2 >= p3) {
+                       p1 = p2;
+               } else if (p3 >= p2) {
+                       p1 = p3;
+               }
+               if (p1) {
+                       _tcscat(path, p1 + 1);
+               } else {
+                       _tcscat(path, name);
+               }
+               const TCHAR *p = _tcsrchr(path, '.');
                if (p) {
-                       path[_tcslen(path) - ((name + _tcslen(name)) - p)] = 0;
+                       path[_tcslen(path) - ((path + _tcslen(path)) - p)] = 0;
                        _tcscat(path, _T(".uss"));
                }
        }
index d6d45a43f1c03bdf252eb8c2a77d6bd299f394f9..a310b61c930ba6ce28ea2132b38dc78698448807 100644 (file)
@@ -2304,6 +2304,7 @@ int target_cfgfile_load (struct uae_prefs *p, const TCHAR *filename, int type, i
                else
                        _tcscpy (fname, filename);
        }
+       target_setdefaultstatefilename(filename);
 
        if (!isdefault)
                qs_override = 1;
@@ -4247,7 +4248,6 @@ static TCHAR *HandleConfiguration (HWND hDlg, int flag, struct ConfigStruct *con
                        WIN32GUI_LoadUIString (IDS_MUSTSELECTCONFIG, szMessage, MAX_DPATH);
                        pre_gui_message (szMessage);
                } else {
-                       target_setdefaultstatefilename(config_filename);
                        if (target_cfgfile_load (&workprefs, path, configtypepanel, 0) == 0) {
                                TCHAR szMessage[MAX_DPATH];
                                WIN32GUI_LoadUIString (IDS_COULDNOTLOADCONFIG, szMessage, MAX_DPATH);