aboutsummaryrefslogtreecommitdiffstats
path: root/common/stringhelp.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2016-08-11 18:46:51 +0000
committerWerner Koch <[email protected]>2016-08-11 19:32:55 +0000
commit0698324cde3e0cef7eeb6cfd1640c5eefdf13698 (patch)
tree36a20b69d270381daee74443a17a4108fb407090 /common/stringhelp.c
parentcommon: Remove compatibility code. (diff)
downloadgnupg-0698324cde3e0cef7eeb6cfd1640c5eefdf13698.tar.gz
gnupg-0698324cde3e0cef7eeb6cfd1640c5eefdf13698.zip
common: New function string_to_u64.
* common/stringhelp.c (string_to_u64): New. * dirmngr/http.c (longcounter_t): Remove. (struct cookie_s): Change content_length to uint64_t. (parse_response): Use string_to_u64. -- Meanwhile we allow some C99 features including stdint.h. Thus we can simplify things now. Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to '')
-rw-r--r--common/stringhelp.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/common/stringhelp.c b/common/stringhelp.c
index 990fc3577..b5d9f4cf6 100644
--- a/common/stringhelp.c
+++ b/common/stringhelp.c
@@ -58,6 +58,7 @@
#define tohex_lower(n) ((n) < 10 ? ((n) + '0') : (((n) - 10) + 'a'))
+
/* Sometimes we want to avoid mixing slashes and backslashes on W32
and prefer backslashes. There is usual no problem with mixing
them, however a very few W32 API calls can't grok plain slashes.
@@ -660,6 +661,25 @@ compare_filenames (const char *a, const char *b)
}
+/* Convert a base-10 number in STRING into a 64 bit unsigned int
+ * value. Leading white spaces are skipped but no error checking is
+ * done. Thus it is similar to atoi(). */
+uint64_t
+string_to_u64 (const char *string)
+{
+ uint64_t val = 0;
+
+ while (spacep (string))
+ string++;
+ for (; digitp (string); string++)
+ {
+ val *= 10;
+ val += *string - '0';
+ }
+ return val;
+}
+
+
/* Convert 2 hex characters at S to a byte value. Return this value
or -1 if there is an error. */
int