GNU bug report logs - #80628
[PATCH] New face to display special glyphs

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Reported by: Manuel Giraud <manuel@HIDDEN>; Keywords: patch; dated Tue, 17 Mar 2026 18:58:02 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.

Message received at 80628 <at> debbugs.gnu.org:


Received: (at 80628) by debbugs.gnu.org; 19 Mar 2026 16:46:02 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Mar 19 12:46:02 2026
Received: from localhost ([127.0.0.1]:48532 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1w3GVV-0000rS-Rm
	for submit <at> debbugs.gnu.org; Thu, 19 Mar 2026 12:46:02 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:57458)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1w3GVT-0000r1-5X
 for 80628 <at> debbugs.gnu.org; Thu, 19 Mar 2026 12:45:59 -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 <eliz@HIDDEN>)
 id 1w3GVN-0004mz-PN; Thu, 19 Mar 2026 12:45:53 -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=Mj2tsnXXaGfjYGrd7kZLorZY3AieQFptSrqXCdxXLL0=; b=pFrvPPcr2S2/BRUazv+7
 61Xjr7+ni5i2J9RKjsAwd/2G6J9CGzIzkKrN4z6ChGm44NReWzpo6tCg9j/l+jmr92DBwA/oYGjuZ
 l63IPqbMfjaeonoipiVMBsBZLoTBzZPC+kAWewennvOEj2IvSFLT/SO7+x1+oPUjpyacJapJ/tt8f
 4+TNP2A/aM2FgKLA+Tjz68Hgc3HLR8PXcjg8BEC64YoDNcDzpjtOFJhgz0dE67Z8BdVS8TMpHs/H3
 YDVh1V/eySyL0H803CQ6XlIRdqa61IKt+GPJHydMS3YUq2qAcYGpNuVoficsFJISC/5e5PImDDYKD
 41m39H87w5iajw==;
Date: Thu, 19 Mar 2026 18:45:50 +0200
Message-Id: <86o6kjepj5.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Manuel Giraud <manuel@HIDDEN>
In-Reply-To: <871phfbxyx.fsf@HIDDEN> (message from Manuel Giraud on
 Thu, 19 Mar 2026 17:11:50 +0100)
Subject: Re: bug#80628: [PATCH] New face to display special glyphs
References: <87ikau9td0.fsf@HIDDEN> <86jyv9gq6o.fsf@HIDDEN>
 <87eclgcdaj.fsf@HIDDEN> <86bjgkf4qn.fsf@HIDDEN>
 <86a4w4f2vp.fsf@HIDDEN> <871phfbxyx.fsf@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 80628
Cc: 80628 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Manuel Giraud <manuel@HIDDEN>
> Cc: 80628 <at> debbugs.gnu.org
> Date: Thu, 19 Mar 2026 17:11:50 +0100
> 
> Eli Zaretskii <eliz@HIDDEN> writes:
> 
> >   (defface special-glyphs
> >     '((t :inherit (shadow default)))
> >     "Face for displaying special glyphs."
> >     :group 'basic-faces)
> >   (fringe-mode '(0 . 0))
> >   (let ((tbl (or standard-display-table (make-display-table))))
> >     (set-display-table-slot tbl 1 (make-glyph-code ?\\ 'special-glyphs))
> >     (set-window-display-table (selected-window) tbl))
> 
> Thanks Eli for those explanations (and example).
> 
> Since patch d272dedf8cd, I have now add the following to my init file to
> have nice little arrows:
> 
> (set-display-table-slot standard-display-table 'wrap ?↩)
> 
> So I just have to add a (make-glyph-code…) with whatever face I like.  I
> think I can live with this (and I don't know if this mandates mode).

Well, we could have a simple command instead, which would basically do
what the above snippet does (modulo the fringe-mode setting).  Whether
this is worthy of a new command, I cannot say.  But I won't object if
you suggest a patch to add such a command (which then probably belongs
to disp-table.el).

> But now I have a question: what is the rationale to have a new "user
> facing" face in Emacs?  Faces are easy to understand from a user point
> of view and they could be modified by themes.  Without a face, this will
> remain a personal (or specialized) hack, no?

I don't object to adding a new face, if you think users or themes will
want to customize it.  If you do propose a patch to add a command as
described above, then adding a face to go with it makes sense.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#80628; Package emacs. Full text available.

Message received at 80628 <at> debbugs.gnu.org:


Received: (at 80628) by debbugs.gnu.org; 19 Mar 2026 16:12:03 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Mar 19 12:12:02 2026
Received: from localhost ([127.0.0.1]:48392 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1w3Fya-00068V-5D
	for submit <at> debbugs.gnu.org; Thu, 19 Mar 2026 12:12:02 -0400
Received: from ledu-giraud.fr ([51.159.28.247]:1725)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <manuel@HIDDEN>)
 id 1w3FyT-00067U-Ln
 for 80628 <at> debbugs.gnu.org; Thu, 19 Mar 2026 12:11:57 -0400
DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=9wWT3JZK
 SnxC4n7myl3AzJ49g7A5GnEO4MKBt3q5x0c=;
 h=date:references:in-reply-to:
 subject:cc:to:from; d=ledu-giraud.fr; b=7aTWnYD1wCBGlEzzUMEyAz670QXq2l
 3M2yk4GSkZJ5vd9cRzmRbRKRbRg/rgYk6MkqtUH5bN6KjOaGWyYWicDw==
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=9wWT3JZKSnxC4n7m
 yl3AzJ49g7A5GnEO4MKBt3q5x0c=;
 h=date:references:in-reply-to:subject:
 cc:to:from; d=ledu-giraud.fr; b=ivujzXReI7B5EzLYUK2pYc7K8RveIo7MXf3qLB
 /mpfJorHAIy0lFGHJGUXpQ1tsMbKC7DErXq3FfflAxaxn7Ixj1Suh37gud5SpNrAbfj6ez
 biLlu0O33TUXRhZUzAgAPHy9ZmZQl4U0Jo3L2kd1qSb71cHHirQBT21RhBZVTivcmOy6yj
 O+XSE5qxJSpmzqnG8l5KsO3+tQTaRI3G0L6MCy5jd3K7z79sKG0yRUljoFArEmwn5ABqyq
 uWURTRGCSddKVsMHK5bLiMA7M8LTVTdF1+OdmX3f2HrApVd1mbmOQnitxByyItslohhvvx
 CpyY4bk/GDWv3zC4OxN0XRTw==
Received: from computer (<unknown> [10.1.1.1])
 by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id 0ab33e5c
 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); 
 Thu, 19 Mar 2026 17:11:51 +0100 (CET)
From: Manuel Giraud <manuel@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#80628: [PATCH] New face to display special glyphs
In-Reply-To: <86a4w4f2vp.fsf@HIDDEN>
References: <87ikau9td0.fsf@HIDDEN> <86jyv9gq6o.fsf@HIDDEN>
 <87eclgcdaj.fsf@HIDDEN> <86bjgkf4qn.fsf@HIDDEN>
 <86a4w4f2vp.fsf@HIDDEN>
Date: Thu, 19 Mar 2026 17:11:50 +0100
Message-ID: <871phfbxyx.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 1.7 (+)
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: Eli Zaretskii <eliz@HIDDEN> writes: >> Cc:
 80628 <at> debbugs.gnu.org
 >> Date: Thu, 19 Mar 2026 13:17:20 +0200 >> From: Eli Zaretskii <eliz@HIDDEN>
 >> >> > Could you explain this idea of a minor mode because I don't understand
 >> > it? This [...] 
 Content analysis details:   (1.7 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.8 RCVD_IN_VALIDITY_RPBL_BLOCKED RBL: ADMINISTRATOR NOTICE: The
 query to Validity was blocked.  See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243
 for more information.
 [51.159.28.247 listed in bl.score.senderscore.com]
 -0.0 SPF_PASS               SPF: sender matches SPF record
 -0.0 SPF_HELO_PASS          SPF: HELO matches SPF record
 0.9 RCVD_IN_VALIDITY_SAFE_BLOCKED RBL: ADMINISTRATOR NOTICE: The
 query to Validity was blocked.  See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243
 for more information.
 [51.159.28.247 listed in sa-trusted.bondedsender.org]
X-Debbugs-Envelope-To: 80628
Cc: 80628 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.7 (/)

Eli Zaretskii <eliz@HIDDEN> writes:

>> Cc: 80628 <at> debbugs.gnu.org
>> Date: Thu, 19 Mar 2026 13:17:20 +0200
>> From: Eli Zaretskii <eliz@HIDDEN>
>>=20
>> > Could you explain this idea of a minor mode because I don't understand
>> > it?  This is just a face for displaying special glyphs and it will take
>> > place only when fringes are turned off.
>>=20
>> The minor mode I had in mind would do this when turned on:
>>=20
>>   . verify a display table exists, and if not, create one
>>   . optionally, make the display table buffer- or window-local
>>   . modify the special glyphs in the display table's extra slots to
>>     have this new face you want to add
>>=20
>> We could also have a command to toggle this, instead of a full-fledged
>> minor mode, if that's what you prefer.  I'm okay with either
>> alternative.
>
> Just to illustrate what I had in mind, here's a small Lisp program to
> try:
>
>   (defface special-glyphs
>     '((t :inherit (shadow default)))
>     "Face for displaying special glyphs."
>     :group 'basic-faces)
>   (fringe-mode '(0 . 0))
>   (let ((tbl (or standard-display-table (make-display-table))))
>     (set-display-table-slot tbl 1 (make-glyph-code ?\\ 'special-glyphs))
>     (set-window-display-table (selected-window) tbl))

Thanks Eli for those explanations (and example).

Since patch d272dedf8cd, I have now add the following to my init file to
have nice little arrows:

(set-display-table-slot standard-display-table 'wrap ?=E2=86=A9)

So I just have to add a (make-glyph-code=E2=80=A6) with whatever face I lik=
e.  I
think I can live with this (and I don't know if this mandates mode).

But now I have a question: what is the rationale to have a new "user
facing" face in Emacs?  Faces are easy to understand from a user point
of view and they could be modified by themes.  Without a face, this will
remain a personal (or specialized) hack, no?
--=20
Manuel Giraud




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#80628; Package emacs. Full text available.

Message received at 80628 <at> debbugs.gnu.org:


Received: (at 80628) by debbugs.gnu.org; 19 Mar 2026 11:58:44 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Mar 19 07:58:43 2026
Received: from localhost ([127.0.0.1]:44833 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1w3C1R-0001Ql-9Y
	for submit <at> debbugs.gnu.org; Thu, 19 Mar 2026 07:58:43 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:46026)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1w3C1M-0001PS-V3
 for 80628 <at> debbugs.gnu.org; Thu, 19 Mar 2026 07:58:38 -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 <eliz@HIDDEN>)
 id 1w3C1H-0002wF-3A; Thu, 19 Mar 2026 07:58:31 -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=ftIp6KC/FxRNYpg2tjBIAByP6zkZTMRyMhFhy6xQ1+Q=; b=fgJFI1WOVRRR
 vcJyQuSJHNZyHaSCs2jGl2JqEn+1d3WNIaxX7qhPQ1yacyTdOh95pqpfs11YQUvf3UrA7cqMIhQeu
 Ws5bOsEWqBwmYUdtI+nrqGN24yaTmy6d2o+zk5ntFT4OyFnSb5u53eT/ntak++OwTKd/ToBHKTGfP
 wZul/raHt0MW2ZtgtbgUmeIn5jKIeGBsim5zj3Dbjc578tMPJqsN5xmB5QI7S0BDdFSoAJhz9WXN5
 c+YworqKiBH38pBXipOXPbTtbdeAJ8tz2m3OBp+2b3LQkS7eIuwkWsp70zZnpYhjrGjNOskaCoxdh
 0iGvUGpT0WGKGgqd0cV5cQ==;
Date: Thu, 19 Mar 2026 13:57:30 +0200
Message-Id: <86a4w4f2vp.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: manuel@HIDDEN
In-Reply-To: <86bjgkf4qn.fsf@HIDDEN> (message from Eli Zaretskii on Thu, 19
 Mar 2026 13:17:20 +0200)
Subject: Re: bug#80628: [PATCH] New face to display special glyphs
References: <87ikau9td0.fsf@HIDDEN> <86jyv9gq6o.fsf@HIDDEN>
 <87eclgcdaj.fsf@HIDDEN> <86bjgkf4qn.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 80628
Cc: 80628 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Cc: 80628 <at> debbugs.gnu.org
> Date: Thu, 19 Mar 2026 13:17:20 +0200
> From: Eli Zaretskii <eliz@HIDDEN>
> 
> > Could you explain this idea of a minor mode because I don't understand
> > it?  This is just a face for displaying special glyphs and it will take
> > place only when fringes are turned off.
> 
> The minor mode I had in mind would do this when turned on:
> 
>   . verify a display table exists, and if not, create one
>   . optionally, make the display table buffer- or window-local
>   . modify the special glyphs in the display table's extra slots to
>     have this new face you want to add
> 
> We could also have a command to toggle this, instead of a full-fledged
> minor mode, if that's what you prefer.  I'm okay with either
> alternative.

Just to illustrate what I had in mind, here's a small Lisp program to
try:

  (defface special-glyphs
    '((t :inherit (shadow default)))
    "Face for displaying special glyphs."
    :group 'basic-faces)
  (fringe-mode '(0 . 0))
  (let ((tbl (or standard-display-table (make-display-table))))
    (set-display-table-slot tbl 1 (make-glyph-code ?\\ 'special-glyphs))
    (set-window-display-table (selected-window) tbl))

Evaluate this in *scratch*, then type a long line, and see how the
continuation glyph is shown using the special-glyphs face, in the
window showing *scratch*.  So here you see how the feature you wanted
to add is already available without any changes.  The only problem
with the above is that users who want this need to write some Lisp and
need to know about the details of display tables and glyphs.  A minor
mode or a toggle command could hide all that from users.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#80628; Package emacs. Full text available.

Message received at 80628 <at> debbugs.gnu.org:


Received: (at 80628) by debbugs.gnu.org; 19 Mar 2026 11:18:30 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Mar 19 07:18:30 2026
Received: from localhost ([127.0.0.1]:44385 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1w3BOX-0002CB-BW
	for submit <at> debbugs.gnu.org; Thu, 19 Mar 2026 07:18:30 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:60882)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1w3BOT-0002AU-EI
 for 80628 <at> debbugs.gnu.org; Thu, 19 Mar 2026 07:18:27 -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 <eliz@HIDDEN>)
 id 1w3BON-0003um-MN; Thu, 19 Mar 2026 07:18:19 -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=GWc7deTed6FslVDeSMtOnj8mEKkRI8N4hkSJwyjAaJo=; b=jTon7/ruzPUF
 8NyC/cncFhwrATA5E6JJlYy7tZ848csreEe1tsvA4Gy9Hp2eJRx8rQ6ZgwO20d9dYo1NouimzSmhf
 Rc+IyKRb2wypwmXHiide2utYCs7N7f+xREFCUXAl3wEX7jxZ0L/hVQu42LhyShJRvLmfLtvVFoZYl
 uptnWJrJllFacGTcBLXB5Pd1OwS4ONbD2Gc3fCK9eZCsqkjT4U857quEHtEIFzS64a4hOhFOPJqKh
 jjsobUSMLdgNQeEqpUQR9HAfrN8FhVbir4vEcSCkMZKHYfLljIMFR5lRj+Cr3YFKJJ4DMEN3l/4aK
 TJ8+j05Lr2+gmeJprsmeww==;
Date: Thu, 19 Mar 2026 13:17:20 +0200
Message-Id: <86bjgkf4qn.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Manuel Giraud <manuel@HIDDEN>
In-Reply-To: <87eclgcdaj.fsf@HIDDEN> (message from Manuel Giraud on
 Thu, 19 Mar 2026 11:40:52 +0100)
Subject: Re: bug#80628: [PATCH] New face to display special glyphs
References: <87ikau9td0.fsf@HIDDEN> <86jyv9gq6o.fsf@HIDDEN>
 <87eclgcdaj.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 80628
Cc: 80628 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Manuel Giraud <manuel@HIDDEN>
> Cc: 80628 <at> debbugs.gnu.org
> Date: Thu, 19 Mar 2026 11:40:52 +0100
> 
> Eli Zaretskii <eliz@HIDDEN> writes:
> 
> >> From: Manuel Giraud <manuel@HIDDEN>
> >> Date: Tue, 17 Mar 2026 19:57:31 +0100
> >> 
> >> Here's a patch that defines a new face, special-glyphs, to display
> >> truncation and continuation characters.
> >
> > Hmm...  Why does this have to be in C? can't we do this in Lisp, by
> > modifying the glyphs in the display-table (e.g., in disp-table.el)?
> 
> I don't understand.  There is not that much C in this patch apart from
> the looking up of this new face in produce_special_glyphs.

Yes, but why does this face have to be forced upon users, when they
already can do that via display table, if they want, without changing
the C code at all?  The only problem with the current situation is
that manually customizing a display table is not very convenient,
which is why I suggested to have a minor mode to make it very simple
on the user level.

> We already have the not so trivial char-table dance for mirroring and it
> seems that you propose to add another layer on top of that with a
> display-table.

The display table already exists, and the code already follows it.
The mirroring you added changes the character to be shown, but it
reuses the face specified in the display table for the original glyph.
So there's no addition here that I could see, not on the C level.

> If so, I guess that we'll end up with a far less obvious code and
> much more C inside produce_special_glyphs, no?

No, see above.  All of the code is already in place.  When the display
engine needs to show a special glyph, it takes it from the display
table (if the corresponding slot there is populated), and it uses both
the character and the face encoded in the glyph it finds in the
display table to display that.  Am I missing something?

> > Also, why is this change unconditionally turned on?
> >
> > I would prefer instead a new minor mode which would modify the display
> > table to use the new face, and then users who want this could turn on
> > this new mode.
> 
> I don't see the point of guarding a face usage behind a user option.  Is
> this something we do?  I think that if this feature should be turned off
> by default I could define this face as inheriting from default only.

My main bother is that we will be offering two different ways of
customizing the face of the special glyphs: one, which already exists,
via the face of the display table's glyphs, and another via this new
face.  I don't understand why we need the new face given that a
possibility to specify a face for the special glyphs already exists.

> Could you explain this idea of a minor mode because I don't understand
> it?  This is just a face for displaying special glyphs and it will take
> place only when fringes are turned off.

The minor mode I had in mind would do this when turned on:

  . verify a display table exists, and if not, create one
  . optionally, make the display table buffer- or window-local
  . modify the special glyphs in the display table's extra slots to
    have this new face you want to add

We could also have a command to toggle this, instead of a full-fledged
minor mode, if that's what you prefer.  I'm okay with either
alternative.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#80628; Package emacs. Full text available.

Message received at 80628 <at> debbugs.gnu.org:


Received: (at 80628) by debbugs.gnu.org; 19 Mar 2026 10:41:04 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Mar 19 06:41:04 2026
Received: from localhost ([127.0.0.1]:43960 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1w3AoG-0006MF-Mj
	for submit <at> debbugs.gnu.org; Thu, 19 Mar 2026 06:41:03 -0400
Received: from ledu-giraud.fr ([51.159.28.247]:14086)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <manuel@HIDDEN>)
 id 1w3AoB-0006Kz-LR
 for 80628 <at> debbugs.gnu.org; Thu, 19 Mar 2026 06:40:58 -0400
DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=6BG2Ev3g
 b/WGucqsWn0JWHeaBvOJ+AZcKtqQFuVMoLk=;
 h=date:references:in-reply-to:
 subject:cc:to:from; d=ledu-giraud.fr; b=1EbStUdx9TnG0Ea68j7k0lih5jw571
 BiIGl1KUcQzt9ELj3pahhpyux/QC6ihzG3n5bgcocgV5i96JnO+T6DCg==
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=6BG2Ev3gb/WGucqs
 Wn0JWHeaBvOJ+AZcKtqQFuVMoLk=;
 h=date:references:in-reply-to:subject:
 cc:to:from; d=ledu-giraud.fr; b=ZdahSpJ6DGEIYeGoBYZHnVs7eqCdtTP8Q4cgDj
 ljgA7ZQ1QehjK/iQGbYGI3lVIS6JwYtevGhfW2/aJuOyI4cCMPauVheihN2KUOaup4MRBE
 LcwHk2pUhbBUeh87tXgU3DDfBT3RuiblfgVKcpiw9raSFwPBo0Oyq7TLABrh399Iwi211C
 8WbDyx9Sfu8elSFIgVpkE56nvr6rUM2LCGJhY4NuYZAFjS4s254tf11c9RbmIv58QPsrR1
 i9rqMosskjiYdGK3/Iue+vGRSqf9HAyr54wjhNVgK1Pj2UHwKAiV9DIvBWUUmUp7S2dudT
 yGCk3tz4Xa6/8BSwB9xgL8iQ==
Received: from computer (<unknown> [10.1.1.1])
 by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id 82206c32
 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); 
 Thu, 19 Mar 2026 11:40:53 +0100 (CET)
From: Manuel Giraud <manuel@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#80628: [PATCH] New face to display special glyphs
In-Reply-To: <86jyv9gq6o.fsf@HIDDEN>
References: <87ikau9td0.fsf@HIDDEN> <86jyv9gq6o.fsf@HIDDEN>
Date: Thu, 19 Mar 2026 11:40:52 +0100
Message-ID: <87eclgcdaj.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 1.7 (+)
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: Eli Zaretskii <eliz@HIDDEN> writes: >> From: Manuel Giraud
 <manuel@HIDDEN> >> Date: Tue, 17 Mar 2026 19:57:31 +0100 >> >> Here's
 a patch that defines a new face, special-glyphs, to display >> truncation
 and continuation characte [...] 
 Content analysis details:   (1.7 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -0.0 SPF_PASS               SPF: sender matches SPF record
 -0.0 SPF_HELO_PASS          SPF: HELO matches SPF record
 0.8 RCVD_IN_VALIDITY_RPBL_BLOCKED RBL: ADMINISTRATOR NOTICE: The
 query to Validity was blocked.  See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243
 for more information.
 [51.159.28.247 listed in bl.score.senderscore.com]
 0.9 RCVD_IN_VALIDITY_SAFE_BLOCKED RBL: ADMINISTRATOR NOTICE: The
 query to Validity was blocked.  See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243
 for more information.
 [51.159.28.247 listed in sa-accredit.habeas.com]
X-Debbugs-Envelope-To: 80628
Cc: 80628 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.7 (/)

Eli Zaretskii <eliz@HIDDEN> writes:

>> From: Manuel Giraud <manuel@HIDDEN>
>> Date: Tue, 17 Mar 2026 19:57:31 +0100
>> 
>> Here's a patch that defines a new face, special-glyphs, to display
>> truncation and continuation characters.
>
> Hmm...  Why does this have to be in C? can't we do this in Lisp, by
> modifying the glyphs in the display-table (e.g., in disp-table.el)?

I don't understand.  There is not that much C in this patch apart from
the looking up of this new face in produce_special_glyphs.

We already have the not so trivial char-table dance for mirroring and it
seems that you propose to add another layer on top of that with a
display-table.  If so, I guess that we'll end up with a far less obvious
code and much more C inside produce_special_glyphs, no?

> Also, why is this change unconditionally turned on?
>
> I would prefer instead a new minor mode which would modify the display
> table to use the new face, and then users who want this could turn on
> this new mode.

I don't see the point of guarding a face usage behind a user option.  Is
this something we do?  I think that if this feature should be turned off
by default I could define this face as inheriting from default only.

> Btw, I'm pretty sure that any face used by the default display must be
> a basic face, so an implementation on the C level that makes this
> turned on by default will need additional changes to add this face to
> the basic faces (see realize_basic_faces).

Ok, I think I should do this then.

> So one more advantage of doing this as a minor mode is that we don't
> have to add one more basic face.

Could you explain this idea of a minor mode because I don't understand
it?  This is just a face for displaying special glyphs and it will take
place only when fringes are turned off.
-- 
Manuel Giraud




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#80628; Package emacs. Full text available.

Message received at 80628 <at> debbugs.gnu.org:


Received: (at 80628) by debbugs.gnu.org; 18 Mar 2026 14:37:28 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 18 10:37:28 2026
Received: from localhost ([127.0.0.1]:60829 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1w2s1Y-00028u-18
	for submit <at> debbugs.gnu.org; Wed, 18 Mar 2026 10:37:28 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:43404)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1w2s1V-000285-JU
 for 80628 <at> debbugs.gnu.org; Wed, 18 Mar 2026 10:37:26 -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 <eliz@HIDDEN>)
 id 1w2s1P-00012A-HV; Wed, 18 Mar 2026 10:37:20 -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=Fgpu5b/1yX+asYUPMzjpqbCuCoRHhaPCvRh2dfVLURY=; b=Z72D2yAKKim2
 vlcSX/u8HkELCCWOe3+pZxOW3UlPEytqSJP/ZbgcIegKJqDONgZKwBRorTS7TsOZCmJLBg7ghloHK
 sMzGgZhJrbyiRMQ0PXfEGAFRMTUWAVr6u3WtwzOY8wgQUT7vxcWuls28jJlWkVrL6uS3hVtjCFH1t
 /rHqdE+jOkKWd74nwFTiAPIAX+TUy/2g3Gn0CvIhs1kUNpvJMcmonqZIHMdIaXaLFxrjn0Q0jABEe
 uhHhE/HsCW3iQDfAYAy26C50tO4UkgiCxcVTT9s83KE6FzrVOyB+ohjtDYtJ64MIK9Xchn56Lpeom
 TaFmxPArJxB5XjWVSgP4oA==;
Date: Wed, 18 Mar 2026 16:36:31 +0200
Message-Id: <86jyv9gq6o.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Manuel Giraud <manuel@HIDDEN>
In-Reply-To: <87ikau9td0.fsf@HIDDEN> (message from Manuel Giraud on
 Tue, 17 Mar 2026 19:57:31 +0100)
Subject: Re: bug#80628: [PATCH] New face to display special glyphs
References: <87ikau9td0.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 80628
Cc: 80628 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Manuel Giraud <manuel@HIDDEN>
> Date: Tue, 17 Mar 2026 19:57:31 +0100
> 
> Here's a patch that defines a new face, special-glyphs, to display
> truncation and continuation characters.

Hmm...  Why does this have to be in C? can't we do this in Lisp, by
modifying the glyphs in the display-table (e.g., in disp-table.el)?

Also, why is this change unconditionally turned on?

I would prefer instead a new minor mode which would modify the display
table to use the new face, and then users who want this could turn on
this new mode.

Btw, I'm pretty sure that any face used by the default display must be
a basic face, so an implementation on the C level that makes this
turned on by default will need additional changes to add this face to
the basic faces (see realize_basic_faces).  So one more advantage of
doing this as a minor mode is that we don't have to add one more basic
face.

Thanks.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#80628; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 17 Mar 2026 18:57:56 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Mar 17 14:57:56 2026
Received: from localhost ([127.0.0.1]:50759 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1w2Zc2-0001m2-5M
	for submit <at> debbugs.gnu.org; Tue, 17 Mar 2026 14:57:55 -0400
Received: from lists.gnu.org ([2001:470:142::17]:42738)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <manuel@HIDDEN>)
 id 1w2Zby-0001kw-3a
 for submit <at> debbugs.gnu.org; Tue, 17 Mar 2026 14:57: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 <manuel@HIDDEN>)
 id 1w2Zbp-0004JR-As
 for bug-gnu-emacs@HIDDEN; Tue, 17 Mar 2026 14:57:41 -0400
Received: from ledu-giraud.fr ([51.159.28.247])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <manuel@HIDDEN>)
 id 1w2Zbm-0004yd-1N
 for bug-gnu-emacs@HIDDEN; Tue, 17 Mar 2026 14:57:41 -0400
DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=zHA7uDxu
 qRz9JHxDmtL+Ylxwy055ElojfXc/zAgPsLk=; h=date:subject:to:from; 
 d=ledu-giraud.fr;
 b=mYtDCUmoQF+QW/TyzPu4yDD4VNtn83ahdovqr4VLJhWR5DOOQD
 GC71yBt80HlWP/Y/I3O6ovT1Ukx8DTD3S6DA==
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=zHA7uDxuqRz9JHxD
 mtL+Ylxwy055ElojfXc/zAgPsLk=; h=date:subject:to:from;
 d=ledu-giraud.fr; b=BAY/STDLpRTcaENL15+VyYP1ZXKDyvSM9VE6bcm6ozBkqknWE6
 raTApgZQ4PWNiNJ9qTVh7F98DxE+U+y1WPy1EggpbqraC0ZmQHaCDIRgJaP0TfLsCP92U1
 O8liV9ZJRRrt+Y6BCzekJfibCbugcQI4d4WMBZel9HpQVKJRHgZkLGXZiYy+V8u/OYh8+3
 Rcxs83Z1/rXms3vtbkG+7CRTF5DA4HFL391HxaFmULctlIVlwm+/TYQACBdge2qaHOERf3
 j63ooinDsNgcBwSCyoriNs6Ecy1x/sXmvblX1Wc5RJv61Lh26+7mXQZgHV/NPCU2iUFOje
 wuBS/lC8mCNw==
Received: from computer (<unknown> [10.1.1.1])
 by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id f2d5b402
 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO) for <bug-gnu-emacs@HIDDEN>;
 Tue, 17 Mar 2026 19:57:32 +0100 (CET)
From: Manuel Giraud <manuel@HIDDEN>
To: bug-gnu-emacs@HIDDEN
Subject: [PATCH] New face to display special glyphs
X-Debbugs-Cc: 
Date: Tue, 17 Mar 2026 19:57:31 +0100
Message-ID: <87ikau9td0.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
Received-SPF: pass client-ip=51.159.28.247; envelope-from=manuel@HIDDEN;
 helo=ledu-giraud.fr
X-Spam_score_int: -3
X-Spam_score: -0.4
X-Spam_bar: /
X-Spam_report: (-0.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
 RCVD_IN_VALIDITY_RPBL_BLOCKED=0.819, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.903,
 SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 0.9 (/)
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.1 (/)

--=-=-=
Content-Type: text/plain

Tags: patch

Hi,

Here's a patch that defines a new face, special-glyphs, to display
truncation and continuation characters.



In GNU Emacs 31.0.50 (build 8, x86_64-unknown-openbsd7.9) of 2026-03-17
 built on computer
Repository revision: da4d39a301a7eb29166cdbc97ea70353b7e38bf3
Repository branch: mgi/special-glyphs-face
Windowing system distributor 'The X.Org Foundation', version 11.0.12101021
System Description: OpenBSD computer 7.9 GENERIC.MP#311 amd64

Configured using:
 'configure CC=egcc CPPFLAGS=-I/usr/local/include
 LDFLAGS=-L/usr/local/lib MAKEINFO=gmakeinfo --prefix=/home/manuel/emacs
 --bindir=/home/manuel/bin --with-x-toolkit=no
 --with-toolkit-scroll-bars=no --without-cairo
 --without-compress-install'


--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment;
 filename=0001-New-face-to-display-special-glyphs.patch

From da4d39a301a7eb29166cdbc97ea70353b7e38bf3 Mon Sep 17 00:00:00 2001
From: Manuel Giraud <manuel@HIDDEN>
Date: Tue, 17 Mar 2026 19:27:28 +0100
Subject: [PATCH] New face to display special glyphs

* lisp/faces.el (special-glyphs): Define the new face.
* src/xdisp.c (produce_special_glyphs): Use it.
(syms_of_xdisp): Declare the new symbol.
* etc/NEWS: Announce the change.
---
 etc/NEWS      | 5 +++++
 lisp/faces.el | 6 ++++++
 src/xdisp.c   | 9 +++++----
 3 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/etc/NEWS b/etc/NEWS
index 8f71e6d2abb..6f4039e3cd8 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -147,6 +147,11 @@ This char-table is used to mirror special glyphs (truncation and
 continuation) when the user has defined an alternative representation
 for those characters via display tables.
 
+---
+** New face 'special-glyphs' for displaying special glyphs.
+Without fringes, this face is used to display the truncation and
+continuation characters.
+
 ---
 ** find-func.el commands now have history enabled.
 The 'find-function', 'find-library', 'find-face-definition', and
diff --git a/lisp/faces.el b/lisp/faces.el
index fbc81af1b51..da2fd58f4d5 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -2672,6 +2672,12 @@ fill-column-indicator
   :group 'basic-faces
   :group 'display-fill-column-indicator)
 
+(defface special-glyphs
+  '((t :inherit (shadow default)))
+  "Face for displaying special glyphs."
+  :version "31.1"
+  :group 'basic-faces)
+
 (defface escape-glyph
   '((((background dark)) :foreground "cyan")
     ;; See the comment in minibuffer-prompt for
diff --git a/src/xdisp.c b/src/xdisp.c
index 8af54ad49f1..31e335f5137 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -32825,8 +32825,7 @@ produce_special_glyphs (struct it *it, enum display_element_type what,
   Lisp_Object gc, val;
   GLYPH glyph;
   /* Take face-remapping into consideration.  */
-  int face_id = lookup_basic_face (it->w, it->f, DEFAULT_FACE_ID);
-
+  int face_id = merge_faces (it->w, Qspecial_glyphs, 0, DEFAULT_FACE_ID);
   temp_it = *it;
   temp_it.object = Qnil;
   memset (&temp_it.current, 0, sizeof temp_it.current);
@@ -32882,7 +32881,6 @@ produce_special_glyphs (struct it *it, enum display_element_type what,
 	  if (FRAME_WINDOW_P (it->f))
 	    {
 	      int c = GLYPH_CHAR (glyph);
-	      face_id = GLYPH_FACE (glyph);
 	      /* Find or create the face ID for displaying the
 		 character.  */
 	      int new_id = FACE_FOR_CHAR (it->f, FACE_FROM_ID (it->f, face_id),
@@ -32948,7 +32946,6 @@ produce_special_glyphs (struct it *it, enum display_element_type what,
 	  if (FRAME_WINDOW_P (it->f))
 	    {
 	      int c = GLYPH_CHAR (glyph);
-	      face_id = GLYPH_FACE (glyph);
 	      /* Find or create the face ID for displaying the
 		 character.  */
 	      int new_id = FACE_FOR_CHAR (it->f, FACE_FROM_ID (it->f, face_id),
@@ -38133,6 +38130,10 @@ syms_of_xdisp (void)
   /* Name of the face used to display fill column indicator character.  */
   DEFSYM (Qfill_column_indicator, "fill-column-indicator");
 
+  /* Name of the face used to display special truncation and
+     continuation glyphs.  */
+  DEFSYM (Qspecial_glyphs, "special-glyphs");
+
   /* Name and number of the face used to highlight escape glyphs.  */
   DEFSYM (Qescape_glyph, "escape-glyph");
 
-- 
2.53.0


--=-=-=
Content-Type: text/plain


-- 
Manuel Giraud

--=-=-=--




Acknowledgement sent to Manuel Giraud <manuel@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#80628; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Thu, 19 Mar 2026 17:00:02 UTC

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