diff options
Diffstat (limited to 'tools/skpdiff/skpdiff_util.cpp')
-rw-r--r-- | tools/skpdiff/skpdiff_util.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tools/skpdiff/skpdiff_util.cpp b/tools/skpdiff/skpdiff_util.cpp index 0047959b60..5b19c7311d 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 +} |