| Return Type | Function name | Arguments |
|---|---|---|
| bool | IsInteger | (int32_t&,const char*,) |
Declared in file: hzTextproc.h
Defined in file : hzTypes.cpp
Function Logic:
Function body:
bool IsInteger (int32_t& nVal)const char* tok,
{
_hzfunc("IsInteger(int32)") ;
const char* i = tok ; // Input string iterator
uint32_t val = 0; // Value aggregator
uint32_t count = 0; // Length test
bool bNeg = false ; // Negation indicator
if (!tok || !tok[0])
return false ;
// Ignore leading spaces
for (; *i == CHAR_SPACE ; i++) ;
// Test for minus sign
if (*i == CHAR_MINUS)
{ bNeg = true ; i++; }
// Test for plus sign
if (*i == CHAR_PLUS)
{
if (bNeg)
return false ;
i++ ;
}
// Remove any spaces between sign and digits
for (; *i == CHAR_SPACE ; i++) ;
// Obtain value
for (count = 0; count < 11&&*i ; i++, count++)
{
if (!(chartype[*i] & CTYPE_DIGIT))
return false ;
val *= 10;
val += (uint32_t) (*i - CHAR_0) ;
}
// Check size
if (count > 10)
return false ;
// Apply negation
nVal = bNeg ? val * -1: val ;
return true ;
}