X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ffs%2Fwindows%2Fdir_location.cpp;h=4f9b8f643b723b9317af370a84dbc8b7e6529b8e;hb=HEAD;hp=ea542be3a75abcf87b68fec82edc83734bfa93a6;hpb=e2b5cb6cd61bf8c6f56f624cc835233df92288da;p=libs%2Fcore.git diff --git a/source/fs/windows/dir_location.cpp b/source/fs/windows/dir_location.cpp index ea542be..85c5c2f 100644 --- a/source/fs/windows/dir_location.cpp +++ b/source/fs/windows/dir_location.cpp @@ -1,4 +1,6 @@ #include +#include +#include #include "dir.h" using namespace std; @@ -9,17 +11,19 @@ namespace FS { Path get_home_dir() { char home[MAX_PATH]; - if(SHGetFolderPath(0, CSIDL_PERSONAL, 0, 0, home)==S_OK) + if(SHGetFolderPath(nullptr, CSIDL_PERSONAL, nullptr, 0, home)==S_OK) return home; return "."; } -Path get_user_data_dir(const string &appname) +Path get_user_data_dir() { + const string &appname = Application::get_name(); if(appname.empty()) - throw invalid_argument("get_user_data_dir"); + throw invalid_state("no application name"); + char datadir[MAX_PATH]; - if(SHGetFolderPath(0, CSIDL_LOCAL_APPDATA, 0, 0, datadir)==S_OK) + if(SHGetFolderPath(nullptr, CSIDL_LOCAL_APPDATA, nullptr, 0, datadir)==S_OK) return Path(datadir)/appname; return "."; }