summaryrefslogtreecommitdiffstats
path: root/src/tool/args.cc
diff options
context:
space:
mode:
authorKenny Root <kroot@google.com>2015-09-25 02:36:32 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-09-25 02:36:32 +0000
commitd947d006e7a7ebcfdfe642e686250caf2028c2c1 (patch)
treedd743d9d64af3145fe96b8d5fc2f3427544794bd /src/tool/args.cc
parent00bc53f6f4436972b7a8dcf2c1e5fd0ad7515872 (diff)
parentb8494591d1b1a143f3b192d845c238bbf3bc629d (diff)
downloadexternal_boringssl-d947d006e7a7ebcfdfe642e686250caf2028c2c1.zip
external_boringssl-d947d006e7a7ebcfdfe642e686250caf2028c2c1.tar.gz
external_boringssl-d947d006e7a7ebcfdfe642e686250caf2028c2c1.tar.bz2
am b8494591: Revert "Revert "external/boringssl: sync with upstream.""
* commit 'b8494591d1b1a143f3b192d845c238bbf3bc629d': Revert "Revert "external/boringssl: sync with upstream.""
Diffstat (limited to 'src/tool/args.cc')
-rw-r--r--src/tool/args.cc27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/tool/args.cc b/src/tool/args.cc
index a164476..9ec18a3 100644
--- a/src/tool/args.cc
+++ b/src/tool/args.cc
@@ -15,7 +15,9 @@
#include <string>
#include <vector>
+#include <limits.h>
#include <stdio.h>
+#include <stdlib.h>
#include <string.h>
#include "internal.h"
@@ -75,3 +77,28 @@ void PrintUsage(const struct argument *templates) {
fprintf(stderr, "%s\t%s\n", templ->name, templ->description);
}
}
+
+bool GetUnsigned(unsigned *out, const std::string &arg_name,
+ unsigned default_value,
+ const std::map<std::string, std::string> &args) {
+ const auto &it = args.find(arg_name);
+ if (it == args.end()) {
+ *out = default_value;
+ return true;
+ }
+
+ const std::string &value = it->second;
+ if (value.empty()) {
+ return false;
+ }
+
+ char *endptr;
+ unsigned long int num = strtoul(value.c_str(), &endptr, 10);
+ if (*endptr ||
+ num > UINT_MAX) {
+ return false;
+ }
+
+ *out = num;
+ return true;
+}