X-Git-Url: http://git.code-monkey.de/?p=ruby-vorbistagger.git;a=blobdiff_plain;f=ext%2Fvcedit.c;h=70eae0591af0e91ac5dee35e9858fb3aaa7e80cf;hp=795b0c3e1011510a60f18aa2eed53ef694c1b3db;hb=e71087631ea69d4785be8da4a962d540bd25bcab;hpb=86dd1798f5578ac5bad40c2911b6087a377bf4bc diff --git a/ext/vcedit.c b/ext/vcedit.c index 795b0c3..70eae05 100644 --- a/ext/vcedit.c +++ b/ext/vcedit.c @@ -240,7 +240,7 @@ _fetch_next_packet (vcedit_state *s, ogg_packet *p, ogg_page *page) bytes = fread (buffer, 1, CHUNKSIZE, s->in); ogg_sync_wrote (&s->oy, bytes); - if (!bytes) + if (!bytes && feof (s->in)) return 0; } @@ -355,7 +355,7 @@ vcedit_open (vcedit_state *state) buffer = ogg_sync_buffer (&state->oy, CHUNKSIZE); bytes = fread (buffer, 1, CHUNKSIZE, state->in); - if (!bytes && i < 2) { + if (!bytes && feof (state->in) && i < 2) { ret = VCEDIT_ERR_INVAL; goto err; } @@ -536,8 +536,7 @@ vcedit_write (vcedit_state *state) bytes = fread (buffer, 1, CHUNKSIZE, state->in); ogg_sync_wrote (&state->oy, bytes); - if (!bytes) - state->eosin = 1; + state->eosin = !bytes && feof (state->in); } fclose (out);