A counterpart to apr_itoa(), so that we can eliminate
some inefficient 'sprintf(foo, "%u", bar)' calls in the
httpd.


Index: srclib/apr/include/apr_strings.h =================================================================== RCS file: /home/cvspublic/apr/include/apr_strings.h,v retrieving revision 1.23 diff -u -r1.23 apr_strings.h --- srclib/apr/include/apr_strings.h 2001/12/02 09:20:23 1.23 +++ srclib/apr/include/apr_strings.h 2001/12/26 09:14:54 @@ -298,6 +298,14 @@ APR_DECLARE(char *) apr_itoa(apr_pool_t *p, int n);

/**
+ * create a string representation of an unsigned int, allocated from a pool
+ * @param p The pool from which to allocate
+ * @param n The number to format
+ * @return The string representation of the number
+ */
+APR_DECLARE(char *) apr_utoa(apr_pool_t *p, unsigned n);
+
+/**
 * create a string representation of a long, allocated from a pool
 * @param p The pool from which to allocate
 * @param n The number to format
Index: srclib/apr/strings/apr_strings.c
===================================================================
RCS file: /home/cvspublic/apr/strings/apr_strings.c,v
retrieving revision 1.23
diff -u -r1.23 apr_strings.c
--- srclib/apr/strings/apr_strings.c    2001/12/02 09:20:23    1.23
+++ srclib/apr/strings/apr_strings.c    2001/12/26 09:14:54
@@ -215,6 +215,19 @@
    return start;
}

+APR_DECLARE(char *) apr_utoa(apr_pool_t *p, unsigned n)
+{
+    const int BUFFER_SIZE = sizeof(unsigned) * 3 + 2;
+    char *buf = apr_palloc(p, BUFFER_SIZE);
+    char *start = buf + BUFFER_SIZE - 1;
+    *start = 0;
+    do {
+        *--start = '0' + (n % 10);
+        n /= 10;
+    } while (n);
+    return start;
+}
+
APR_DECLARE(char *) apr_ltoa(apr_pool_t *p, long n)
{
    const int BUFFER_SIZE = sizeof(long) * 3 + 2;




Reply via email to