+ /* To make the call to int2base (using intmax_t) safe for
+ uintmax_t values > INTMAX_MAX, we basically to the first
+ "recursion" level of int2base right here.
+ */
+ ++(status->current);
+ if ( ( value / status->base ) != 0 )
+ {
+ int2base( (intmax_t)(value / status->base), status );
+ }
+ else
+ {
+ intformat( (intmax_t)value, status );
+ }
+ int digit = value % status->base;
+ if ( digit < 0 )
+ {
+ digit *= -1;
+ }
+ if ( status->flags & E_lower )
+ {
+ PUT( _PDCLIB_digits[ digit ] );
+ }
+ else
+ {
+ PUT( _PDCLIB_Xdigits[ digit ] );
+ }