static PRBool CJKIdeographicToText(PRInt32 ordinal, nsString& result,
static const PRBool CJKIdeographicToText(PRInt32 ordinal, nsString& result,
static PRBool CJKIdeographicToText(PRInt32 ordinal, nsString& result,                                    const PRUnichar* digits,                                   const PRUnichar *unit,                                    const PRUnichar* unit10k){// In theory, we need the following if condiction,// However, the limit, 10 ^ 16, is greater than the max of PRUint32// so we don't really need to test it here.// if( ordinal > 9999999999999999)// {//    PR_snprintf(cbuf, sizeof(cbuf), "%ld", ordinal);//    result.Append(cbuf);// } // else // {  if (ordinal < 0) {    DecimalToText(ordinal, result);    return PR_FALSE;  }  PRUnichar c10kUnit = 0;  PRUnichar cUnit = 0;  PRUnichar cDigit = 0;  PRUint32 ud = 0;  PRUnichar buf[NUM_BUF_SIZE];  PRInt32 idx = NUM_BUF_SIZE;  PRBool bOutputZero = ( 0 == ordinal );  do {    if(0 == (ud % 4)) {      c10kUnit = unit10k[ud/4];    }    PRInt32 cur = ordinal % 10;    cDigit = digits[cur];    if( 0 == cur)    {      cUnit = 0;      if(bOutputZero) {        bOutputZero = PR_FALSE;        if(0 != cDigit)          buf[--idx] = cDigit;      }    }    else    {      bOutputZero = PR_TRUE;      cUnit = unit[ud%4];      if(0 != c10kUnit)        buf[--idx] = c10kUnit;      if(0 != cUnit)        buf[--idx] = cUnit;      if((0 != cDigit) &&          ( (1 != cur) || (1 != (ud%4)) || ( ordinal > 10)) )        buf[--idx] = cDigit;      c10kUnit =  0;    }    ordinal /= 10;    ++ud;  } while( ordinal > 0);  result.Append(buf+idx,NUM_BUF_SIZE-idx);// }  return PR_TRUE;}