diff --git a/MagickCore/animate.c b/MagickCore/animate.c
index 97a3df1..baa6196 100644
--- a/MagickCore/animate.c
+++ b/MagickCore/animate.c
@@ -543,8 +543,14 @@
status=XSaveImage(display,resource_info,windows,*image,exception);
if (status == MagickFalse)
{
- XNoticeWidget(display,windows,"Unable to write X image:",
- (*image)->filename);
+ char
+ message[MaxTextExtent];
+
+ (void) FormatLocaleString(message,MaxTextExtent,"%s:%s",
+ exception->reason != (char *) NULL ? exception->reason : "",
+ exception->description != (char *) NULL ? exception->description :
+ "");
+ XNoticeWidget(display,windows,"Unable to save file:",message);
break;
}
break;
diff --git a/MagickCore/display.c b/MagickCore/display.c
index 555cbe6..150fb7a 100644
--- a/MagickCore/display.c
+++ b/MagickCore/display.c
@@ -7209,8 +7209,14 @@
status=XSaveImage(display,resource_info,windows,*image,exception);
if (status == MagickFalse)
{
- XNoticeWidget(display,windows,"Unable to write X image:",
- (*image)->filename);
+ char
+ message[MaxTextExtent];
+
+ (void) FormatLocaleString(message,MaxTextExtent,"%s:%s",
+ exception->reason != (char *) NULL ? exception->reason : "",
+ exception->description != (char *) NULL ? exception->description :
+ "");
+ XNoticeWidget(display,windows,"Unable to save file:",message);
break;
}
break;
@@ -7223,8 +7229,14 @@
status=XPrintImage(display,resource_info,windows,*image,exception);
if (status == MagickFalse)
{
- XNoticeWidget(display,windows,"Unable to print X image:",
- (*image)->filename);
+ char
+ message[MaxTextExtent];
+
+ (void) FormatLocaleString(message,MaxTextExtent,"%s:%s",
+ exception->reason != (char *) NULL ? exception->reason : "",
+ exception->description != (char *) NULL ? exception->description :
+ "");
+ XNoticeWidget(display,windows,"Unable to print file:",message);
break;
}
break;
diff --git a/MagickCore/semaphore.c b/MagickCore/semaphore.c
index 6e57f4f..b39e56b 100644
--- a/MagickCore/semaphore.c
+++ b/MagickCore/semaphore.c
@@ -151,6 +151,17 @@
ThrowFatalException(ResourceLimitFatalError,
"UnableToInitializeSemaphore");
}
+#if defined(MAGICKCORE_DEBUG)
+#if defined(PTHREAD_MUTEX_ERRORCHECK)
+ status=pthread_mutex_settype(&mutex_info,PTHREAD_MUTEX_ERRORCHECK);
+ if (status != 0)
+ {
+ errno=status;
+ ThrowFatalException(ResourceLimitFatalError,
+ "UnableToInitializeSemaphore");
+ }
+#endif
+#endif
status=pthread_mutex_init(&semaphore_info->mutex,&mutex_info);
if (status != 0)
{