Index: tools/skimage_main.cpp |
diff --git a/tools/skimage_main.cpp b/tools/skimage_main.cpp |
index 98cde5044c5c53d9f32b4cb038ca77735df345c6..f52cf3221764c2504757904c45c3864472978e5a 100644 |
--- a/tools/skimage_main.cpp |
+++ b/tools/skimage_main.cpp |
@@ -69,10 +69,27 @@ static SkImageDecoder::Format guess_format_from_suffix(const char suffix[]) { |
return SkImageDecoder::kUnknown_Format; |
} |
+/** |
+ * Return the name of the file, ignoring the directory structure. |
+ * Does not create a new string. |
+ * @param fullPath Full path to the file. |
+ * @return string The basename of the file - anything beyond the final slash, or the full name |
+ * if there is no slash. |
+ * TODO: Might this be useful as a utility function in SkOSFile? Would it be more appropriate to |
+ * create a new string? |
+ */ |
+static const char* SkBasename(const char* fullPath) { |
+ const char* filename = strrchr(fullPath, SkPATH_SEPARATOR); |
+ if (NULL == filename || *++filename == '\0') { |
+ filename = fullPath; |
+ } |
+ return filename; |
+} |
+ |
static void make_outname(SkString* dst, const char outDir[], const char src[], |
const char suffix[]) { |
- SkString basename = SkOSPath::SkBasename(src); |
- dst->set(SkOSPath::SkPathJoin(outDir, basename.c_str())); |
+ const char* basename = SkBasename(src); |
+ dst->set(skiagm::SkPathJoin(outDir, basename)); |
if (!dst->endsWith(suffix)) { |
const char* cstyleDst = dst->c_str(); |
const char* dot = strrchr(cstyleDst, '.'); |
@@ -255,7 +272,8 @@ static bool write_subset(const char* writePath, const char* filename, const char |
SkASSERT(bitmapFromDecodeSubset != NULL); |
// Create a subdirectory to hold the results of decodeSubset. |
- SkString dir = SkOSPath::SkPathJoin(writePath, "subsets"); |
+ // TODO: Move SkPathJoin into SkOSFile.h |
+ SkString dir = skiagm::SkPathJoin(writePath, "subsets"); |
if (!sk_mkdir(dir.c_str())) { |
gFailedSubsetDecodes.push_back().printf("Successfully decoded %s from %s, but failed to " |
"create a directory to write to.", subsetDim, |
@@ -280,7 +298,7 @@ static bool write_subset(const char* writePath, const char* filename, const char |
return false; |
} |
- SkString dirExtracted = SkOSPath::SkPathJoin(writePath, "extracted"); |
+ SkString dirExtracted = skiagm::SkPathJoin(writePath, "extracted"); |
if (!sk_mkdir(dirExtracted.c_str())) { |
gFailedSubsetDecodes.push_back().printf("Successfully decoded %s from %s, but failed to " |
"create a directory for extractSubset comparison.", |
@@ -317,8 +335,7 @@ static void decodeFileAndWrite(const char srcPath[], const SkString* writePath) |
} |
// Create a string representing just the filename itself, for use in json expectations. |
- SkString basename = SkOSPath::SkBasename(srcPath); |
- const char* filename = basename.c_str(); |
+ const char* filename = SkBasename(srcPath); |
if (compare_to_expectations_if_necessary(bitmap, filename, &gDecodeFailures)) { |
gSuccessfulDecodes.push_back().printf("%s [%d %d]", srcPath, bitmap.width(), |