Return TypeFunction nameArguments
const char*FormalNumber(unsigned int,unsigned int,)

Declared in file: hzTextproc.h
Defined in file : hzTextproc.cpp

Function Logic:

0:START 1:_hz_func_reg::ScratchPad pBuf i 2:nValue<0 3:* nValue 4:B M T U 5:nMaxlen>0 6:nMaxlen>16 7:nMaxlen 8:i[0]==(char)45 9:items 10:B 11:nMaxlen 12:M>99 13:nMaxlen 14:M>9 15:nMaxlen 16:M 17:nMaxlen 18:T>99 19:nMaxlen 20:T>9 21:nMaxlen 22:T 23:nMaxlen 24:U>99 25:nMaxlen 26:U>9 27:nMaxlen 28:items 29:nMaxlen>0; 30:* 31:B 32:sprintf 33:M 34:sprintf 35:T 36:sprintf 37:sprintf 38:Return pBuf

Function body:

const char* FormalNumber (unsigned int nValue, unsigned int nMaxlen)
{
   _hzfunc("FormalNumber(u32)") ;
   char*       i ;
   char*       pBuf ;
   uint32_t    B ;
   uint32_t    M ;
   uint32_t    T ;
   uint32_t    U ;
   i = pBuf = _thisfn.ScratchPad(16);
   if (nValue < 0)
   {
       *i++ = CHAR_MINUS ;
       nValue *= -1;
   }
   B = (nValue / 1000000000);
   M = (nValue % 1000000000)/1000000;
   T = (nValue % 1000000)/1000;
   U = (nValue % 1000);
   if (nMaxlen > 0)
   {
       if (nMaxlen > 16)
           nMaxlen = 16;
       if (i[0]== CHAR_MINUS)
           nMaxlen-- ;
       if      (B)         nMaxlen -= 13;
       else if (M > 99)nMaxlen -= 11;
       else if (M > 9)     nMaxlen -= 10;
       else if (M)         nMaxlen -= 9;
       else if (T > 99)nMaxlen -= 7;
       else if (T > 9)     nMaxlen -= 6;
       else if (T)         nMaxlen -= 5;
       else if (U > 99)nMaxlen -= 3;
       else if (U > 9)     nMaxlen -= 2;
       else
           nMaxlen-- ;
       for (; nMaxlen > 0; nMaxlen--)
           *i++ = CHAR_SPACE ;
   }
   if (B)      sprintf(i, "%u,%03u,%03u,%03u", B, M, T, U) ;
   else if (M) sprintf(i, "%u,%03u,%03u", M, T, U) ;
   else if (T) sprintf(i, "%u,%03u", T, U) ;
   else        sprintf(i, "%u", U) ;
   return pBuf ;
}