Subject: 30.0.50; Stipples on NS-port

From: Arash Esbati <[email-masked]>
Date: Thu, 02 May 2024 13:03:05 +0200

Hi all,

based on the test from this page[1], stipples don't work on the NS-port.
Steps to reproduce:

• emacs -Q
• M-x font-lock-mode RET  (i.e., disable font-lock)
• Eval this in scratch:
--8<---------------cut here---------------start------------->8---
(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))))
--8<---------------cut here---------------end--------------->8---

And it looks like this:

After commit ef6ffbdc79, the same exercise looks like this:

Citing Po Lu, who kindly fixed part of the issue[2]:

    I see the problem, or rather, two distinct problems, the one being
    that the cursor face is flatly ignored when a stipple pattern is
    present, which I've just fixed, the other that the colors of such a
    stipple pattern are fixed to the image's background color and a
    black foreground, rather than adapting to the colors of the face in
    which it is displayed.  Here my scant knowledge of matters Nextstep
    failed me, and as such I will leave this to someone else with more
    experience than I.

This report is about the second part described above.

Best, Arash

Footnotes:
[1]  https://github.com/jdtsmith/indent-bars#stipples
[2]  https://lists.gnu.org/archive/html/emacs-devel/2024-05/msg00103.html

In GNU Emacs 30.0.50 (build 1, aarch64-apple-darwin23.4.0, NS
 appkit-2487.50 Version 14.4.1 (Build 23E224)) of 2024-05-02 built on
 MacMutant.fritz.box
Repository revision: ef6ffbdc79645e719d3b5ef23c9200405c58c61e
Repository branch: master
Windowing system distributor 'Apple', version 10.3.2487
System Description:  macOS 14.4.1

Configured using:
 'configure --with-ns --without-pop --without-mailutils --with-threads
 --with-modules --with-native-compilation --without-compress-install
 'CFLAGS=-O2 -g0 -pipe''

Configured features:
ACL GLIB GMP GNUTLS LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY KQUEUE NS
PDUMPER PNG RSVG SQLITE3 THREADS TOOLKIT_SCROLL_BARS TREE_SITTER WEBP
XIM ZLIB