Line data Source code
1 : /* inttostr.c -- convert integers to printable strings
2 :
3 : Copyright (C) 2001, 2006 Free Software Foundation, Inc.
4 :
5 : This program is free software: you can redistribute it and/or modify
6 : it under the terms of the GNU General Public License as published by
7 : the Free Software Foundation; either version 3 of the License, or
8 : (at your option) any later version.
9 :
10 : This program is distributed in the hope that it will be useful,
11 : but WITHOUT ANY WARRANTY; without even the implied warranty of
12 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 : GNU General Public License for more details.
14 :
15 : You should have received a copy of the GNU General Public License
16 : along with this program. If not, see <http://www.gnu.org/licenses/>. */
17 :
18 : /* Written by Paul Eggert */
19 :
20 : #include <config.h>
21 :
22 : #include "inttostr.h"
23 :
24 : /* Convert I to a printable string in BUF, which must be at least
25 : INT_BUFSIZE_BOUND (INTTYPE) bytes long. Return the address of the
26 : printable string, which need not start at BUF. */
27 :
28 : char *
29 407 : inttostr (inttype i, char *buf)
30 : {
31 407 : char *p = buf + INT_STRLEN_BOUND (inttype);
32 407 : *p = 0;
33 :
34 75 : if (i < 0)
35 : {
36 : do
37 119 : *--p = '0' - i % 10;
38 119 : while ((i /= 10) != 0);
39 :
40 10 : *--p = '-';
41 : }
42 : else
43 : {
44 : do
45 437 : *--p = '0' + i % 10;
46 437 : while ((i /= 10) != 0);
47 : }
48 :
49 407 : return p;
50 : }
|