X-Git-Url: http://git.code-monkey.de/?p=ruby-vorbistagger.git;a=blobdiff_plain;f=ext%2Fvcedit.c;h=10746706f71c97fbd0c620b4ca2d95f4d8d8be9b;hp=336ce26e94f531a299c045091016dc1bfe7d60d2;hb=bf1f7624bee5a466b402825083190d3afbd9c28b;hpb=1269dc936cc13b7c021e477ad110308759f275cf diff --git a/ext/vcedit.c b/ext/vcedit.c index 336ce26..1074670 100644 --- a/ext/vcedit.c +++ b/ext/vcedit.c @@ -31,8 +31,6 @@ #define CHUNKSIZE 4096 -static int vcedit_open (vcedit_state *state); - struct vcedit_state_St { int refcount; @@ -119,13 +117,6 @@ vcedit_state_new (const char *filename) snprintf (state->filename, sizeof (state->filename), "%s", filename); - state->in = fopen (state->filename, "rb"); - - if (vcedit_open (state) < 0) { - vcedit_state_free (state); - return NULL; - } - return state; } @@ -287,7 +278,7 @@ _fetch_next_packet (vcedit_state *s, ogg_packet *p, ogg_page *page) return _fetch_next_packet (s, p, page); } -static int +int vcedit_open (vcedit_state *state) { char *buffer; @@ -297,6 +288,12 @@ vcedit_open (vcedit_state *state) ogg_packet header_main, header_comments, header_codebooks; ogg_page og; + state->in = fopen (state->filename, "rb"); + if (!state->in) { + state->lasterror = "Cannot open file."; + return -1; + } + ogg_sync_init (state->oy); while (1) { @@ -603,8 +600,6 @@ cleanup: } vcedit_clear_internals (state); - - state->in = fopen (state->filename, "rb"); vcedit_open (state); return 0;