fix skpdiff viewer bug when using relative paths
BUG=skia:1463 R=djsollen@google.com Review URL: https://codereview.chromium.org/21601002 git-svn-id: http://skia.googlecode.com/svn/trunk@10515 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
parent
89066e5cd5
commit
a479aa1366
@ -164,12 +164,15 @@ void SkDiffContext::outputRecords(SkWStream& stream, bool useJSONP) {
|
||||
while (NULL != currentRecord) {
|
||||
stream.writeText(" {\n");
|
||||
|
||||
SkString baselineAbsPath = get_absolute_path(currentRecord->fBaselinePath);
|
||||
SkString testAbsPath = get_absolute_path(currentRecord->fTestPath);
|
||||
|
||||
stream.writeText(" \"baselinePath\": \"");
|
||||
stream.writeText(currentRecord->fBaselinePath.c_str());
|
||||
stream.writeText(baselineAbsPath.c_str());
|
||||
stream.writeText("\",\n");
|
||||
|
||||
stream.writeText(" \"testPath\": \"");
|
||||
stream.writeText(currentRecord->fTestPath.c_str());
|
||||
stream.writeText(testAbsPath.c_str());
|
||||
stream.writeText("\",\n");
|
||||
|
||||
stream.writeText(" \"diffs\": [\n");
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -49,5 +49,12 @@ bool get_directory(const char path[], SkTArray<SkString>* entries);
|
||||
*/
|
||||
bool glob_files(const char globPattern[], SkTArray<SkString>* entries);
|
||||
|
||||
/**
|
||||
* Gets the absolute version of the given path.
|
||||
* @param path The absolute or relative path to expand
|
||||
* @return The absolute path of the given path on success, or an empty string on failure.
|
||||
*/
|
||||
SkString get_absolute_path(const SkString& path);
|
||||
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user