for(; (fraction || lpc < field_width) && isdigit((*str)[0]); lpc++) {
for(; (fraction || lpc < field_width) && isdigit((int) (*str)[0]); lpc++) {
parse_int(char **str, int field_width, int uppper_bound, int *result){	int lpc = 0;	int intermediate = 0;	gboolean fraction = FALSE;	gboolean negate = FALSE;	CRM_DEV_ASSERT(str != NULL);	CRM_DEV_ASSERT(*str != NULL);	CRM_DEV_ASSERT(result != NULL);	*result = 0;	if(strlen(*str) <= 0) {		return FALSE;	}		crm_debug_6("max width: %d, first char: %c", field_width, (*str)[0]);		if((*str)[0] == '.' || (*str)[0] == ',') {		fraction = TRUE;		field_width = -1;		(*str)++;	} else if((*str)[0] == '-') {		negate = TRUE;		(*str)++;	} else if((*str)[0] == '+'		|| (*str)[0] == ':') {		(*str)++;	}	for(; (fraction || lpc < field_width) && isdigit((*str)[0]); lpc++) {		if(fraction) {			intermediate = ((*str)[0] - '0')/(10^lpc);		} else {			*result *= 10;			intermediate = (*str)[0] - '0';		}		*result += intermediate;		(*str)++;	}	if(fraction) {		*result = (int)(*result * uppper_bound);			} else if(uppper_bound > 0 && *result > uppper_bound) {		*result = uppper_bound;	}	if(negate) {		*result = 0 - *result;	}	if(lpc > 0) {		crm_debug_5("Found int: %d", *result);		return TRUE;	}	return FALSE;}