chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
util: when parsing strings lookup tables accept integer strings, too
[elogind.git]
/
util.h
diff --git
a/util.h
b/util.h
index 273ece89f1be7729a2963d12080805e682757018..af39accc946c47c079ace7164f9e65c38d7f86db 100644
(file)
--- a/
util.h
+++ b/
util.h
@@
-163,10
+163,14
@@
bool ignore_file(const char *filename);
} \
type name##_from_string(const char *s) { \
type i; \
} \
type name##_from_string(const char *s) { \
type i; \
+ unsigned u; \
assert(s); \
for (i = 0; i < (type)ELEMENTSOF(name##_table); i++) \
if (streq(name##_table[i], s)) \
return i; \
assert(s); \
for (i = 0; i < (type)ELEMENTSOF(name##_table); i++) \
if (streq(name##_table[i], s)) \
return i; \
+ if (safe_atou(s, &u) >= 0 && \
+ u < ELEMENTSOF(name##_table)) \
+ return (type) u; \
return (type) -1; \
} \
struct __useless_struct_to_allow_trailing_semicolon__
return (type) -1; \
} \
struct __useless_struct_to_allow_trailing_semicolon__