aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2017-05-11 11:06:27 +0200
committerGitHub <noreply@github.com>2017-05-11 11:06:27 +0200
commit8611d612d4c40035e377ae9d3417fbd233edb61d (patch)
tree4ee5e8459b492b43d700d78a0a2cb9688427eb48
parent0f64fdf573f098a98c178bb1b64571b577d5aa33 (diff)
parente787fa2d3013365f20a062577254276263482aae (diff)
downloadicestorm-8611d612d4c40035e377ae9d3417fbd233edb61d.tar.gz
icestorm-8611d612d4c40035e377ae9d3417fbd233edb61d.tar.bz2
icestorm-8611d612d4c40035e377ae9d3417fbd233edb61d.zip
Merge pull request #81 from cbiffle/allow-long-sym-lines
icetime: allow longer lines in input asc files
-rw-r--r--icetime/icetime.cc12
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;