+/*
+ * utility.cpp
+ *
+ * Created on: Sep 1, 2012
+ * Author: holy
+ */
+
+#include "utility.h"
+
+#include <cstring>
+#include <libgen.h>
+
+using std::string;
+
+namespace loader {
+
+string Dirname(const string &path) {
+ // unix version
+ char *str(new char[path.size() + 1]);
+ std::memcpy(str, path.c_str(), path.size());
+ str[path.size()] = '\0';
+ string dn(dirname(str));
+ delete str;
+ return dn;
+}
+
+string CatPath(const string &lhs, const string &rhs) {
+ // unix version
+ string path(lhs);
+ if (!path.empty() && path[path.size() - 1] != '/') {
+ path += '/';
+ }
+ if (!rhs.empty() && rhs[0] == '/') {
+ path.append(rhs, 1, string::npos);
+ } else {
+ path += rhs;
+ }
+ return path;
+}
+
+}