54 for (; *
s !=
'\0' && isspace(*
s);
s++)
56 if (!isalnum(*
s) && *
s !=
'-') {
61 for (s1 =
s; isalnum(*s1) || *s1 ==
'_' || *s1 ==
'-' || *s1 ==
'('; s1++)
65 *dest = (
char *)strndup(
s, len);
77 if ((b = getc(
in)) == EOF)
93 *dest = strdup(line + 1);
95 *dest = realloc(*dest, strlen(*dest) + strlen(line + 1) + 1);
96 strcat(*dest, line + 1);
108 in = fopen(fname_c,
"r");
113 while (fgets(line, 256,
in)) {
115 if (strncasecmp(
"Variable", line, 8) == 0) {
144 if (strncasecmp(
"Type", line, 4) == 0)
147 if (strncasecmp(
"Default", line, 7) == 0)
150 if (strncasecmp(
"Section", line, 7) == 0) {
152 for (; *
s !=
'\0' && isspace(*
s);
s++)
157 if (strncasecmp(
"Description", line, 11) == 0) {
165 if (strncasecmp(
"Option", line, 6) == 0) {
191void FC_FUNC_(varinfo_end, VARINFO_END)() {
229 for (lvar =
vars; (lvar != NULL) && (strcasecmp(name_c, lvar->
name) != 0);
248 *
name = (*var)->name;
249 *
type = (*var)->type;
252 *
desc = (*var)->desc;
261 else if (*
opt == NULL)
277 *
name = (*opt)->name;
278 *
desc = (*opt)->desc;
280 if (strncmp(
"bit", (*opt)->value, 3) == 0) {
281 *value = ((
int64_t)1) << strtoll((*opt)->value + 4, NULL, 10);
283 *value = strtoll((*opt)->value, NULL, 10);
305 for (lvar =
vars; (lvar != NULL) && (strcasecmp(var_name, lvar->
name) != 0);
308 return (lvar != NULL);
319 for (; (lvar != NULL) && (strcasestr(lvar->
name, name_c) == 0);
327 const char * name_c,
int *value,
334 while (
opt != NULL) {
335 if (strcmp(
opt->name, name_c) == 0) {
336 *value = atoi(
opt->value);
337 printf(
"%s|%s|\n",
opt->name, name_c);
real(real64) function s()
int varinfo_variable_exists(const char *var_name)
void varinfo_getvar(const char *name_c, var_type **var)
void varinfo_search_option(const var_type **var, const char *name_c, int *value, int *ierr)
char * get_token(char *s, char **dest)
void varinfo_init(const char *fname_c)
void FC_FUNC_(varinfo_end, VARINFO_END)()
void varinfo_search_var(const char *name_c, var_type **var)
int fclose(FILE *__stream)
void get_text(FILE *in, char **dest)