I'm concerned that you've made a specific assumption of 2's compliment int. Nothing in the spec or real world assures us of this. Intel x86 is 2's compliment, but this is a bad assumption.
On Mon, Jul 23, 2018, 17:33 Yann Ylavic <ylavic....@gmail.com> wrote: > On Tue, Jul 24, 2018 at 12:28 AM, <n...@apache.org> wrote: > > > > @@ -387,18 +389,20 @@ APR_DECLARE(char *) apr_ltoa(apr_pool_t > > char *buf = apr_palloc(p, BUFFER_SIZE); > > char *start = buf + BUFFER_SIZE - 1; > > int negative; > > + unsigned int un; > > unsigned long for ltoa? > > > if (n < 0) { > > negative = 1; > > - n = -n; > > + un = -n; > > } > > else { > > negative = 0; > > + un = n; > > } > > *start = 0; > > do { > > - *--start = (char)('0' + (n % 10)); > > - n /= 10; > > - } while (n); > > + *--start = (char)('0' + (un % 10)); > > + un /= 10; > > + } while (un); > > if (negative) { > > *--start = '-'; > > } > > Regards, > Yann. >