summaryrefslogtreecommitdiff
path: root/src/image.c
diff options
context:
space:
mode:
authorJuanma Barranquero <lekktu@gmail.com>2005-06-23 07:48:13 +0000
committerJuanma Barranquero <lekktu@gmail.com>2005-06-23 07:48:13 +0000
commit9a22a004b31ed864fb21e27ca780f009cc2ea820 (patch)
tree32a430283d24aec29d3d4985497521ebf77801d2 /src/image.c
parent9713650936e5bf274ae56415c2d4dd23f7f4d35a (diff)
downloademacs-9a22a004b31ed864fb21e27ca780f009cc2ea820.tar.gz
(fn_png_init_io): Don't define it.
(init_png_functions) [HAVE_NTGUI]: Don't initialize fn_png_init_io. (png_read_from_file): New function, based on png_read_from_memory. (png_load): Use it, instead of fn_png_init_io.
Diffstat (limited to 'src/image.c')
-rw-r--r--src/image.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/image.c b/src/image.c
index 462294b33b4..b2d0cf4ff50 100644
--- a/src/image.c
+++ b/src/image.c
@@ -5631,7 +5631,6 @@ DEF_IMGLIB_FN (png_create_read_struct);
DEF_IMGLIB_FN (png_create_info_struct);
DEF_IMGLIB_FN (png_destroy_read_struct);
DEF_IMGLIB_FN (png_set_read_fn);
-DEF_IMGLIB_FN (png_init_io);
DEF_IMGLIB_FN (png_set_sig_bytes);
DEF_IMGLIB_FN (png_read_info);
DEF_IMGLIB_FN (png_get_IHDR);
@@ -5663,7 +5662,6 @@ init_png_functions (Lisp_Object libraries)
LOAD_IMGLIB_FN (library, png_create_info_struct);
LOAD_IMGLIB_FN (library, png_destroy_read_struct);
LOAD_IMGLIB_FN (library, png_set_read_fn);
- LOAD_IMGLIB_FN (library, png_init_io);
LOAD_IMGLIB_FN (library, png_set_sig_bytes);
LOAD_IMGLIB_FN (library, png_read_info);
LOAD_IMGLIB_FN (library, png_get_IHDR);
@@ -5689,7 +5687,6 @@ init_png_functions (Lisp_Object libraries)
#define fn_png_create_info_struct png_create_info_struct
#define fn_png_destroy_read_struct png_destroy_read_struct
#define fn_png_set_read_fn png_set_read_fn
-#define fn_png_init_io png_init_io
#define fn_png_set_sig_bytes png_set_sig_bytes
#define fn_png_read_info png_read_info
#define fn_png_get_IHDR png_get_IHDR
@@ -5762,6 +5759,23 @@ png_read_from_memory (png_ptr, data, length)
}
+/* Function set as reader function when reading PNG image from a file.
+ PNG_PTR is a pointer to the PNG control structure. Copy LENGTH
+ bytes from the input to DATA. */
+
+static void
+png_read_from_file (png_ptr, data, length)
+ png_structp png_ptr;
+ png_bytep data;
+ png_size_t length;
+{
+ FILE *fp = (FILE *) fn_png_get_io_ptr (png_ptr);
+
+ if (fread (data, 1, length, fp) < length)
+ fn_png_error (png_ptr, "Read error");
+}
+
+
/* Load PNG image IMG for use on frame F. Value is non-zero if
successful. */
@@ -5895,7 +5909,7 @@ png_load (f, img)
if (!NILP (specified_data))
fn_png_set_read_fn (png_ptr, (void *) &tbr, png_read_from_memory);
else
- fn_png_init_io (png_ptr, fp);
+ fn_png_set_read_fn (png_ptr, (void *) fp, png_read_from_file);
fn_png_set_sig_bytes (png_ptr, sizeof sig);
fn_png_read_info (png_ptr, info_ptr);