import: only define the _to_string() enum mapping function, thus making gcc shut up

This commit is contained in:
Lennart Poettering 2015-01-22 17:49:28 +01:00
parent aa9bd4992f
commit b9a5f8588f
2 changed files with 14 additions and 6 deletions

View file

@ -86,7 +86,7 @@ static const char* const transfer_type_table[_TRANSFER_TYPE_MAX] = {
[TRANSFER_DKR] = "dkr", [TRANSFER_DKR] = "dkr",
}; };
DEFINE_PRIVATE_STRING_TABLE_LOOKUP(transfer_type, TransferType); DEFINE_PRIVATE_STRING_TABLE_LOOKUP_TO_STRING(transfer_type, TransferType);
static Transfer *transfer_unref(Transfer *t) { static Transfer *transfer_unref(Transfer *t) {
if (!t) if (!t)

View file

@ -348,12 +348,14 @@ static inline uint32_t random_u32(void) {
} }
/* For basic lookup tables with strictly enumerated entries */ /* For basic lookup tables with strictly enumerated entries */
#define __DEFINE_STRING_TABLE_LOOKUP(name,type,scope) \ #define _DEFINE_STRING_TABLE_LOOKUP_TO_STRING(name,type,scope) \
scope const char *name##_to_string(type i) { \ scope const char *name##_to_string(type i) { \
if (i < 0 || i >= (type) ELEMENTSOF(name##_table)) \ if (i < 0 || i >= (type) ELEMENTSOF(name##_table)) \
return NULL; \ return NULL; \
return name##_table[i]; \ return name##_table[i]; \
} \ }
#define _DEFINE_STRING_TABLE_LOOKUP_FROM_STRING(name,type,scope) \
scope type name##_from_string(const char *s) { \ scope type name##_from_string(const char *s) { \
type i; \ type i; \
if (!s) \ if (!s) \
@ -363,11 +365,17 @@ static inline uint32_t random_u32(void) {
streq(name##_table[i], s)) \ streq(name##_table[i], s)) \
return i; \ return i; \
return (type) -1; \ return (type) -1; \
} \ }
#define _DEFINE_STRING_TABLE_LOOKUP(name,type,scope) \
_DEFINE_STRING_TABLE_LOOKUP_TO_STRING(name,type,scope) \
_DEFINE_STRING_TABLE_LOOKUP_FROM_STRING(name,type,scope) \
struct __useless_struct_to_allow_trailing_semicolon__ struct __useless_struct_to_allow_trailing_semicolon__
#define DEFINE_STRING_TABLE_LOOKUP(name,type) __DEFINE_STRING_TABLE_LOOKUP(name,type,) #define DEFINE_STRING_TABLE_LOOKUP(name,type) _DEFINE_STRING_TABLE_LOOKUP(name,type,)
#define DEFINE_PRIVATE_STRING_TABLE_LOOKUP(name,type) __DEFINE_STRING_TABLE_LOOKUP(name,type,static) #define DEFINE_PRIVATE_STRING_TABLE_LOOKUP(name,type) _DEFINE_STRING_TABLE_LOOKUP(name,type,static)
#define DEFINE_PRIVATE_STRING_TABLE_LOOKUP_TO_STRING(name,type) _DEFINE_STRING_TABLE_LOOKUP_TO_STRING(name,type,static)
#define DEFINE_PRIVATE_STRING_TABLE_LOOKUP_FROM_STRING(name,type) _DEFINE_STRING_TABLE_LOOKUP_FROM_STRING(name,type,static)
/* For string conversions where numbers are also acceptable */ /* For string conversions where numbers are also acceptable */
#define DEFINE_STRING_TABLE_LOOKUP_WITH_FALLBACK(name,type,max) \ #define DEFINE_STRING_TABLE_LOOKUP_WITH_FALLBACK(name,type,max) \