Subject: Re: bug#71162: [email-masked]

From: David McCracken <[email-masked]>
Date: Sun, 26 May 2024 21:16:19 -0700

grep -r XPM3 * in /usr/share/emacs shows etc/PROBLEMS:** macOS doesn't 
come with libxpm, so only XPM3 is supported. This subservience  to Apple 
contradicts the general principle of open source. However, we can adapt 
to it. sudo install xpmutils installs sxpm, which can convert XPM 1 and 
2 to 3. sxpm --help is inscrutable. sxpm /file/.xpm - o /file/.xpm 
changes /file/.xpm to XPM3. When this is applied to the icon files, 
emacs 27.1 in Linux correctly uses them in the toolbar even when they 
are located in ~/icons.

Many thanks to Benjamin Riefenstahl and Eli Zaretskii for helping me to 
resolve this problem.

On 2024-05-23 11:15 PM, Eli Zaretskii wrote:
>> Date: Thu, 23 May 2024 21:08:24 -0700
>> From: David McCracken<[email-masked]>
>>
>> I have developed a library that includes a toolbar with custom icons. It
>> works in all versions of Emacs in Windows and in Emacs version 26.3
>> under Ubuntu-Mate 20.54 but the toolbar doesn't work in Emacs 27.1 under
>> Ubuntu-Mate 22.04. In my preferred configuration I put my icons under
>> the user home directory so that this doesn't change if Emacs is
>> updated. My library accesses this with e.g.
>> (tool-bar-add-item "~/icons/lxa-next"
>> to use my lxa-next.xpm icon. In Emacs 26.3 it also works to put my icon
>> in /usr/share/emacs/26.3/etc/images and refer to it as simply
>> "lxa-next". Emacs 27.1 shows nothing either way. My lxa-next.xpm appears
>> similar to the native lock-broken.xpm (4.7kB vs. 4.6kB) so I
>> experimented referring to that instead of mine and it worked. I also
>> tested left-arrow but instead of left-arrow.xpm or pbm, it showed a very
>> plain < image that doesn't exist in the images directory. It should be
>> noted that there is a lock-broken.pbm but the xpm version was
>> automatically selected. The icon selection mechanism of Emacs 26.3 is
>> usable but could be improved by accepting an explicit icon file
>> extension. That of 27.1 is unusable and, unless we can fix it, I will
>> have to advise users of my library to install an older version of Emacs.
> I tried to visit the XPM file you attached, and it displays okay with
> both Emacs 27.1 and the current development version, at least on
> MS-Windows.  So I don't see a reason why this would not work on a tool
> bar.  I suggest that you post some minimal Lisp code that displays
> these icons on the Emacs tool bar, starting from "emacs -Q", and then
> we could try the code and see if the problem can be reproduced and
> debugged.
>
> Btw, to clarify: you are saying that your XPM icons don't work in
> Emacs 27.1 both on MS-Windows and on Ubuntu?  Or only on Ubuntu?
>
> Thanks.