diff options
Diffstat (limited to '')
| -rw-r--r-- | libcmap_sprint_range.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/libcmap_sprint_range.c b/libcmap_sprint_range.c index 800fee5..64d762a 100644 --- a/libcmap_sprint_range.c +++ b/libcmap_sprint_range.c @@ -1,10 +1,14 @@ /* See LICENSE file for copyright and license details. */ -#include "libcmap.h" -#include <limits.h> +#include "common.h" int libcmap_sprint_range(char *buf, const struct libcmap_range *range, const char *endash) { - return libcmap_snprint_range(buf, buf ? SIZE_MAX : (size_t)0, range, endash); + if (!buf) + return libcmap_snprint_range(NULL, 0, range, endash); + else if (range->first == range->last) + return sprintf(buf, SINGLETON_RANGE_FMT, SINGLETON_RANGE_ARGS(range)); + else + return sprintf(buf, RANGE_FMT, RANGE_ARGS(range, endash)); } |
