summaryrefslogtreecommitdiff
path: root/src/basic/parse-util.h
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2018-03-21 22:27:19 +0100
committerLennart Poettering <lennart@poettering.net>2018-03-21 22:27:19 +0100
commit5ef56aa205b5c36e622ed0401d4c4c32be6bb47b (patch)
treef80778897fd33f77c4a1552c237444886665c249 /src/basic/parse-util.h
parent37cbc1d57992f49b3607bd66973dd30e0a8d1073 (diff)
downloadsystemd-5ef56aa205b5c36e622ed0401d4c4c32be6bb47b.tar.gz
parse-util: introduce safe_atou16_full()
safe_atou16_full() is like safe_atou16() but also takes a base parameter. safe_atou16() is then implemented as inline function on top of it, passing 0 as base. Similar safe_atoux16() is reworked as inline function too, with 16 as base.
Diffstat (limited to 'src/basic/parse-util.h')
-rw-r--r--src/basic/parse-util.h13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/basic/parse-util.h b/src/basic/parse-util.h
index 727422056a..82265fcd0c 100644
--- a/src/basic/parse-util.h
+++ b/src/basic/parse-util.h
@@ -51,10 +51,17 @@ int safe_atolli(const char *s, long long int *ret_i);
int safe_atou8(const char *s, uint8_t *ret);
-int safe_atou16(const char *s, uint16_t *ret);
-int safe_atoi16(const char *s, int16_t *ret);
+int safe_atou16_full(const char *s, unsigned base, uint16_t *ret);
+
+static inline int safe_atou16(const char *s, uint16_t *ret) {
+ return safe_atou16_full(s, 0, ret);
+}
-int safe_atoux16(const char *s, uint16_t *ret);
+static inline int safe_atoux16(const char *s, uint16_t *ret) {
+ return safe_atou16_full(s, 16, ret);
+}
+
+int safe_atoi16(const char *s, int16_t *ret);
static inline int safe_atou32(const char *s, uint32_t *ret_u) {
assert_cc(sizeof(uint32_t) == sizeof(unsigned));