From f1478f88031234ce21627f857e2a4912b96210e0 Mon Sep 17 00:00:00 2001 From: "bsalomon@google.com" Date: Mon, 30 Jul 2012 19:16:02 +0000 Subject: [PATCH] Fix skdiff when using windows path that begins with a drive letter Review URL: https://mail.google.com/mail/u/0/?shva=1#inbox/138d92244ca33549 git-svn-id: http://skia.googlecode.com/svn/trunk@4838 2bbb7eff-a529-9590-31e7-b0007b416f81 --- tools/skdiff_main.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/tools/skdiff_main.cpp b/tools/skdiff_main.cpp index 9017f64757..d10ebfc28d 100644 --- a/tools/skdiff_main.cpp +++ b/tools/skdiff_main.cpp @@ -1047,11 +1047,20 @@ static void print_diff_page (const int matchCount, // Need to convert paths from relative-to-cwd to relative-to-outputDir // FIXME this doesn't work if there are '..' inside the outputDir - unsigned int ui; + + bool pathFromRoot; +#ifdef SK_BUILD_FOR_WIN32 + pathFromRoot = outputDir.size() > 1 && ':' == outputDir[1]; +#else + pathFromRoot = outputDir.size() > 0 && PATH_DIV_CHAR == outputDir[0]; +#endif SkString relativePath; - for (ui = 0; ui < outputDir.size(); ui++) { - if (outputDir[ui] == PATH_DIV_CHAR) { - relativePath.append(".." PATH_DIV_STR); + if (!pathFromRoot) { + unsigned int ui; + for (ui = 0; ui < outputDir.size(); ui++) { + if (outputDir[ui] == PATH_DIV_CHAR) { + relativePath.append(".." PATH_DIV_STR); + } } }