From 11df5e469359dce4abeae36c5305c8bb2540cc40 Mon Sep 17 00:00:00 2001 From: Alex Kotov Date: Mon, 30 May 2022 16:37:53 +0300 Subject: [PATCH] Main: include/kernaux/ntoa.h: Return "char *" --- ChangeLog | 2 ++ include/kernaux/ntoa.h | 8 ++++---- src/ntoa.c | 16 ++++++++-------- tests/test_ntoa.c | 20 ++++++++++++++------ 4 files changed, 28 insertions(+), 18 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1880bf3..d9bb760 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,8 @@ * include/kernaux/ntoa.h: Constant "KERNAUX_UTOA_BUFFER_SIZE" renamed to "KERNAUX_UTOA_MIN_BUFFER_SIZE", "KERNAUX_ITOA_BUFFER_SIZE" to "KERNAUX_ITOA_MIN_BUFFER_SIZE" + * include/kernaux/ntoa.h: Functions "kernaux_[u|i]toa[10|16]" return the end + of a buffer 2022-05-28 Alex Kotov diff --git a/include/kernaux/ntoa.h b/include/kernaux/ntoa.h index d54ac21..70592ee 100644 --- a/include/kernaux/ntoa.h +++ b/include/kernaux/ntoa.h @@ -31,11 +31,11 @@ extern "C" { char *kernaux_utoa(uint64_t value, char *buffer, int base, const char *prefix); char *kernaux_itoa(int64_t value, char *buffer, int base, const char *prefix); -void kernaux_utoa10(uint64_t value, char *buffer); -void kernaux_itoa10(int64_t value, char *buffer); +char *kernaux_utoa10(uint64_t value, char *buffer); +char *kernaux_itoa10(int64_t value, char *buffer); -void kernaux_utoa16(uint64_t value, char *buffer); -void kernaux_itoa16(int64_t value, char *buffer); +char *kernaux_utoa16(uint64_t value, char *buffer); +char *kernaux_itoa16(int64_t value, char *buffer); #ifdef __cplusplus } diff --git a/src/ntoa.c b/src/ntoa.c index ef072bb..811184b 100644 --- a/src/ntoa.c +++ b/src/ntoa.c @@ -62,22 +62,22 @@ char *kernaux_itoa(int64_t value, char *buffer, int base, const char *const pref } } -void kernaux_utoa10(uint64_t value, char *buffer) +char *kernaux_utoa10(uint64_t value, char *buffer) { - kernaux_utoa(value, buffer, 'd', NULL); + return kernaux_utoa(value, buffer, 'd', NULL); } -void kernaux_itoa10(int64_t value, char *buffer) +char *kernaux_itoa10(int64_t value, char *buffer) { - kernaux_itoa(value, buffer, 'd', NULL); + return kernaux_itoa(value, buffer, 'd', NULL); } -void kernaux_utoa16(uint64_t value, char *buffer) +char *kernaux_utoa16(uint64_t value, char *buffer) { - kernaux_utoa(value, buffer, 'x', NULL); + return kernaux_utoa(value, buffer, 'x', NULL); } -void kernaux_itoa16(int64_t value, char *buffer) +char *kernaux_itoa16(int64_t value, char *buffer) { - kernaux_itoa(value, buffer, 'x', NULL); + return kernaux_itoa(value, buffer, 'x', NULL); } diff --git a/tests/test_ntoa.c b/tests/test_ntoa.c index a031db6..37b5614 100644 --- a/tests/test_ntoa.c +++ b/tests/test_ntoa.c @@ -512,8 +512,10 @@ int main() index < sizeof(utoa10_cases) / sizeof(utoa10_cases[0]); ++index ) { - kernaux_utoa10(utoa10_cases[index].value, buffer); + const char *const end1 = + kernaux_utoa10(utoa10_cases[index].value, buffer); assert(strcmp(buffer, utoa10_cases[index].result) == 0); + assert(end1 == str_end(buffer)); } } @@ -527,14 +529,16 @@ int main() ) { const int64_t value = itoa10_cases[index].value; - kernaux_itoa10(value, buffer); + const char *const end1 = kernaux_itoa10(value, buffer); assert(strcmp(buffer, itoa10_cases[index].result) == 0); + assert(end1 == str_end(buffer)); if (value <= 0) continue; - kernaux_itoa10(-value, buffer); + const char *const end2 = kernaux_itoa10(-value, buffer); assert(buffer[0] == '-'); assert(strcmp(&buffer[1], itoa10_cases[index].result) == 0); + assert(end2 == str_end(buffer)); } } @@ -546,8 +550,10 @@ int main() index < sizeof(utoa16_cases) / sizeof(utoa16_cases[0]); ++index ) { - kernaux_utoa16(utoa16_cases[index].value, buffer); + const char *const end1 = + kernaux_utoa16(utoa16_cases[index].value, buffer); assert(strcmp(buffer, utoa16_cases[index].result) == 0); + assert(end1 == str_end(buffer)); } } @@ -561,14 +567,16 @@ int main() ) { const int64_t value = itoa16_cases[index].value; - kernaux_itoa16(value, buffer); + const char *const end1 = kernaux_itoa16(value, buffer); assert(strcmp(buffer, itoa16_cases[index].result) == 0); + assert(end1 == str_end(buffer)); if (value <= 0) continue; - kernaux_itoa16(-value, buffer); + const char *const end2 = kernaux_itoa16(-value, buffer); assert(buffer[0] == '-'); assert(strcmp(&buffer[1], itoa16_cases[index].result) == 0); + assert(end2 == str_end(buffer)); } }