[Swan-dev] strip_prefix + enum_show + bitnamesof
Andrew Cagney
andrew.cagney at gmail.com
Thu Jul 21 17:19:34 UTC 2016
I was trying to log the contents of an lset_t, but couldn't seem to
find the right method. For instance, given the enum:
enum ikev2_trans_type_esn {
IKEv2_ESN_DISABLED = 0,
IKEv2_ESN_ENABLED = 1,
};
then I can display a truncated value vis:
strip_prefix("ESN_", enum_enum_show(ikev2_trans_type_esn_names,
IKEv2_ESN_DISABLED))
-> "DISABLED"
for lset_t, I'd like something similar:
lset_t s = LELEM(IKEv2_ESN_DISABLED) + LELEM(IKEv2_ESN_ENABLED);
bitenumsof(ikev2_trans_type_esn_names, s)
-> DISABLED+ENABLED
trying to do it with the existing code is, er, annoying:
- the array ikev2_trans_type_esn_name containing the values I need is
out-of-reach - static
- the names have ESN_ hard-wired, and enum_names doesn't know this -
have to keep repeating the magic prefix
and while I'm at it:
- oh for "struct lswlog" so I could just accumulate my message in a
buffer and then send it out (to log or debug or ...)
Andrew
More information about the Swan-dev
mailing list