53 for (; *
s !=
'\0' && isspace(*
s);
s++)
55 if (!isalnum(*
s) && *
s !=
'-') {
60 for (s1 =
s; isalnum(*s1) || *s1 ==
'_' || *s1 ==
'-' || *s1 ==
'('; s1++)
64 *dest = (
char *)strndup(
s, len);
76 if ((b = getc(
in)) == EOF)
92 *dest = strdup(line + 1);
94 *dest = realloc(*dest, strlen(*dest) + strlen(line + 1) + 1);
95 strcat(*dest, line + 1);
107 in = fopen(fname_c,
"r");
112 while (fgets(line, 256,
in)) {
114 if (strncasecmp(
"Variable", line, 8) == 0) {
143 if (strncasecmp(
"Type", line, 4) == 0)
146 if (strncasecmp(
"Default", line, 7) == 0)
149 if (strncasecmp(
"Section", line, 7) == 0) {
151 for (; *
s !=
'\0' && isspace(*
s);
s++)
156 if (strncasecmp(
"Description", line, 11) == 0) {
164 if (strncasecmp(
"Option", line, 6) == 0) {
165 char *
name, *value, *
s;
228 for (lvar =
vars; (lvar != NULL) && (strcasecmp(name_c, lvar->
name) != 0);
247 *
name = (*var)->name;
248 *
type = (*var)->type;
251 *
desc = (*var)->desc;
259 else if (*
opt == NULL)
274 *
name = (*opt)->name;
275 *
desc = (*opt)->desc;
277 if (strncmp(
"bit", (*opt)->value, 3) == 0) {
278 *value = ((
int64_t)1) << strtoll((*opt)->value + 4, NULL, 10);
280 *value = strtoll((*opt)->value, NULL, 10);
302 for (lvar =
vars; (lvar != NULL) && (strcasecmp(var_name, lvar->
name) != 0);
305 return (lvar != NULL);
316 for (; (lvar != NULL) && (strcasestr(lvar->
name, name_c) == 0);
324 const char * name_c,
int *value,
331 while (
opt != NULL) {
332 if (strcmp(
opt->name, name_c) == 0) {
333 *value = atoi(
opt->value);
334 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 varinfo_getopt(const var_type **var, opt_type **opt)
void varinfo_opt_getinfo(const opt_type **opt, char **name, int64_t *value, char **desc)
void varinfo_getinfo(const var_type **var, char **name, char **type, char **default_str, char **section, char **desc)
void varinfo_search_var(const char *name_c, var_type **var)
int fclose(FILE *__stream)
void get_text(FILE *in, char **dest)