added support for conics.
[swftools.git] / lib / bitio.c
index 8200120..923430a 100644 (file)
@@ -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 <kramm@quiss.org> 
+    Copyright (C) 2003 Matthias Kramm <kramm@quiss.org>
 
-   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 <stdio.h>
 #include <stdlib.h>
@@ -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);