aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools
diff options
context:
space:
mode:
authorGravatar scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-05-28 16:45:07 +0000
committerGravatar scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-05-28 16:45:07 +0000
commitccd7afb6fb2df9774e57fb4d7f62f9504cabf03e (patch)
tree54818885b59f98ac958e6c35d67109b098f26a19 /tools
parent7b06ba45b34855a5bb16f9c729813173d7dfe47d (diff)
Reland 'Add path utils, plus a test for it.'
Build SkPathJoin and SkBasename on windows also. Previous CL did not build on Windows because the two functions were accidentally placed inside an ifdef that did not include windows. Move the functions to the top of the file, and add a comment by the endif for clarity. Previously reviewed at https://codereview.chromium.org/15747004/ Review URL: https://codereview.chromium.org/15740024 git-svn-id: http://skia.googlecode.com/svn/trunk@9295 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'tools')
-rw-r--r--tools/skimage_main.cpp29
1 files changed, 6 insertions, 23 deletions
diff --git a/tools/skimage_main.cpp b/tools/skimage_main.cpp
index f52cf32217..98cde5044c 100644
--- a/tools/skimage_main.cpp
+++ b/tools/skimage_main.cpp
@@ -69,27 +69,10 @@ 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[]) {
- const char* basename = SkBasename(src);
- dst->set(skiagm::SkPathJoin(outDir, basename));
+ SkString basename = SkOSPath::SkBasename(src);
+ dst->set(SkOSPath::SkPathJoin(outDir, basename.c_str()));
if (!dst->endsWith(suffix)) {
const char* cstyleDst = dst->c_str();
const char* dot = strrchr(cstyleDst, '.');
@@ -272,8 +255,7 @@ static bool write_subset(const char* writePath, const char* filename, const char
SkASSERT(bitmapFromDecodeSubset != NULL);
// Create a subdirectory to hold the results of decodeSubset.
- // TODO: Move SkPathJoin into SkOSFile.h
- SkString dir = skiagm::SkPathJoin(writePath, "subsets");
+ SkString dir = SkOSPath::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,
@@ -298,7 +280,7 @@ static bool write_subset(const char* writePath, const char* filename, const char
return false;
}
- SkString dirExtracted = skiagm::SkPathJoin(writePath, "extracted");
+ SkString dirExtracted = SkOSPath::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.",
@@ -335,7 +317,8 @@ static void decodeFileAndWrite(const char srcPath[], const SkString* writePath)
}
// Create a string representing just the filename itself, for use in json expectations.
- const char* filename = SkBasename(srcPath);
+ SkString basename = SkOSPath::SkBasename(srcPath);
+ const char* filename = basename.c_str();
if (compare_to_expectations_if_necessary(bitmap, filename, &gDecodeFailures)) {
gSuccessfulDecodes.push_back().printf("%s [%d %d]", srcPath, bitmap.width(),