Index: tools/skpdiff/skpdiff_util.cpp |
diff --git a/tools/skpdiff/skpdiff_util.cpp b/tools/skpdiff/skpdiff_util.cpp |
index 0047959b60fbda4496c868c613240839d0f9b6b8..5b19c7311dfd5bf4755df9b75c35fcd6e488b618 100644 |
--- a/tools/skpdiff/skpdiff_util.cpp |
+++ b/tools/skpdiff/skpdiff_util.cpp |
@@ -15,10 +15,15 @@ |
# include <glob.h> |
#endif |
+#if SK_BUILD_FOR_MAC |
+# include <sys/syslimits.h> // PATH_MAX is here for Macs |
+#endif |
+ |
#if SK_BUILD_FOR_WIN32 |
# include <windows.h> |
#endif |
+#include <stdlib.h> |
#include <time.h> |
#include "SkOSFile.h" |
#include "skpdiff_util.h" |
@@ -181,3 +186,21 @@ bool glob_files(const char globPattern[], SkTArray<SkString>* entries) { |
return false; |
#endif |
} |
+ |
+SkString get_absolute_path(const SkString& path) { |
+#if SK_BUILD_FOR_MAC || SK_BUILD_FOR_UNIX || SK_BUILD_FOR_ANDROID |
+ SkString fullPath(PATH_MAX + 1); |
+ if (realpath(path.c_str(), fullPath.writable_str()) == NULL) { |
+ fullPath.reset(); |
+ } |
+ return fullPath; |
+#elif SK_BUILD_FOR_WIN32 |
+ SkString fullPath(MAX_PATH); |
+ if (_fullpath(fullPath.writable_str(), path.c_str(), MAX_PATH) == NULL) { |
+ fullPath.reset(); |
+ } |
+ return fullPath; |
+#else |
+ return SkString(); |
+#endif |
+} |