| 94 | } |
| 95 | |
| 96 | str bitmask_to_flag_list(enum flag_type type, int bitmask) |
| 97 | { |
| 98 | struct flag_entry *entry; |
| 99 | str ret; |
| 100 | |
| 101 | #ifdef EXTRA_DEBUG |
| 102 | LM_DBG("bitmask -> %u\n", bitmask); |
| 103 | #endif |
| 104 | ret.s = print_buffer; |
| 105 | ret.len = 0; |
| 106 | for (entry = flag_lists[type]; entry; entry = entry->next) { |
| 107 | |
| 108 | if (bitmask & (1 << entry->bit)) { |
| 109 | memcpy(ret.s + ret.len, entry->name.s, entry->name.len); |
| 110 | ret.len += entry->name.len; |
| 111 | |
| 112 | ret.s[ret.len++] = FLAG_DELIM; |
| 113 | } |
| 114 | } |
| 115 | |
| 116 | if (ret.len > 0) |
| 117 | ret.len--; |
| 118 | |
| 119 | return ret; |
| 120 | } |
| 121 | |
| 122 | int flag_list_to_bitmask(const str_const *flags, enum flag_type type, char delim, |
| 123 | int init_new_flags) |
no outgoing calls
no test coverage detected