]> git.draconx.ca Git - liblbx.git/commitdiff
liblbx: Use lbx_file_ops for lbximg_loadpalette.
authorNick Bowler <nbowler@draconx.ca>
Mon, 8 Feb 2010 02:44:31 +0000 (21:44 -0500)
committerNick Bowler <nbowler@draconx.ca>
Mon, 8 Feb 2010 17:00:55 +0000 (12:00 -0500)
src/image.c
src/image.h
src/lbximg.c

index c8a71650fbb872f24a7a7140e8e96a43e4eaedc0..83bac2149dc0d8b02075a8c6c30b39603e756898 100644 (file)
@@ -324,13 +324,15 @@ unsigned char **lbximg_getframe(struct lbx_image *img, int frame)
        return img->framedata;
 }
 
-int lbximg_loadpalette(FILE *f, struct lbx_colour palette[static 256])
+int
+lbximg_loadpalette(void *f, const struct lbx_file_ops *fops,
+                   struct lbx_colour palette[static 256])
 {
        unsigned char entry[4];
        int i;
 
        for (i = 0; i < 256; i++) {
-               if (fread(entry, sizeof entry, 1, f) != 1) {
+               if (fops->read(entry, sizeof entry, f) != sizeof entry) {
                        lbx_errno = (feof(f)) ? LBX_EEOF : -errno;
                        return -1;
                }
@@ -340,7 +342,7 @@ int lbximg_loadpalette(FILE *f, struct lbx_colour palette[static 256])
                        return -1;
                }
 
-               palette[i] = (struct lbx_colour){
+               palette[i] = (struct lbx_colour) {
                        .red    = entry[1] << 2,
                        .green  = entry[2] << 2,
                        .blue   = entry[3] << 2,
index e12372b0842f21a773a8bd484c10d4f8ecc75b5d..2f427d10c9111cadbcd641e1dcc22546f0ee7cc1 100644 (file)
@@ -28,7 +28,8 @@ int      lbximg_close(LBX_IMG *img);
 unsigned char **lbximg_getframe(LBX_IMG *img, int frame);
 unsigned char **lbximg_getmask(LBX_IMG *img);
 
-int lbximg_loadpalette(FILE *f, struct lbx_colour palette[static 256]);
+int lbximg_loadpalette(void *f, const struct lbx_file_ops *fops,
+                       struct lbx_colour palette[static 256]);
 int lbximg_getpalette(LBX_IMG *img, struct lbx_colour palette[static 256]);
 
 void lbximg_getinfo(LBX_IMG *img, struct lbx_imginfo *info);
index 1cf765d3ad699ea2ac86b36b2c4c35037203379c..67d8635a8feaf4ba64d75cf1d89d4c026772e243 100644 (file)
@@ -288,7 +288,7 @@ static int loadpalette(LBX_IMG *img, struct lbx_imginfo *info,
        }
 
        /* Read the external palette, if any. */
-       if (palf && lbximg_loadpalette(palf, palette) == -1) {
+       if (palf && lbximg_loadpalette(palf, &lbx_default_fops, palette) != 0) {
                errmsg("error reading external palette: %s\n", lbx_strerror());
                return -1;
        }