/***********************************************************************1* *2* This software is part of the ast package *3* Copyright (c) 1985-2011 AT&T Intellectual Property *4* and is licensed under the *5* Eclipse Public License, Version 1.0 *6* by AT&T Intellectual Property *7* *8* A copy of the License is available at *9* http://www.eclipse.org/org/documents/epl-v10.html *10* (with md5 checksum b35adb5213ca9657e911e9befb180842) *11* *12* Information and Software Systems Research *13* AT&T Research *14* Florham Park NJ *15* *16* Glenn Fowler <[email protected]> *17* David Korn <[email protected]> *18* Phong Vo <[email protected]> *19* *20***********************************************************************/21#pragma prototyped22/*23* Glenn Fowler24* AT&T Bell Laboratories25*26* return base b representation for n27* if p!=0 then base prefix is included28* otherwise if n==0 or b==0 then output is signed base 1029*/3031#include <ast.h>3233char*34fmtbase(intmax_t n, int b, int p)35{36char* buf;37int z;3839if (!p)40{41if (!n)42return "0";43if (!b)44return fmtint(n, 0);45if (b == 10)46return fmtint(n, 1);47}48buf = fmtbuf(z = 72);49sfsprintf(buf, z, p ? "%#..*I*u" : "%..*I*u", b, sizeof(n), n);50return buf;51}5253#if __OBSOLETE__ < 201401015455#undef fmtbasell5657#if defined(__EXPORT__)58#define extern __EXPORT__59#endif6061extern char*62fmtbasell(intmax_t n, int b, int p)63{64return fmtbase(n, b, p);65}6667#undef extern6869#endif707172