Helper function to determine the location of the program's executable. Caches
the last result to cut down filesystem access with repeated calls.
*/
-const Path &get_bin_dir(const Path &argv0)
+const Path &get_bin_dir(const string &argv0)
{
- static Path last_argv0;
+ static string last_argv0;
static Path bin_dir;
if(!(argv0==last_argv0))
{
Path exe;
- if(argv0.size()==1)
+ if(argv0.find('/')==string::npos)
{
const char *path=getenv("PATH");
vector<string> dirs=split(path, ':');
#endif
}
-Path get_sys_conf_dir(const Path &argv0)
+Path get_sys_conf_dir(const string &argv0)
{
Path dir=get_bin_dir(argv0);
return dir;
}
-Path get_sys_data_dir(const Path &argv0, const string &appname)
+Path get_sys_data_dir(const string &argv0, const string &appname)
{
Path dir=get_bin_dir(argv0);