X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fbitio.c;h=923430a1b206bd71b50a48dffbb277740e4b5f1e;hb=f9e28331ed992a471984dad2a77cc7613e58ed69;hp=820012012c9182f7655eb40732098ab07f26b1e8;hpb=92773cba50562ec860e38816fac9676678530c46;p=swftools.git diff --git a/lib/bitio.c b/lib/bitio.c index 8200120..923430a 100644 --- a/lib/bitio.c +++ b/lib/bitio.c @@ -1,11 +1,22 @@ -/* bitio.c - implementation of bitio.h. +/* bitio.c + part of swftools + implementation of bitio.h. - Part of the swftools package. - - Copyright (c) 2001 Matthias Kramm + Copyright (C) 2003 Matthias Kramm - This file is distributed under the GPL, see file COPYING for details */ + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include @@ -164,6 +175,7 @@ void writer_init_filewriter2(struct writer_t*w, char*filename) static int writer_nullwrite_write(struct writer_t*w, void* data, int len) { + w->pos += len; return len; } static void writer_nullwrite_finish(struct writer_t*w) @@ -291,6 +303,10 @@ static int writer_zlibdeflate_write(struct writer_t*writer, void* data, int len) #ifdef HAVE_ZLIB struct zlibdeflate_t*z = (struct zlibdeflate_t*)writer->internal; int ret; + if(writer->type != WRITER_TYPE_ZLIB) { + fprintf(stderr, "Wrong writer ID (writer not initialized?)\n"); + return 0; + } if(!z) { fprintf(stderr, "zlib not initialized!\n"); return 0; @@ -329,6 +345,10 @@ static void writer_zlibdeflate_finish(struct writer_t*writer) struct zlibdeflate_t*z = (struct zlibdeflate_t*)writer->internal; struct writer_t*output; int ret; + if(writer->type != WRITER_TYPE_ZLIB) { + fprintf(stderr, "Wrong writer ID (writer not initialized?)\n"); + return; + } if(!z) return; output= z->output; @@ -352,7 +372,7 @@ static void writer_zlibdeflate_finish(struct writer_t*writer) if (ret != Z_OK) zlib_error(ret, "bitio:deflate_end", &z->zs); free(writer->internal); writer->internal = 0; - output->finish(output); + //output->finish(output); #else fprintf(stderr, "Error: swftools was compiled without zlib support"); exit(1);