diff options
Diffstat (limited to 'src/jv_file.c')
-rw-r--r-- | src/jv_file.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/jv_file.c b/src/jv_file.c index a5829a8f..4c0060fc 100644 --- a/src/jv_file.c +++ b/src/jv_file.c @@ -30,10 +30,12 @@ jv jv_load_file(const char* filename, int raw) { while (!feof(file) && !ferror(file)) { size_t n = fread(buf, 1, sizeof(buf)-max_utf8_len, file); int len = 0; - if (jvp_utf8_backtrack(buf+(n-1), buf, &len) && len > 0) { - if (!feof(file) && !ferror(file)) { - n += fread(buf+n, 1, len, file); - } + + if (n == 0) + continue; + if (jvp_utf8_backtrack(buf+(n-1), buf, &len) && len > 0 && + !feof(file) && !ferror(file)) { + n += fread(buf+n, 1, len, file); } if (raw) { |