]> git.tdb.fi Git - libs/core.git/blobdiff - source/utils.cpp
Add chdir function
[libs/core.git] / source / utils.cpp
index 721fc69249a98f8d7a85a471eb39b6db167bf9a8..d9522a3c6551d264ccf9896ef780b340220a99ef 100644 (file)
@@ -158,6 +158,14 @@ bool exists(const Path &path)
        return access(path.str().c_str(), F_OK)==0;
 }
 
+bool is_dir(const Path &path)
+{
+       struct stat st;
+       if(stat(path, st)==0)
+               return S_ISDIR(st.st_mode);
+       return false;
+}
+
 Filename splitext(const string &fn)
 {
        Filename result;
@@ -224,4 +232,22 @@ Path getcwd()
        return ::getcwd(buf, sizeof(buf));
 }
 
+Path get_home_dir()
+{
+#ifndef WIN32
+       const char *home=getenv("HOME");
+       if(home)
+               return home;
+       return ".";
+#else
+       return ".";
+#endif
+}
+
+void chdir(const Path &path)
+{
+       if(::chdir(path.str().c_str())==-1)
+               throw SystemError("chdir failed", errno);
+}
+
 } // namespace Msp