From unknown Thu Jun 19 16:24:32 2025 X-Loop: help-debbugs@gnu.org Subject: bug#71162: bug-gnu-emacs@gnu.org Resent-From: David McCracken Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 24 May 2024 04:40:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 71162 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 71162@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.171652559512602 (code B ref -1); Fri, 24 May 2024 04:40:01 +0000 Received: (at submit) by debbugs.gnu.org; 24 May 2024 04:39:55 +0000 Received: from localhost ([127.0.0.1]:34766 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sAMih-0003HC-1H for submit@debbugs.gnu.org; Fri, 24 May 2024 00:39:55 -0400 Received: from lists.gnu.org ([209.51.188.17]:47932) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sAMic-0003H6-UW for submit@debbugs.gnu.org; Fri, 24 May 2024 00:39:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sAMiV-0005j4-Ri for bug-gnu-emacs@gnu.org; Fri, 24 May 2024 00:39:43 -0400 Received: from bosmailout03.eigbox.net ([66.96.187.3]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sAMiS-0006HF-V6 for bug-gnu-emacs@gnu.org; Fri, 24 May 2024 00:39:43 -0400 Received: from bosmailscan03.eigbox.net ([10.20.15.3]) by bosmailout03.eigbox.net with esmtp (Exim) id 1sAMEK-0000EP-47 for bug-gnu-emacs@gnu.org; Fri, 24 May 2024 00:08:32 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ixont.com; s=dkim; h=Sender:Subject:From:To:MIME-Version:Date:Message-ID:Content-Type: Reply-To:Cc:Content-Transfer-Encoding:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=adqpZJ4EDbF1YxBMYFfJeZGqTULCjO/HqgOT1xrtNOI=; b=kT0yTjHZaI3g9PynHqH5Meels2 10POLvq2XUVtF6Gx75anglrAmmdNFeUCW/g/Au+UszhibHfeFf6lIJ7qyPJqMi019RiEc2VX6i2Wu 6jNFAjU77YezbvmmZqlkXVZXyj6FpMRNI7cDcUmwOp7fSQBO+gMAc5MhI0rw6k8KVuW2NJI1ufkeM 0L6uQ6P7te8imQWm3DHQA8uv6pghTHAG7MMbBTK0OlfpcJhkOxhY/KYyMjYSbScKSaCMdX0/hUbIA TQusa8tbFTJBcwlrryM8jg3eOG44JXf48rP4MeoWPiStsSF4qVJ6Eiy36Zj0WXo53/6e99UJYPpFI NeoJyW7g==; Received: from [10.115.3.33] (helo=bosimpout13) by bosmailscan03.eigbox.net with esmtp (Exim) id 1sAMEH-0002m7-Ri for bug-gnu-emacs@gnu.org; Fri, 24 May 2024 00:08:29 -0400 Received: from bosauthsmtp11.yourhostingaccount.com ([10.20.18.11]) by bosimpout13 with id Ss8S2C0020EKspE01s8VjX; Fri, 24 May 2024 00:08:29 -0400 X-Authority-Analysis: v=2.3 cv=Df2MVslW c=1 sm=1 tr=0 a=anyYG9rjTBM1sAjEBQ8Cew==:117 a=8V9CQAzvb1UE/5s8aP8Njg==:17 a=mDV3o1hIAAAA:8 a=dr0PN7AwTpEA:10 a=TpHVaj0NuXgA:10 a=r77TgQKjGQsHNAKrUKIA:9 a=aR16PxjQAAAA:8 a=lE_poIdOFOmHK08KU7wA:9 a=QEXdDO2ut3YA:10 a=SqLzQ0NK4qwxSsLv7nMA:9 a=i7DDvzAz9EEA:10 a=_FVE-zBwftR9WsbkzFJk:22 a=zbFvvTOBjyH4ze5LlUjX:22 Received: from 23-115-169-72.lightspeed.mtryca.sbcglobal.net ([23.115.169.72]:62352 helo=[192.168.1.66]) by bosauthsmtp11.eigbox.net with esmtpsa (TLS1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim) id 1sAMEE-0006U8-Am for bug-gnu-emacs@gnu.org; Fri, 24 May 2024 00:08:26 -0400 Content-Type: multipart/mixed; boundary="------------bYwlZf5vAKS0H0CwVc04O0IS" Message-ID: Date: Thu, 23 May 2024 21:08:24 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US From: David McCracken X-EN-UserInfo: 7db9acb10a66b5d38e8efde72e4a1877:931c98230c6409dcc37fa7e93b490c27 X-EN-AuthUser: davidm@ixont.com X-EN-OrigIP: 23.115.169.72 X-EN-OrigHost: 23-115-169-72.lightspeed.mtryca.sbcglobal.net Received-SPF: pass client-ip=66.96.187.3; envelope-from=SRS0=Yz2xae=M3=ixont.com=davidm@eigbox.net; helo=bosmailout03.eigbox.net X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.25, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, TO_IN_SUBJ=0.099 autolearn=no autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.4 (--) This is a multi-part message in MIME format. --------------bYwlZf5vAKS0H0CwVc04O0IS Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit From: d To: bug-gnu-emacs@gnu.org Subject: 27.1; toolbar icons My Linux computers are used only for local development and don't have email access. I copied this from the Linux computer (X990) in which the problem exists. That I am sending this to you from a Windows computer is irrelevant. --text follows this line-- 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. In GNU Emacs 27.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.33, cairo version 1.16.0)  of 2023-08-16, modified by Debian built on lcy02-amd64-041 Windowing system distributor 'The X.Org Foundation', version 11.0.12101004 System Description: Ubuntu 22.04.4 LTS Recent messages: Invalid XPM3 file ((image :type xpm :file /usr/share/emacs/27.1/etc/images/lxa-next.xpm)) Invalid XPM3 file ((image :type xpm :file /home/d/icons/lxa-fwdlink.xpm)) Invalid XPM3 file ((image :type xpm :file /home/d/icons/lxa-pin.xpm)) Invalid XPM3 file ((image :type xpm :file /home/d/icons/lxa-prev.xpm)) Invalid XPM3 file ((image :type xpm :file /home/d/icons/lxa-next.xpm)) Invalid XPM3 file ((image :type xpm :file /usr/share/emacs/27.1/etc/images/lxa-next.xpm :mask heuristic)) Invalid XPM3 file ((image :type xpm :file /home/d/icons/lxa-fwdlink.xpm :mask heuristic)) Invalid XPM3 file ((image :type xpm :file /home/d/icons/lxa-pin.xpm :mask heuristic)) Invalid XPM3 file ((image :type xpm :file /home/d/icons/lxa-prev.xpm :mask heuristic)) Invalid XPM3 file ((image :type xpm :file /home/d/icons/lxa-next.xpm :mask heuristic)) Configured using:  'configure --build x86_64-linux-gnu --prefix=/usr  --sharedstatedir=/var/lib --libexecdir=/usr/lib  --localstatedir=/var/lib --infodir=/usr/share/info  --mandir=/usr/share/man --enable-libsystemd --with-pop=yes  --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/27.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/27.1/site-lisp:/usr/share/emacs/site-lisp  --with-sound=alsa --without-gconf --with-mailutils --build  x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib  --libexecdir=/usr/lib --localstatedir=/var/lib  --infodir=/usr/share/info --mandir=/usr/share/man --enable-libsystemd  --with-pop=yes  --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/27.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/27.1/site-lisp:/usr/share/emacs/site-lisp  --with-sound=alsa --without-gconf --with-mailutils --with-cairo  --with-x=yes --with-x-toolkit=gtk3 --with-toolkit-scroll-bars  'CFLAGS=-g -O2  -ffile-prefix-map=/build/emacs-WL9mhG/emacs-27.1+1=. -fstack-protector-strong  -Wformat -Werror=format-security -Wall' 'CPPFLAGS=-Wdate-time  -D_FORTIFY_SOURCE=2' 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro'' Configured features: XPM JPEG TIFF GIF PNG RSVG CAIRO SOUND GPM DBUS GSETTINGS GLIB NOTIFY INOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE HARFBUZZ M17N_FLT LIBOTF ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS LIBSYSTEMD JSON PDUMPER LCMS2 GMP Important settings:   value of $LANG: en_US.UTF-8   locale-coding-system: utf-8-unix Major mode: Emacs-Lisp Minor modes in effect:   show-paren-mode: t   delete-selection-mode: t   tooltip-mode: t   global-eldoc-mode: t   eldoc-mode: t   mouse-wheel-mode: t   tool-bar-mode: t   menu-bar-mode: t   file-name-shadow-mode: t   global-font-lock-mode: t   font-lock-mode: t   blink-cursor-mode: t   auto-composition-mode: t   auto-encryption-mode: t   auto-compression-mode: t   column-number-mode: t   line-number-mode: t   transient-mark-mode: t Load-path shadows: None found. Features: (shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs format-spec rfc822 mml mml-sec epa derived epg epg-config gnus-util rmail rmail-loaddefs text-property-search mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils time-date server cus-edit cus-start cus-load wid-edit linkxall edmacro kmacro pcase paren delsel bs finder-inf package easymenu browse-url url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache json subr-x map url-vars seq byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote threads dbusbind inotify lcms2 dynamic-setting system-font-setting font-render-setting cairo move-toolbar gtk x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 91987 8892)   (symbols 48 9691 1)   (strings 32 26045 2661)   (string-bytes 1 804745)   (vectors 16 14071)   (vector-slots 8 176572 9434)   (floats 8 34 18)   (intervals 56 1929 0)   (buffers 1000 12)) --------------bYwlZf5vAKS0H0CwVc04O0IS Content-Type: text/plain; charset=UTF-8; name="lxa-next.xpm" Content-Disposition: attachment; filename="lxa-next.xpm" Content-Transfer-Encoding: base64 LyogWFBNICovDQpzdGF0aWMgY2hhciAqIEM6XFN3RGV2XEVtYWNzXGljb25zXGx4YV9zZWFy Y2hfZndkX3hwbVtdID0gew0KIjI0IDI0IDE5OCAyIiwNCiIgIAljIE5vbmUiLA0KIi4gCWMg I0M4NUEwMCIsDQoiKyAJYyAjQzg1OTAwIiwNCiJAIAljICNDNzU5MDAiLA0KIiMgCWMgI0My NTYwMCIsDQoiJCAJYyAjQ0I2RDFEIiwNCiIlIAljICNEQzkxNDkiLA0KIiYgCWMgI0UwOUU1 NyIsDQoiKiAJYyAjREVBMTVDIiwNCiI9IAljICNERDk2NEIiLA0KIi0gCWMgI0Q1ODAyRiIs DQoiOyAJYyAjQ0U3MDFBIiwNCiI+IAljICNDNDVDMDUiLA0KIiwgCWMgI0MxNTcwMCIsDQoi JyAJYyAjQkM1NzA0IiwNCiIpIAljICNERDlBNTkiLA0KIiEgCWMgI0VGQzc5NyIsDQoifiAJ YyAjQUM3ODQ1IiwNCiJ7IAljICM2RDQ3MjIiLA0KIl0gCWMgIzU1MzAxMSIsDQoiXiAJYyAj NEQyQzExIiwNCiIvIAljICM2NTNFMTYiLA0KIiggCWMgIzkyNTUxQiIsDQoiXyAJYyAjQ0M3 NTIyIiwNCiI6IAljICNDNzYzMEMiLA0KIjwgCWMgI0JCNTQwMCIsDQoiWyAJYyAjQjY1MzA0 IiwNCiJ9IAljICNFQ0I5ODAiLA0KInwgCWMgI0RCQUU3RSIsDQoiMSAJYyAjNjYzQzE4IiwN CiIyIAljICM1RDM5MUMiLA0KIjMgCWMgIzU4M0IyNCIsDQoiNCAJYyAjNEQzQjJEIiwNCiI1 IAljICM0QjNBMkMiLA0KIjYgCWMgIzVCM0MyNSIsDQoiNyAJYyAjNjMzQjFBIiwNCiI4IAlj ICM2QTM3MEQiLA0KIjkgCWMgI0FDNUQxMyIsDQoiMCAJYyAjQ0E2NTBCIiwNCiJhIAljICNC NDUwMDAiLA0KImIgCWMgI0FENEUwMCIsDQoiYyAJYyAjRDc4RTQ3IiwNCiJkIAljICNDRjk4 NUUiLA0KImUgCWMgIzVEMzYxNSIsDQoiZiAJYyAjNTYzRTI5IiwNCiJnIAljICNEN0VENUMi LA0KImggCWMgI0Q0RDRENCIsDQoiaSAJYyAjRDhEOEQ4IiwNCiJqIAljICM1NzNCMjYiLA0K ImsgCWMgIzZCMzkxMCIsDQoibCAJYyAjQjE1QjBCIiwNCiJtIAljICNCQzU5MDMiLA0KIm4g CWMgI0I2NjExNyIsDQoibyAJYyAjRUJBRDY5IiwNCiJwIAljICM2OTNEMTYiLA0KInEgCWMg IzYwNDUzMCIsDQoiciAJYyAjRjVGNUY1IiwNCiJzIAljICNGRkZGRkYiLA0KInQgCWMgI0ZD RkNGQyIsDQoidSAJYyAjNUE0MDJBIiwNCiJ2IAljICM3NTNCMEIiLA0KIncgCWMgI0M1NjEw NSIsDQoieCAJYyAjQTg0QzAwIiwNCiJ5IAljICNBMDQ3MDAiLA0KInogCWMgI0QxODIzMyIs DQoiQSAJYyAjQUQ2QzJFIiwNCiJCIAljICM2MzNGMjEiLA0KIkMgCWMgI0Y2RjZGNiIsDQoi RCAJYyAjRkVGQ0ZDIiwNCiJFIAljICNGQkZCRkIiLA0KIkYgCWMgIzAwMDAwMCIsDQoiRyAJ YyAjNjUzQzFDIiwNCiJIIAljICNBMDRDMDMiLA0KIkkgCWMgI0I1NTQwMCIsDQoiSiAJYyAj OUU0NTAwIiwNCiJLIAljICM5QzQ2MDAiLA0KIkwgCWMgI0RDOEMzQSIsDQoiTSAJYyAjODQ0 RDFFIiwNCiJOIAljICM2RjRGMzciLA0KIk8gCWMgIzY5NEIzNCIsDQoiUCAJYyAjODU0MTA4 IiwNCiJRIAljICNDMTVBMDAiLA0KIlIgCWMgIzlCNDYwMCIsDQoiUyAJYyAjOTM0MjAxIiwN CiJUIAljICNFNTkyM0EiLA0KIlUgCWMgIzZCM0QxNiIsDQoiViAJYyAjNzA1QTQ4IiwNCiJX IAljICM4MDQ2MTMiLA0KIlggCWMgI0NGNjEwMCIsDQoiWSAJYyAjOTI0MTAwIiwNCiJaIAlj ICM4QTNGMDEiLA0KImAgCWMgI0UzOEEyRSIsDQoiIC4JYyAjNkU0MDFBIiwNCiIuLgljICM4 QTUzMUIiLA0KIisuCWMgI0QwNjMwMCIsDQoiQC4JYyAjOEEzRjAwIiwNCiIjLgljICM4ODNF MDAiLA0KIiQuCWMgI0QyNzYxQyIsDQoiJS4JYyAjODY0RDFBIiwNCiImLgljICM3QzVDNDAi LA0KIiouCWMgIzhDNjg0MiIsDQoiPS4JYyAjQTY2MzFDIiwNCiItLgljICNCRjVBMDAiLA0K IjsuCWMgIzg3M0QwMCIsDQoiPi4JYyAjN0YzODAwIiwNCiIsLgljICNCQTYxMEUiLA0KIicu CWMgI0EzNUIxNiIsDQoiKS4JYyAjNzg1MTJGIiwNCiIhLgljICM5QTZFMzkiLA0KIn4uCWMg I0M2NzIxOSIsDQoiey4JYyAjQTk1MDAwIiwNCiJdLgljICM3QzM5MDAiLA0KIl4uCWMgIzhD NDMwMyIsDQoiLy4JYyAjREI3NTEwIiwNCiIoLgljICM3QTQ4MUYiLA0KIl8uCWMgI0ExNzk0 OSIsDQoiOi4JYyAjQzQ4ODM5IiwNCiI8LgljICNERTczMEEiLA0KIlsuCWMgIzg0M0QwMCIs DQoifS4JYyAjNkIzNDA2IiwNCiJ8LgljICNBRTU3MDYiLA0KIjEuCWMgI0MxNjQwQyIsDQoi Mi4JYyAjN0I0QzI1IiwNCiIzLgljICNBNzdBNEQiLA0KIjQuCWMgI0M0OEU0NCIsDQoiNS4J YyAjRTA4NjIwIiwNCiI2LgljICNBODRFMDAiLA0KIjcuCWMgIzdFMzkwMCIsDQoiOC4JYyAj MkMyNTIxIiwNCiI5LgljICM0RjQ1M0IiLA0KIjAuCWMgIzgwNDEwRCIsDQoiYS4JYyAjQ0M2 NTAzIiwNCiJiLgljICNDMDYyMDkiLA0KImMuCWMgIzgxNEIxRiIsDQoiZC4JYyAjODU1NTJF IiwNCiJlLgljICNBMTc3NDYiLA0KImYuCWMgI0FCNzgzRCIsDQoiZy4JYyAjQzU4QTNDIiwN CiJoLgljICNERDg1MUYiLA0KImkuCWMgI0M4NjEwMSIsDQoiai4JYyAjM0UzQTM1IiwNCiJr LgljICM5Rjk3OEQiLA0KImwuCWMgIzZENTQzQiIsDQoibS4JYyAjN0QzQTAzIiwNCiJuLglj ICNBQjUyMDEiLA0KIm8uCWMgI0RDNjkwMCIsDQoicC4JYyAjQTg1ODBEIiwNCiJxLgljICM5 MDRGMTciLA0KInIuCWMgIzhCNTQyMyIsDQoicy4JYyAjOUI2MzI5IiwNCiJ0LgljICNCMDZG MjciLA0KInUuCWMgI0M0NzMxRSIsDQoidi4JYyAjRTI3NjBBIiwNCiJ3LgljICNBQTUwMDAi LA0KInguCWMgIzdEMzkwMCIsDQoieS4JYyAjMkYyQzI4IiwNCiJ6LgljICM5ODkyODgiLA0K IkEuCWMgIzY3NUU1MiIsDQoiQi4JYyAjNkU1ODM3IiwNCiJDLgljICM2QTRGMkQiLA0KIkQu CWMgIzY2MzEwNSIsDQoiRS4JYyAjODUzRDAwIiwNCiJGLgljICNCMTU0MDAiLA0KIkcuCWMg I0M4NUYwMCIsDQoiSC4JYyAjREU2QjAwIiwNCiJJLgljICNEQzZDMDEiLA0KIkouCWMgI0M3 NUYwMCIsDQoiSy4JYyAjQjA1MzAwIiwNCiJMLgljICM4NjNFMDAiLA0KIk0uCWMgIzdEMzgw MCIsDQoiTi4JYyAjMjgyNDIwIiwNCiJPLgljICM4RTg3N0YiLA0KIlAuCWMgIzY3NjE1NiIs DQoiUS4JYyAjNTk0OTMxIiwNCiJSLgljICM0NTM4MjYiLA0KIlMuCWMgIzE5MTYxNCIsDQoi VC4JYyAjNzMzMzAwIiwNCiJVLgljICM3QTM4MDAiLA0KIlYuCWMgIzdCMzgwMCIsDQoiVy4J YyAjODAzQTAwIiwNCiJYLgljICM3QTM3MDAiLA0KIlkuCWMgIzI0MjAxQyIsDQoiWi4JYyAj ODE3QjczIiwNCiJgLgljICM2QTY0NUMiLA0KIiArCWMgIzQ1M0IyQiIsDQoiLisJYyAjMkEy NTFDIiwNCiIrKwljICMxOTE1MTIiLA0KIkArCWMgIzRDNDY0MSIsDQoiIysJYyAjNkM2NzVG IiwNCiIkKwljICMzNDJGMjYiLA0KIiUrCWMgIzFFMUExNiIsDQoiJisJYyAjMTUxMzEwIiwN CiIqKwljICMwNDA0MDQiLA0KIj0rCWMgIzFCMTcxNCIsDQoiLSsJYyAjMjMyMTFCIiwNCiI7 KwljICMxQTE3MTQiLA0KIj4rCWMgIzEzMTIwRiIsDQoiLCsJYyAjMTgxNTExIiwNCiIgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLA0KIiAgICAg ICAgICAgICAgICAgICAgICAuICsgKyArIC4gQCAgICAgICAgICAgICAgICIsDQoiICAgICAg ICAgICAgICAgICAgIyAkICUgJiAqID0gLSA7ID4gLCAgICAgICAgICAgIiwNCiIgICAgICAg ICAgICAgICAgJyApICEgfiB7IF0gXiAvICggXyA6IDwgICAgICAgICAiLA0KIiAgICAgICAg ICAgICAgWyB9IHwgMSAyIDMgNCA1IDYgNyA4IDkgMCBhICAgICAgICIsDQoiICAgICAgICAg ICAgYiBjIGQgZSBmIGcgaCBpIGcgZyBnIGogayBsIG0gYiAgICAgIiwNCiIgICAgICAgICAg ICBuIG8gcCBxIGcgciBzIHQgZyBnIGcgZyB1IHYgdyB4ICAgICAiLA0KIiAgICAgICAgICB5 IHogQSBCIGcgZyBDIEQgRSBGIGcgZyBnIGcgRyBIIEkgSiAgICIsDQoiICAgICAgICAgIEsg TCBNIE4gZyBnIGcgZyBnIGcgRiBnIGcgZyBPIFAgUSBSICAgIiwNCiIgICAgICAgICAgUyBU IFUgZyBnIGcgZyBnIGcgZyBnIEYgZyBnIFYgVyBYIFkgICAiLA0KIiAgICAgICAgICBaIGAg IC5GIEYgRiBGIEYgRiBGIEYgRiBGIGcgZyAuLisuQC4gICIsDQoiICAgICAgICAgICMuJC4l LiYuZyBnIGcgZyBnIGcgZyBGIGcgZyAqLj0uLS47LiAgIiwNCiIgICAgICAgICAgPi4sLicu KS5nIGcgZyBnIGcgZyBGIGcgZyBnICEufi57Ll0uICAiLA0KIiAgICAgICAgICAgIF4uLy4o LmcgZyBnIGcgZyBGIGcgZyBnIF8uOi48LlsuICAgICIsDQoiICAgICAgICAgICAgfS58LjEu Mi5nIGcgZyBnIGcgZyBnIDMuNC41LjYuNy4gICAgIiwNCiIgICAgICAgICAgOC45LjAuYS5i LmMuZC5nIGcgZyBlLmYuZy5oLmkuXS4gICAgICAiLA0KIiAgICAgICAgICBqLmsubC5tLm4u by5wLnEuci5zLnQudS52LncueC4gICAgICAgICIsDQoiICAgICAgICB5LnouQS5CLkMuRC5F LkYuRy5ILkkuSi5LLkwuTS4gICAgICAgICAgIiwNCiIgICAgICBOLk8uUC5RLlIuUy4gICAg VC43LlUuVi5XLlguICAgICAgICAgICAgICAiLA0KIiAgICBZLlouYC4gKy4rKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICIsDQoiICAgIEArIyskKyUrJisqKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIiwNCiIgICAgPSstKzsrPisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiLA0KIiAgICAgICwrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICIsDQoiICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIn07DQo= --------------bYwlZf5vAKS0H0CwVc04O0IS-- From unknown Thu Jun 19 16:24:32 2025 X-Loop: help-debbugs@gnu.org Subject: bug#71162: bug-gnu-emacs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 24 May 2024 06:17:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 71162 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: David McCracken Cc: 71162@debbugs.gnu.org Received: via spool by 71162-submit@debbugs.gnu.org id=B71162.171653137216453 (code B ref 71162); Fri, 24 May 2024 06:17:02 +0000 Received: (at 71162) by debbugs.gnu.org; 24 May 2024 06:16:12 +0000 Received: from localhost ([127.0.0.1]:35160 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sAODr-0004HJ-PS for submit@debbugs.gnu.org; Fri, 24 May 2024 02:16:12 -0400 Received: from eggs.gnu.org ([209.51.188.92]:47046) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sAODp-0004H6-MV for 71162@debbugs.gnu.org; Fri, 24 May 2024 02:16:11 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sAODc-0001dB-LH; Fri, 24 May 2024 02:15:56 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=DbdA9LHuR7Mymor82RpD2H8buP3LJZ+jHSCNwGTsb40=; b=fRTMovxVtZfC Nh9S7MUTMU7hTeBhnpXCXpTjOA7cBoQtdqHs9fyjrYcG7y2Tupx1YDUpe5M6giFSOmrBXbs9eX8rb ANTvX0na/Gl8TRfqmCmd0pDIO0FDXA91bY3ogInU+UoweZWAs67sR/MoAk/9oDUrd414KWMNobGdQ FQgbJ2oLlkDorjumZ/UbvSmh2dhWK9alUPNtKP7vo/7YTcmE0ytTJn7emtT95wYc2k0CoVIUKfLHW g57aFCA92v8vO2ZXT3WgmqewT4trrPIMgyUdBFM9OW1sSvTDCQBWSzinOheSBplx8CDiRYbucLuaG O/UgTosFyqqpH5ZQVaz7WQ==; Date: Fri, 24 May 2024 09:15:54 +0300 Message-Id: <86wmnj3fc5.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: (message from David McCracken on Thu, 23 May 2024 21:08:24 -0700) References: X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Thu, 23 May 2024 21:08:24 -0700 > From: David McCracken > > 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. From debbugs-submit-bounces@debbugs.gnu.org Fri May 24 05:30:03 2024 Received: (at control) by debbugs.gnu.org; 24 May 2024 09:30:03 +0000 Received: from localhost ([127.0.0.1]:36087 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sARFT-00061L-8g for submit@debbugs.gnu.org; Fri, 24 May 2024 05:30:03 -0400 Received: from mout.gmx.net ([212.227.17.20]:40715) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sARFR-00060T-4k for control@debbugs.gnu.org; Fri, 24 May 2024 05:30:02 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1716542988; x=1717147788; i=michael.albinus@gmx.de; bh=qMqlbU5McYRujqeAVxRFb+t1U3BT3LtMNC73fmyyH+0=; h=X-UI-Sender-Class:From:To:Subject:Date:Message-ID:MIME-Version: Content-Type:cc:content-transfer-encoding:content-type:date:from: message-id:mime-version:reply-to:subject:to; b=NHz+ZaZfaFQMefpDfDgfhKGn9Fw7HrZilEPgVv3mDygK0jYHFtp1Xll1v8SsZVlP ru/4NRquqw0eS6Rx4Q71IJ5HDmqOTpY6LW/Rl5xbEqfbncbMsnBBxQSMcwKhpVAD7 25oB/Dv9lxA/nFI1kQnVaIKSEIpRURv1r7uCYElVv8GDxtBNbK/AI80VxjunBCxsl CrfGMBhAwUzgtE2l9PkU/EmSXSGQfprbQQejykL2Njg/vv22ZL6QY2efrFzTPVUA/ klUcyKdQfZF7ojtrML/Dr8SLhUo9w5cDkFUPS17GcxE+f/RJCixE58U1Nklnzltwg JjOW/papOkC5KXa1xg== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from gandalf.gmx.de ([185.89.38.151]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MXGr8-1s11Tm18pC-00Vi1U for ; Fri, 24 May 2024 11:29:48 +0200 From: Michael Albinus To: control@debbugs.gnu.org Subject: control message for bug #71162 Date: Fri, 24 May 2024 11:29:47 +0200 Message-ID: <877cfjh81g.fsf@gmx.de> MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:AbKcsn7ieksJrIK1mQY8oaqoxxeTv/hn+upH7JTTtKItNBhu+dN hOxbvDn7e3HNjw45GZW3U/wnSGcMhuD8ztGtqeC9nfhiRU0Z15B3Q7/F5LI1hgbaV+qki/m nDmE43dk0pGmmKwm4RHjaJB3tbYvo3t+932YF2chr3hNRIIvQ04LA908tTNK2Zy6NELmKON o27iRYXBdfO9dog1QZ9FQ== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:ZYS7X3cqQOw=;t4pSBg1yqjWFmih2qONcFucfpcu DlmULsp+1TZKiDtsIbbM0LrFHr2NgWcUtYlTOS3INHcqUHnFH1l4rW2x1Hq6E6sbXV8cLKbzR YQKT/w1b4j/tEXes0U+BMRDBAcTF4N1toh9vUmDyiKvN4q6/5l1Y7mfTB2OOtEPfJe71+SL9F Lr93HuJxCmDtc5bqICZhATTpjIb8+rGAE/vrPBIFH8Rvk6OqN1uS7DF63MKJHbpRM1D0FSVbj gvPFAeyfI5vth9iGs9cyu+LA6IYGGXNhqTu4P7B/pOUP/GrrZYLivSdfqg1a/qF9z3VzAyTGs snnESY5ljAH1vQz0GE+Ndk1lq3xWWOp/gYHJ3ipheXMAZZqi9BSEVJiuKsB1Xzc9ZZPE40DM6 fgY4dUrR3sz+xEkSAeAJbLt2g+ahPxje/hVud8N+G/GhR404v8oO58DhSvnyUh2lj9ESs7Bvy bxz4vVz/Zsly+E/ZjU49htQMfGE/0617fcKzJJWQ3D6CRBMd3dJ56rO28x5C8cJ+FILTIgdwu JPy9M4YN/kgBNecAh+F2ukNuMuoJDnLurKUWZ0QCfqvDbjHg+U/P42i9cfbz0Q2KvCv0YtW77 L2Q2DRKl4SDqJ0rZe1c9eoIdiHvbXYumbD5cvXoRzB9CqYXiA7TQfAeemCGuAG19Mte2ptDmz UsTW0/oshI9Y7C/t8rSlASmenHr6BdBUL2btXdyxGy0dVoA2eYK2NAPrwZ8Pd7gzQCcSxmXCu Siw7oXenoeKVh9QGVOMARfXP8mpLoUIz9pfuV9ryZt2kB01VH8YLpYlq+IWJthSP1HEFc3zR5 9hTI3GUSPHQqCD/uQ78juOlbUxJcWz3HchAbdPnRVuc2RNnKX1KJxTpzkMG6rNhpAT X-Spam-Score: 2.9 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: retitle 71162 27.1; toolbar icons quit Content analysis details: (2.9 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 3.6 RCVD_IN_SBL_CSS RBL: Received via a relay in Spamhaus SBL-CSS [185.89.38.151 listed in zen.spamhaus.org] 0.0 RCVD_IN_MSPIKE_H4 RBL: Very Good reputation (+4) [212.227.17.20 listed in wl.mailspike.net] -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [212.227.17.20 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (michael.albinus[at]gmx.de) -0.0 SPF_PASS SPF: sender matches SPF record 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.9 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: retitle 71162 27.1; toolbar icons quit Content analysis details: (1.9 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 RCVD_IN_MSPIKE_H4 RBL: Very Good reputation (+4) [212.227.17.20 listed in wl.mailspike.net] 3.6 RCVD_IN_SBL_CSS RBL: Received via a relay in Spamhaus SBL-CSS [185.89.38.151 listed in zen.spamhaus.org] -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [212.227.17.20 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (michael.albinus[at]gmx.de) -0.0 SPF_PASS SPF: sender matches SPF record 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager retitle 71162 27.1; toolbar icons quit From unknown Thu Jun 19 16:24:32 2025 X-Loop: help-debbugs@gnu.org Subject: bug#71162: bug-gnu-emacs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 25 May 2024 06:12:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 71162 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: David McCracken Cc: 71162@debbugs.gnu.org Received: via spool by 71162-submit@debbugs.gnu.org id=B71162.171661751411992 (code B ref 71162); Sat, 25 May 2024 06:12:01 +0000 Received: (at 71162) by debbugs.gnu.org; 25 May 2024 06:11:54 +0000 Received: from localhost ([127.0.0.1]:41373 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sAkdF-00037M-Qa for submit@debbugs.gnu.org; Sat, 25 May 2024 02:11:54 -0400 Received: from eggs.gnu.org ([209.51.188.92]:46492) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sAkdC-00037G-KY for 71162@debbugs.gnu.org; Sat, 25 May 2024 02:11:52 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sAkat-0003tJ-6X; Sat, 25 May 2024 02:09:27 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:References:Subject:In-Reply-To:To:From: Date; bh=q3iAjiVuY3PIyf8AY9kbfxbK9ZglUB+CjJvi+Ip75fg=; b=HCV576KNtaQ40s6+Gxxj oASyF1350wthTyoA9U/H0GR8OSp9CiwTfC1spf4MGJDa6LDgwV5I0+IGFUgI99GeYwnHLfDHkncRW ggRbKvq3Y8+P45UJGlvUt3Ajd6THegxnQHALCfxcV8F/2UXY6GcCcfqHQmx9c8/ssRuXEOWFfF1l8 P2N410kNhi/ftW096SWR4KqDJwPsIkyGEUv2YFDL5JcrA6ZvdO6VBJQDeVeVHryP1nfenh5k9f3wG KzvhaVjrDdNVo7IJcRLExfwQOwyJ2xFGP1mlpK/+ydnzMhnXoGBFnC8Lduz0htH3T+zXfDnPVhFA0 17oifoyFPb++dA==; Date: Sat, 25 May 2024 09:09:23 +0300 Message-Id: <86msoe1kz0.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <9002e131-3466-4a73-a88c-bad260e5b886@ixont.com> (message from David McCracken on Fri, 24 May 2024 12:29:49 -0700) References: <86wmnj3fc5.fsf@gnu.org> <9002e131-3466-4a73-a88c-bad260e5b886@ixont.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) --=-=-= Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable [Please use Reply All to reply, to keep the bug tracker CC'ed.] > Date: Fri, 24 May 2024 12:29:49 -0700 > From: David McCracken >=20 > I use the same icons and emacs code on Windows and Linux. In Windows it=20 > works in Emacs 29.1 and 26.1 (the two I currently use but it worked in=20 > older versions as well). In Ubuntu-Mate (20.54 and 22.04) it works in=20 > Emacs 26.3 but not 27.1. The code I use for this particular example is >=20 > (define-key-after (default-value 'tool-bar-map) > =A0 [separator-4] menu-bar-separator) > ; Linux-Emacs v25 includes pseudo-key name in the toolbar unless it is too > ; long, which is the only way to stop this unwanted behavior. > (tool-bar-add-item "~/icons/lxa-next" > =A0 'lxa-next > =A0 'lxa-next-reference > =A0 :help "LXA next reference") >=20 > In all cases except Emacs 27.1 in Linux the user icons directory is not=20 > a problem. However, it is an additional problem in 27.1 under Linux. The= =20 > same native lock-broken.xpm that works when in the images directory and=20 > referenced simply as "lock-broken" fails when moved to the user icons=20 > directory and referenced as "~/icons/lock-broken". 27.1 also ignores my=20 > lxa-next.xpm when moved to the images directory and referenced simply as= =20 > "lxa-next". Somebody hard-wired all flexibility out of this mechanism=20 > after 26.3 but only in the Linux version. I initially suspected the=20 > changes related to B/W pbm images, which is described in the images=20 > README but I found the same README in 26.3. If you visit (with C-x C-f) the lxa-next.xpm file in Emacs 27.1 on Ubuntu, does it display correctly as an image? If not, your Emacs 27.1 on Ubuntu is for some reason unable to display XPM images. If lxa-next.xpm does display correctly on Ubuntu, then you need to find out why adding a tool-bar button with an XPM image doesn't work for you. I just tried the below in "emacs-Q" (using Emacs 27.1), and it did show the additional tool-bar button: (defun lxa-next () (interactive) (message "lxa-next")) (tool-bar-add-item "~/icons/lxa-next" 'lxa-next 'lxa-next-reference :help "LXA next reference") Does the above work for you in "emacs -Q" on Ubuntu? If it works in "emacs -Q", but not in your regular sessions, then there are some customizations, perhaps site-wide and possibly by the Ubuntu distro, which somehow prevent this. In the upstream sources, I see no changes in this area. tool-bar-add-item still ends up calling tool-bar--image-expression, which calls find-image like this: (let* ((fg (face-attribute 'tool-bar :foreground)) (bg (face-attribute 'tool-bar :background)) (colors (nconc (if (eq fg 'unspecified) nil (list :foreground fg)) (if (eq bg 'unspecified) nil (list :background bg)))) (xpm-spec (list :type 'xpm :file (concat icon ".xpm"))) (xpm-lo-spec (list :type 'xpm :file (concat "low-color/" icon ".xpm"))) (pbm-spec (append (list :type 'pbm :file (concat icon ".pbm")) colors)) (xbm-spec (append (list :type 'xbm :file (concat icon ".xbm")) colors))) `(find-image (cond ((not (display-color-p)) ',(list pbm-spec xbm-spec xpm-lo-spec xpm-spec)) ((< (display-color-cells) 256) ',(list xpm-lo-spec xpm-spec pbm-spec xbm-spec)) (t ',(list xpm-spec pbm-spec xbm-spec)))))) As you see here, if your display can support at least 256 colors, the XPM image gets preference over the other possibilities. And find-image searches for the image file via image-search-load-path, which searches image-load-path, and for absolute file names like "~/images/lxa-next" should find the file immediately regardless of the value of image-load-path. So if your Emacs does not have some customizations, it should find the images without any problem. If the problem is some Ubuntu customizations, you should take that up with the Ubuntu distro maintainers; we here are only responsible for the original Emacs 27.1 tarball. > In case you are interested I have attached my complete code. I attach it below, because you sent the response only to me in private email (please use Reply All or "wide reply" in your future responses to this discussion). --=-=-= Content-Type: application/emacs-lisp Content-Disposition: attachment; filename=linkxall.el Content-Transfer-Encoding: quoted-printable ;;; linkxall.el --- Provides hyperlinking with LibreOffice LinkXall library= =0D ;; Copyright (C) 2022-2024 David McCracken=0D ;; Author: David McCracken=0D ;; Keywords: lisp LibreOffice LinkXall=0D ;; Version: 0.1.0=0D =0D ;; This program is free software; you can redistribute it and/or modify it = =0D ;; under the terms of the GNU General Public License version 3 as published= by =0D ;; the Free Software Foundation=0D =0D ;; This program is distributed in the hope that it will be useful,=0D ;; but WITHOUT ANY WARRANTY; without even the implied warranty of=0D ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the=0D ;; GNU General Public License for more details.=0D =0D ;; You should have received a copy of the GNU General Public License=0D ;; along with this program. If not, see .=0D =0D ;;; Commentary:=0D ;; Updated: 2024.04.10.11.16=0D ;; Purposes: Emacs LinkXall library. This works with the LibreOffice Basic= =0D ;; LinkXall library to implement plain text LinkXall-compliant hyperlinks i= n =0D ;; both Windows and Linux (with X). =0D =0D ;; Extended program comments are in LO doc files referenced here by links.= =0D ;; *LXA-ODF*|LXADOC|LxaUserGuide.odt*^1Emacs* General description in User G= uide.=0D ;; *LXA-ODF*|LXADOC|LxaUserGuide.odt*^2EmacsUserInterface* Menu Help.=0D ;; *LXA-ODF*|LXADOC|LxaDesign.odt*^1Emacs* Program design=0D =0D ;; Place this in Emacs\share\emacs\site-lisp and auto-load it with =0D ;; (load-library "linkxall.el" ) in .emacs. Also, all of the code is wrappe= d in=0D ;; a progn, which can be interactively evaluated to test program changes.=0D ;; Icons for the toolbar are located in ~/icons. In Windows, HOME evironmen= t=0D ;; variable must be defined, as e.g. C:\Home. The icons are lxa-backlink.xp= m,=0D ;; lxa-fwdlink.xpm, lxa-pin.xpm, lxa-prev.xpm, and lxa-next.xpm.=0D =0D ;; When this loads, it creates LXA menu and toolbar and assigns keyboard an= d =0D ;; mouse shortcuts. There are five major UI actions, open/follow, Back, For= ward,=0D ;; Previous, and Next. Open/follow is the only context-sensitive action. It= =0D ;; opens the menu at the caret on M-l (downcase-word is rebound to M-L) or = =0D ;; pointer on C-S-mouse-1 unless the text is a (syntactically) valid LinkXa= ll =0D ;; link, in which case the link is "followed" by passing it to LO LinkXall.= =0D ;; Back and Forward peruse the jump list, which is maintained by LinkXall. = =0D ;; Keyboard shortcuts M-S-left and M-S-right are bound to Back and Forward,= M-S-=0D ;; up and M-S-down to Previous and Next. Previous and Next search for the = =0D ;; previous and next reference, which is either a bookmark or link. =0D =0D ;; By default this asks the LinkXall (Libre BASIC) library to open all link= =0D ;; types. However, it can follow ODT, BSR, and WEB types itself and doing s= o may =0D ;; afford better performance in some circumstances. This "mixed" mode (BAS,= TXT, =0D ;; and SYS require the library) is enabled by replacing the t with nil in=0D ;; (setq lxa-min-follow t).=0D =0D ;**************************************************************************= *****=0D =0D (progn ; Wrapper to invoke all definitions during development.=0D =0D ; =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D UTILITIES =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D =0D ;------------------------------- #move-mouse-to-point ---------------------= ---=0D (defun move-mouse-to-point()=0D (let ((pos (window-absolute-pixel-position)))=0D (set-mouse-absolute-pixel-position=0D (car pos) (cdr pos))))=0D =0D ; ------------------------------- #lxa-collapse ---------------------------= ----=0D (defun lxa-collapse(beg)=0D "Collapse selection to begin (BEG=3Dt) or end (BEG=3Dnil)"=0D (if (xor (> (point) (mark)) beg) (set-mark (point))=0D (set-window-point nil (mark))))=0D =0D ;------------------------------- #lxa-trim-string -------------------------= ------=0D (defun lxa-trim-string(str)=0D "Create new string from STR with leading and trailing space removed"=0D (replace-regexp-in-string "^\s+" "" =0D (replace-regexp-in-string "\s+$" "" str)))=0D =0D ;----------------------------- #lxa-condense-string -----------------------= ------=0D (defun lxa-condense-string(str)=0D "Return nil if trimmed STR is empty else `lxa-trim-string' STR"=0D (if (not (stringp str)) nil=0D (let ((ns (lxa-trim-string str)))=0D (if (equal ns "") nil ns))))=0D =0D ;----------------------------- #lxa-get-cursor-line -----------------------= ------=0D (defun lxa-get-cursor-line()=0D (save-excursion=0D (beginning-of-line)=0D (setq beg (point))=0D (end-of-line)=0D (lxa-trim-string (buffer-substring-no-properties beg (point)))))=0D =0D ;------------------------------- #lxa-index-list --------------------------= -----=0D (defun lxa-index-list( thing reflist )=0D "Return the 0-based index of THING in REFLIST or -1 if not in REFLIST.\n\=0D Typically, THING is a string and REFLIST is a list of strings"=0D (let ((listlen (length reflist)) (mlist (member thing reflist)))=0D (if mlist (- listlen (length mlist)) -1 )))=0D =0D (defun lxa-show-match (backward)=0D "Highlight the last search match"=0D (if backward ; after backward search=0D (progn=0D (goto-char (match-end 0))=0D (set-mark (point))=0D (goto-char (match-beginning 0)))=0D ; else after forward search=0D (goto-char (match-beginning 0))=0D (set-mark (point))=0D (goto-char (match-end 0))))=0D =0D ;------------------------------- #get-line-number -------------------------= ------=0D ; Emacs version 26 defines line-number-at-pos as optionsl POS ABSOLUTE and= =0D ; version 25 as optional POS. In v26 ABSOLUTE must be t or the line number= =0D ; is based on display. v25 is automatically abs without the argument but=0D ; complains when given two args.=0D (defun get-line-number() (line-number-at-pos nil t))=0D (condition-case nil=0D (get-line-number)=0D (error (defun get-line-number() (line-number-at-pos))))=0D =0D ;------------------------------ #lxa-focus-window -------------------------= -----=0D (defun lxa-focus-window( uri )=0D (if (> lxa-focus 0) =0D (pcase lxa-focus (1 (call-process "wmctrl" nil 1 nil "-a" uri))=0D (2 (call-process "wintop" nil 1 nil uri)))))=0D =0D ; =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D CORE FUNC= TIONS =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D =0D ;----------------------------- #lxa-xcmd ----------------------------------= -=0D ; External command request. Typically from OO linkxall through wemecs or le= macs.=0D ; Return is irrelevant. =0D ;- cmd integer tells what to do. =0D ;- parm is string to search for or line (as string int) to go to.=0D ; All arguments are quoted strings because the interface program (wemacs or= =0D ; lemacs) doesn't know what they are when it builds the invocation command.= cmd=0D ; is required. parm and parm2 are optional. parm2 is unused but declared to= =0D ; afford the (external) caller more freedom in formulating the command line= . =0D ;=0D ; cmd is bitmap where:=0D ; b3 0 =3D search, 1 =3D go to line. If go to line then b0 =3D 0 means don'= t =0D ; highlight the line and 1 means do highlight it. If search then:=0D ; b2: 0 =3D case-sensitive, 1 =3D case-insensitive. =0D ; b1 =3D start at: 0 =3D current, 1 =3D begin if forward (b0=3D0), end if b= ackward (b0=3D1).=0D ; b0 =3D direction; 0 =3D forward, 1 backward=0D ; Thus:=0D ; 0 =3D search forward from current case-sensitive (4 =3D insensitive)=0D ; 1 =3D search backward from current case-sensitive (5 =3D insensitive)=0D ; 2 =3D search forward from begin case-sensitive (6 =3D insenstive)=0D ; 3 =3D search backward from end case sensitive (7 =3D insenstive)=0D ; 8 =3D go to line number parm and don't highlight the line.=0D ; 9 =3D go to line number parm and highlight the line.=0D ;=0D ; If not from current then go to end if backward or beginning if forward. I= f =0D ; from current then collapse the current selection to begin if backward or= =0D ; to end if forward to avoid repeatly finding the same instance.=0D ; The search function is invoked with limit=3Dnil and noerror=3Dt, which is= very=0D ; important because with default noerror=3Dnil on search failure this funct= ion=0D ; is aborted and an error code returned to the calling program, which will = not=0D ; be able to distinguish it from emacsclient failure.=0D ; *LXA-ODF*|LXADOC|LxaDesign.odt*^3lxa-xcmd*=0D ; *LXA-BAS*LinkXall>LinkXall*#LXAopenEmacs*=0D ; .........................................................................= ....=0D (defun lxa-xcmd(cmd &optional parm parm2)=0D "linkxall external command request"=0D (interactive)=0D (let* =0D ((cnum (string-to-number cmd))=0D (b0 (=3D (logand cnum 1) 1)) ; b0 =3D t if cmd b0 =3D 1=0D (b1 (=3D (logand cnum 2) 2)) ; b1 =3D t if cmd b1 =3D 1=0D (case-fold-search (=3D (logand cnum 4) 4)))=0D (when parm ; parm is required in all of the following cases. =0D (if (< cnum 8) ; Search for parm string=0D (progn =0D (if b1 (if b0 (end-of-buffer) (beginning-of-buffer)) (lxa-collaps= e b0))=0D (if (funcall (if b0 'search-backward 'search-forward) parm nil t)= =0D (progn (lxa-show-match nil) (setq lxa-search parm))=0D ; else not found. Collapse selection to avoid its extension and d= isplay error. =0D (set-window-point nil (mark))(message-box (concat "Unable to fi= nd " parm))))=0D ; else (cnum >=3D 8) goto to parm line number=0D (goto-line (string-to-number parm))=0D (when b0 (set-mark (point)) (end-of-line))) ; eol), when b0, if=0D ))t) ; when parm, let, defun=0D =0D ;------------------------- #lxa-back-fwd ----------------------------------= =0D ; *LXA-ODF*|LXADOC|LxaDesign.odt*^3LXAxrev*=0D (defun lxa-back-fwd(bf)=0D "Shared core of lxa-link-back and lxa-link-forward, used to peruse the \= =0D LXA link trail. BF is 'B' to go backward and 'F' to go forward. These speci= fic \=0D values are required for coordinating with other programs." =0D (let ((linkproc))=0D (setq linkproc=0D (start-process "openlinkproc" nil =0D (if (getenv "ODAPP") (substitute-in-file-name "$ODAPP") "soffice")=0D (concat "macro:///LinkXall.LinkXall.LXAxrev(\"" bf "\")") ))=0D (set-process-query-on-exit-flag linkproc nil)))=0D =0D ;-------------------------------- #lxa-link-back --------------------------= ------=0D (defun lxa-link-back()=0D "Go back to previous link point"=0D (interactive)=0D (lxa-back-fwd "B"))=0D =0D ;------------------------------ #lxa-link-forward -------------------------= -----=0D (defun lxa-link-forward()=0D "Go to next forward link point"=0D (interactive)=0D (lxa-back-fwd "F"))=0D =0D ;----------------------------- #lxa-set-pinpoint --------------------------= --=0D (defun lxa-set-pinpoint()=0D "Record point for revisit in jump list"=0D (interactive)=0D (let ((linkproc))=0D (setq linkproc=0D (start-process "openlinkproc" nil =0D (if (getenv "ODAPP") (substitute-in-file-name "$ODAPP") "soffice")= =0D (concat "macro:///LinkXall.LinkXall.LXAxlink(LXA-PIN;"=0D buffer-file-name ";" (number-to-string (get-line-number)) "*2)"))= )=0D ; *LXA-ODF*|LXADOC|LxaDesign.odt*^3LXAxlink*=0D ; *LXA-BAS*LinkXall>LinkXall*#LXAxlink=0D (set-process-query-on-exit-flag linkproc nil)))=0D =0D ; ---------------------- #lxa-prev-next --------------------------=0D (setq lxa-search nil)=0D =0D (defun lxa-prev-next(pn)=0D "Shared core of lxa-prev and lxa-next functions to search for the most \= =0D recent LXA reference. PN is t for previous (search backward) and nil for \= =0D next (search forward)"=0D (if (equal lxa-search nil) (message-box "There is no reference")=0D (if (use-region-p) (goto-char (if pn (region-beginning) (region-end))))=0D (when (funcall (if pn 'search-backward 'search-forward) lxa-search nil ni= l)=0D (lxa-show-match t) (message lxa-search))))=0D =0D ;---------------------------------- #lxa-prev -----------------------------= -----=0D (defun lxa-prev()=0D "Search backward for the lxa reference"=0D (interactive)=0D (lxa-prev-next t))=0D =0D ;---------------------------------- #lxa-next -----------------------------= -----=0D (defun lxa-next()=0D "Search forward for the lxa reference"=0D (interactive)=0D (lxa-prev-next nil))=0D =0D ;---------------------------------- #lxa-help-ui --------------------------= --------=0D (defun lxa-help-ui()=0D "User interface help"=0D (lxa-open-link "*LXA-ODF*|LXADOC|LxaUserGuide.odt*^2EmacsUserInterface*" = t ))=0D =0D ;---------------------------------- #lxa-help-bind ------------------------= ----------=0D (defun lxa-help-bind()=0D "Bindings help"=0D (lxa-open-link "*LXA-ODF*|LXADOC|LxaUserGuide.odt*^2Bindings*" t ))=0D =0D ;------------------------------ #lxa-open-err -----------------------------= -=0D (defun lxa-open-err()=0D (message-box "what")) ; "There is no LXA link in \"%s\"" (lxa-get-cursor-= line)))=0D =0D ;--------------------- #lxa-open-link -----------------------------------=0D ; Open (follow) an LXA-type link. =0D ; Return 0 if the text doesn't contain an LXA link type, 1 if it does but n= ot a =0D ; completely valid link (syntax error or missing piece), 2 if the link URL = =0D ; includes an undefined environment variable, 3 if the link is completely v= alid =0D ; but the target can't be opened, and 4 on complete success. =0D ; Optional Arguments:=0D ;- txt is the text to be evaluated. If not provided then the line containin= g the=0D ; cursor is evaluated.=0D ;- rpt t tells to report to the user all errors processing the text as a li= nk.=0D ; Missing or nil tells to report only errors trying to follow a syntactica= lly =0D ; valid link.=0D ; *LXA-ODF*|LXADOC|LxaDesign.odt*^3lxa-open-link*=0D ; .........................................................................= ..=0D (defun lxa-open-link(&optional txt rpt) =0D "Open a link to a LibreOffice document or macro library, another text file,= \n\=0D local HTML file, or web URL. This requires LibreOffice with LinkXall librar= y.\n\=0D Optional TXT is a LinkXall text link. If missing then the entire line\n\=0D containing the cursor is processed. Optional RPT if t tells to report\n\=0D all errors to the user. If missing or nil then only interpretation errors\n= \=0D are reported."=0D (interactive)=0D (unless txt (setq txt (lxa-get-cursor-line)))=0D (catch 'fatal=0D (setq lxa-err 0)=0D (let* ( (oswin (equal system-type 'windows-nt)) =0D (oslin (not oswin))=0D (linktype -1) =0D (args (split-string txt "*" nil))=0D beg name uri bm linkproc wcnt outbuf kbqf here nopro )=0D (while =0D (progn=0D (setq name (pop args))=0D (and name=0D (< (setq linktype =0D (lxa-index-list name =0D (list "LXA-BAS" "LXA-ODF" "LXA-TXT" "LXA-BSR" "LXA-SYS" = "LXA-WEB")=0D ))0))))=0D (when (< linktype 0) =0D (when rpt (message-box "No LXA link type in \"%s\"" txt))=0D (throw 'fatal 0))=0D (setq uri (lxa-condense-string (pop args)))=0D (when (not uri)=0D (when rpt (message-box "LXA link missing URI in \"%s\"" txt))=0D (throw 'fatal 1))=0D (setq bm (lxa-condense-string (pop args)))=0D =0D (setq here =0D (concat buffer-file-name ";" =0D (number-to-string (get-line-number))))=0D =0D ; ---------------- minimal form -------------------------------------------= ------=0D ; If configured to use only min form or if linktype is only supported by mi= n=0D ; (0/BAS, 2/TXT, 4/SYS).=0D (if (or lxa-min-follow (> (lxa-index-list linktype (list 0 2 4)) -1))= =0D (progn=0D ;(message (concat "macro:///LinkXall.LinkXall.LXAxlink(" name "*" uri "*" b= m ";" here "*2)")) ; ))))))=0D (setq linkproc =0D (start-process "openlinkproc" nil =0D (if (getenv "ODAPP") (substitute-in-file-name "$ODAPP") "soff= ice")=0D (concat "macro:///LinkXall.LinkXall.LXAxlink(" =0D name "*" uri "*" bm ";" here "*2)")))=0D (set-process-query-on-exit-flag linkproc nil)=0D (if lxa-min-focus =0D (lxa-focus-window (if (=3D linktype 0) "LibreOffice Basic" =0D (file-name-nondirectory uri))))=0D ) ; min form progn=0D =0D ;--------------- else long form ---------------------=0D (setq nopro (not (string-match ":///" uri)))=0D (if nopro ; Expand/test uri unless (WEB) protocol.=0D (progn=0D (setq uri =0D (replace-regexp-in-string "|[^|]+|" =0D ; If the environment variable is not in the dictionary, lxa-getenvar throws= =0D ; 'fatal 3.=0D (lambda(var) (lxa-getenvar (substring var 1 -1)))=0D uri t)) ; Note t fixedcase optional argument to =0D ; replace-regexp-in-string. Otherwise it uses the case of the varname.=0D (setq uri ; If relative convert to absolute.=0D (expand-file-name uri (file-name-directory buffer-file-name))= )=0D (if (not (file-readable-p uri))=0D (progn (message-box (concat uri " does not exist.")) =0D (throw 'fatal 3)))))=0D =0D ; If WEB or BSR when DEFBROWSER is not defined then use browse-url. This =0D ; function always returns nil. Failure will be silent unless the system rep= orts =0D ; it. LinkXall supports both with and w/o protocol but browse-url fails in = Linux=0D ; without file:/// so this is prefixed to uri if it has no protocol. This d= oesn't=0D ; hurt in Windows.=0D (if (or (=3D linktype 5) ; WEB=0D (and (=3D linktype 3) ; BSR=0D (null lxa-browser)))=0D (browse-url (concat (if nopro "file:///") uri =0D (if (and bm oslin)(concat "#" bm))))=0D ;(message-box (concat (if nopro "file:///") uri (if (and bm oslin)(concat "= #" bm))))=0D ; Else LXA-ODF or LXA-BSR with DEFBROWSER defined.=0D (if (=3D linktype 1) ; ........... LXA-ODF ....................=0D (progn=0D ;(message (concat uri " macro:///LinkXall.LinkXall.LXAxlink(" bm ";" here "= *2)")) ; )))))))=0D (setq linkproc =0D (start-process "openlinkproc" nil =0D (if (getenv "ODAPP") =0D (substitute-in-file-name "$ODAPP") "soffice")=0D uri=0D (concat "macro:///LinkXall.LinkXall.LXAxlink(" bm ";" her= e "*2)")))=0D ;(if (equal bm nil) ";" bm) "," here "*2)")))=0D (set-process-query-on-exit-flag linkproc nil)=0D ; lxa-wmctrl is t if wmctrl is installed, which also means this is Linux, i= n =0D ; which case, if soffice is already open, the document window won't be brou= ght =0D ; forward. We can do that with wmctrl. -a tells to make the specified windo= w =0D ; top-most. =0D ;(if lxa-wmctrl (call-process "wmctrl" nil 1 nil "-a" =0D ; (file-name-nondirectory uri)))=0D ) ; ODT progn=0D =0D ; Else ............... LXA-BSR with bm in Windows ..................=0D (setq uri (concat "file:///" uri))=0D (setq outbuf "*openlinkbuf*")=0D (setq wcnt (length (window-list)))=0D (async-shell-command =0D (concat =0D (shell-quote-argument lxa-browser)=0D " " uri "#" bm) outbuf outbuf)=0D (if (bufferp (get-buffer outbuf))=0D (progn=0D (sleep-for 0.5)=0D (setq kbqf kill-buffer-query-functions)=0D (setq kill-buffer-query-functions nil)=0D (kill-buffer outbuf)=0D (setq kill-buffer-query-functions kbqf) ; This is supposed = to=0D ; suppress "active processes" query if closing Emacs with the spawned app s= till=0D ; open but it doesn't work.=0D (if (equal wcnt 1) (delete-other-windows))))=0D ) ; ODT and BSR=0D ) ; If WEB else ODT/BSR=0D (lxa-focus-window uri) ; Unconditionally in long form=0D ) ; End of long form clause and follow-form if.=0D 4 ) ; No problems.=0D ) ; catch=0D ) ; lxa-open-link=0D =0D ; ------------------------ #lxa-lxa --------------------------------------= =0D ; If there is a valid LXA link at the point then open it. Otherwise open th= e =0D ; LinkXall menu at the point. To allow the menu to be opened in a line =0D ; containing a valid link, if a region has been selected then unconditional= ly =0D ; open the menu. The link may still be followed using the menu's Follow lin= k.=0D ; *LXA-ODF*|LXADOC|LxaDesign.odt*^3lxa-lxa*=0D ; .....................................................................=0D (defun lxa-lxa()=0D "Process LXA request at the cursor. If the text contains an LXA link \=0D then open it. Otherwise, or if a region has been selected, open the LinkXal= l \=0D menu at the cursor."=0D (interactive)=0D (when (or (use-region-p)(< (lxa-open-link nil nil) 4))=0D (move-mouse-to-point)=0D (let ((sel (x-popup-menu t lxa-menu)))=0D (pcase (car (split-string (format "%s" (car sel))))=0D ("Back" (lxa-link-back))=0D ("Forward" (lxas-link-forward))=0D ("Set" (lxa-set-pinpoint))=0D ("Previous" (lxa-prev))=0D ("Next" (lxa-next))=0D ("Follow" (lxa-open-link nil t))=0D ("Start" (server-start nil t))=0D ("Help" =0D (pcase (car (split-string (format "%s" (car (cdr sel)))))=0D ("User" (lxa-help-ui))=0D ("Bindings" (lxa-help-bind))))))))=0D =0D ; ------------------------------ #lxa-menu --------------------------------= -=0D (easy-menu-define lxa-menu nil "lxa-menu"=0D '(lxa-menu=0D ["Back link\tC-, (<)" (lxa-link-back)]=0D ["Forward link\tC-. (>)" (lxa-link-forward)]=0D ["Set pinpoint" (lxa-set-pinpoint)]=0D ["Previous reference\tM-S-up" (lxa-prev)]=0D ["Next reference\tM-S-down" (lxa-next)]=0D ["Follow link\tM-l (L) or C-S-leftClick" (lxa-open-link nil t)] ;(lx= a-lxa t)]=0D ["Start server" (server-start nil t)]=0D ("Help" =0D ["User interface" (lxa-help-ui)]=0D ["Bindings" (lxa-help-bind)])))=0D ; At right end (between Tools and Emacs-Lisp)=0D (define-key-after (lookup-key global-map [menu-bar])=0D [lxa-menu]=0D (cons "LinkXall" lxa-menu) t) ; t, 'file, 'edit, etc. or empty.=0D ; At left end=0D ; (define-key (lookup-key global-map [menu-bar])=0D ; [lxa-menu]=0D ; (cons "LinkXall" lxa-menu))=0D =0D ; =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D ENV DICTIONARY =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D ; These functions are needed only if Emacs follows one or more LXA link typ= es =0D ; itself instead of passing the text to LO LinkXall to do everything.=0D ; *LXA-ODF*|LXADOC|LxaDesign.odt*^2EmacsEnvironmentDictionary*=0D =0D ;--------------------------- #lxa-getenvar --------------------------------= ---=0D (defun lxa-getenvar(str &optional silent)=0D "Get the lxa private or public environment variable value"=0D (let (( val (if lxaenvars (cdr (assoc str lxaenvars)))))=0D (if (not val) (setq val (subst-char-in-string ?\\ ?/ (getenv str))))=0D (if (or (not val) (string=3D val ""))=0D (if silent nil=0D (message-box (concat str " environment variable is undefined"))=0D (throw 'fatal 2)) =0D val)))=0D =0D ;--------------------------- #lxa-read-env --------------------------------= ---=0D (defun lxa-read-env()=0D "Make lxaenvars alist from the envar.txt file in the $LINKXALL_ENV director= y.\n\=0D If the standard environment variable LINKXALL_ENV is undefined or \n\=0D $LINKXALL_ENV/envar.txt does not exist, lxaenvars is nulled and nil is retu= rned.\n\=0D Otherwise, t is returned. This automatically executes when the library load= s but\n\=0D it may also be invoked interactively to update the dictionary after editing= the file."=0D (interactive)=0D ; Verify dictionary creation by C-h V lxaenvars, which shows the list of co= ns cells.=0D (setq lxaenvars nil)=0D (let ((fspec (getenv "LINKXALL_ENV")))=0D (if (not fspec) nil=0D (setq fspec (concat fspec "/envar.txt"))=0D (if (not (file-readable-p fspec)) nil=0D (with-temp-buffer=0D (insert-file-contents fspec)=0D (goto-char (point-min))=0D (while (not (eobp)) =0D (re-search-forward "^ *\\([^=3D]+\\)=3D\\(.+\\)$" nil t)=0D ; The arguments to re-search-forward are RE limit noerror. nil limit means = end =0D ; of buffer. This is just a place-holder enabling noerror t, which means to= =0D ; return nil but not signal an error if the match fails. This is critical f= or =0D ; blank lines, which don't mean anything bad or good.=0D (if (< (aref (match-string 1) 0) ?A) nil=0D (setq lxaenvars =0D (append lxaenvars =0D `(( ,(match-string 1) . =0D ,(subst-char-in-string ?\\ ?/ (match-string 2))))))=0D (forward-line 1))))t)))) ; lxa-read-env=0D =0D ; =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D INITIALIZATION =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D ;--------------------- #lxa-mouse-open -------------------------=0D (defun lxa-mouse-open()=0D "Move cursor to mouse position and invoke `lxa-lxa'"=0D (interactive) ; Required for binding to mouse button=0D (mouse-set-point last-input-event)=0D (redisplay t)=0D (lxa-lxa)=0D ) ; lxa-mouse-open=0D =0D ;---------------- #hot keys ---------------------------------------=0D (global-set-key "\M-L" 'downcase-word) ; Rebind to free \M-l.=0D (global-set-key "\M-l" 'lxa-lxa) =0D (global-set-key [C-S-mouse-1]#'lxa-mouse-open)=0D =0D (global-unset-key (kbd "C-,")) =0D (global-set-key (kbd "C-,") 'lxa-link-back) =0D =0D (global-unset-key (kbd "C-.")) =0D (global-set-key (kbd "C-.") 'lxa-link-forward)=0D =0D (global-set-key [M-S-up]#'lxa-prev)=0D (global-set-key [M-S-down]#'lxa-next)=0D =0D ; ------------------------ #toolbar --------------------------------=0D (define-key-after (default-value 'tool-bar-map)=0D [separator-4] menu-bar-separator) =0D =0D ; Linux-Emacs v25 includes pseudo-key name in the toolbar unless it is too= =0D ; long, which is the only way to stop this unwanted behavior.=0D =0D (tool-bar-add-item "~/icons/lxa-backlink" =0D 'lxa-link-back ; function=0D 'lxa-external-link-back ; pseudo-key name =0D :help "LXA external link back")=0D =0D (tool-bar-add-item "~/icons/lxa-fwdlink" =0D 'lxa-link-forward =0D 'lxa-external-link-forward=0D :help "LXA external link forward")=0D =0D (tool-bar-add-item "~/icons/lxa-pin" =0D 'lxa-set-pinpoint =0D 'lxa-external-set-pinpoint=0D :help "LXA set pinpoint")=0D =0D (tool-bar-add-item "~/icons/lxa-prev" =0D 'lxa-prev =0D 'lxa-prev-reference =0D :help "LXA previous reference")=0D =0D (tool-bar-add-item "~/icons/lxa-next" =0D 'lxa-next =0D 'lxa-next-reference =0D :help "LXA next reference")=0D =0D ; ------------------------- #Environment ----------------------------------= =0D ; Environment dictionary and focus are related but independent. If Emacs fo= llows=0D ; any link type itself then it must be able to focus the target but even if= it =0D ; asks LO LinkXall to handle all links, window focus may still be more reli= able=0D ; if done here instead of (or in addition to) in LO.=0D ;- lxa-min-follow t means use min follow form for all. If nil then mixed, w= ith =0D ; min form used for BAS, TXT, and SYS and long form for the others.=0D ;- lxa-min-focus t means that min form tries to focus the target window. Th= is=0D ; applies regardless of whether all min or mixed. Focus is always done in l= ong=0D ; form.=0D ; ........................................................................= =0D (setq lxa-min-follow t) ; t =3D use only min form, nil =3D mixed.=0D (unless lxa-min-follow ; Only mixed needs this.=0D (lxa-read-env)=0D (setq lxa-browser (lxa-getenvar "DEFBROWSER" t)))=0D ;(if lxa-browser (message-box lxa-browser))=0D (setq lxa-min-focus nil) ; t =3D focus target window in min form. This is= done=0D ; only because LinkXall does not do it or is unsuccessful in some cases.=0D (setq lxa-focus (if (executable-find "wmctrl") 1 =0D (if (executable-find "wintop") 2 0)))=0D t ) ; End of progn wrapper. Place cursor at close paren and type C-x C-e.=0D ;; =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D (provide 'linkxall)=0D =0D =0D ;=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D ; LinkXall uses four public environment variables related to Emacs. =0D ; EMACSEXEPATH is the path to emacs, emacsclient, and (in Windows) runemacs= .=0D ; This must include a trailing delimiter, e.g. "C:/something/emacs/bin/"=0D =0D ; ODAPP is soffice filespec, e.g. "C:/Program Files/LibreOffice/program/sof= fice"=0D =0D ; LINKXALL_ENV tells the location of LinkXall's private environment file =0D ; envar.txt, e.g. "C:/Home/LinkXall/" or "/home/user/linkxall". This needs = to=0D ; be defined only if linkxall.el is configured for mixed form and expands=0D ; environment variables itself. =0D =0D ; DEFBROWSER is the preferred browser filespec, e.g. =0D ; "C:/Program Files/Mozilla Firefox/firefox.exe" or "/usr/bin/firefox". =0D ; If undefined then the system default browser will be used to follow LXA-B= SR =0D ; links (it is always used for LXA-WEB links). DEFBROWSER may alternatively= be =0D ; defined in envar.txt. DEFBROWSER mainly exists to address Windows lack of= =0D ; support for standard bookmark (partial-URL) syntax "#bookmark". It also = =0D ; enables using different browswers for local files vs. Web. This is neede= d =0D ; here only if configured for mixed form. =0D =0D ; EMACSEXEPATH and ODAPP exist mainly exist for Windows, which doesn't =0D ; automatically put these programs in the path. However, they are also acce= pted=0D ; in Linux. If undefined (in either OS) the programs are invoked just by na= me=0D ; and must be in the path. EMACSEXEPATH is used by wemacs.exe, lemacs, and = =0D ; LinkXall library. Only linkxall.el uses ODAPP.=0D =0D ; LINKXALL_ENV is the only variable that exists for a reason other than to = =0D ; correct a Windows problem. It is typically the only one of these variable= s be =0D ; be defined in Linux and then only if linkxall is configured for mixed for= m.=0D ;=0D ; Use the following temporaries for testing. After changing LINKXALL-ENV, e= val =0D ; the all-encompassing progn to build the dictionary.=0D =0D ;(setenv "ODAPP" "C:/Program Files/LibreOffice/program/soffice") ; Windows= =0D ;(setenv "DEFBROWSER" "C:/Program Files/Mozilla Firefox/firefox.exe") ; Win= dows=0D ;(setenv "LINKXALL_ENV" "C:/Home/LinkXall") ; Windows=0D ;(setenv "LINKXALL_ENV" "~/linkxall") ; Linux=0D =0D ; To make these semi-permanent make them user variables in System Propertie= s > =0D ; Advanced > Environment variables. They will appear in any subsequently op= ened =0D ; windows. Linux is more complicated. Ubuntu recommends putting them in a = =0D ; startup script, e.g. /etc/profile.d/linkxall.sh containing export =0D ; LINKXALL_ENV=3D~/linkxall. These take effect on reboot but full system re= boot =0D ; is not required. sudo systemctl restart display-manager works in most sys= tems =0D ; but the x-manager may need to be explicitly named, e.g. sudo systemctl =0D ; restart lightdm. Get the name by cat /etc/X11/default-display-manager =0D =0D ; =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D TEST C= ASES =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D ; Min form suppports all LXA types BAS, ODT, TXT, BSR, SYS, and WEB. Long f= orm =0D ; supports only ODT, BSR, and WEB. These are tested for both min and long. = BAS,=0D ; TXT, and SYS can only be tested for min form, which is automatically sele= cted =0D ; regardless of lxa-min-follow value.=0D =0D ; Syntax and missing file error tests can be OS-agnostic. Tests that are =0D ; expected to succeed can use environment or relative addressing. Absolute = must =0D ; be OS-specific.=0D =0D ; ..................... Syntax Errors ..................................=0D ; Syntax errors are reported here for all types if open link is invoked fro= m =0D ; the menu. With KB/mouse shortcuts they just cause the context menu to ope= n.=0D ; *LXA-JUNK*someFile** Windows and Linux. No link here.=0D ; *LXA-ODF*** Windows and Linux. No uri.=0D =0D ; ..................... Inaccessible Target ...............................= ..=0D ; Missing file is reported here (long form) or in LinkXall (min form) excep= t=0D ; for LXA-WEB with protocol (even file:///) which may fail silently in Linu= x.=0D ; *LXA-ODF*badFile.odt** Windows and Linx. min and long form.=0D ; *LXA-BSR*badFile.odt** Windows and Linx. min and long form. DEFBROWSER is= =0D ; irrelevant.=0D ; ShellExecute error (in echo area). min form displays system error.=0D ; *LXA-BAS*LinkXall>NoLib*WhoCares* Only min form. LinkXall error message.= =0D ; *LXA-TXT*noFile*NotMe* Only min form. LinkXall error message.=0D ; *LXA-SYS*noFile*NotMe* Only min form. LinkXall error message.=0D ; *LXA-WEB*badFile.odt** Windows and Linux. min and long form.=0D ; *LXA-WEB*file:///badFile.htm** Windows and Linux. In Windows long form re= ports=0D ; in echo line, min in system error box. Fails silently with either form = in=0D ; Linux.=0D =0D ; ...................... Address Forms ...................................= =0D ; These are all done with ODT because that can be tested for both min and=0D ; long forms and the canonical test of all forms with all link types is=0D ; too much since this is not automated.=0D ; *LXA-ODF*test/bm3.odt*bm2* Relative=0D ; *LXA-ODF*|SWDEV|Emacs/test/bm3.odt*bm2* Private environment.=0D ; *LXA-ODF*|HOMEPATH|/linkxall.odt*bm3* Windows public environment.=0D ; *LXA-ODF*|SSH_AUTH_SOCK|/linkxall.odt*bm3* Linux public environment=0D ; *LXA-ODF*c:/SwDev/Emacs/test/bm3.odt*bm2* Absolute Windows=0D ; *LXA-ODF*/home/d/work/SwDev/Emacs/test/bm3.odt*bm2* Absolute Linux=0D ; *LXA-ODF*/SwDev/Emacs/test/bm3.odt*bm2* Root Windows=0D =0D ; ....................... Min form only ..................................= =0D ; BAS, TXT, and SYS can only be processing by min form. The only option her= e=0D ; is whether we try to focus the target window. Since all but simple syntax= =0D ; verification is done in LinkXall, it would be reasonable for LinkXall to= =0D ; focus the window but it may not be able to reliably do this when acting a= s=0D ; hyperlink server.=0D ; *LXA-BAS*LinkXall>LinkXall*#LXAopenLink=0D ; *LXA-TXT*test/linkxall.el*Min form only* Relative addressing.=0D ; *LXA-TXT*|SWDEV|Emacs/test/linkxall.el*Min form only* Env addressing.=0D ; *LXA-SYS*test/getch.py** Relative addressing=0D ; *LXA-SYS*|SWDEV|Emacs/test/getch.py** Env addressing=0D =0D ; .......................... ODT ..........................................= =0D ; *LXA-ODF*|SWDEV|/Libre/LinkXall/linkXall.odt*bm3=0D ; *LXA-ODF*|SWDEV|Libre/LinkXall/bm 4 .odt*bm8=0D ; *LXA-ODF*../Libre/LinkXall/linkxall.odt*bm3*comment=0D ; *LXA-ODF*|HOMEPATH|/work/test/bm3.odt*bm2* Windows public environment.=0D ; *LXA-ODF*C:/home/work/test/bm3.odt*Bm30*Windows absolute=0D ; *LXA-ODF*C:\home\work\test\bm3.odt*Bm30*Windows absolute=0D ; *LXA-ODF*/home/d/work/test/bm3.odt*Bm30*Linux absolute=0D ; Relative with bm w/o comment *LXA-ODF*test/bm3.odt*firstBm*=0D ; Relative with bm w/o comment *LXA-ODF*test/bm3.odt*firstBm=0D ; *LXA-ODF*test/bm3.odt*firstBm *Relative with commebNt after bm=0D ; *LXA-ODF*test/bm3.odt* firstBm * bm in space=0D ; *LXA-ODF*test/bm3.odt** Relative with comment after null bm=0D ; *LXA-ODF*test/bm3.odt* * Comment after blank bm=0D ; *LXA-ODF*~/work/test/bm3.odt*Bm30* Fails. ~ is ordinary.=0D ; *LXA-ODF*|HOME|/work/test/bm3.odt*bm2* Private or public environment var= iable=0D ; *LXA-ODF*|LIBRARY|/bm1test.odt*bm1* Private environment variable=0D ; *LXA-ODF*baddir/LinkXall*=0D ; *LXA-ODF*|SWDEV|/Libre/LinkXall/linkXall.odt*bm3 *Private environment va= riable=0D ; *LXA-ODF*|SWDEV|Libre/LinkXall/linkXall.odt*bm4=0D ; *LXA-ODF*** No recognized link because null uri=0D ; *LXA-ODF*~/work/test/bm3.odt* Opens the file but bm is this comment=0D ; *LXA-ODF*test/icky.odt*Bm30 * Bad file but possibly good bm. Test with/wo= other file open.=0D ; *LXA-ODF*../Libre/LinkXall/linkXall.odt*textOpenLink=0D ; *LXA-ODF*../Libre/LinkXall/linkXall.odt** Placeholder for no bookmark=0D =0D ; .......................... TXT ..........................................= .=0D ; *LXA-TXT*|SWDEV|Emacs/vMixed/linkxallSelf.el*#lxa-read-env=0D ; *LXA-TXT*|SWDEV|Emacs/linkxall.el*#lxa-read-env=0D ; *LXA-TXT*|UNDEFINED|hi.txt*=0D ; *LXA-TXT*|SSH_AUTH_SOCK|/something.txt* Linux public environment=0D ; *LXA-TXT*|LXADOC|link x all.el*End of progn wrapper=0D =0D ; .......................... BSR .......................................=0D ; min and long forms. If DEFBROWSER is not defined the link is treated as W= EB =0D ; with file protocol and, if Windows, any bookmark is dropped. WEB automati= cally=0D ; moves the window to front but this happens with BSR only if the browser i= s =0D ; not already open. This is corrected using wintop.exe or wmctrl.=0D ; *LXA-BSR*test/index.html*patents=0D ; *LXA-BSR*|WEB|portfolio/index.html*patents=0D ; *LXA-BSR*|LXADOC|/this was index.html*patents=0D ; *LXA-BSR*|HOME|/work/test/index.html*experience*=0D ; *LXA-BSR*~/work/test/index.html*experience=0D ; *LXA-BSR*test/index.html*patents* Relative=0D ; *LXA-BSR*c:/Web/portfolio/index.html*patents* Absolute Windows=0D ; *LXA-BSR*/home/d/work/Web/portfolio/index.html*patents* Absolute Linux=0D ; *LXA-BSR*unrealFile** Windows or Linux. Error reported by Emacs or Libre.= =0D ; *LXA-BSR*$HOME/work/test/index.html*patents* This does work in Windows.=0D =0D ; ........................... WEB ......................................=0D ; *LXA-WEB*|HOME|/work/test/index.html*experience*=0D ; *LXA-WEB*c:/home/work/test/index.html*patents* Semi-absolute=0D ; *LXA-WEB*c:/home/work/test/index.html=0D ; *LXA-WEB*~/work/test/index.html*experience=0D ; *LXA-WEB*unrealFile** Windows or Linux. Error reported by Emacs or Libre.= =0D ; *LXA-WEB*file:///c:/Web/portfolio/index.html*experience* Windows abs with= file protocol.=0D ; *LXA-WEB*c:/Web/portfolio/index.html*experience* Windows abs w/o protocol= .=0D ; *LXA-WEB*file:///home/d/work/Web/portfolio/index.html*experience* Linux a= bs with protocol.=0D ; *LXA-WEB*/home/d/work/Web/portfolio/index.html*experience* Linux abs with= out protocol.=0D ; *LXA-WEB*file:///|HOME|/work/test/index.html** Env fails if uri with prot= ocol.=0D ; *LXA-WEB*|HOME|/work/test/index.html** Env ok if uri without protocol.=0D ; *LXA-WEB*file:///test/index.html** Rel fails if uri with protocol.=0D ; *LXA-WEB*test/index.html** Rel ok if uri w/o protocol.=0D ; *LXA-WEB*file:///$HOME/work/test/index.html*patents* Semi-absolute with b= m fails in Windows.=0D ; *LXA-WEB*file:///~/work/test/index.html** Fails (with Emacs warning in Wi= ndows=0D ; but silently in Linux) because ~ is not expanded for LXA-WEB.=0D ; *LXA-WEB*file:///home/d/work/Web/portfolio/index.html** Absolute Linux=0D ; *LXA-WEB*http:///ixont.com/portfolio/index.html* * Opens the file in the = website. =0D ; *LXA-WEB*http:///ixont.com/portfolio/index.html*patents* Opens the file i= n the website at the anchor. =0D --=-=-=-- From unknown Thu Jun 19 16:24:32 2025 X-Loop: help-debbugs@gnu.org Subject: bug#71162: bug-gnu-emacs@gnu.org Resent-From: Benjamin Riefenstahl Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 25 May 2024 10:46:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 71162 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: David McCracken Cc: 71162@debbugs.gnu.org Received: via spool by 71162-submit@debbugs.gnu.org id=B71162.17166339278867 (code B ref 71162); Sat, 25 May 2024 10:46:01 +0000 Received: (at 71162) by debbugs.gnu.org; 25 May 2024 10:45:27 +0000 Received: from localhost ([127.0.0.1]:42715 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sAotz-0002I8-1X for submit@debbugs.gnu.org; Sat, 25 May 2024 06:45:27 -0400 Received: from mail.turtle-trading.net ([18.197.215.73]:53658) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sAotw-0001tS-Kq for 71162@debbugs.gnu.org; Sat, 25 May 2024 06:45:25 -0400 Received: from 148-234-142-46.pool.kielnet.net ([46.142.234.148] helo=arrian) by mail.turtle-trading.net with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1sAorZ-002GAO-0H; Sat, 25 May 2024 12:42:57 +0200 From: Benjamin Riefenstahl In-Reply-To: (David McCracken's message of "Thu, 23 May 2024 21:08:24 -0700") References: Date: Sat, 25 May 2024 12:42:56 +0200 Message-ID: <874jamnpe7.fsf@turtle-trading.net> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) David McCracken writes: > [Content of XPM file:] > /* XPM */ > static char * C:\SwDev\Emacs\icons\lxa_search_fwd_xpm[] = { > "24 24 198 2", > " c None", An XPM file is supposed to be valid C code internally. If I cut that MS Windows directory part, the file works for me. You might want to complain to the programmer of your image file editor. From unknown Thu Jun 19 16:24:32 2025 X-Loop: help-debbugs@gnu.org Subject: bug#71162: bug-gnu-emacs@gnu.org Resent-From: David McCracken Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 25 May 2024 19:09:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 71162 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: 71162@debbugs.gnu.org Received: via spool by 71162-submit@debbugs.gnu.org id=B71162.171666413824883 (code B ref 71162); Sat, 25 May 2024 19:09:01 +0000 Received: (at 71162) by debbugs.gnu.org; 25 May 2024 19:08:58 +0000 Received: from localhost ([127.0.0.1]:45129 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sAwlF-0006TH-E7 for submit@debbugs.gnu.org; Sat, 25 May 2024 15:08:57 -0400 Received: from bosmailout06.eigbox.net ([66.96.187.6]:44399) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sAwlD-0006TB-EG for 71162@debbugs.gnu.org; Sat, 25 May 2024 15:08:56 -0400 Received: from bosmailscan04.eigbox.net ([10.20.15.4]) by bosmailout06.eigbox.net with esmtp (Exim) id 1sAwkx-0001Hk-RI for 71162@debbugs.gnu.org; Sat, 25 May 2024 15:08:40 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ixont.com; s=dkim; h=Sender:Content-Transfer-Encoding:Content-Type:In-Reply-To:From: References:Cc:To:Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=Q3jBv1EQZKnzIYqUtnrC9+0BrZIkiZTJYgwOlIOQ0Jw=; b=oI4b1KjJwAurfOkT1ZTB4qc633 jxTBaSFve9/FnhYeXx6t798Gjz8Ndl4ydn6yW+hsp7biehjH2EAjqFs0FVrhrTRXiXT0oNHUd9+Ry a4fsB5IKS99sVQlTwIzBb3Wjjgh+0nfIf1cRuwpOaam/fcy8wyypuWGy0C9Hvl8R8cMZ9wq43+5Ai UXYiX+s2YytgWTAtokCr9S3tuQ1NZgv2ulQgsj0pNZyxmT0AxiZWhSjTx0+TtIbd8G2aJ/P7GnjIs LcKtCdE8cLPj/LxoDbXumzj4vJ84UfAib78/3B5fbUbHDXNKQ5Z5uMUjnPd8qtBIGu+PstTy49D1J gCRwy5UA==; Received: from [10.115.3.33] (helo=bosimpout13) by bosmailscan04.eigbox.net with esmtp (Exim) id 1sAwkv-0006K3-Nj for 71162@debbugs.gnu.org; Sat, 25 May 2024 15:08:37 -0400 Received: from bosauthsmtp11.yourhostingaccount.com ([10.20.18.11]) by bosimpout13 with id TX8a2C0070EKspE01X8dLW; Sat, 25 May 2024 15:08:37 -0400 X-Authority-Analysis: v=2.3 cv=Df2MVslW c=1 sm=1 tr=0 a=anyYG9rjTBM1sAjEBQ8Cew==:117 a=8V9CQAzvb1UE/5s8aP8Njg==:17 a=mDV3o1hIAAAA:8 a=IkcTkHD0fZMA:10 a=dr0PN7AwTpEA:10 a=TpHVaj0NuXgA:10 a=5uJjYwlGAAAA:8 a=0SoYPT2ea7YK3KEp5p8A:9 a=QEXdDO2ut3YA:10 a=_FVE-zBwftR9WsbkzFJk:22 a=BFCC1qkpAUusnFHpP09J:22 Received: from 23-115-169-72.lightspeed.mtryca.sbcglobal.net ([23.115.169.72]:60294 helo=[192.168.1.66]) by bosauthsmtp11.eigbox.net with esmtpsa (TLS1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim) id 1sAwks-0002Ae-8U; Sat, 25 May 2024 15:08:34 -0400 Message-ID: <1ced3036-74eb-40b5-9aa7-950f4cf5ed4b@ixont.com> Date: Sat, 25 May 2024 12:08:33 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird References: <86wmnj3fc5.fsf@gnu.org> <9002e131-3466-4a73-a88c-bad260e5b886@ixont.com> <86msoe1kz0.fsf@gnu.org> Content-Language: en-US From: David McCracken In-Reply-To: <86msoe1kz0.fsf@gnu.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-EN-UserInfo: 7db9acb10a66b5d38e8efde72e4a1877:931c98230c6409dcc37fa7e93b490c27 X-EN-AuthUser: davidm@ixont.com X-EN-OrigIP: 23.115.169.72 X-EN-OrigHost: 23-115-169-72.lightspeed.mtryca.sbcglobal.net X-Spam-Score: 0.2 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) Thank you both for taking the time to look into this. I use Gimp under Windows to make my icons and they all work in Linux-Emacs 26.1. When I open lxa-next.xpm in Linux-Emacs 26.3 (in Ubuntu-Mate 20.54) the icon is rendered correctly. Linux-Emacs 27.1 (in Ubuntu-Mate 22.04) shows it as a blank box. All systems correctly show my icons in the GUI. I edited lxa-next.xpm as text, completely removing the Windows directory, which isn't proper C code because it doesn't name the variable being defined. Nevertheless, the newer Linux computer's GUI does render it although with less saturated colors. When I include a variable name, "something" or "*/~/icons/lxa-next.xpm", the system renders it as designed. However, Emacs still shows it blank. I tried all of these variations in the 27.1/etc/images directory and Emacs showed them all blank. This did not change with emacs -q so the problem is not caused by my .emacs. The problem also doesn't seem to be caused by Ubuntu-Mate because it renders my icons correctly. I assume that tool-bar--image-expression is located in an elc module. Which is it and can I get an el copy? I would like to trace it to determine why Linux-Emacs 27.1 refuses its own icons unless located in 27.1/etc/images. That it refuses my icons no matter where they are located may be related. With some help from you all I may be able to find the root of both problems. On 2024-05-24 11:09 PM, Eli Zaretskii wrote: > [Please use Reply All to reply, to keep the bug tracker CC'ed.] > >> Date: Fri, 24 May 2024 12:29:49 -0700 >> From: David McCracken >> >> I use the same icons and emacs code on Windows and Linux. In Windows it >> works in Emacs 29.1 and 26.1 (the two I currently use but it worked in >> older versions as well). In Ubuntu-Mate (20.54 and 22.04) it works in >> Emacs 26.3 but not 27.1. The code I use for this particular example is >> >> (define-key-after (default-value 'tool-bar-map) >>   [separator-4] menu-bar-separator) >> ; Linux-Emacs v25 includes pseudo-key name in the toolbar unless it is too >> ; long, which is the only way to stop this unwanted behavior. >> (tool-bar-add-item "~/icons/lxa-next" >>   'lxa-next >>   'lxa-next-reference >>   :help "LXA next reference") >> >> In all cases except Emacs 27.1 in Linux the user icons directory is not >> a problem. However, it is an additional problem in 27.1 under Linux. The >> same native lock-broken.xpm that works when in the images directory and >> referenced simply as "lock-broken" fails when moved to the user icons >> directory and referenced as "~/icons/lock-broken". 27.1 also ignores my >> lxa-next.xpm when moved to the images directory and referenced simply as >> "lxa-next". Somebody hard-wired all flexibility out of this mechanism >> after 26.3 but only in the Linux version. I initially suspected the >> changes related to B/W pbm images, which is described in the images >> README but I found the same README in 26.3. > If you visit (with C-x C-f) the lxa-next.xpm file in Emacs 27.1 on > Ubuntu, does it display correctly as an image? If not, your Emacs > 27.1 on Ubuntu is for some reason unable to display XPM images. > > If lxa-next.xpm does display correctly on Ubuntu, then you need to > find out why adding a tool-bar button with an XPM image doesn't work > for you. I just tried the below in "emacs-Q" (using Emacs 27.1), and > it did show the additional tool-bar button: > > (defun lxa-next () > (interactive) > (message "lxa-next")) > > (tool-bar-add-item "~/icons/lxa-next" > 'lxa-next > 'lxa-next-reference > :help "LXA next reference") > > Does the above work for you in "emacs -Q" on Ubuntu? > > If it works in "emacs -Q", but not in your regular sessions, then > there are some customizations, perhaps site-wide and possibly by the > Ubuntu distro, which somehow prevent this. In the upstream sources, I > see no changes in this area. tool-bar-add-item still ends up calling > tool-bar--image-expression, which calls find-image like this: > > (let* ((fg (face-attribute 'tool-bar :foreground)) > (bg (face-attribute 'tool-bar :background)) > (colors (nconc (if (eq fg 'unspecified) nil (list :foreground fg)) > (if (eq bg 'unspecified) nil (list :background bg)))) > (xpm-spec (list :type 'xpm :file (concat icon ".xpm"))) > (xpm-lo-spec (list :type 'xpm :file > (concat "low-color/" icon ".xpm"))) > (pbm-spec (append (list :type 'pbm :file > (concat icon ".pbm")) colors)) > (xbm-spec (append (list :type 'xbm :file > (concat icon ".xbm")) colors))) > `(find-image (cond ((not (display-color-p)) > ',(list pbm-spec xbm-spec xpm-lo-spec xpm-spec)) > ((< (display-color-cells) 256) > ',(list xpm-lo-spec xpm-spec pbm-spec xbm-spec)) > (t > ',(list xpm-spec pbm-spec xbm-spec)))))) > > As you see here, if your display can support at least 256 colors, the > XPM image gets preference over the other possibilities. And > find-image searches for the image file via image-search-load-path, > which searches image-load-path, and for absolute file names like > "~/images/lxa-next" should find the file immediately regardless of the > value of image-load-path. > > So if your Emacs does not have some customizations, it should find the > images without any problem. > > If the problem is some Ubuntu customizations, you should take that up > with the Ubuntu distro maintainers; we here are only responsible for > the original Emacs 27.1 tarball. > >> In case you are interested I have attached my complete code. > I attach it below, because you sent the response only to me in private > email (please use Reply All or "wide reply" in your future responses > to this discussion). > From unknown Thu Jun 19 16:24:32 2025 X-Loop: help-debbugs@gnu.org Subject: bug#71162: bug-gnu-emacs@gnu.org Resent-From: David McCracken Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 25 May 2024 20:05:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 71162 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: 71162@debbugs.gnu.org Received: via spool by 71162-submit@debbugs.gnu.org id=B71162.171666750026983 (code B ref 71162); Sat, 25 May 2024 20:05:01 +0000 Received: (at 71162) by debbugs.gnu.org; 25 May 2024 20:05:00 +0000 Received: from localhost ([127.0.0.1]:45366 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sAxdT-000719-Le for submit@debbugs.gnu.org; Sat, 25 May 2024 16:05:00 -0400 Received: from bosmailout09.eigbox.net ([66.96.189.9]:53307) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sAxdS-000713-Ae for 71162@debbugs.gnu.org; Sat, 25 May 2024 16:04:58 -0400 Received: from bosmailscan09.eigbox.net ([10.20.15.9]) by bosmailout09.eigbox.net with esmtp (Exim) id 1sAxdD-0005JF-5O for 71162@debbugs.gnu.org; Sat, 25 May 2024 16:04:43 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ixont.com; s=dkim; h=Sender:Content-Transfer-Encoding:Content-Type:In-Reply-To:From: References:Cc:To:Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=lNcMQ+3w0Dnjz8/IOb277SyC+CaFFR7E3sEP6WbDc1E=; b=HLkBsYMfCNqe/OeGikvRcz6Bd4 ivkm726DuyF5RT2Yufrp5qu5i3KKMjTKpcrOhuK2rX62xAGm6cdAkNNViBS8mNYrm7ft8miKWFdhM 7siDioytgQb2gxYLd5xFKsteVbw4rSTB38K5HEQeqt8eYkQjwWPhsFj+D+WBtmZMxRJflnIaa/b+J 4WIydohUF/vVTWkZVRqmH7w5zC8IuA4cijAw6V0O0vV70uE4KKq9fBud8385r/yL16/KDtcKHOB4/ WeieeidYp4GJpaANoiOWi9dygKGmkBThJLWZsxqdak+vqRoohc6qHAKiCCZgMziHBt1X174BqpdPK vpnzjwIQ==; Received: from [10.115.3.33] (helo=bosimpout13) by bosmailscan09.eigbox.net with esmtp (Exim) id 1sAxdA-0000XA-Qg for 71162@debbugs.gnu.org; Sat, 25 May 2024 16:04:40 -0400 Received: from bosauthsmtp11.yourhostingaccount.com ([10.20.18.11]) by bosimpout13 with id TY4d2C0050EKspE01Y4gNH; Sat, 25 May 2024 16:04:40 -0400 X-Authority-Analysis: v=2.3 cv=Df2MVslW c=1 sm=1 tr=0 a=anyYG9rjTBM1sAjEBQ8Cew==:117 a=8V9CQAzvb1UE/5s8aP8Njg==:17 a=mDV3o1hIAAAA:8 a=IkcTkHD0fZMA:10 a=dr0PN7AwTpEA:10 a=TpHVaj0NuXgA:10 a=5uJjYwlGAAAA:8 a=_sCHbt-FhbEU9YVjU8AA:9 a=QEXdDO2ut3YA:10 a=_FVE-zBwftR9WsbkzFJk:22 a=BFCC1qkpAUusnFHpP09J:22 Received: from 23-115-169-72.lightspeed.mtryca.sbcglobal.net ([23.115.169.72]:60431 helo=[192.168.1.66]) by bosauthsmtp11.eigbox.net with esmtpsa (TLS1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim) id 1sAxd7-0002sI-FC; Sat, 25 May 2024 16:04:37 -0400 Message-ID: <601ad8ef-9b45-4cf5-8f28-18cf8bfa038c@ixont.com> Date: Sat, 25 May 2024 13:04:34 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird References: <86wmnj3fc5.fsf@gnu.org> Content-Language: en-US From: David McCracken In-Reply-To: <86wmnj3fc5.fsf@gnu.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-EN-UserInfo: 7db9acb10a66b5d38e8efde72e4a1877:931c98230c6409dcc37fa7e93b490c27 X-EN-AuthUser: davidm@ixont.com X-EN-OrigIP: 23.115.169.72 X-EN-OrigHost: 23-115-169-72.lightspeed.mtryca.sbcglobal.net X-Spam-Score: 0.2 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) Sorry about my previous question about finding the source of tool-bar--image-expression. tool-bar.el.gz was easy to find. The 26.3 and 27.1 versions are not identical but the differences are unrelated to either of the problems I have encountered. I am going to instrument the function to try to track down the problem but I suspect that Ubuntu is the cause. Replacing Emacs 27.1 with 26.3 without changing the OS would answer the question but I don't know how to do this. I always just used apt-get install emacs. How can I install a downrev? On 2024-05-23 11:15 PM, Eli Zaretskii wrote: >> Date: Thu, 23 May 2024 21:08:24 -0700 >> From: David McCracken >> >> 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. From unknown Thu Jun 19 16:24:32 2025 X-Loop: help-debbugs@gnu.org Subject: bug#71162: bug-gnu-emacs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 26 May 2024 04:47:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 71162 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: David McCracken Cc: 71162@debbugs.gnu.org Received: via spool by 71162-submit@debbugs.gnu.org id=B71162.17166988139502 (code B ref 71162); Sun, 26 May 2024 04:47:02 +0000 Received: (at 71162) by debbugs.gnu.org; 26 May 2024 04:46:53 +0000 Received: from localhost ([127.0.0.1]:38182 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sB5mX-0002TB-3j for submit@debbugs.gnu.org; Sun, 26 May 2024 00:46:53 -0400 Received: from eggs.gnu.org ([209.51.188.92]:34280) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sB5mU-0002Sv-Jr for 71162@debbugs.gnu.org; Sun, 26 May 2024 00:46:51 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sB5kA-0000fz-Fr; Sun, 26 May 2024 00:44:26 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=ILoLLvxook25YWjz6SNFd2b9GGpfkfEkSVysuyQZPl8=; b=AVJsKkFt8Aa+ 1VNKurQjoPSZothVRN7Jd/Zmn1Cv712PHefJoxMhZmP48/SBokuzQUdN/kQ+q5XG52Pc4DOCKqASK wBFwN5WcclB0iLAXqkgAACEDlDzPh7JZfqgkBCKmGRDWADfTNVBbYjBnLPzDx2Dx8DNDFuC1NgWHA uzD+/b8hE5FihDrXncZQPRGFbxLGcCAxwgViw2mXYm+wyzrkr/Zyx+eMisccWcFTu7F55ZmWigndR smZPtuzLbCsVhvT8pW+tbky4w4Sglj83eLSfRTjPW7NeFlDiuQ0qP1JwTcBVOyD4MNBucacTsq1lF Uw/AQWR7rqINDvUt/draDw==; Date: Sun, 26 May 2024 07:44:21 +0300 Message-Id: <86jzjhxjve.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <1ced3036-74eb-40b5-9aa7-950f4cf5ed4b@ixont.com> (message from David McCracken on Sat, 25 May 2024 12:08:33 -0700) References: <86wmnj3fc5.fsf@gnu.org> <9002e131-3466-4a73-a88c-bad260e5b886@ixont.com> <86msoe1kz0.fsf@gnu.org> <1ced3036-74eb-40b5-9aa7-950f4cf5ed4b@ixont.com> X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Sat, 25 May 2024 12:08:33 -0700 > Cc: 71162@debbugs.gnu.org > From: David McCracken > > I use Gimp under Windows to make my icons and they all work in > Linux-Emacs 26.1. When I open lxa-next.xpm in Linux-Emacs 26.3 (in > Ubuntu-Mate 20.54) the icon is rendered correctly. Linux-Emacs 27.1 (in > Ubuntu-Mate 22.04) shows it as a blank box. All systems correctly show > my icons in the GUI. I edited lxa-next.xpm as text, completely removing > the Windows directory, which isn't proper C code because it doesn't name > the variable being defined. Nevertheless, the newer Linux computer's GUI > does render it although with less saturated colors. When I include a > variable name, "something" or "*/~/icons/lxa-next.xpm", the system > renders it as designed. However, Emacs still shows it blank. I tried all > of these variations in the 27.1/etc/images directory and Emacs showed > them all blank. This did not change with emacs -q so the problem is not > caused by my .emacs. The problem also doesn't seem to be caused by > Ubuntu-Mate because it renders my icons correctly. Sorry, I don't understand. If you do the following on Ubuntu with Emacs 27.1: emacs -Q C-x C-f ~/icons/lxa-next.xpm RET does Emacs 27.1 on Ubuntu display the image, or does it display an empty box? If the latter, the problem is that Emacs 27.1 on Ubuntu that you have installed is not capable of showing XPM images correctly. IOW, in that case the problem is not related to the tool bar, it is related to the general inability of displaying XPM images in that version of Emacs. From unknown Thu Jun 19 16:24:32 2025 X-Loop: help-debbugs@gnu.org Subject: bug#71162: In Linux Emacs 27.1 rejects custom toolbar icons References: In-Reply-To: Resent-From: David McCracken Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 26 May 2024 20:55:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 71162 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 71162@debbugs.gnu.org Received: via spool by 71162-submit@debbugs.gnu.org id=B71162.171675687217083 (code B ref 71162); Sun, 26 May 2024 20:55:01 +0000 Received: (at 71162) by debbugs.gnu.org; 26 May 2024 20:54:32 +0000 Received: from localhost ([127.0.0.1]:42639 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sBKsx-0004RR-Lk for submit@debbugs.gnu.org; Sun, 26 May 2024 16:54:31 -0400 Received: from bosmailout03.eigbox.net ([66.96.187.3]:32933) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sBKsv-0004R6-Ln for 71162@debbugs.gnu.org; Sun, 26 May 2024 16:54:30 -0400 Received: from bosmailscan03.eigbox.net ([10.20.15.3]) by bosmailout03.eigbox.net with esmtp (Exim) id 1sBKsf-0000tR-MX for 71162@debbugs.gnu.org; Sun, 26 May 2024 16:54:13 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ixont.com; s=dkim; h=Sender:Content-Transfer-Encoding:Content-Type:Subject:From:To: MIME-Version:Date:Message-ID:Reply-To:Cc:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=t8zui0sXnUV9+6uT4kUeAsBZrfRiKuwgtBgVMm37I8A=; b=YxkBXJXgoBfRpxKvA0QGUwW/9u 1ZcByaMbndUHypjK89WFyRqDlqjKf+lqiD3kBuxOykJ4lv12lPTen14v8EuXE1o1GZDZMSSbUbKPR jMhv4lr7jZXn3D1gKZ3uhkf6psvuz1d6aeztxNan46Aitr5PtZYHNT5Qtcf2uR9hsVCw7WBuB3hlQ Ke5gWe4fvP1jRc9UZvNYvRAyF8tATqaXxlH/h6qGlTSZUWZOFDQFh2ShKZLMJKuNDeRBm18exNLJj 1kDgOKJMx/bkFiM1B04oo+g9RxkVaMbheSnQbZhQtKA3wLeetRH/Q7us8VhlP8or/x2P90v/NOKRR PQhMyiWw==; Received: from [10.115.3.32] (helo=bosimpout12) by bosmailscan03.eigbox.net with esmtp (Exim) id 1sBKsd-0001MQ-9V for 71162@debbugs.gnu.org; Sun, 26 May 2024 16:54:11 -0400 Received: from bosauthsmtp14.yourhostingaccount.com ([10.20.18.14]) by bosimpout12 with id Twu82C0030JCtq201wuBdJ; Sun, 26 May 2024 16:54:11 -0400 X-Authority-Analysis: v=2.3 cv=dOg9ZNRb c=1 sm=1 tr=0 a=AnsiuLKgxXFeB68GILQVjQ==:117 a=8V9CQAzvb1UE/5s8aP8Njg==:17 a=IkcTkHD0fZMA:10 a=TpHVaj0NuXgA:10 a=vqJPj2aYMwaZLzLG11wA:9 a=QEXdDO2ut3YA:10 Received: from 23-115-169-72.lightspeed.mtryca.sbcglobal.net ([23.115.169.72]:61088 helo=[192.168.1.66]) by bosauthsmtp14.eigbox.net with esmtpsa (TLS1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim) id 1sBKsZ-0003Gj-VA for 71162@debbugs.gnu.org; Sun, 26 May 2024 16:54:08 -0400 Message-ID: <46e97c25-b7e7-4042-9a97-bc277816a1de@ixont.com> Date: Sun, 26 May 2024 13:54:07 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US From: David McCracken Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-EN-UserInfo: 7db9acb10a66b5d38e8efde72e4a1877:931c98230c6409dcc37fa7e93b490c27 X-EN-AuthUser: davidm@ixont.com X-EN-OrigIP: 23.115.169.72 X-EN-OrigHost: 23-115-169-72.lightspeed.mtryca.sbcglobal.net X-Spam-Score: 0.2 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) I decided that I could test 26.3 on the newer Ubuntu by copying some of the Emacs files from the other computer. I copied the emacs executable (located in /etc/alternatives/emacs pointed to by /usr/bin/emacs symlink) and recursively copied /usr/share/emacs/26.3 to /usr/share/emacs. I didn't change /usr/share/emacs/site-lisp or any of the files in /etc/emacs or usr/lib/emacs. Directly invoking the 26.3 executable revealed that it wanted /usr/lib/x86_64-linux-gnu/libotf.so.0. The 27.1 installation has only libotf.so.1 and libotf.so.1.0.0, so I copied libotf.so.0 into the directory. Then 26.3 ran and correctly displayed my toolbar icons located in ~/icons. Unlike the 27.1 bug report, in this case the reporter does not show Recent messages Invalid XPM3 file. To investigate whether the problems are caused by libotf.so, I copied libotf.so.0 over libotf.so.1 but then emacs 27.1 complained about a missing symbol definition. I did the inverse, copying libotf.so.1 over libotf.so.0. Emacs 26.3 was able to run with this. It continued to show my icons and not report the files as invalid. Therefore, the root of the problems is either in the emacs executable or /usr/share/emacs/27.1. In my Windows computer with Emacs 29.1 the bug reporter does not complain about my icon files. The name of the char array in the xpm file seems to be immaterial. I tried many alternatives to * filespec, including simply filespec and blank, and nothing changed the 27.1 bug report and failure to display the icons. I tested these alternatives in the Windows computer with Emacs 29.1 and they didn't change anything. I think this is essentially a comment, especially considering that definining an unnamed array is not legal in C. Even if this were a problem, it would not account for why Linux-Emacs 27.1 rejects its own xpm files if located anywhere but its own images directory. Although I would like to help get to the bottom of these problems, I would still like to know how to install an Emacs downrev in Linux. It is easy in Windows since all versions are available in zip files that I can unzip anywhere I want. From unknown Thu Jun 19 16:24:32 2025 X-Loop: help-debbugs@gnu.org Subject: bug#71162: bug-gnu-emacs@gnu.org Resent-From: David McCracken Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 27 May 2024 04:17:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 71162 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: 71162@debbugs.gnu.org Received: via spool by 71162-submit@debbugs.gnu.org id=B71162.171678340211335 (code B ref 71162); Mon, 27 May 2024 04:17:02 +0000 Received: (at 71162) by debbugs.gnu.org; 27 May 2024 04:16:42 +0000 Received: from localhost ([127.0.0.1]:42862 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sBRmr-0002wk-Gz for submit@debbugs.gnu.org; Mon, 27 May 2024 00:16:42 -0400 Received: from bosmailout02.eigbox.net ([66.96.184.2]:41473) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sBRmp-0002wV-TV for 71162@debbugs.gnu.org; Mon, 27 May 2024 00:16:40 -0400 Received: from bosmailscan04.eigbox.net ([10.20.15.4]) by bosmailout02.eigbox.net with esmtp (Exim) id 1sBRmc-0007Wd-2p for 71162@debbugs.gnu.org; Mon, 27 May 2024 00:16:26 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ixont.com; s=dkim; h=Sender:In-Reply-To:From:References:Cc:To:Subject:MIME-Version:Date :Message-ID:Content-Type:Reply-To:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=G6d0Qhvavk3mr6BG3glTccs2njATDhU+3BNrVcrAse8=; b=GSqaryCNDz1HtKzbbKElQiMn52 hm1zXEF0r4ms88CPt7jx4rY/f7mgtbJHbbCF/E5oZLQ/T77fCBQaZ9LHleNNbRFfPk7/negtHaNLe qkODLEc6i8LAiwlTsTzPvJRxFqQ/089PLS0mXQ9v4a3884ZyP6amt0poCgNgQUCY6uWgjJ4WWh45T RRVOvcjo+aaxCY7QwuVcaZgPsMOJLHRGZY4swU+7k/qoUqfsDyco9G8paBB4BqwKbH0DOyWY2pjqg bIheux29f25fqAXIjLvgMm9ckWP7xu70sTiX4lQgLCtxAXAuwXBdys45+c2FLfIsWpaV1J20ccMSk 0pS1o7sw==; Received: from [10.115.3.32] (helo=bosimpout12) by bosmailscan04.eigbox.net with esmtp (Exim) id 1sBRmb-0004Gg-Po for 71162@debbugs.gnu.org; Mon, 27 May 2024 00:16:25 -0400 Received: from bosauthsmtp14.yourhostingaccount.com ([10.20.18.14]) by bosimpout12 with id U4GN2C0060JCtq2014GRQm; Mon, 27 May 2024 00:16:25 -0400 X-Authority-Analysis: v=2.3 cv=dOg9ZNRb c=1 sm=1 tr=0 a=AnsiuLKgxXFeB68GILQVjQ==:117 a=8V9CQAzvb1UE/5s8aP8Njg==:17 a=mDV3o1hIAAAA:8 a=dr0PN7AwTpEA:10 a=TpHVaj0NuXgA:10 a=r77TgQKjGQsHNAKrUKIA:9 a=5uJjYwlGAAAA:8 a=_sCHbt-FhbEU9YVjU8AA:9 a=QEXdDO2ut3YA:10 a=_jOVc7BtCUnB-xMcVEwA:9 a=q8sPxlEpPvKy_yuP:21 a=_W_S_7VecoQA:10 a=_FVE-zBwftR9WsbkzFJk:22 a=BFCC1qkpAUusnFHpP09J:22 Received: from 23-115-169-72.lightspeed.mtryca.sbcglobal.net ([23.115.169.72]:62048 helo=[192.168.1.66]) by bosauthsmtp14.eigbox.net with esmtpsa (TLS1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim) id 1sBRmY-0001j9-E4; Mon, 27 May 2024 00:16:22 -0400 Content-Type: multipart/alternative; boundary="------------z0bweuSVWYR0tSooQET5w0bX" Message-ID: <3056cd9d-9e4b-4822-a12d-a78ecaba91f5@ixont.com> Date: Sun, 26 May 2024 21:16:19 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird References: <86wmnj3fc5.fsf@gnu.org> Content-Language: en-US From: David McCracken In-Reply-To: <86wmnj3fc5.fsf@gnu.org> X-EN-UserInfo: 7db9acb10a66b5d38e8efde72e4a1877:931c98230c6409dcc37fa7e93b490c27 X-EN-AuthUser: davidm@ixont.com X-EN-OrigIP: 23.115.169.72 X-EN-OrigHost: 23-115-169-72.lightspeed.mtryca.sbcglobal.net X-Spam-Score: 0.3 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) This is a multi-part message in MIME format. --------------z0bweuSVWYR0tSooQET5w0bX Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit 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 >> >> 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. --------------z0bweuSVWYR0tSooQET5w0bX Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit

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 <davidm@ixont.com>

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.
--------------z0bweuSVWYR0tSooQET5w0bX-- From unknown Thu Jun 19 16:24:32 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: David McCracken Subject: bug#71162: closed (Re: bug#71162: In Linux Emacs 27.1 rejects custom toolbar icons) Message-ID: References: <86wmnfv6uw.fsf@gnu.org> X-Gnu-PR-Message: they-closed 71162 X-Gnu-PR-Package: emacs Reply-To: 71162@debbugs.gnu.org Date: Mon, 27 May 2024 11:21:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1716808862-3085-1" This is a multi-part message in MIME format... ------------=_1716808862-3085-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #71162: 27.1; toolbar icons which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 71162@debbugs.gnu.org. --=20 71162: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D71162 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1716808862-3085-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 71162-done) by debbugs.gnu.org; 27 May 2024 11:20:57 +0000 Received: from localhost ([127.0.0.1]:43225 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sBYPR-0000nG-Gl for submit@debbugs.gnu.org; Mon, 27 May 2024 07:20:57 -0400 Received: from eggs.gnu.org ([209.51.188.92]:42022) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sBYPP-0000n2-Nn for 71162-done@debbugs.gnu.org; Mon, 27 May 2024 07:20:56 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sBYPB-0007PY-BU; Mon, 27 May 2024 07:20:41 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=YR64tRF98KU/Ay3buwELvPVAVK/TXIiVF+zN1MYJJ/A=; b=rnCDQEa0Fgzk W717XJKNT4Sb3EVfxGO+0oofOWUhVy0E2eD6SsS3q7nfxrY6wgjmZYdIB+WUzokEDqnC9K3yLVaMB E1hR+/MRPByZg0az4saaJJ+u6py0L6pv2cNxpZdRV1UEFfXw9AhJ9w+UvXdN9G9NPS4RPLXniLS3Q UsSgW100x7vxWXhRmGTjST1R26xePqysHYvcaj6sVSTWMiNUaAIqtJLo6VqfDGxMiycmINrJPEysh sBkCnSlrhiMnOrHFthBNLFmvunxO0Dfm7YDhKZ530IYGIfZjXTmhTAWMkePLyj7uevoK88/dLRnMB rO810pGLo9NCUWSIS91NfQ==; Date: Mon, 27 May 2024 14:20:39 +0300 Message-Id: <86wmnfv6uw.fsf@gnu.org> From: Eli Zaretskii To: David McCracken In-Reply-To: <3056cd9d-9e4b-4822-a12d-a78ecaba91f5@ixont.com> (message from David McCracken on Sun, 26 May 2024 21:16:19 -0700) Subject: Re: bug#71162: In Linux Emacs 27.1 rejects custom toolbar icons References: <86wmnj3fc5.fsf@gnu.org> <3056cd9d-9e4b-4822-a12d-a78ecaba91f5@ixont.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 71162-done Cc: 71162-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Sun, 26 May 2024 21:16:19 -0700 > Cc: 71162@debbugs.gnu.org > From: David McCracken > > 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. OK, so I'm now closing this bug. ------------=_1716808862-3085-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 24 May 2024 04:39:55 +0000 Received: from localhost ([127.0.0.1]:34766 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sAMih-0003HC-1H for submit@debbugs.gnu.org; Fri, 24 May 2024 00:39:55 -0400 Received: from lists.gnu.org ([209.51.188.17]:47932) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sAMic-0003H6-UW for submit@debbugs.gnu.org; Fri, 24 May 2024 00:39:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sAMiV-0005j4-Ri for bug-gnu-emacs@gnu.org; Fri, 24 May 2024 00:39:43 -0400 Received: from bosmailout03.eigbox.net ([66.96.187.3]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sAMiS-0006HF-V6 for bug-gnu-emacs@gnu.org; Fri, 24 May 2024 00:39:43 -0400 Received: from bosmailscan03.eigbox.net ([10.20.15.3]) by bosmailout03.eigbox.net with esmtp (Exim) id 1sAMEK-0000EP-47 for bug-gnu-emacs@gnu.org; Fri, 24 May 2024 00:08:32 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ixont.com; s=dkim; h=Sender:Subject:From:To:MIME-Version:Date:Message-ID:Content-Type: Reply-To:Cc:Content-Transfer-Encoding:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=adqpZJ4EDbF1YxBMYFfJeZGqTULCjO/HqgOT1xrtNOI=; b=kT0yTjHZaI3g9PynHqH5Meels2 10POLvq2XUVtF6Gx75anglrAmmdNFeUCW/g/Au+UszhibHfeFf6lIJ7qyPJqMi019RiEc2VX6i2Wu 6jNFAjU77YezbvmmZqlkXVZXyj6FpMRNI7cDcUmwOp7fSQBO+gMAc5MhI0rw6k8KVuW2NJI1ufkeM 0L6uQ6P7te8imQWm3DHQA8uv6pghTHAG7MMbBTK0OlfpcJhkOxhY/KYyMjYSbScKSaCMdX0/hUbIA TQusa8tbFTJBcwlrryM8jg3eOG44JXf48rP4MeoWPiStsSF4qVJ6Eiy36Zj0WXo53/6e99UJYPpFI NeoJyW7g==; Received: from [10.115.3.33] (helo=bosimpout13) by bosmailscan03.eigbox.net with esmtp (Exim) id 1sAMEH-0002m7-Ri for bug-gnu-emacs@gnu.org; Fri, 24 May 2024 00:08:29 -0400 Received: from bosauthsmtp11.yourhostingaccount.com ([10.20.18.11]) by bosimpout13 with id Ss8S2C0020EKspE01s8VjX; Fri, 24 May 2024 00:08:29 -0400 X-Authority-Analysis: v=2.3 cv=Df2MVslW c=1 sm=1 tr=0 a=anyYG9rjTBM1sAjEBQ8Cew==:117 a=8V9CQAzvb1UE/5s8aP8Njg==:17 a=mDV3o1hIAAAA:8 a=dr0PN7AwTpEA:10 a=TpHVaj0NuXgA:10 a=r77TgQKjGQsHNAKrUKIA:9 a=aR16PxjQAAAA:8 a=lE_poIdOFOmHK08KU7wA:9 a=QEXdDO2ut3YA:10 a=SqLzQ0NK4qwxSsLv7nMA:9 a=i7DDvzAz9EEA:10 a=_FVE-zBwftR9WsbkzFJk:22 a=zbFvvTOBjyH4ze5LlUjX:22 Received: from 23-115-169-72.lightspeed.mtryca.sbcglobal.net ([23.115.169.72]:62352 helo=[192.168.1.66]) by bosauthsmtp11.eigbox.net with esmtpsa (TLS1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim) id 1sAMEE-0006U8-Am for bug-gnu-emacs@gnu.org; Fri, 24 May 2024 00:08:26 -0400 Content-Type: multipart/mixed; boundary="------------bYwlZf5vAKS0H0CwVc04O0IS" Message-ID: Date: Thu, 23 May 2024 21:08:24 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: bug-gnu-emacs@gnu.org From: David McCracken Subject: bug-gnu-emacs@gnu.org X-EN-UserInfo: 7db9acb10a66b5d38e8efde72e4a1877:931c98230c6409dcc37fa7e93b490c27 X-EN-AuthUser: davidm@ixont.com X-EN-OrigIP: 23.115.169.72 X-EN-OrigHost: 23-115-169-72.lightspeed.mtryca.sbcglobal.net Received-SPF: pass client-ip=66.96.187.3; envelope-from=SRS0=Yz2xae=M3=ixont.com=davidm@eigbox.net; helo=bosmailout03.eigbox.net X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.25, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, TO_IN_SUBJ=0.099 autolearn=no autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.4 (--) This is a multi-part message in MIME format. --------------bYwlZf5vAKS0H0CwVc04O0IS Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit From: d To: bug-gnu-emacs@gnu.org Subject: 27.1; toolbar icons My Linux computers are used only for local development and don't have email access. I copied this from the Linux computer (X990) in which the problem exists. That I am sending this to you from a Windows computer is irrelevant. --text follows this line-- 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. In GNU Emacs 27.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.33, cairo version 1.16.0)  of 2023-08-16, modified by Debian built on lcy02-amd64-041 Windowing system distributor 'The X.Org Foundation', version 11.0.12101004 System Description: Ubuntu 22.04.4 LTS Recent messages: Invalid XPM3 file ((image :type xpm :file /usr/share/emacs/27.1/etc/images/lxa-next.xpm)) Invalid XPM3 file ((image :type xpm :file /home/d/icons/lxa-fwdlink.xpm)) Invalid XPM3 file ((image :type xpm :file /home/d/icons/lxa-pin.xpm)) Invalid XPM3 file ((image :type xpm :file /home/d/icons/lxa-prev.xpm)) Invalid XPM3 file ((image :type xpm :file /home/d/icons/lxa-next.xpm)) Invalid XPM3 file ((image :type xpm :file /usr/share/emacs/27.1/etc/images/lxa-next.xpm :mask heuristic)) Invalid XPM3 file ((image :type xpm :file /home/d/icons/lxa-fwdlink.xpm :mask heuristic)) Invalid XPM3 file ((image :type xpm :file /home/d/icons/lxa-pin.xpm :mask heuristic)) Invalid XPM3 file ((image :type xpm :file /home/d/icons/lxa-prev.xpm :mask heuristic)) Invalid XPM3 file ((image :type xpm :file /home/d/icons/lxa-next.xpm :mask heuristic)) Configured using:  'configure --build x86_64-linux-gnu --prefix=/usr  --sharedstatedir=/var/lib --libexecdir=/usr/lib  --localstatedir=/var/lib --infodir=/usr/share/info  --mandir=/usr/share/man --enable-libsystemd --with-pop=yes  --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/27.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/27.1/site-lisp:/usr/share/emacs/site-lisp  --with-sound=alsa --without-gconf --with-mailutils --build  x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib  --libexecdir=/usr/lib --localstatedir=/var/lib  --infodir=/usr/share/info --mandir=/usr/share/man --enable-libsystemd  --with-pop=yes  --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/27.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/27.1/site-lisp:/usr/share/emacs/site-lisp  --with-sound=alsa --without-gconf --with-mailutils --with-cairo  --with-x=yes --with-x-toolkit=gtk3 --with-toolkit-scroll-bars  'CFLAGS=-g -O2  -ffile-prefix-map=/build/emacs-WL9mhG/emacs-27.1+1=. -fstack-protector-strong  -Wformat -Werror=format-security -Wall' 'CPPFLAGS=-Wdate-time  -D_FORTIFY_SOURCE=2' 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro'' Configured features: XPM JPEG TIFF GIF PNG RSVG CAIRO SOUND GPM DBUS GSETTINGS GLIB NOTIFY INOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE HARFBUZZ M17N_FLT LIBOTF ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS LIBSYSTEMD JSON PDUMPER LCMS2 GMP Important settings:   value of $LANG: en_US.UTF-8   locale-coding-system: utf-8-unix Major mode: Emacs-Lisp Minor modes in effect:   show-paren-mode: t   delete-selection-mode: t   tooltip-mode: t   global-eldoc-mode: t   eldoc-mode: t   mouse-wheel-mode: t   tool-bar-mode: t   menu-bar-mode: t   file-name-shadow-mode: t   global-font-lock-mode: t   font-lock-mode: t   blink-cursor-mode: t   auto-composition-mode: t   auto-encryption-mode: t   auto-compression-mode: t   column-number-mode: t   line-number-mode: t   transient-mark-mode: t Load-path shadows: None found. Features: (shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs format-spec rfc822 mml mml-sec epa derived epg epg-config gnus-util rmail rmail-loaddefs text-property-search mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils time-date server cus-edit cus-start cus-load wid-edit linkxall edmacro kmacro pcase paren delsel bs finder-inf package easymenu browse-url url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache json subr-x map url-vars seq byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote threads dbusbind inotify lcms2 dynamic-setting system-font-setting font-render-setting cairo move-toolbar gtk x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 91987 8892)   (symbols 48 9691 1)   (strings 32 26045 2661)   (string-bytes 1 804745)   (vectors 16 14071)   (vector-slots 8 176572 9434)   (floats 8 34 18)   (intervals 56 1929 0)   (buffers 1000 12)) --------------bYwlZf5vAKS0H0CwVc04O0IS Content-Type: text/plain; charset=UTF-8; name="lxa-next.xpm" Content-Disposition: attachment; filename="lxa-next.xpm" Content-Transfer-Encoding: base64 LyogWFBNICovDQpzdGF0aWMgY2hhciAqIEM6XFN3RGV2XEVtYWNzXGljb25zXGx4YV9zZWFy Y2hfZndkX3hwbVtdID0gew0KIjI0IDI0IDE5OCAyIiwNCiIgIAljIE5vbmUiLA0KIi4gCWMg I0M4NUEwMCIsDQoiKyAJYyAjQzg1OTAwIiwNCiJAIAljICNDNzU5MDAiLA0KIiMgCWMgI0My NTYwMCIsDQoiJCAJYyAjQ0I2RDFEIiwNCiIlIAljICNEQzkxNDkiLA0KIiYgCWMgI0UwOUU1 NyIsDQoiKiAJYyAjREVBMTVDIiwNCiI9IAljICNERDk2NEIiLA0KIi0gCWMgI0Q1ODAyRiIs DQoiOyAJYyAjQ0U3MDFBIiwNCiI+IAljICNDNDVDMDUiLA0KIiwgCWMgI0MxNTcwMCIsDQoi JyAJYyAjQkM1NzA0IiwNCiIpIAljICNERDlBNTkiLA0KIiEgCWMgI0VGQzc5NyIsDQoifiAJ YyAjQUM3ODQ1IiwNCiJ7IAljICM2RDQ3MjIiLA0KIl0gCWMgIzU1MzAxMSIsDQoiXiAJYyAj NEQyQzExIiwNCiIvIAljICM2NTNFMTYiLA0KIiggCWMgIzkyNTUxQiIsDQoiXyAJYyAjQ0M3 NTIyIiwNCiI6IAljICNDNzYzMEMiLA0KIjwgCWMgI0JCNTQwMCIsDQoiWyAJYyAjQjY1MzA0 IiwNCiJ9IAljICNFQ0I5ODAiLA0KInwgCWMgI0RCQUU3RSIsDQoiMSAJYyAjNjYzQzE4IiwN CiIyIAljICM1RDM5MUMiLA0KIjMgCWMgIzU4M0IyNCIsDQoiNCAJYyAjNEQzQjJEIiwNCiI1 IAljICM0QjNBMkMiLA0KIjYgCWMgIzVCM0MyNSIsDQoiNyAJYyAjNjMzQjFBIiwNCiI4IAlj ICM2QTM3MEQiLA0KIjkgCWMgI0FDNUQxMyIsDQoiMCAJYyAjQ0E2NTBCIiwNCiJhIAljICNC NDUwMDAiLA0KImIgCWMgI0FENEUwMCIsDQoiYyAJYyAjRDc4RTQ3IiwNCiJkIAljICNDRjk4 NUUiLA0KImUgCWMgIzVEMzYxNSIsDQoiZiAJYyAjNTYzRTI5IiwNCiJnIAljICNEN0VENUMi LA0KImggCWMgI0Q0RDRENCIsDQoiaSAJYyAjRDhEOEQ4IiwNCiJqIAljICM1NzNCMjYiLA0K ImsgCWMgIzZCMzkxMCIsDQoibCAJYyAjQjE1QjBCIiwNCiJtIAljICNCQzU5MDMiLA0KIm4g CWMgI0I2NjExNyIsDQoibyAJYyAjRUJBRDY5IiwNCiJwIAljICM2OTNEMTYiLA0KInEgCWMg IzYwNDUzMCIsDQoiciAJYyAjRjVGNUY1IiwNCiJzIAljICNGRkZGRkYiLA0KInQgCWMgI0ZD RkNGQyIsDQoidSAJYyAjNUE0MDJBIiwNCiJ2IAljICM3NTNCMEIiLA0KIncgCWMgI0M1NjEw NSIsDQoieCAJYyAjQTg0QzAwIiwNCiJ5IAljICNBMDQ3MDAiLA0KInogCWMgI0QxODIzMyIs DQoiQSAJYyAjQUQ2QzJFIiwNCiJCIAljICM2MzNGMjEiLA0KIkMgCWMgI0Y2RjZGNiIsDQoi RCAJYyAjRkVGQ0ZDIiwNCiJFIAljICNGQkZCRkIiLA0KIkYgCWMgIzAwMDAwMCIsDQoiRyAJ YyAjNjUzQzFDIiwNCiJIIAljICNBMDRDMDMiLA0KIkkgCWMgI0I1NTQwMCIsDQoiSiAJYyAj OUU0NTAwIiwNCiJLIAljICM5QzQ2MDAiLA0KIkwgCWMgI0RDOEMzQSIsDQoiTSAJYyAjODQ0 RDFFIiwNCiJOIAljICM2RjRGMzciLA0KIk8gCWMgIzY5NEIzNCIsDQoiUCAJYyAjODU0MTA4 IiwNCiJRIAljICNDMTVBMDAiLA0KIlIgCWMgIzlCNDYwMCIsDQoiUyAJYyAjOTM0MjAxIiwN CiJUIAljICNFNTkyM0EiLA0KIlUgCWMgIzZCM0QxNiIsDQoiViAJYyAjNzA1QTQ4IiwNCiJX IAljICM4MDQ2MTMiLA0KIlggCWMgI0NGNjEwMCIsDQoiWSAJYyAjOTI0MTAwIiwNCiJaIAlj ICM4QTNGMDEiLA0KImAgCWMgI0UzOEEyRSIsDQoiIC4JYyAjNkU0MDFBIiwNCiIuLgljICM4 QTUzMUIiLA0KIisuCWMgI0QwNjMwMCIsDQoiQC4JYyAjOEEzRjAwIiwNCiIjLgljICM4ODNF MDAiLA0KIiQuCWMgI0QyNzYxQyIsDQoiJS4JYyAjODY0RDFBIiwNCiImLgljICM3QzVDNDAi LA0KIiouCWMgIzhDNjg0MiIsDQoiPS4JYyAjQTY2MzFDIiwNCiItLgljICNCRjVBMDAiLA0K IjsuCWMgIzg3M0QwMCIsDQoiPi4JYyAjN0YzODAwIiwNCiIsLgljICNCQTYxMEUiLA0KIicu CWMgI0EzNUIxNiIsDQoiKS4JYyAjNzg1MTJGIiwNCiIhLgljICM5QTZFMzkiLA0KIn4uCWMg I0M2NzIxOSIsDQoiey4JYyAjQTk1MDAwIiwNCiJdLgljICM3QzM5MDAiLA0KIl4uCWMgIzhD NDMwMyIsDQoiLy4JYyAjREI3NTEwIiwNCiIoLgljICM3QTQ4MUYiLA0KIl8uCWMgI0ExNzk0 OSIsDQoiOi4JYyAjQzQ4ODM5IiwNCiI8LgljICNERTczMEEiLA0KIlsuCWMgIzg0M0QwMCIs DQoifS4JYyAjNkIzNDA2IiwNCiJ8LgljICNBRTU3MDYiLA0KIjEuCWMgI0MxNjQwQyIsDQoi Mi4JYyAjN0I0QzI1IiwNCiIzLgljICNBNzdBNEQiLA0KIjQuCWMgI0M0OEU0NCIsDQoiNS4J YyAjRTA4NjIwIiwNCiI2LgljICNBODRFMDAiLA0KIjcuCWMgIzdFMzkwMCIsDQoiOC4JYyAj MkMyNTIxIiwNCiI5LgljICM0RjQ1M0IiLA0KIjAuCWMgIzgwNDEwRCIsDQoiYS4JYyAjQ0M2 NTAzIiwNCiJiLgljICNDMDYyMDkiLA0KImMuCWMgIzgxNEIxRiIsDQoiZC4JYyAjODU1NTJF IiwNCiJlLgljICNBMTc3NDYiLA0KImYuCWMgI0FCNzgzRCIsDQoiZy4JYyAjQzU4QTNDIiwN CiJoLgljICNERDg1MUYiLA0KImkuCWMgI0M4NjEwMSIsDQoiai4JYyAjM0UzQTM1IiwNCiJr LgljICM5Rjk3OEQiLA0KImwuCWMgIzZENTQzQiIsDQoibS4JYyAjN0QzQTAzIiwNCiJuLglj ICNBQjUyMDEiLA0KIm8uCWMgI0RDNjkwMCIsDQoicC4JYyAjQTg1ODBEIiwNCiJxLgljICM5 MDRGMTciLA0KInIuCWMgIzhCNTQyMyIsDQoicy4JYyAjOUI2MzI5IiwNCiJ0LgljICNCMDZG MjciLA0KInUuCWMgI0M0NzMxRSIsDQoidi4JYyAjRTI3NjBBIiwNCiJ3LgljICNBQTUwMDAi LA0KInguCWMgIzdEMzkwMCIsDQoieS4JYyAjMkYyQzI4IiwNCiJ6LgljICM5ODkyODgiLA0K IkEuCWMgIzY3NUU1MiIsDQoiQi4JYyAjNkU1ODM3IiwNCiJDLgljICM2QTRGMkQiLA0KIkQu CWMgIzY2MzEwNSIsDQoiRS4JYyAjODUzRDAwIiwNCiJGLgljICNCMTU0MDAiLA0KIkcuCWMg I0M4NUYwMCIsDQoiSC4JYyAjREU2QjAwIiwNCiJJLgljICNEQzZDMDEiLA0KIkouCWMgI0M3 NUYwMCIsDQoiSy4JYyAjQjA1MzAwIiwNCiJMLgljICM4NjNFMDAiLA0KIk0uCWMgIzdEMzgw MCIsDQoiTi4JYyAjMjgyNDIwIiwNCiJPLgljICM4RTg3N0YiLA0KIlAuCWMgIzY3NjE1NiIs DQoiUS4JYyAjNTk0OTMxIiwNCiJSLgljICM0NTM4MjYiLA0KIlMuCWMgIzE5MTYxNCIsDQoi VC4JYyAjNzMzMzAwIiwNCiJVLgljICM3QTM4MDAiLA0KIlYuCWMgIzdCMzgwMCIsDQoiVy4J YyAjODAzQTAwIiwNCiJYLgljICM3QTM3MDAiLA0KIlkuCWMgIzI0MjAxQyIsDQoiWi4JYyAj ODE3QjczIiwNCiJgLgljICM2QTY0NUMiLA0KIiArCWMgIzQ1M0IyQiIsDQoiLisJYyAjMkEy NTFDIiwNCiIrKwljICMxOTE1MTIiLA0KIkArCWMgIzRDNDY0MSIsDQoiIysJYyAjNkM2NzVG IiwNCiIkKwljICMzNDJGMjYiLA0KIiUrCWMgIzFFMUExNiIsDQoiJisJYyAjMTUxMzEwIiwN CiIqKwljICMwNDA0MDQiLA0KIj0rCWMgIzFCMTcxNCIsDQoiLSsJYyAjMjMyMTFCIiwNCiI7 KwljICMxQTE3MTQiLA0KIj4rCWMgIzEzMTIwRiIsDQoiLCsJYyAjMTgxNTExIiwNCiIgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLA0KIiAgICAg ICAgICAgICAgICAgICAgICAuICsgKyArIC4gQCAgICAgICAgICAgICAgICIsDQoiICAgICAg ICAgICAgICAgICAgIyAkICUgJiAqID0gLSA7ID4gLCAgICAgICAgICAgIiwNCiIgICAgICAg ICAgICAgICAgJyApICEgfiB7IF0gXiAvICggXyA6IDwgICAgICAgICAiLA0KIiAgICAgICAg ICAgICAgWyB9IHwgMSAyIDMgNCA1IDYgNyA4IDkgMCBhICAgICAgICIsDQoiICAgICAgICAg ICAgYiBjIGQgZSBmIGcgaCBpIGcgZyBnIGogayBsIG0gYiAgICAgIiwNCiIgICAgICAgICAg ICBuIG8gcCBxIGcgciBzIHQgZyBnIGcgZyB1IHYgdyB4ICAgICAiLA0KIiAgICAgICAgICB5 IHogQSBCIGcgZyBDIEQgRSBGIGcgZyBnIGcgRyBIIEkgSiAgICIsDQoiICAgICAgICAgIEsg TCBNIE4gZyBnIGcgZyBnIGcgRiBnIGcgZyBPIFAgUSBSICAgIiwNCiIgICAgICAgICAgUyBU IFUgZyBnIGcgZyBnIGcgZyBnIEYgZyBnIFYgVyBYIFkgICAiLA0KIiAgICAgICAgICBaIGAg IC5GIEYgRiBGIEYgRiBGIEYgRiBGIGcgZyAuLisuQC4gICIsDQoiICAgICAgICAgICMuJC4l LiYuZyBnIGcgZyBnIGcgZyBGIGcgZyAqLj0uLS47LiAgIiwNCiIgICAgICAgICAgPi4sLicu KS5nIGcgZyBnIGcgZyBGIGcgZyBnICEufi57Ll0uICAiLA0KIiAgICAgICAgICAgIF4uLy4o LmcgZyBnIGcgZyBGIGcgZyBnIF8uOi48LlsuICAgICIsDQoiICAgICAgICAgICAgfS58LjEu Mi5nIGcgZyBnIGcgZyBnIDMuNC41LjYuNy4gICAgIiwNCiIgICAgICAgICAgOC45LjAuYS5i LmMuZC5nIGcgZyBlLmYuZy5oLmkuXS4gICAgICAiLA0KIiAgICAgICAgICBqLmsubC5tLm4u by5wLnEuci5zLnQudS52LncueC4gICAgICAgICIsDQoiICAgICAgICB5LnouQS5CLkMuRC5F LkYuRy5ILkkuSi5LLkwuTS4gICAgICAgICAgIiwNCiIgICAgICBOLk8uUC5RLlIuUy4gICAg VC43LlUuVi5XLlguICAgICAgICAgICAgICAiLA0KIiAgICBZLlouYC4gKy4rKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICIsDQoiICAgIEArIyskKyUrJisqKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIiwNCiIgICAgPSstKzsrPisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiLA0KIiAgICAgICwrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICIsDQoiICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIn07DQo= --------------bYwlZf5vAKS0H0CwVc04O0IS-- ------------=_1716808862-3085-1-- From unknown Thu Jun 19 16:24:32 2025 X-Loop: help-debbugs@gnu.org Subject: bug#71162: Linux-Emacs > 26 icons References: In-Reply-To: Resent-From: David McCracken Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 28 May 2024 03:57:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 71162 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 71162@debbugs.gnu.org Received: via spool by 71162-submit@debbugs.gnu.org id=B71162.171686860522578 (code B ref 71162); Tue, 28 May 2024 03:57:02 +0000 Received: (at 71162) by debbugs.gnu.org; 28 May 2024 03:56:45 +0000 Received: from localhost ([127.0.0.1]:45527 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sBnx6-0005s6-Pf for submit@debbugs.gnu.org; Mon, 27 May 2024 23:56:45 -0400 Received: from bosmailout05.eigbox.net ([66.96.184.5]:47405) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sBnx5-0005rt-3D for 71162@debbugs.gnu.org; Mon, 27 May 2024 23:56:43 -0400 Received: from bosmailscan03.eigbox.net ([10.20.15.3]) by bosmailout05.eigbox.net with esmtp (Exim) id 1sBnwo-00011g-Cs for 71162@debbugs.gnu.org; Mon, 27 May 2024 23:56:26 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ixont.com; s=dkim; h=Sender:Content-Transfer-Encoding:Content-Type:Subject:From:To: MIME-Version:Date:Message-ID:Reply-To:Cc:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=prjvH17QfcHssVvk+i17tn79WA1iYoeuNRS65HLiSQ8=; b=odnlRUoR+h3tkxXsNxykG6ijGo OXLMJtheBpcVuJrTB2lQrkpSaAbjeHZ87u8qRc/apmyOgHilaPSNSZZ82urc86vyaeXlshGfZmaLX KwL08xaU06EvJJTkKlXCOeskOwPAyAulDUAly3rvl+RviHqMhXDg+6ns3R+QiFTLxkvrAAeLi+hMq jv9QCTtskVDq8Vu4Lq8rK57K3zTN59FhfXZWaR0NOy3lHYUsnwk+W9mSGRkxRqORhl3vgS6ub8/Hj 6QzWanepkbFy5jTo8VFKZ0PE0spQfwxoM69Ub+d63yv1ir1noTcsg+hFnZcwSC2oqf5gjp2D/1zOC aaTf48Qw==; Received: from [10.115.3.33] (helo=bosimpout13) by bosmailscan03.eigbox.net with esmtp (Exim) id 1sBnwm-0005aQ-4D for 71162@debbugs.gnu.org; Mon, 27 May 2024 23:56:24 -0400 Received: from bosauthsmtp14.yourhostingaccount.com ([10.20.18.14]) by bosimpout13 with id UTwM2C0010JCtq201TwQ04; Mon, 27 May 2024 23:56:24 -0400 X-Authority-Analysis: v=2.3 cv=Df2MVslW c=1 sm=1 tr=0 a=AnsiuLKgxXFeB68GILQVjQ==:117 a=8V9CQAzvb1UE/5s8aP8Njg==:17 a=IkcTkHD0fZMA:10 a=TpHVaj0NuXgA:10 a=G7FZY0ZvraEN6ToVCH4A:9 a=QEXdDO2ut3YA:10 Received: from 23-115-169-72.lightspeed.mtryca.sbcglobal.net ([23.115.169.72]:62523 helo=[192.168.1.66]) by bosauthsmtp14.eigbox.net with esmtpsa (TLS1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim) id 1sBnwi-0006EC-Ok for 71162@debbugs.gnu.org; Mon, 27 May 2024 23:56:20 -0400 Message-ID: <72e0f9ea-96e2-4972-b983-1f0fccf20461@ixont.com> Date: Mon, 27 May 2024 20:56:19 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US From: David McCracken Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-EN-UserInfo: 7db9acb10a66b5d38e8efde72e4a1877:931c98230c6409dcc37fa7e93b490c27 X-EN-AuthUser: davidm@ixont.com X-EN-OrigIP: 23.115.169.72 X-EN-OrigHost: 23-115-169-72.lightspeed.mtryca.sbcglobal.net X-Spam-Score: 0.2 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) The issue of Linux-Emacs 27.1 not accepting its own icons in ~/icons was coincidental. When my icons were not appearing, I experimented by copying lock-broken.xpm to ~/icons and changing my library to refer to it. I did this directly in /usr/share/emacs/site-lisp so sudo was required. Normally, when I do superuser work I log in as root and am well aware that this has its own home directory. I had forgotten that sudo doesn't just grant extra priviledge but temporarily makes the user root, for whom ~/icons doesn't exist. The issue of the Windows directory reference in my xpm files was also just a coincidence. The real problem is that Linux-Emacs 27.1 demands XPM3 even though the system has no problem with earlier versions. Comparing different versions of the same icon reveals that XPM3 syntax is very different from XPM2. I didn't want to have to provide different versions of the icons for different systems so I tested the XPM3 translations on the computers that were not having trouble with XPM2 and they worked.