GNU bug report logs - #64969
30.0.50: Stipple broken with PGTK

Previous Next

Package: emacs;

Reported by: magnus <at> therning.org

Date: Mon, 31 Jul 2023 09:38:03 UTC

Severity: normal

Merged with 64970

Found in version 30.0.50

Done: Po Lu <luangruo <at> yahoo.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 64969 in the body.
You can then email your comments to 64969 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#64969; Package emacs. (Mon, 31 Jul 2023 09:38:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to magnus <at> therning.org:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Mon, 31 Jul 2023 09:38:03 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: magnus <at> therning.org
To: bug-gnu-emacs <at> gnu.org
Subject: 30.0.50: Stipple broken with PGTK
Date: Mon, 31 Jul 2023 10:05:09 +0200
The code

(let* ((w (window-font-width))
      (stipple `(,w 1 ,(apply #'unibyte-string
			       (append (make-list (1- (/ (+ w 7) 
			       8)) ?\0)
				       '(1))))))
 (insert "\n" (propertize (concat  (make-string 15 ?\s)
				    "THIS IS A TEST"
				    (make-string 15 ?\s))
                          'face `(:background "red" :foreground 
                          "blue" :stipple ,stipple))))

doesn't have the expected result, i.e. the text is not blue on red 
background.

More information leading to this report can be found at 
https://github.com/jdtsmith/indent-bars/issues/3


In GNU Emacs 30.0.50 (build 3, x86_64-pc-linux-gnu, GTK+ Version
3.24.38, cairo version 1.17.8) of 2023-07-26 built on elostirion
Repository revision: 04a930a08ce80d8dcc123f86a3f153f23ec31a29
Repository branch: makepkg
System Description: Arch Linux

Configured using:
'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
--localstatedir=/var --mandir=/usr/share/man 
--with-gameuser=:games
--with-modules --without-libotf --without-m17n-flt 
--without-gconf
--with-native-compilation=yes --with-native-compilation=aot
--with-xinput2 --with-pgtk --without-xaw3d --with-sound=no
--with-xwidgets --with-tree-sitter --without-compress-install
'--program-transform-name=s/\([ec]tags\)/\1.emacs/'
'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fno-plt 
-fexceptions
-Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security
-fstack-clash-protection -fcf-protection'
LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now
'CXXFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fno-plt 
-fexceptions
-Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security
-fstack-clash-protection -fcf-protection 
-Wp,-D_GLIBCXX_ASSERTIONS''

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ 
JPEG
JSON LCMS2 LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY 
PDUMPER
PGTK PNG RSVG SECCOMP SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS
TREE_SITTER WEBP XIM XWIDGETS GTK3 ZLIB

Important settings:
 value of $LANG: en_GB.UTF-8
 locale-coding-system: utf-8-unix

Major mode: ELisp/d

Minor modes in effect:
 tooltip-mode: t
 global-eldoc-mode: t
 eldoc-mode: t
 show-paren-mode: t
 electric-indent-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
 line-number-mode: t
 indent-tabs-mode: t
 transient-mark-mode: t
 auto-composition-mode: t
 auto-encryption-mode: t
 auto-compression-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr comp comp-cstr warnings icons rx cl-seq 
cl-macs
gv cl-extra help-mode bytecomp byte-compile emacsbug message 
mailcap
yank-media puny dired dired-loaddefs rfc822 mml mml-sec 
password-cache
epa derived epg rfc6068 epg-config gnus-util text-property-search
time-date subr-x mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader cl-loaddefs cl-lib sendmail 
rfc2047
rfc2045 ietf-drums mm-util mail-prsvr mail-utils rmc iso-transl 
tooltip
cconv eldoc paren electric uniquify ediff-hook vc-hooks 
lisp-float-type
elisp-mode mwheel term/pgtk-win pgtk-win term/common-win pgtk-dnd
tool-bar dnd fontset image regexp-opt fringe tabulated-list 
replace
newcomment text-mode lisp-mode prog-mode register page tab-bar 
menu-bar
rfn-eshadow isearch easymenu timer select scroll-bar mouse 
jit-lock
font-lock syntax font-core term/tty-colors frame minibuffer 
nadvice seq
simple cl-generic indonesian philippine 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 emoji-zwj charscript charprop 
case-table
epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded 
button
loaddefs theme-loaddefs faces cus-face macroexp files window
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget keymap hashtable-print-readable backquote threads
xwidget-internal dbusbind inotify dynamic-setting 
system-font-setting
font-render-setting cairo gtk pgtk lcms2 multi-tty move-toolbar
make-network-process native-compile emacs)

Memory information:
((conses 16 80510 12708) (symbols 48 7353 0) (strings 32 19778 
2015)
(string-bytes 1 592396) (vectors 16 15046)
(vector-slots 8 285882 20727) (floats 8 27 63) (intervals 56 451 
8)
(buffers 984 12))




Merged 64969 64970. Request was from Eli Zaretskii <eliz <at> gnu.org> to control <at> debbugs.gnu.org. (Mon, 31 Jul 2023 11:27:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#64969; Package emacs. (Mon, 31 Jul 2023 13:48:02 GMT) Full text and rfc822 format available.

Message #10 received at 64969 <at> debbugs.gnu.org (full text, mbox):

From: Po Lu <luangruo <at> yahoo.com>
To: magnus <at> therning.org
Cc: 64969 <at> debbugs.gnu.org
Subject: Re: bug#64969: 30.0.50: Stipple broken with PGTK
Date: Mon, 31 Jul 2023 21:47:02 +0800
magnus <at> therning.org writes:

> The code
>
> (let* ((w (window-font-width))
>       (stipple `(,w 1 ,(apply #'unibyte-string
> 			       (append (make-list (1- (/ (+ w 7)
> 			       8)) ?\0)
> 				       '(1))))))
>  (insert "\n" (propertize (concat  (make-string 15 ?\s)
> 				    "THIS IS A TEST"
> 				    (make-string 15 ?\s))
>                           'face `(:background "red" :foreground
>                           "blue" :stipple ,stipple))))
>
> doesn't have the expected result, i.e. the text is not blue on red
> background.
>
> More information leading to this report can be found at
> https://github.com/jdtsmith/indent-bars/issues/3

I think this owes to an inconsistency between the PGTK and X bitmap
initialization code.  I will look into this tomorrow, unless someone
wants to do it first.

The relevant functions are `image_create_bitmap_from_data' and
`image_create_pattern_from_pixbuf' in image.c.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#64969; Package emacs. (Tue, 01 Aug 2023 02:37:02 GMT) Full text and rfc822 format available.

Message #13 received at 64969 <at> debbugs.gnu.org (full text, mbox):

From: Po Lu <luangruo <at> yahoo.com>
To: magnus <at> therning.org
Cc: 64969 <at> debbugs.gnu.org
Subject: Re: bug#64969: 30.0.50: Stipple broken with PGTK
Date: Tue, 01 Aug 2023 10:35:47 +0800
Po Lu <luangruo <at> yahoo.com> writes:

> magnus <at> therning.org writes:
>
>> The code
>>
>> (let* ((w (window-font-width))
>>       (stipple `(,w 1 ,(apply #'unibyte-string
>> 			       (append (make-list (1- (/ (+ w 7)
>> 			       8)) ?\0)
>> 				       '(1))))))
>>  (insert "\n" (propertize (concat  (make-string 15 ?\s)
>> 				    "THIS IS A TEST"
>> 				    (make-string 15 ?\s))
>>                           'face `(:background "red" :foreground
>>                           "blue" :stipple ,stipple))))
>>
>> doesn't have the expected result, i.e. the text is not blue on red
>> background.
>>
>> More information leading to this report can be found at
>> https://github.com/jdtsmith/indent-bars/issues/3
>
> I think this owes to an inconsistency between the PGTK and X bitmap
> initialization code.  I will look into this tomorrow, unless someone
> wants to do it first.
>
> The relevant functions are `image_create_bitmap_from_data' and
> `image_create_pattern_from_pixbuf' in image.c.

I think this should now have been fixed on the master branch; the change
was too involved for Emacs 29.  Please test and ack, thanks.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#64969; Package emacs. (Tue, 01 Aug 2023 11:59:02 GMT) Full text and rfc822 format available.

Message #16 received at 64969 <at> debbugs.gnu.org (full text, mbox):

From: magnus <at> therning.org
To: Po Lu <luangruo <at> yahoo.com>
Cc: 64969 <at> debbugs.gnu.org
Subject: Re: bug#64969: 30.0.50: Stipple broken with PGTK
Date: Tue, 01 Aug 2023 11:27:09 +0200
[Message part 1 (text/plain, inline)]
Po Lu <luangruo <at> yahoo.com> writes:

> Po Lu <luangruo <at> yahoo.com> writes:
>
>> magnus <at> therning.org writes:
>>
>>> The code
>>>
>>> (let* ((w (window-font-width))
>>>       (stipple `(,w 1 ,(apply #'unibyte-string
>>> 			       (append (make-list (1- (/ (+ w 7)
>>> 			       8)) ?\0)
>>> 				       '(1))))))
>>>  (insert "\n" (propertize (concat  (make-string 15 ?\s)
>>> 				    "THIS IS A TEST"
>>> 				    (make-string 15 ?\s))
>>>                           'face `(:background "red" 
>>>                           :foreground
>>>                           "blue" :stipple ,stipple))))
>>>
>>> doesn't have the expected result, i.e. the text is not blue on 
>>> red
>>> background.
>>>
>>> More information leading to this report can be found at
>>> https://github.com/jdtsmith/indent-bars/issues/3
>>
>> I think this owes to an inconsistency between the PGTK and X 
>> bitmap
>> initialization code.  I will look into this tomorrow, unless 
>> someone
>> wants to do it first.
>>
>> The relevant functions are `image_create_bitmap_from_data' and
>> `image_create_pattern_from_pixbuf' in image.c.
>
> I think this should now have been fixed on the master branch; 
> the change
> was too involved for Emacs 29.  Please test and ack, thanks.

Yes! That change fixed it.

I verified the above elisp expression (in fundamental mode) both 
in a "bare emacs" (emacs -q) and in my own config. The behaviour 
is now exactly as expected.

It also works well with the indent-bars[1] package.

Thanks so much for the very fast fix.

/M

[1]: https://github.com/jdtsmith/indent-bars

-- 
Magnus Therning                   OpenPGP: 0x927912051716CE39
email: magnus <at> therning.org
@magthe <at> mastodon.technology       http://magnus.therning.org/

`Ford, you're turning into a penguin. Stop it.'

— Arthur experiences the improbability drive at work.
[signature.asc (application/pgp-signature, inline)]

Reply sent to Po Lu <luangruo <at> yahoo.com>:
You have taken responsibility. (Wed, 02 Aug 2023 00:15:02 GMT) Full text and rfc822 format available.

Notification sent to magnus <at> therning.org:
bug acknowledged by developer. (Wed, 02 Aug 2023 00:15:02 GMT) Full text and rfc822 format available.

Message #21 received at 64969-done <at> debbugs.gnu.org (full text, mbox):

From: Po Lu <luangruo <at> yahoo.com>
To: magnus <at> therning.org
Cc: 64969-done <at> debbugs.gnu.org
Subject: Re: bug#64969: 30.0.50: Stipple broken with PGTK
Date: Wed, 02 Aug 2023 08:14:01 +0800
magnus <at> therning.org writes:

> Yes! That change fixed it.
>
> I verified the above elisp expression (in fundamental mode) both in a
> "bare emacs" (emacs -q) and in my own config. The behaviour is now
> exactly as expected.
>
> It also works well with the indent-bars[1] package.
>
> Thanks so much for the very fast fix.
>
> /M
>
> [1]: https://github.com/jdtsmith/indent-bars

I'm closing this bug then, thanks.




Reply sent to Po Lu <luangruo <at> yahoo.com>:
You have taken responsibility. (Wed, 02 Aug 2023 00:15:02 GMT) Full text and rfc822 format available.

Notification sent to magnus <at> therning.org:
bug acknowledged by developer. (Wed, 02 Aug 2023 00:15:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 30 Aug 2023 11:24:07 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 290 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.