Subject: bug#8640: 24.0.50; no pbm support on cygwin

From: Katsumi Yamaoka <[email-masked]>
Date: Tue, 10 May 2011 17:44:56 +0900

Juanma Barranquero wrote:
>> pbm image is not available in Emacs trunk built on cygwin at least
>> after May 6: (image-type-available-p 'pbm) => nil
>> Whereas png, jpeg, gif, xpm, etc. are all ok.

> xbm is not available either. And of course is not cygwin-specific.

Oh, that's bad.  I didn't verify it for xbm and other platforms.

>> I guess this is due
>> to the recent changes in image.c.

> Yes.

>> Any hint?

> More than a hint. I moved the library cache variable to w32 code,
> turned CACHE_IMAGE_TYPE into a noop on non-Windows, and removed the
> check on init-image-library. But I overlook the fact that the
> predefined image types rely on being marked in the library cache as
> available. That's because `image-type-available-p' always goes through
> `init-image-library'.

> Now, the fix is simple (the patch below fixes the problem), but we
> should think whether it is cleaner to restore the library-cache to a
> non-Windows specific code, or mark the only two predefined image types
> in any other way, as the code below does. It's a bit ad-hoc, but
> having the image types in the library cache, when they are not, in
> fact, loaded from a library, is also a bit ugly.

> Opinions and comments anyone?

The patch did the trick.  I hope it is installed even if it is
not smart.  It troubles at least Gnus users, since Gnus invokes
ImageMagick's `display' whenever an article contains X-Face (it
is the default behavior when pbm is unavailable). ;-)  Thanks.