MINOR: standard: add function that converts signed int to a string
authorThierry FOURNIER <tfournier@arpalert.org>
Sat, 6 Jun 2015 17:14:59 +0000 (19:14 +0200)
committerWilly Tarreau <w@1wt.eu>
Sat, 13 Jun 2015 20:59:14 +0000 (22:59 +0200)
This function is the same as "ultoa_r", but it takes a signed value
as input.

include/common/standard.h
src/standard.c

index 759d0a1..df2444d 100644 (file)
@@ -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)
 {
index 4e458c2..fb24f7d 100644 (file)
@@ -408,6 +408,22 @@ char *ultoa_r(unsigned long n, char *buffer, int size)
 
 /*
  * 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
  * HTML output with tags to create visual grouping by 3 digits. The
  * output needs to support at least 171 characters.