release
[hcoop/zz_old/debian/djbdns.git] / stralloc_num.c
CommitLineData
dc0d77d7
CE
1#include "stralloc.h"
2
3int stralloc_catulong0(stralloc *sa,unsigned long u,unsigned int n)
4{
5 unsigned int len;
6 unsigned long q;
7 char *s;
8
9 len = 1;
10 q = u;
11 while (q > 9) { ++len; q /= 10; }
12 if (len < n) len = n;
13
14 if (!stralloc_readyplus(sa,len)) return 0;
15 s = sa->s + sa->len;
16 sa->len += len;
17 while (len) { s[--len] = '0' + (u % 10); u /= 10; }
18
19 return 1;
20}
21
22int stralloc_catlong0(stralloc *sa,long l,unsigned int n)
23{
24 if (l < 0) {
25 if (!stralloc_append(sa,"-")) return 0;
26 l = -l;
27 }
28 return stralloc_catulong0(sa,l,n);
29}