X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Ffs%2Fdir.cpp;h=be471628ceac105de600b341107ff2064a0bc090;hp=bd9eaa59fe06ad933209f5331b12e86a0ae6a0a5;hb=ed4f5d6012b5f638ac21d96bc2ddf12b08a2d217;hpb=f46cd5456db31f69477bdbb6eec8200151bd42ae diff --git a/source/fs/dir.cpp b/source/fs/dir.cpp index bd9eaa5..be47162 100644 --- a/source/fs/dir.cpp +++ b/source/fs/dir.cpp @@ -37,7 +37,7 @@ const Path &get_bin_dir(const string &argv0) if(!(argv0==last_argv0)) { Path exe; - if(argv0.find('/')==string::npos) + if(argv0.find(DIRSEP)==string::npos) { const char *path = getenv("PATH"); vector dirs = split(path, ITEMSEP); @@ -130,18 +130,16 @@ list list_filtered(const Path &path, const string &filter) return result; } -Path get_user_data_dir() +Path get_sys_conf_dir(const string &) { - const string &name = Application::get_name(); - if(name.empty()) - throw logic_error("application name not known"); - return get_user_data_dir(name); + return get_sys_conf_dir(); } -Path get_sys_conf_dir(const string &argv0) +Path get_sys_conf_dir() { - if(argv0.empty()) - throw invalid_argument("get_sys_conf_dir"); + const char *argv0 = Application::get_argv0(); + if(!argv0) + throw logic_error("no startup command"); Path dir = get_bin_dir(argv0); @@ -156,58 +154,46 @@ Path get_sys_conf_dir(const string &argv0) return dir; } -Path get_sys_conf_dir() +Path get_sys_data_dir(const string &, const string &) { - const char *argv0 = Application::get_argv0(); - if(!argv0) - throw logic_error("no startup command"); - return get_sys_conf_dir(argv0); + return get_sys_data_dir(); } -Path get_sys_data_dir(const string &argv0, const string &appname) +Path get_sys_data_dir() { - if(argv0.empty() || appname.empty()) - throw invalid_argument("get_sys_data_dir"); + const char *argv0 = Application::get_argv0(); + if(!argv0) + throw logic_error("no startup command"); Path dir = get_bin_dir(argv0); if(dir[-1]=="bin" || dir[-1]=="sbin") - return dir/".."/"share"/appname; + return dir/".."/"share"/Application::get_name(); else if(dir[-1]=="MacOS") return dir/".."/"Resources"; else return dir; } -Path get_sys_data_dir() +Path get_sys_lib_dir(const string &, const string &) { - const char *argv0 = Application::get_argv0(); - if(!argv0) - throw logic_error("no startup command"); - return get_sys_data_dir(argv0, Application::get_name()); + return get_sys_lib_dir(); } -Path get_sys_lib_dir(const string &argv0, const string &appname) +Path get_sys_lib_dir() { - if(argv0.empty() || appname.empty()) - throw invalid_argument("get_sys_lib_dir"); + const char *argv0 = Application::get_argv0(); + if(!argv0) + throw logic_error("no startup command"); Path dir = get_bin_dir(argv0); if(dir[-1]=="bin" || dir[-1]=="sbin") - return dir/".."/"lib"/appname; + return dir/".."/"lib"/Application::get_name(); else return dir; } -Path get_sys_lib_dir() -{ - const char *argv0 = Application::get_argv0(); - if(!argv0) - throw logic_error("no startup command"); - return get_sys_lib_dir(argv0, Application::get_name()); -} - Path path_lookup(const string &name, const list &paths) { for(list::const_iterator i=paths.begin(); i!=paths.end(); ++i)