- for (i = 0; i < String->Length / sizeof(WCHAR); i++)
- {
- if (*Str == L'b')
- {
- Base = 2;
- lenmin++;
- }
- else if (*Str == L'o')
- {
- Base = 8;
- lenmin++;
- }
- else if (*Str == L'd')
- {
- Base = 10;
- lenmin++;
- }
- else if (*Str == L'x')
- {
- Base = 16;
- lenmin++;
- }
- else if (*Str == L'+')
- {
- lenmin++;
- }
- else if (*Str == L'-')
- {
- addneg = TRUE;
- lenmin++;
- }
- else if ((*Str > L'1') && (Base == 2))
- {
- return STATUS_INVALID_PARAMETER;
- }
- else if (((*Str > L'7') || (*Str < L'0')) && (Base == 8))
- {
- return STATUS_INVALID_PARAMETER;
- }
- else if (((*Str > L'9') || (*Str < L'0')) && (Base == 10))
- {
- return STATUS_INVALID_PARAMETER;
- }
- /*
- else if ((((*Str > L'9') || (*Str < L'0')) ||
- ((towupper (*Str) > L'F') ||
- (towupper (*Str) < L'A'))) && (Base == 16))
- */
- else if ((*Str < '0' ||
- (*Str > '9' && *Str < 'A') ||
- (*Str > 'F' && *Str < 'a') ||
- *Str > 'f') &&
- (Base == 16))
- {
- return STATUS_INVALID_PARAMETER;
- }
- else
- Str++;
- }