Index: tools/flags/SkCommandLineFlags.cpp |
diff --git a/tools/flags/SkCommandLineFlags.cpp b/tools/flags/SkCommandLineFlags.cpp |
index 50c193fdf23f309ef92bc081f33676813084d97e..6f1491bf1cb00dcd8bd506c1fec4458dc781860b 100644 |
--- a/tools/flags/SkCommandLineFlags.cpp |
+++ b/tools/flags/SkCommandLineFlags.cpp |
@@ -282,7 +282,12 @@ void SkCommandLineFlags::Parse(int argc, char** argv) { |
case SkFlagInfo::kString_FlagType: |
flag->resetStrings(); |
// Add all arguments until another flag is reached. |
- while (i+1 < argc && !SkStrStartsWith(argv[i+1], '-')) { |
+ while (i+1 < argc) { |
+ char* end = NULL; |
+ (void)strtod(argv[i+1], &end); // Negative numbers aren't flags. |
+ if (end == argv[i+1] && SkStrStartsWith(argv[i+1], '-')) { |
+ break; |
+ } |
i++; |
flag->append(argv[i]); |
} |