Show
Ignore:
Timestamp:
05/10/99 17:29:29 (15 years ago)
Author:
ucaccsp
Message:

Updates to get rid of the ERANGE trouble (well, to work around it really).

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • common/trunk/src/mbus.c

    r140 r141  
    983983{ 
    984984        char    *p; 
     985 
     986        while (isspace((unsigned char)*m->parse_buffer[m->parse_depth])) { 
     987                m->parse_buffer[m->parse_depth]++; 
     988        } 
     989 
    985990        *i = strtol(m->parse_buffer[m->parse_depth], &p, 10); 
    986         if (errno == ERANGE) { 
     991        if (((*i == LONG_MAX) || (*i == LONG_MIN)) && (errno == ERANGE)) { 
    987992                debug_msg("integer out of range\n"); 
    988993                return FALSE; 
     
    10021007{ 
    10031008        char    *p; 
     1009        while (isspace((unsigned char)*m->parse_buffer[m->parse_depth])) { 
     1010                m->parse_buffer[m->parse_depth]++; 
     1011        } 
     1012 
    10041013        *d = strtod(m->parse_buffer[m->parse_depth], &p); 
     1014        if (errno == ERANGE) { 
     1015                debug_msg("float out of range\n"); 
     1016                return FALSE; 
     1017        } 
    10051018 
    10061019        if (p == m->parse_buffer[m->parse_depth]) {