diff options
Diffstat (limited to 'src/mir_app')
-rw-r--r-- | src/mir_app/src/database.cpp | 9 | ||||
-rw-r--r-- | src/mir_app/src/profilemanager.cpp | 9 |
2 files changed, 10 insertions, 8 deletions
diff --git a/src/mir_app/src/database.cpp b/src/mir_app/src/database.cpp index 4c41fa8f4b..58e731c567 100644 --- a/src/mir_app/src/database.cpp +++ b/src/mir_app/src/database.cpp @@ -410,18 +410,17 @@ int tryOpenDatabase(const wchar_t *tszProfile) // enumerate all database plugins
static int tryCreateDatabase(const wchar_t *ptszProfile)
{
- wchar_t *tszProfile = NEWWSTR_ALLOCA(ptszProfile);
- CreatePathToFileW(tszProfile);
+ CreatePathToFileW(ptszProfile);
for (auto &p : arDbPlugins) {
- int err = p->makeDatabase(tszProfile);
+ int err = p->makeDatabase(ptszProfile);
if (err == ERROR_SUCCESS) {
g_bDbCreated = true;
- MDatabaseCommon *pDb = p->Load(tszProfile, FALSE);
+ MDatabaseCommon *pDb = p->Load(ptszProfile, FALSE);
if (pDb == nullptr) // driver was found but smth went wrong
return EGROKPRF_CANTREAD;
- fillProfileName(tszProfile);
+ fillProfileName(ptszProfile);
currDblink = p;
db_setCurrent(currDb = pDb);
return 0;
diff --git a/src/mir_app/src/profilemanager.cpp b/src/mir_app/src/profilemanager.cpp index c1d4b7e47c..8d287abc17 100644 --- a/src/mir_app/src/profilemanager.cpp +++ b/src/mir_app/src/profilemanager.cpp @@ -82,13 +82,16 @@ class CCreateProfileDlg : public CDlgBase CCtrlButton &m_btnOk; PROFILEMANAGERDATA *m_pd; - int CreateProfile(wchar_t *profile, DATABASELINK *link) + int CreateProfile(const wchar_t *profile, DATABASELINK *link) { wchar_t buf[256]; int err = 0; + // check if the file already exists - wchar_t *file = wcsrchr(profile, '\\'); - if (file) file++; + const wchar_t *file = wcsrchr(profile, '\\'); + if (file) + file++; + if (_waccess(profile, 0) == 0) { // file already exists! mir_snwprintf(buf, |