[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r106682: * src/image.c (imagemagick_e
From: |
Juri Linkov |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r106682: * src/image.c (imagemagick_error): New function. |
Date: |
Fri, 16 Dec 2011 01:28:56 +0200 |
User-agent: |
Bazaar (2.3.1) |
------------------------------------------------------------
revno: 106682
fixes bug(s): http://debbugs.gnu.org/10112
committer: Juri Linkov <address@hidden>
branch nick: trunk
timestamp: Fri 2011-12-16 01:28:56 +0200
message:
* src/image.c (imagemagick_error): New function.
(imagemagick_load_image): Comment out `MagickSetResolution' call.
Use `imagemagick_error' where ImageMagick functions return
`MagickFalse'.
(Fimagemagick_types): Add `Fnreverse' to return the list in the
proper order.
modified:
src/ChangeLog
src/image.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2011-12-15 02:12:08 +0000
+++ b/src/ChangeLog 2011-12-15 23:28:56 +0000
@@ -1,3 +1,12 @@
+2011-12-15 Juri Linkov <address@hidden>
+
+ * image.c (imagemagick_error): New function. (Bug#10112)
+ (imagemagick_load_image): Comment out `MagickSetResolution' call.
+ Use `imagemagick_error' where ImageMagick functions return
+ `MagickFalse'.
+ (Fimagemagick_types): Add `Fnreverse' to return the list in the
+ proper order.
+
2011-12-15 YAMAMOTO Mitsuharu <address@hidden>
* xftfont.c (xftfont_draw): Use the font metrics of s->font to
=== modified file 'src/image.c'
--- a/src/image.c 2011-11-24 19:02:39 +0000
+++ b/src/image.c 2011-12-15 23:28:56 +0000
@@ -7564,6 +7564,22 @@
MagickPixelPacket *);
#endif
+/* Log ImageMagick error message.
+ Useful when a ImageMagick function returns the status `MagickFalse'. */
+
+static void
+imagemagick_error (MagickWand *wand)
+{
+ char *description;
+ ExceptionType severity;
+
+ description = MagickGetException (wand, &severity);
+ image_error ("ImageMagick error: %s",
+ make_string (description, strlen (description)),
+ Qnil);
+ description = (char *) MagickRelinquishMemory (description);
+}
+
/* Helper function for imagemagick_load, which does the actual loading
given contents and size, apart from frame and image structures,
passed from imagemagick_load. Uses librimagemagick to do most of
@@ -7618,6 +7634,7 @@
image = image_spec_value (img->spec, QCindex, NULL);
ino = INTEGERP (image) ? XFASTINT (image) : 0;
ping_wand = NewMagickWand ();
+ /* MagickSetResolution (ping_wand, 2, 2); (Bug#10112) */
if (filename != NULL)
{
@@ -7628,7 +7645,12 @@
status = MagickPingImageBlob (ping_wand, contents, size);
}
- MagickSetResolution (ping_wand, 2, 2);
+ if (status == MagickFalse)
+ {
+ imagemagick_error (ping_wand);
+ DestroyMagickWand (ping_wand);
+ return 0;
+ }
if (! (0 <= ino && ino < MagickGetNumberImages (ping_wand)))
{
@@ -7669,7 +7691,10 @@
{
image_wand = NewMagickWand ();
if (MagickReadImageBlob (image_wand, contents, size) == MagickFalse)
- goto imagemagick_error;
+ {
+ imagemagick_error (image_wand);
+ goto imagemagick_error;
+ }
}
/* If width and/or height is set in the display spec assume we want
@@ -7697,6 +7722,7 @@
if (status == MagickFalse)
{
image_error ("Imagemagick scale failed", Qnil, Qnil);
+ imagemagick_error (image_wand);
goto imagemagick_error;
}
}
@@ -7751,6 +7777,7 @@
if (status == MagickFalse)
{
image_error ("Imagemagick image rotate failed", Qnil, Qnil);
+ imagemagick_error (image_wand);
goto imagemagick_error;
}
}
@@ -7975,7 +8002,7 @@
Qimagemagicktype = intern (imtypes[i]);
typelist = Fcons (Qimagemagicktype, typelist);
}
- return typelist;
+ return Fnreverse (typelist);
}
#endif /* defined (HAVE_IMAGEMAGICK) */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r106682: * src/image.c (imagemagick_error): New function.,
Juri Linkov <=