summaryrefslogtreecommitdiff
path: root/src/mbgl/util/uv.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/util/uv.cpp')
-rw-r--r--src/mbgl/util/uv.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/mbgl/util/uv.cpp b/src/mbgl/util/uv.cpp
new file mode 100644
index 0000000000..7aa5bad0cf
--- /dev/null
+++ b/src/mbgl/util/uv.cpp
@@ -0,0 +1,25 @@
+#include <mbgl/util/uv.hpp>
+
+#include <uv.h>
+
+namespace uv {
+
+std::string cwd() {
+#if UV_VERSION_MAJOR == 0 && UV_VERSION_MINOR <= 10
+ char dir[512];
+ uv_cwd(dir, 512);
+ return dir;
+#else
+ size_t max = 0;
+ std::string dir;
+ do {
+ max += 256;
+ dir.resize(max);
+ uv_cwd(const_cast<char *>(dir.data()), &max);
+ } while (max == dir.size());
+ dir.resize(max - 1);
+ return dir;
+#endif
+}
+
+}