git.asbjorn.biz
/
swftools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added .bbox method to glyph in ruby interface
[swftools.git]
/
lib
/
bitio.c
diff --git
a/lib/bitio.c
b/lib/bitio.c
index
bd54935
..
17d9293
100644
(file)
--- a/
lib/bitio.c
+++ b/
lib/bitio.c
@@
-29,6
+29,7
@@
#include <string.h>
#include <memory.h>
#include <fcntl.h>
#include <string.h>
#include <memory.h>
#include <fcntl.h>
+#include <errno.h>
#include "../config.h"
#include "../config.h"
@@
-68,15
+69,33
@@
static int reader_fileread(reader_t*reader, void* data, int len)
reader->pos += ret;
return ret;
}
reader->pos += ret;
return ret;
}
+static void reader_fileread_dealloc(reader_t*r)
+{
+ if(r->type == READER_TYPE_FILE2) {
+ close((ptroff_t)r->internal);
+ }
+ memset(r, 0, sizeof(reader_t));
+}
void reader_init_filereader(reader_t*r, int handle)
{
r->read = reader_fileread;
void reader_init_filereader(reader_t*r, int handle)
{
r->read = reader_fileread;
+ r->dealloc = reader_fileread_dealloc;
r->internal = (void*)handle;
r->type = READER_TYPE_FILE;
r->mybyte = 0;
r->bitpos = 8;
r->pos = 0;
}
r->internal = (void*)handle;
r->type = READER_TYPE_FILE;
r->mybyte = 0;
r->bitpos = 8;
r->pos = 0;
}
+void reader_init_filereader2(reader_t*r, const char*filename)
+{
+ int fi = open(filename,
+#ifdef O_BINARY
+ O_BINARY|
+#endif
+ O_RDONLY);
+ reader_init_filereader(r, fi);
+ r->type = READER_TYPE_FILE2;
+}
/* ---------------------------- mem reader ------------------------------- */
/* ---------------------------- mem reader ------------------------------- */
@@
-288,7
+307,7
@@
void writer_init_filewriter(writer_t*w, int handle)
}
void writer_init_filewriter2(writer_t*w, char*filename)
{
}
void writer_init_filewriter2(writer_t*w, char*filename)
{
- int fi = open("movie.swf",
+ int fi = open(filename,
#ifdef O_BINARY
O_BINARY|
#endif
#ifdef O_BINARY
O_BINARY|
#endif
@@
-338,7
+357,7
@@
static void zlib_error(int ret, char* msg, z_stream*zs)
msg,
ret,
zs->msg?zs->msg:"unknown");
msg,
ret,
zs->msg?zs->msg:"unknown");
- perror("errno:");
+ if(errno) perror("errno:");
exit(1);
}
#endif
exit(1);
}
#endif