static const char sheadp1[] = "#ifndef CONFCONF_HEAD_H\n" "#define CONFCONF_HEAD_H\n" "\n" "#include \n" "#include \n" "#include \n" "\n" "#ifndef CONFCONF_ALLOCWIDTH\n" "#define CONFCONF_ALLOCWIDTH 32\n" "#endif\n" "\n" "enum confconf_result_type {\n" " CONFCONF_SUCCESS = 0,\n" " CONFCONF_ERR_UNEXPECTED_EOF,\n" " CONFCONF_ERR_UNEXPECTED_TOKEN,\n" " CONFCONF_ERR_HASH_DUPLICATE_KEY,\n" " CONFCONF_ERR_RANGE,\n" " CONFCONF_ERR_MISSING_VARIABLE,\n" " CONFCONF_ERR_MEMORY,\n" " CONFCONF_ERR_BAD_ALLOC_WIDTH,\n" "};\n" "\n" "struct confconf_priv_state {\n" " void *fp;\n" " int (*gcp)(void *);\n" " int (*ugcp)(int, void *);\n" " size_t line;\n" " size_t col;\n" " size_t byte;\n" " size_t sbuf_len;\n" " size_t sbuf_mlen;\n" " char *sbuf;\n" " void *vp;\n" "};\n" "\n" "static int\n" "confconf_priv_gcp_file(void *fp)\n" "{\n" " return getc((FILE *)fp);\n" "}\n" "\n" "static int\n" "confconf_priv_ugcp_file(int c, void *fp)\n" "{\n" " return ungetc(c, (FILE *)fp);\n" "}\n" "\n" "static void\n" "confconf_priv_eat_space(struct confconf_priv_state *st)\n" "{\n" " int c;\n" "\n" " while (true) {\n" " c = (*(st->gcp))(st->fp);\n" "\n" " if (c == '#') {\n" " st->col++;\n" " st->byte++;\n" "\n" " do {\n" " c = (*(st->gcp))(st->fp);\n" " st->col++;\n" " st->byte++;\n" " } while (c != '\\n' && c != EOF);\n" "\n" " if (c == '\\n') {\n" " st->col = 1;\n" " st->line++;\n" " continue;\n" " } else {\n" " st->col--;\n" " st->byte--;\n" " return;\n" " }\n" " }\n" "\n" " if (c == ' ' || c == '\\f' || c == '\\n'\n" " || c == '\\r' || c == '\\t' || c == '\\v'\n" " ) {\n" " while (c == ' ' || c == '\\f' || c == '\\n'\n" " || c == '\\r' || c == '\\t' || c == '\\v'\n" " ) {\n" " if (c == '\\n') {\n" " st->col = 1;\n" " st->line++;\n" " } else {\n" " st->col++;\n" " }\n" " st->byte++;\n" "\n" " c = (*(st->gcp))(st->fp);\n" " }\n" "\n" " if (c == EOF) {\n" " return;\n" " } else {\n" " (*(st->ugcp))(c, st->fp);\n" " continue;\n" " }\n" " }\n" "\n" " (*(st->ugcp))(c, st->fp);\n" " break;\n" " }\n" "}\n" "\n" "static bool\n" "confconf_priv_push_char(struct confconf_priv_state *st, char c)\n" "{\n" " char *stmp;\n" "\n" " if (st->sbuf_len == st->sbuf_mlen\n" " || st->sbuf_len + 1 == st->sbuf_mlen\n" " ) {\n" " st->sbuf_mlen += CONFCONF_ALLOCWIDTH;\n" " stmp = realloc(st->sbuf, st->sbuf_mlen * sizeof(char));\n" " \n" " if (stmp == NULL) {\n" " if (st->sbuf != NULL)\n" " free(st->sbuf);\n" " st->sbuf = NULL;\n" " return false;\n" " }\n" "\n" " st->sbuf = stmp;\n" " }\n" "\n" " st->sbuf[st->sbuf_len] = c;\n" " st->sbuf_len++;\n" " st->sbuf[st->sbuf_len] = '\\0';\n" "\n" " return true;\n" "}\n" "\n" ; static const char sheadp2[] = "struct confconf_priv_pos {\n" " size_t line;\n" " size_t col;\n" " size_t byte;\n" "};\n" "\n" "static struct confconf_priv_pos\n" "confconf_priv_pos_get(struct confconf_priv_state *st)\n" "{\n" " struct confconf_priv_pos pos = {\n" " .line = st->line,\n" " .col = st->col,\n" " .byte = st->byte,\n" " };\n" "\n" " return pos;\n" "}\n" "static void\n" "confconf_priv_pos_set(struct confconf_priv_state *st,\n" " struct confconf_priv_pos pos)\n" "{\n" " st->line = pos.line;\n" " st->col = pos.col;\n" " st->byte = pos.byte;\n" "}\n" "\n" "static enum confconf_result_type\n" "confconf_priv_get_tok(struct confconf_priv_state *st)\n" "{\n" " int c;\n" "\n" " st->sbuf_len = 0;\n" "\n" " c = (*(st->gcp))(st->fp);\n" "\n" " if (c == EOF)\n" " return CONFCONF_ERR_UNEXPECTED_EOF;\n" "\n" " while (c != ' ' && c != '\\f' && c != '\\n'\n" " && c != '\\r' && c != '\\t' && c != '\\v'\n" " && c != ']' && c != '}'\n" " && c != '[' && c != '{'\n" " && c != ',' && c != ':'\n" " && c != '\\'' && c != '\"'\n" " && c != '=' && c != EOF\n" " ) {\n" " if ( !confconf_priv_push_char(st, (char)c) )\n" " return CONFCONF_ERR_MEMORY;\n" "\n" " c = (*(st->gcp))(st->fp);\n" " }\n" "\n" " if (st->sbuf_len == 0) {\n" " if (c == ' ' || c == '\\f' || c == '\\n'\n" " || c == '\\r' || c == '\\t' || c == '\\v'\n" " ) {\n" " (*(st->ugcp))(c, st->fp);\n" " if ( !confconf_priv_push_char(st, '\\0') )\n" " return CONFCONF_ERR_MEMORY;\n" " } else {\n" " if ( !confconf_priv_push_char(st, (char)c) )\n" " return CONFCONF_ERR_MEMORY;\n" " st->sbuf_len = 1;\n" " }\n" " } else {\n" " (*(st->ugcp))(c, st->fp);\n" " }\n" "\n" " st->col += st->sbuf_len;\n" " st->byte += st->sbuf_len;\n" "\n" " return CONFCONF_SUCCESS;\n" "}\n" "\n" "static enum confconf_result_type\n" "confconf_priv_get_id(struct confconf_priv_state *st)\n" "{\n" " enum confconf_result_type r;\n" " char *off;\n" " struct confconf_priv_pos pos;\n" "\n" " pos = confconf_priv_pos_get(st);\n" " r = confconf_priv_get_tok(st);\n" "\n" " if (r != CONFCONF_SUCCESS)\n" " return r;\n" "\n" " for (off = st->sbuf; *off != '\\0'; off++) {\n" " if (*off >= '0' && *off <= '9')\n" " continue;\n" "\n" " if (\n" " *off == 'a' || *off == 'b' || *off == 'c' ||\n" " *off == 'd' || *off == 'e' || *off == 'f' ||\n" " *off == 'g' || *off == 'h' || *off == 'i' ||\n" " *off == 'j' || *off == 'k' || *off == 'l' ||\n" " *off == 'm' || *off == 'n' || *off == 'o' ||\n" " *off == 'p' || *off == 'q' || *off == 'r' ||\n" " *off == 's' || *off == 't' || *off == 'u' ||\n" " *off == 'v' || *off == 'w' || *off == 'x' ||\n" " *off == 'y' || *off == 'z' ||\n" " *off == 'A' || *off == 'B' || *off == 'C' ||\n" " *off == 'D' || *off == 'E' || *off == 'F' ||\n" " *off == 'G' || *off == 'H' || *off == 'I' ||\n" " *off == 'J' || *off == 'K' || *off == 'L' ||\n" " *off == 'M' || *off == 'N' || *off == 'O' ||\n" " *off == 'P' || *off == 'Q' || *off == 'R' ||\n" " *off == 'S' || *off == 'T' || *off == 'U' ||\n" " *off == 'V' || *off == 'W' || *off == 'X' ||\n" " *off == 'Y' || *off == 'Z' ||\n" " *off == '-' || *off == '_'\n" " ) {\n" " continue;\n" " }\n" "\n" " confconf_priv_pos_set(st, pos);\n" " return CONFCONF_ERR_UNEXPECTED_TOKEN;\n" " }\n" "\n" " return CONFCONF_SUCCESS;\n" "}\n" "\n" "#endif\n" "\n" ; static const char sbool[] = "#ifndef CONFCONF_BOOL_H\n" "#define CONFCONF_BOOL_H\n" "\n" "static enum confconf_result_type\n" "confconf_priv_get_bool(struct confconf_priv_state *st)\n" "{\n" " enum confconf_result_type r;\n" " bool *b = st->vp;\n" " char *off;\n" " struct confconf_priv_pos pos;\n" "\n" " pos = confconf_priv_pos_get(st);\n" " r = confconf_priv_get_tok(st);\n" "\n" " if (r != CONFCONF_SUCCESS)\n" " return r;\n" "\n" " off = st->sbuf;\n" "\n" " if (*off == 't' || *off == 'T') {\n" " if (\n" " (*(++off) == 'r' || *off == 'R') &&\n" " (*(++off) == 'u' || *off == 'U') &&\n" " (*(++off) == 'e' || *off == 'E') &&\n" " (*(++off) == '\\0')\n" " ) {\n" " *b = true;\n" " return CONFCONF_SUCCESS;\n" " } else {\n" " confconf_priv_pos_set(st, pos);\n" " return CONFCONF_ERR_UNEXPECTED_TOKEN;\n" " }\n" " }\n" "\n" " if (*off == 'y' || *off == 'Y') {\n" " if (\n" " (*(++off) == 'e' || *off == 'E') &&\n" " (*(++off) == 's' || *off == 'S') &&\n" " (*(++off) == '\\0')\n" " ) {\n" " *b = true;\n" " return CONFCONF_SUCCESS;\n" " } else {\n" " confconf_priv_pos_set(st, pos);\n" " return CONFCONF_ERR_UNEXPECTED_TOKEN;\n" " }\n" " }\n" "\n" " if (*off == 'n' || *off == 'N') {\n" " if (\n" " (*(++off) == 'o' || *off == 'O') &&\n" " (*(++off) == '\\0')\n" " ) {\n" " *b = false;\n" " return CONFCONF_SUCCESS;\n" " } else {\n" " confconf_priv_pos_set(st, pos);\n" " return CONFCONF_ERR_UNEXPECTED_TOKEN;\n" " }\n" " }\n" "\n" " if (*off == 'f' || *off == 'F') {\n" " if (\n" " (*(++off) == 'a' || *off == 'A') &&\n" " (*(++off) == 'l' || *off == 'L') &&\n" " (*(++off) == 's' || *off == 'S') &&\n" " (*(++off) == 'e' || *off == 'E') &&\n" " (*(++off) == '\\0')\n" " ) {\n" " *b = false;\n" " return CONFCONF_SUCCESS;\n" " } else {\n" " confconf_priv_pos_set(st, pos);\n" " return CONFCONF_ERR_UNEXPECTED_TOKEN;\n" " }\n" " }\n" "\n" " if (*off == 'o' || *off == 'O') {\n" " if (\n" " (*(off+1) == 'n' || *(off+1) == 'N') &&\n" " (*(off+2) == '\\0')\n" " ) {\n" " *b = true;\n" " return CONFCONF_SUCCESS;\n" " }\n" "\n" " if (\n" " (*(++off) == 'f' || *off == 'F') &&\n" " (*(++off) == 'f' || *off == 'F') &&\n" " (*(++off) == '\\0')\n" " ) {\n" " *b = false;\n" " return CONFCONF_SUCCESS;\n" " } else {\n" " confconf_priv_pos_set(st, pos);\n" " return CONFCONF_ERR_UNEXPECTED_TOKEN;\n" " }\n" " }\n" "\n" " confconf_priv_pos_set(st, pos);\n" " return CONFCONF_ERR_UNEXPECTED_TOKEN;\n" "}\n" "\n" "#endif\n" "\n" ; static const char sstring[] = "#ifndef CONFCONF_STRING_H\n" "#define CONFCONF_STRING_H\n" "\n" "#include \n" "\n" "static char*\n" "confconf_priv_dup_sbuf(struct confconf_priv_state *st)\n" "{\n" " char *s;\n" "\n" " s = malloc((st->sbuf_len + 1) * sizeof(char));\n" "\n" " if (s == NULL)\n" " return NULL;\n" "\n" " if (st->sbuf_len == 0)\n" " s[0] = '\\0';\n" " else\n" " strcpy(s, st->sbuf);\n" "\n" " return s;\n" "}\n" "\n" "static enum confconf_result_type\n" "confconf_priv_get_str(struct confconf_priv_state *st)\n" "{\n" " int c, endc;\n" " bool escape = false;\n" " enum confconf_result_type r;\n" " struct confconf_priv_pos pos;\n" "\n" " c = (*(st->gcp))(st->fp);\n" "\n" " if (c == EOF)\n" " return CONFCONF_ERR_UNEXPECTED_EOF;\n" "\n" " if (c != '\\'' && c != '\\\"') {\n" " (*(st->ugcp))(c, st->fp);\n" " pos = confconf_priv_pos_get(st);\n" " r = confconf_priv_get_tok(st);\n" "\n" " if (r != CONFCONF_SUCCESS)\n" " return r;\n" "\n" " confconf_priv_pos_set(st, pos);\n" " return CONFCONF_ERR_UNEXPECTED_TOKEN;\n" " }\n" "\n" " endc = c;\n" " st->col++;\n" " st->byte++;\n" "\n" " st->sbuf_len = 0;\n" "\n" " while (true) {\n" " c = (*(st->gcp))(st->fp);\n" "\n" " if (c == EOF)\n" " return CONFCONF_ERR_UNEXPECTED_EOF;\n" "\n" " st->col++;\n" " st->byte++;\n" "\n" " if (c == endc && !escape)\n" " break;\n" "\n" " if (c == '\\\\' && !escape) {\n" " escape = true;\n" " continue;\n" " }\n" "\n" " escape = false;\n" "\n" " if (c == '\\n') {\n" " st->col = 1;\n" " st->line++;\n" " }\n" "\n" " if ( !confconf_priv_push_char(st, (char)c) )\n" " return CONFCONF_ERR_MEMORY;\n" " }\n" "\n" " return CONFCONF_SUCCESS;\n" "}\n" "\n" "#endif\n" "\n" ; static const char sint[] = "#ifndef CONFCONF_INT_H\n" "#define CONFCONF_INT_H\n" "\n" "#include \n" "#include \n" "\n" "static enum confconf_result_type\n" "confconf_priv_get_int(struct confconf_priv_state *st)\n" "{\n" " enum confconf_result_type r;\n" " int *i = st->vp;\n" " long int local_i;\n" " char *check;\n" " struct confconf_priv_pos pos;\n" "\n" " pos = confconf_priv_pos_get(st);\n" " r = confconf_priv_get_tok(st);\n" "\n" " if (r != CONFCONF_SUCCESS)\n" " return r;\n" "\n" " errno = EILSEQ;\n" " local_i = strtol(st->sbuf, &check, 0);\n" "\n" " if (errno == ERANGE) {\n" " confconf_priv_pos_set(st, pos);\n" " return CONFCONF_ERR_RANGE;\n" " }\n" "\n" " if (*check != '\\0') {\n" " confconf_priv_pos_set(st, pos);\n" " return CONFCONF_ERR_UNEXPECTED_TOKEN;\n" " }\n" "\n" " if (local_i > INT_MAX || local_i < INT_MIN) {\n" " confconf_priv_pos_set(st, pos);\n" " return CONFCONF_ERR_RANGE;\n" " }\n" "\n" " *i = (int)local_i;\n" " return CONFCONF_SUCCESS;\n" "}\n" "\n" "#endif\n" "\n" ; static const char sintl[] = "#ifndef CONFCONF_INTL_H\n" "#define CONFCONF_INTL_H\n" "\n" "#include \n" "\n" "static enum confconf_result_type\n" "confconf_priv_get_intl(struct confconf_priv_state *st)\n" "{\n" " enum confconf_result_type r;\n" " long int *il = st->vp;\n" " char *check;\n" " struct confconf_priv_pos pos;\n" "\n" " pos = confconf_priv_pos_get(st);\n" " r = confconf_priv_get_tok(st);\n" "\n" " if (r != CONFCONF_SUCCESS)\n" " return r;\n" "\n" " errno = EILSEQ;\n" " *il = strtol(st->sbuf, &check, 0);\n" "\n" " if (errno == ERANGE) {\n" " confconf_priv_pos_set(st, pos);\n" " return CONFCONF_ERR_RANGE;\n" " }\n" "\n" " if (*check != '\\0') {\n" " confconf_priv_pos_set(st, pos);\n" " return CONFCONF_ERR_UNEXPECTED_TOKEN;\n" " }\n" "\n" " return CONFCONF_SUCCESS;\n" "}\n" "\n" "#endif\n" "\n" ; static const char sintll[] = "#ifndef CONFCONF_INTLL_H\n" "#define CONFCONF_INTLL_H\n" "\n" "#include \n" "\n" "static enum confconf_result_type\n" "confconf_priv_get_intll(struct confconf_priv_state *st)\n" "{\n" " enum confconf_result_type r;\n" " long long int *ill = st->vp;\n" " char *check;\n" " struct confconf_priv_pos pos;\n" "\n" " pos = confconf_priv_pos_get(st);\n" " r = confconf_priv_get_tok(st);\n" "\n" " if (r != CONFCONF_SUCCESS)\n" " return r;\n" "\n" " errno = EILSEQ;\n" " *ill = strtoll(st->sbuf, &check, 0);\n" "\n" " if (errno == ERANGE) {\n" " confconf_priv_pos_set(st, pos);\n" " return CONFCONF_ERR_RANGE;\n" " }\n" "\n" " if (*check != '\\0') {\n" " confconf_priv_pos_set(st, pos);\n" " return CONFCONF_ERR_UNEXPECTED_TOKEN;\n" " }\n" "\n" " return CONFCONF_SUCCESS;\n" "}\n" "\n" "#endif\n" "\n" ; static const char suint[] = "#ifndef CONFCONF_UINT_H\n" "#define CONFCONF_UINT_H\n" "\n" "#include \n" "#include \n" "\n" "static enum confconf_result_type\n" "confconf_priv_get_uint(struct confconf_priv_state *st)\n" "{\n" " enum confconf_result_type r;\n" " unsigned *u = st->vp;\n" " long unsigned u_local;\n" " char *check;\n" " struct confconf_priv_pos pos;\n" "\n" " pos = confconf_priv_pos_get(st);\n" " r = confconf_priv_get_tok(st);\n" "\n" " if (r != CONFCONF_SUCCESS)\n" " return r;\n" "\n" " errno = EILSEQ;\n" " u_local = strtoul(st->sbuf, &check, 0);\n" "\n" " if (errno == ERANGE) {\n" " confconf_priv_pos_set(st, pos);\n" " return CONFCONF_ERR_RANGE;\n" " }\n" "\n" " if (*check != '\\0') {\n" " confconf_priv_pos_set(st, pos);\n" " return CONFCONF_ERR_UNEXPECTED_TOKEN;\n" " }\n" "\n" " if (u_local > UINT_MAX) {\n" " confconf_priv_pos_set(st, pos);\n" " return CONFCONF_ERR_RANGE;\n" " }\n" "\n" " *u = (unsigned)u_local;\n" " return CONFCONF_SUCCESS;\n" "}\n" "\n" "#endif\n" "\n" ; static const char suintl[] = "#ifndef CONFCONF_UINTL_H\n" "#define CONFCONF_UINTL_H\n" "\n" "#include \n" "\n" "static enum confconf_result_type\n" "confconf_priv_get_uintl(struct confconf_priv_state *st)\n" "{\n" " enum confconf_result_type r;\n" " long unsigned *ul = st->vp;\n" " char *check;\n" " struct confconf_priv_pos pos;\n" "\n" " pos = confconf_priv_pos_get(st);\n" " r = confconf_priv_get_tok(st);\n" "\n" " if (r != CONFCONF_SUCCESS)\n" " return r;\n" "\n" " errno = EILSEQ;\n" " *ul = strtoul(st->sbuf, &check, 0);\n" "\n" " if (errno == ERANGE) {\n" " confconf_priv_pos_set(st, pos);\n" " return CONFCONF_ERR_RANGE;\n" " }\n" "\n" " if (*check != '\\0') {\n" " confconf_priv_pos_set(st, pos);\n" " return CONFCONF_ERR_UNEXPECTED_TOKEN;\n" " }\n" "\n" " return CONFCONF_SUCCESS;\n" "}\n" "\n" "#endif\n" "\n" ; static const char suintll[] = "#ifndef CONFCONF_UINTLL_H\n" "#define CONFCONF_UINTLL_H\n" "\n" "#include \n" "\n" "static enum confconf_result_type\n" "confconf_priv_get_uintll(struct confconf_priv_state *st)\n" "{\n" " enum confconf_result_type r;\n" " long long unsigned *ull = st->vp;\n" " char *check;\n" " struct confconf_priv_pos pos;\n" "\n" " pos = confconf_priv_pos_get(st);\n" " r = confconf_priv_get_tok(st);\n" "\n" " if (r != CONFCONF_SUCCESS)\n" " return r;\n" "\n" " errno = EILSEQ;\n" " *ull = strtoull(st->sbuf, &check, 0);\n" "\n" " if (errno == ERANGE) {\n" " confconf_priv_pos_set(st, pos);\n" " return CONFCONF_ERR_RANGE;\n" " }\n" "\n" " if (*check != '\\0') {\n" " confconf_priv_pos_set(st, pos);\n" " return CONFCONF_ERR_UNEXPECTED_TOKEN;\n" " }\n" "\n" " return CONFCONF_SUCCESS;\n" "}\n" "\n" "#endif\n" "\n" ; static const char sfloat[] = "#ifndef CONFCONF_FLOAT_H\n" "#define CONFCONF_FLOAT_H\n" "\n" "#include \n" "\n" "static enum confconf_result_type\n" "confconf_priv_get_float(struct confconf_priv_state *st)\n" "{\n" " enum confconf_result_type r;\n" " float *f = st->vp;\n" " char *check;\n" " struct confconf_priv_pos pos;\n" "\n" " pos = confconf_priv_pos_get(st);\n" " r = confconf_priv_get_tok(st);\n" "\n" " if (r != CONFCONF_SUCCESS)\n" " return r;\n" "\n" " errno = EILSEQ;\n" " *f = strtof(st->sbuf, &check);\n" "\n" " if (errno == ERANGE) {\n" " confconf_priv_pos_set(st, pos);\n" " return CONFCONF_ERR_RANGE;\n" " }\n" "\n" " if (*check != '\\0') {\n" " confconf_priv_pos_set(st, pos);\n" " return CONFCONF_ERR_UNEXPECTED_TOKEN;\n" " }\n" "\n" " return CONFCONF_SUCCESS;\n" "}\n" "\n" "#endif\n" "\n" ; static const char sdouble[] = "#ifndef CONFCONF_DOUBLE_H\n" "#define CONFCONF_DOUBLE_H\n" "\n" "#include \n" "\n" "static enum confconf_result_type\n" "confconf_priv_get_double(struct confconf_priv_state *st)\n" "{\n" " enum confconf_result_type r;\n" " double *d = st->vp;\n" " char *check;\n" " struct confconf_priv_pos pos;\n" "\n" " pos = confconf_priv_pos_get(st);\n" " r = confconf_priv_get_tok(st);\n" "\n" " if (r != CONFCONF_SUCCESS)\n" " return r;\n" "\n" " errno = EILSEQ;\n" " *d = strtod(st->sbuf, &check);\n" "\n" " if (errno == ERANGE) {\n" " confconf_priv_pos_set(st, pos);\n" " return CONFCONF_ERR_RANGE;\n" " }\n" "\n" " if (*check != '\\0') {\n" " confconf_priv_pos_set(st, pos);\n" " return CONFCONF_ERR_UNEXPECTED_TOKEN;\n" " }\n" "\n" " return CONFCONF_SUCCESS;\n" "}\n" "\n" "#endif\n" "\n" ; static const char sdoublel[] = "#ifndef CONFCONF_DOUBLEL_H\n" "#define CONFCONF_DOUBLEL_H\n" "\n" "#include \n" "\n" "static enum confconf_result_type\n" "confconf_priv_get_doublel(struct confconf_priv_state *st)\n" "{\n" " enum confconf_result_type r;\n" " long double *dl = st->vp;\n" " char *check;\n" " struct confconf_priv_pos pos;\n" "\n" " pos = confconf_priv_pos_get(st);\n" " r = confconf_priv_get_tok(st);\n" "\n" " if (r != CONFCONF_SUCCESS)\n" " return r;\n" "\n" " errno = EILSEQ;\n" " *dl = strtold(st->sbuf, &check);\n" "\n" " if (errno == ERANGE) {\n" " confconf_priv_pos_set(st, pos);\n" " return CONFCONF_ERR_RANGE;\n" " }\n" "\n" " if (*check != '\\0') {\n" " confconf_priv_pos_set(st, pos);\n" " return CONFCONF_ERR_UNEXPECTED_TOKEN;\n" " }\n" "\n" " return CONFCONF_SUCCESS;\n" "}\n" "\n" "#endif\n" "\n" ;