Parse a string supposed to be a double.
604 if (space_before)
while (isspace(*d)) d++;
605 for (st = INIT, p = d ; *p ; p++)
610 if (st == INIT || st == NEED_DIG) st = DIG;
611 else if (st == NEED_DIG_DEC) st = DIG_DEC;
612 else if (st == NEED_DIG_EXP || st == EXP) st = DIG_EXP;
613 else if (st == DIG || st == DIG_DEC || st == DIG_EXP);
618 if (st == DIG) st = NEED_DIG_DEC;
621 else if (*p ==
'-' || *p ==
'+')
623 if (st == INIT) st = NEED_DIG;
624 else if (st == EXP) st = NEED_DIG_EXP;
627 else if (*p ==
'e' || *p ==
'E')
629 if (st == DIG || st == DIG_DEC) st = EXP;
632 else if (isspace(*p))
634 if (!space_after)
gml_lwpgerror(
"invalid GML representation", 11);
635 if (st == DIG || st == DIG_DEC || st == DIG_EXP)st = END;
636 else if (st == NEED_DIG_DEC) st = END;
643 if (st != DIG && st != NEED_DIG_DEC && st != DIG_DEC && st != DIG_EXP && st != END)
static void gml_lwpgerror(char *msg, __attribute__((__unused__)) int error_code)