diff options
Diffstat (limited to 'icetime/icetime.cc')
-rw-r--r-- | icetime/icetime.cc | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/icetime/icetime.cc b/icetime/icetime.cc index cf6aa5b..58ae3bf 100644 --- a/icetime/icetime.cc +++ b/icetime/icetime.cc @@ -208,11 +208,19 @@ void read_pcf(const char *filename) void read_config() { - char buffer[128]; + constexpr size_t line_buf_size = 65536; + char buffer[line_buf_size]; int tile_x, tile_y, line_nr = -1; - while (fgets(buffer, 128, fin)) + while (fgets(buffer, line_buf_size, fin)) { + if (buffer[strlen(buffer) - 1] != '\n') + { + fprintf(stderr, "Input file contains very long lines.\n"); + fprintf(stderr, "icetime cannot process it.\n"); + exit(1); + } + if (buffer[0] == '.') { line_nr = -1; |