static int parse_conf(char *file) { FILE *fp; char line[LINE_SIZE] = ""; char *x; fp = fopen(file, "r"); if (!fp) return 1; /* * If not standard finit.conf, then we want to show just the base name * Loading configuration ............. vs * Loading services configuration .... */ if (!string_match (file, FINIT_CONF)) { /* Remove leading path */ x = strrchr(file, '/'); if (!x) x = file; else x++; /* Remove ending .conf */ strlcpy(line, x, sizeof(line)); x = strstr(line, ".conf"); if (x) *x = 0; /* Add empty space. */ strcat(line, " "); } if (!silent) print(0, "Loading %sconfiguration", line); while (!feof(fp)) { if (!fgets(line, sizeof(line), fp)) continue; chomp(line); _d("conf: %s", line); parse_static(line); parse_dynamic(line, 0); } fclose(fp); return 0; }
std::unique_ptr<Expression> ArrayAccessParser::parse(ElsaParser* parser) { return parse_static(parser); }