Subject: 24.3.50; Enable Imagemagick for Nextstep
From: Magnus Henoch <[email-masked]>
To: [email-masked]
Date: Fri, 05 Jul 2013 01:05:01 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Severity: wishlist
Tags: patch

As I'd like to be able to resize images in Emacs on Nextstep, I had a
look at what needs to be changed to enable Imagemagick on Nextstep.  Not
very much, it turns out; see diff below.

I'm not sure what it would take to support MagickExportImagePixels.  The
code tries to pass ximg->data as a parameter, but ximg is of type
XImagePtr, and on Nextstep the types are:

  typedef Pixmap XImagePtr;
  typedef void *Pixmap;

Nevertheless, it seems to work without that part.

Regards,
Magnus

diff --git a/configure.ac b/configure.ac
index baf8aab..0333898 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2041,7 +2041,7 @@ if test "${HAVE_X11}" = "yes" || test "${HAVE_NS}" = "yes" || test "${opsys}" =
 fi
 
 HAVE_IMAGEMAGICK=no
-if test "${HAVE_X11}" = "yes"; then
+if test "${HAVE_X11}" = "yes" || test "${HAVE_NS}" = "yes"; then
   if test "${with_imagemagick}" != "no"; then
     ## 6.2.8 is the earliest version known to work, but earlier versions
     ## might work - let us know if you find one.
diff --git a/src/image.c b/src/image.c
index a3e103f..a2328dc 100644
--- a/src/image.c
+++ b/src/image.c
@@ -8054,7 +8054,9 @@ imagemagick_load_image (struct frame *f, struct image *img,
 
   init_color_table ();
 
-#ifdef HAVE_MAGICKEXPORTIMAGEPIXELS
+  /* XXX: it might be easy to get this to work for NS as well.
+     Since ximg is void*, ximg->data is not defined. */
+#if defined(HAVE_MAGICKEXPORTIMAGEPIXELS) && !defined(HAVE_NS)
   if (imagemagick_render_type != 0)
     {
       /* Magicexportimage is normally faster than pixelpushing.  This