- if(!newline) { /* We haven't yet read everything to the end of the line */
- newsize = size << 1;
- line = xrealloc(line, newsize);
- idx = &line[size - 1];
- maxlen = newsize - size + 1;
- size = newsize;
- } else {
- *newline = '\0'; /* kill newline */
- break; /* yay */
- }
+config_t *parse_config_line(char *line, const char *fname, int lineno) {
+ config_t *cfg;
+ int len;
+ char *variable, *value, *eol;
+ variable = value = line;
+
+ eol = line + strlen(line);
+
+ while(strchr("\t ", *--eol)) {
+ *eol = '\0';
+ }
+
+ len = strcspn(value, "\t =");
+ value += len;
+ value += strspn(value, "\t ");
+
+ if(*value == '=') {
+ value++;
+ value += strspn(value, "\t ");