back = 0;
return ch;
}
- return getc();
+/*
+ * config files served from pxe/tftpboot windows servers can contain
+ * extraneous '\r' characters, often the first char in the file, and
+ * we need to simply skip over those and continue on
+ */
+ ch = getc();
+ if(ch == '\r')
+ ch = getc();
+
+ return ch;
}
/*
CHAR16 *here;
for (;;) {
- while ((ch = next()), ch == ' ' || ch == '\t' || ch == '\n') if (ch == '\n') line_num++;
+ while ((ch = next()), ch == ' ' || ch == '\t' || ch == '\n') if (ch == '\n' ) line_num++;
if (ch == CHAR_EOF) return TOK_EOF;
+ /* skip comment line */
if (ch != '#') break;
- /* skip comment line */
while ((ch = next()), ch != '\n') if (ch == CHAR_EOF) return TOK_EOF;
line_num++;
}
if (tok == TOK_EOF) break;
- if (tok == TOK_ERR) return -1;
+ if (tok == TOK_ERR) {
+ Print(L"Bad Token from elilo config file, parser read: %s\n elilo exiting\n", str);
+ return -1;
+ }
if ( (p = find_option(current_options, str)) == NULL) {
config_error(L"Unkown option %s", str);