From 1480bd8dd27dc5bc638acda68b4822fddbfce0d5 Mon Sep 17 00:00:00 2001 From: Thierry FOURNIER Date: Sat, 6 Jun 2015 19:14:59 +0200 Subject: [PATCH] MINOR: standard: add function that converts signed int to a string This function is the same as "ultoa_r", but it takes a signed value as input. --- include/common/standard.h | 1 + src/standard.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/include/common/standard.h b/include/common/standard.h index 759d0a11c..df2444d33 100644 --- a/include/common/standard.h +++ b/include/common/standard.h @@ -105,6 +105,7 @@ extern int strlcpy2(char *dst, const char *src, int size); */ extern char itoa_str[][171]; extern char *ultoa_r(unsigned long n, char *buffer, int size); +extern char *sltoa_r(long n, char *buffer, int size); extern const char *ulltoh_r(unsigned long long n, char *buffer, int size); static inline const char *ultoa(unsigned long n) { diff --git a/src/standard.c b/src/standard.c index 4e458c25c..fb24f7d37 100644 --- a/src/standard.c +++ b/src/standard.c @@ -406,6 +406,22 @@ char *ultoa_r(unsigned long n, char *buffer, int size) return pos + 1; } +/* + * This function simply returns a locally allocated string containing + * the ascii representation for signed number 'n' in decimal. + */ +char *sltoa_r(long n, char *buffer, int size) +{ + char *pos; + + if (n >= 0) + return ultoa_r(n, buffer, size); + + pos = ultoa_r(-n, buffer + 1, size - 1) - 1; + *pos = '-'; + return pos; +} + /* * This function simply returns a locally allocated string containing * the ascii representation for number 'n' in decimal, formatted for