internal static char ParseFormatSpecifier(string format, out int digits)
{
digits = -1;
if (string.IsNullOrEmpty(format))
{
return 'R';
}
int i = 0;
char ch = format[i];
if (ch >= 'A' && ch <= 'Z' || ch >= 'a' && ch <= 'z')
{
i++;
int n = -1;
if (i < format.Length && format[i] >= '0' && format[i] <= '9')
{
n = format[i++] - '0';
while (i < format.Length && format[i] >= '0' && format[i] <= '9')
{
n = n * 10 + (format[i++] - '0');
if (n >= 10)
break;
}
}
if (i >= format.Length || format[i] == '\0')
{
digits = n;
return ch;
}
}
return (char)0; // Custom format
}