static const char *size_limit_to_str(size_t min_size, size_t max_size) { static char buf[128]; char *ptr, *end; ptr = buf; end = buf + sizeof(buf); if ((min_size == 0) && (max_size == SIZE_MAX)) { snprintf(ptr, end - ptr, "unlimited"); } else { if (min_size == 0) { snprintf(ptr, end - ptr, "<= "); ptr += strlen(ptr); } else { ucs_memunits_to_str(min_size, ptr, end - ptr); ptr += strlen(ptr); snprintf(ptr, end - ptr, ".."); ptr += strlen(ptr); } ucs_memunits_to_str(max_size, ptr, end - ptr); } return buf; }
int ucs_config_sprintf_memunits(char *buf, size_t max, void *src, const void *arg) { size_t sz = *(size_t*)src; if (sz == UCS_CONFIG_MEMUNITS_INF) { snprintf(buf, max, "inf"); } else if (sz == UCS_CONFIG_MEMUNITS_AUTO) { snprintf(buf, max, "auto"); } else { ucs_memunits_to_str(sz, buf, max); } return 1; }