itoa.c revision 75584
1/* Copyright (C) 1989, 1990, 1991, 1992, 2000 Free Software Foundation, Inc. 2 Written by James Clark (jjc@jclark.com) 3 4This file is part of groff. 5 6groff is free software; you can redistribute it and/or modify it under 7the terms of the GNU General Public License as published by the Free 8Software Foundation; either version 2, or (at your option) any later 9version. 10 11groff is distributed in the hope that it will be useful, but WITHOUT ANY 12WARRANTY; without even the implied warranty of MERCHANTABILITY or 13FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14for more details. 15 16You should have received a copy of the GNU General Public License along 17with groff; see the file COPYING. If not, write to the Free Software 18Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ 19 20#define INT_DIGITS 19 /* enough for 64 bit integer */ 21 22char *i_to_a(i) 23 int i; 24{ 25 /* Room for INT_DIGITS digits, - and '\0' */ 26 static char buf[INT_DIGITS + 2]; 27 char *p = buf + INT_DIGITS + 1; /* points to terminating '\0' */ 28 if (i >= 0) { 29 do { 30 *--p = '0' + (i % 10); 31 i /= 10; 32 } while (i != 0); 33 return p; 34 } 35 else { /* i < 0 */ 36 do { 37 *--p = '0' - (i % 10); 38 i /= 10; 39 } while (i != 0); 40 *--p = '-'; 41 } 42 return p; 43} 44