Add get_sys_lib_dir function
authorMikko Rasa <tdb@tdb.fi>
Wed, 23 Sep 2009 20:11:54 +0000 (20:11 +0000)
committerMikko Rasa <tdb@tdb.fi>
Wed, 23 Sep 2009 20:11:54 +0000 (20:11 +0000)
source/dir.cpp
source/dir.h

index 29c24c188fa96b7d76763b9b1ab5ad4a8aa3de53..111378fa0e0e0a7dcc9f808aba659b3036e8eca9 100644 (file)
@@ -209,6 +209,16 @@ Path get_sys_data_dir(const string &argv0, const string &appname)
                return dir;
 }
 
+Path get_sys_lib_dir(const string &argv0, const string &appname)
+{
+       Path dir=get_bin_dir(argv0);
+
+       if(dir[-1]=="bin" || dir[-1]=="sbin")
+               return dir/".."/"lib"/appname;
+       else
+               return dir;
+}
+
 void chdir(const Path &path)
 {
        if(::chdir(path.str().c_str())==-1)
index ebbe56c553a5e8cd207f18240e3a0bf474e4e684..53228ccd760ce233d235fbef7b13b4b965c5c28b 100644 (file)
@@ -48,6 +48,9 @@ Path get_sys_conf_dir(const std::string &argv0);
 /// Returns a directory containing immutable system-wide data
 Path get_sys_data_dir(const std::string &argv0, const std::string &appname);
 
+/// Returns a directory containing system-wide architecture-specific files
+Path get_sys_lib_dir(const std::string &argv0, const std::string &appname);
+
 /// Changes the current working directory
 void chdir(const Path &);