OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2013 Google Inc. | 2 * Copyright 2013 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #include "SkCommandLineFlags.h" | 8 #include "SkCommandLineFlags.h" |
9 #include "SkTDArray.h" | 9 #include "SkTDArray.h" |
10 #include "SkTSort.h" | 10 #include "SkTSort.h" |
(...skipping 11 matching lines...) Expand all Loading... |
22 info->fDefaultString.set(defaultValue); | 22 info->fDefaultString.set(defaultValue); |
23 | 23 |
24 info->fStrings = pStrings; | 24 info->fStrings = pStrings; |
25 SetDefaultStrings(pStrings, defaultValue); | 25 SetDefaultStrings(pStrings, defaultValue); |
26 return true; | 26 return true; |
27 } | 27 } |
28 | 28 |
29 void SkFlagInfo::SetDefaultStrings(SkCommandLineFlags::StringArray* pStrings, | 29 void SkFlagInfo::SetDefaultStrings(SkCommandLineFlags::StringArray* pStrings, |
30 const char* defaultValue) { | 30 const char* defaultValue) { |
31 pStrings->reset(); | 31 pStrings->reset(); |
32 if (NULL == defaultValue) { | 32 if (nullptr == defaultValue) { |
33 return; | 33 return; |
34 } | 34 } |
35 // If default is "", leave the array empty. | 35 // If default is "", leave the array empty. |
36 size_t defaultLength = strlen(defaultValue); | 36 size_t defaultLength = strlen(defaultValue); |
37 if (defaultLength > 0) { | 37 if (defaultLength > 0) { |
38 const char* const defaultEnd = defaultValue + defaultLength; | 38 const char* const defaultEnd = defaultValue + defaultLength; |
39 const char* begin = defaultValue; | 39 const char* begin = defaultValue; |
40 while (true) { | 40 while (true) { |
41 while (begin < defaultEnd && ' ' == *begin) { | 41 while (begin < defaultEnd && ' ' == *begin) { |
42 begin++; | 42 begin++; |
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
261 SkDebugf("Requested help for unrecognized flags:\n"); | 261 SkDebugf("Requested help for unrecognized flags:\n"); |
262 for (int k = 0; k < helpFlags.count(); k++) { | 262 for (int k = 0; k < helpFlags.count(); k++) { |
263 SkDebugf(" --%s\n", helpFlags[k]); | 263 SkDebugf(" --%s\n", helpFlags[k]); |
264 } | 264 } |
265 } | 265 } |
266 helpPrinted = true; | 266 helpPrinted = true; |
267 } | 267 } |
268 if (!helpPrinted) { | 268 if (!helpPrinted) { |
269 bool flagMatched = false; | 269 bool flagMatched = false; |
270 SkFlagInfo* flag = gHead; | 270 SkFlagInfo* flag = gHead; |
271 while (flag != NULL) { | 271 while (flag != nullptr) { |
272 if (flag->match(argv[i])) { | 272 if (flag->match(argv[i])) { |
273 flagMatched = true; | 273 flagMatched = true; |
274 switch (flag->getFlagType()) { | 274 switch (flag->getFlagType()) { |
275 case SkFlagInfo::kBool_FlagType: | 275 case SkFlagInfo::kBool_FlagType: |
276 // Can be handled by match, above, but can also be s
et by the next | 276 // Can be handled by match, above, but can also be s
et by the next |
277 // string. | 277 // string. |
278 if (i+1 < argc && !SkStrStartsWith(argv[i+1], '-'))
{ | 278 if (i+1 < argc && !SkStrStartsWith(argv[i+1], '-'))
{ |
279 i++; | 279 i++; |
280 bool value; | 280 bool value; |
281 if (parse_bool_arg(argv[i], &value)) { | 281 if (parse_bool_arg(argv[i], &value)) { |
282 flag->setBool(value); | 282 flag->setBool(value); |
283 } | 283 } |
284 } | 284 } |
285 break; | 285 break; |
286 case SkFlagInfo::kString_FlagType: | 286 case SkFlagInfo::kString_FlagType: |
287 flag->resetStrings(); | 287 flag->resetStrings(); |
288 // Add all arguments until another flag is reached. | 288 // Add all arguments until another flag is reached. |
289 while (i+1 < argc) { | 289 while (i+1 < argc) { |
290 char* end = NULL; | 290 char* end = nullptr; |
291 // Negative numbers aren't flags. | 291 // Negative numbers aren't flags. |
292 ignore_result(strtod(argv[i+1], &end)); | 292 ignore_result(strtod(argv[i+1], &end)); |
293 if (end == argv[i+1] && SkStrStartsWith(argv[i+1
], '-')) { | 293 if (end == argv[i+1] && SkStrStartsWith(argv[i+1
], '-')) { |
294 break; | 294 break; |
295 } | 295 } |
296 i++; | 296 i++; |
297 flag->append(argv[i]); | 297 flag->append(argv[i]); |
298 } | 298 } |
299 break; | 299 break; |
300 case SkFlagInfo::kInt_FlagType: | 300 case SkFlagInfo::kInt_FlagType: |
(...skipping 23 matching lines...) Expand all Loading... |
324 } else { | 324 } else { |
325 SkDebugf("Got unknown flag '%s'. Exiting.\n", argv[i]); | 325 SkDebugf("Got unknown flag '%s'. Exiting.\n", argv[i]); |
326 exit(-1); | 326 exit(-1); |
327 } | 327 } |
328 } | 328 } |
329 } | 329 } |
330 } | 330 } |
331 // Since all of the flags have been set, release the memory used by each | 331 // Since all of the flags have been set, release the memory used by each |
332 // flag. FLAGS_x can still be used after this. | 332 // flag. FLAGS_x can still be used after this. |
333 SkFlagInfo* flag = gHead; | 333 SkFlagInfo* flag = gHead; |
334 gHead = NULL; | 334 gHead = nullptr; |
335 while (flag != NULL) { | 335 while (flag != nullptr) { |
336 SkFlagInfo* next = flag->next(); | 336 SkFlagInfo* next = flag->next(); |
337 delete flag; | 337 delete flag; |
338 flag = next; | 338 flag = next; |
339 } | 339 } |
340 if (helpPrinted) { | 340 if (helpPrinted) { |
341 exit(0); | 341 exit(0); |
342 } | 342 } |
343 } | 343 } |
344 | 344 |
345 namespace { | 345 namespace { |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
377 } | 377 } |
378 | 378 |
379 } // namespace | 379 } // namespace |
380 | 380 |
381 bool SkCommandLineFlags::ShouldSkip(const SkTDArray<const char*>& strings, const
char* name) { | 381 bool SkCommandLineFlags::ShouldSkip(const SkTDArray<const char*>& strings, const
char* name) { |
382 return ShouldSkipImpl(strings, name); | 382 return ShouldSkipImpl(strings, name); |
383 } | 383 } |
384 bool SkCommandLineFlags::ShouldSkip(const StringArray& strings, const char* name
) { | 384 bool SkCommandLineFlags::ShouldSkip(const StringArray& strings, const char* name
) { |
385 return ShouldSkipImpl(strings, name); | 385 return ShouldSkipImpl(strings, name); |
386 } | 386 } |
OLD | NEW |