return '0' + hi;
return L'0' + hi;
  char hack_digit (void)    {      mp_limb_t hi;      if (expsign != 0 && type == 'f' && exponent-- > 0)	hi = 0;      else if (scalesize == 0)	{	  hi = frac[fracsize - 1];	  cy = __mpn_mul_1 (frac, frac, fracsize - 1, 10);	  frac[fracsize - 1] = cy;	}      else	{	  if (fracsize < scalesize)	    hi = 0;	  else	    {	      hi = mpn_divmod (tmp, frac, fracsize, scale, scalesize);	      tmp[fracsize - scalesize] = hi;	      hi = tmp[0];	      fracsize = scalesize;	      while (fracsize != 0 && frac[fracsize - 1] == 0)		--fracsize;	      if (fracsize == 0)		{		  /* We're not prepared for an mpn variable with zero		     limbs.  */		  fracsize = 1;		  return '0' + hi;		}	    }	  cy = __mpn_mul_1 (frac, frac, fracsize, 10);	  if (cy != 0)	    frac[fracsize++] = cy;	}      return '0' + hi;    }