char *logmask_to_str(const log_mask_t &mask, char *buf, int size) { if (buf == nullptr || size <= 0) { return(buf); } int last_sev = -1; bool is_range = false; int len = 0; for (int sev = 0; sev < 256; sev++) { if (logmask_test(mask, static_cast<log_sev_t>(sev))) { if (last_sev == -1) { len += snprintf(&buf[len], size - len, "%d,", sev); } else { is_range = true; } last_sev = sev; } else { if (is_range) { buf[len - 1] = '-'; // change last comma to a dash len += snprintf(&buf[len], size - len, "%d,", last_sev); is_range = false; } last_sev = -1; } } // handle a range that ends on the last bit if (is_range && last_sev != -1) { buf[len - 1] = '-'; // change last comma to a dash len += snprintf(&buf[len], size - len, "%d", last_sev); } else { // Eat the last comma if (len > 0) { len--; } } buf[len] = 0; return(buf); } // logmask_to_str
/** * Returns whether a log severity is active. * * @param sev The severity * @return true/false */ bool log_sev_on(log_sev_t sev) { return(logmask_test(g_log.mask, sev)); }