GNU logs - #22915, boring messages


Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#22915: foreground-color-at-point doesn't return the foreground color at point (when overlays are present)
Resent-From: =?UTF-8?Q?Cl=C3=A9ment?= Pit--Claudel <clement.pitclaudel@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sat, 05 Mar 2016 06:11:02 +0000
Resent-Message-ID: <handler.22915.B.145715825326423 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 22915
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: 22915 <at> debbugs.gnu.org
X-Debbugs-Original-To: bug-gnu-emacs@HIDDEN
Received: via spool by submit <at> debbugs.gnu.org id=B.145715825326423
          (code B ref -1); Sat, 05 Mar 2016 06:11:02 +0000
Received: (at submit) by debbugs.gnu.org; 5 Mar 2016 06:10:53 +0000
Received: from localhost ([127.0.0.1]:34241 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ac5QS-0006s6-TA
	for submit <at> debbugs.gnu.org; Sat, 05 Mar 2016 01:10:53 -0500
Received: from eggs.gnu.org ([208.118.235.92]:60959)
 by debbugs.gnu.org with esmtp (Exim 4.84)
 (envelope-from <clement.pitclaudel@HIDDEN>) id 1ac5QR-0006ru-8l
 for submit <at> debbugs.gnu.org; Sat, 05 Mar 2016 01:10:51 -0500
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <clement.pitclaudel@HIDDEN>) id 1ac5QL-0002up-Bm
 for submit <at> debbugs.gnu.org; Sat, 05 Mar 2016 01:10:46 -0500
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM
 autolearn=disabled version=3.3.2
Received: from lists.gnu.org ([2001:4830:134:3::11]:38540)
 by eggs.gnu.org with esmtp (Exim 4.71)
 (envelope-from <clement.pitclaudel@HIDDEN>) id 1ac5QL-0002uj-8N
 for submit <at> debbugs.gnu.org; Sat, 05 Mar 2016 01:10:45 -0500
Received: from eggs.gnu.org ([2001:4830:134:3::10]:51926)
 by lists.gnu.org with esmtp (Exim 4.71)
 (envelope-from <clement.pitclaudel@HIDDEN>) id 1ac5QK-0004DR-A7
 for bug-gnu-emacs@HIDDEN; Sat, 05 Mar 2016 01:10:45 -0500
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <clement.pitclaudel@HIDDEN>) id 1ac5QH-0002u7-50
 for bug-gnu-emacs@HIDDEN; Sat, 05 Mar 2016 01:10:44 -0500
Received: from mout.kundenserver.de ([212.227.126.135]:60370)
 by eggs.gnu.org with esmtp (Exim 4.71)
 (envelope-from <clement.pitclaudel@HIDDEN>) id 1ac5QG-0002u1-Mb
 for bug-gnu-emacs@HIDDEN; Sat, 05 Mar 2016 01:10:41 -0500
Received: from [18.189.68.195] ([18.189.68.195]) by mrelayeu.kundenserver.de
 (mreue005) with ESMTPSA (Nemesis) id 0MSmwb-1aUZ2228UH-00RtQH for
 <bug-gnu-emacs@HIDDEN>; Sat, 05 Mar 2016 07:10:39 +0100
From: =?UTF-8?Q?Cl=C3=A9ment?= Pit--Claudel <clement.pitclaudel@HIDDEN>
Message-ID: <56DA785D.8080202@HIDDEN>
Date: Sat, 5 Mar 2016 01:10:37 -0500
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101
 Thunderbird/38.5.1
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha1;
 protocol="application/pgp-signature";
 boundary="lqnbr8eGJkxsxCaktRGx4snVu3wOX4oSv"
X-Provags-ID: V03:K0:tmOGQQYwRuTXtUXaWulOxWigRD/zv/Cz3eF2jSiftRO+htbC+dT
 jkSwNCKeggyCI96Tq/ADxHvXZXlHipCWGT2sEdMmyulT7nWbd/aT0ABm5XiLdTp+/yEalO4
 2DPCmGJn0XvQpHEGsuKmI7poUs41+ywq7kswHnZDJy/iMEnm3dv81s26Jx7xS8E86baxX5z
 H11YlmN7ZquhpciJYP37A==
X-UI-Out-Filterresults: notjunk:1;V01:K0:vfuG3g2bc+8=:sN+j+mT6D3LD74+t2wIsam
 OrCVLXi4XG8HyJDiDpuBD7HZJDZlxgaN0T7pMU4MYrw7B2Jkx9x+bh/t/6M0ZtrNqSSzzQN3x
 KAL+VdBP+ZyRaZfTzfcdk5i/ScsUjPG/+4Ser91uWNK7A372W7MYs22UGa5Wtq8Y0+el8DpVL
 9opIYzQ9LAzLErAE4JmPs5roGD2tdsiSbNJGjv3Avs+pzuE2C3xvoyuUSlUP4bF9dHf13TEla
 VNNGv7QdwDeubnF0UapunGcwVTS3yDEyjONRAOlhsKG0l/Ly6hduz7mIK6zhj5xgwAYO54RbS
 A5RdAWLpw+9xu+H86lEdoysQt8/UE6t3NBdCsNy+jtfCzhsuygvgNWuKf/kXxE5WS2zRG7FXi
 mNMqcQCG1/Thu8PIXXbrFoaW+wyBvFRUMmavZFFeqi7H121XIEvHlACHItrzFO54T1j2zr9+8
 eHCUv4YM2OVckf4r74pKNMIdAdF5Jzzf4EBRmvs+jYL2Jvgzdb+hpdu7CTl6rUp9DCvqiuZV1
 Q8F8AG/1GQdozWTqfMsGGgsVbMTxkk5MUyu7Br0vf1PfiIKdn2OaoBruLJPurz7EIvDc03bHZ
 WbJvvYro9iI64oV97bi2nJ4kC+PpReHXAd914BQUkAZsN/UnccNTsK6WzDOgg/NP/DKJuF8wt
 B4Thp1BG4rITO4ftDePj0k9k+ZQXtb84zqT5OCQic4sfga349O5Si1tbyT8/rLyv5O9s=
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x
X-Received-From: 2001:4830:134:3::11
X-Spam-Score: -4.0 (----)
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: -4.0 (----)

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--lqnbr8eGJkxsxCaktRGx4snVu3wOX4oSv
Content-Type: multipart/mixed; boundary="t8nPWdeU3cVAcHj7VSgFjeQjEh3m8qFHR"
From: =?UTF-8?Q?Cl=c3=a9ment_Pit--Claudel?= <clement.pitclaudel@HIDDEN>
To: bug-gnu-emacs@HIDDEN
Message-ID: <56DA785D.8080202@HIDDEN>
Subject: foreground-color-at-point doesn't return the foreground color at
 point (when overlays are present)

--t8nPWdeU3cVAcHj7VSgFjeQjEh3m8qFHR
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Reproduction with emacs -Q:

(with-current-buffer (get-buffer-create "*broken*")
  (require 'cl-lib)
  (erase-buffer)
  (delete-all-overlays)
  (fundamental-mode)
  (insert "AAAAA")
  (goto-char (point-min))

  ;; Add two faces
  (set-text-properties (point-min) (point-max) '(face font-lock-type-face=
))
  (let ((ov (make-overlay (point-min) (point-max))))
    (overlay-put ov 'face 'font-lock-negation-char-face))

  ;; This passes, proving that font-lock-negation-char-face is not contri=
buting to the
  ;; foreground color
  (cl-assert (eq (face-attribute 'font-lock-negation-char-face :foregroun=
d)
                 'unspecified))

  ;; This fails: foreground-color-at-point reads the face of the overlay,=
 sees that it's undefined,=20
  ;; and ignores the 'face text property=20
  (cl-assert (eq (foreground-color-at-point)
                 (face-attribute 'font-lock-type-face :foreground)))

  (pop-to-buffer (current-buffer)))

Let me know if I can provide more info.
Cl=C3=A9ment.


--t8nPWdeU3cVAcHj7VSgFjeQjEh3m8qFHR--

--lqnbr8eGJkxsxCaktRGx4snVu3wOX4oSv
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)

iQIcBAEBAgAGBQJW2nhdAAoJEPqg+cTm90wjeIwP/1YtkYiv+byjwmLI/pq9fLT1
rMm9wqZU06SCWR2OFJ3KJZT462AJAd1vKyyeu17nQV1C3v7fbPQxoDM/qYwEQRK6
uC+W3pcl4PXUwe7Ymjh9l9uA2K7s6G6Ezvouq0IcctUkHBJvZIIbBekcMDwUiHXS
VrTOZmhjmouTIH75wRpljjawQCtU+QlUEgNdwy/E5KGDLXTDEfiQ+KaVXDM/gqgc
Vw1HQGUtgG3vO5cpXd2ULZmcgcgljfKbdE9XEJVNfUHgS7luPj6Lvcdg8dhpUHLJ
/SYUGiYOalE5AGut17g7bCUuEv6cpvA5YtT3yIjj1w6ZWI2C95MO31Yx0pFAYiS9
sbWVZQP44IxXs13V8j6W1GACXf3xvvAQX0NPIKlNFA39e31UtaI5XBXMZohJ8XIR
jL9oi+hK3t4HqVjAOo4MDmjS0WGPXdjlzy+ZqeBnORk8yYipdOFKUTbLoWolh2uW
andsTmRdVw0kOBtnf7b/Y9l0mzueunJckKcbFzKWU1S6L9zREE1XeHFPdrsIIteM
BXSIhWTf+hoy7eMgEiF+r06iQVRGfVesO7furOxQCf2ylcnrXGTTCKie9E0rujor
dy7MLGM6Jr7HdSf4pk7xDURYQckHk0mbDE8TIfus7pQoDXyL59/RQE7d7J24G+WG
VxLT1VC6O3pN5b0d3+jm
=l0+e
-----END PGP SIGNATURE-----

--lqnbr8eGJkxsxCaktRGx4snVu3wOX4oSv--




Message sent:


Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Mailer: MIME-tools 5.505 (Entity 5.505)
Content-Type: text/plain; charset=utf-8
X-Loop: help-debbugs@HIDDEN
From: help-debbugs@HIDDEN (GNU bug Tracking System)
To: =?UTF-8?Q?Cl=C3=A9ment?= Pit--Claudel <clement.pitclaudel@HIDDEN>
Subject: bug#22915: Acknowledgement (foreground-color-at-point doesn't
 return the foreground color at point (when overlays are present))
Message-ID: <handler.22915.B.145715825326423.ack <at> debbugs.gnu.org>
References: <56DA785D.8080202@HIDDEN>
X-Gnu-PR-Message: ack 22915
X-Gnu-PR-Package: emacs
Reply-To: 22915 <at> debbugs.gnu.org
Date: Sat, 05 Mar 2016 06:11:02 +0000

Thank you for filing a new bug report with debbugs.gnu.org.

This is an automatically generated reply to let you know your message
has been received.

Your message is being forwarded to the package maintainers and other
interested parties for their attention; they will reply in due course.

Your message has been sent to the package maintainer(s):
 bug-gnu-emacs@HIDDEN

If you wish to submit further information on this problem, please
send it to 22915 <at> debbugs.gnu.org.

Please do not send mail to help-debbugs@HIDDEN unless you wish
to report a problem with the Bug-tracking system.

--=20
22915: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D22915
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems


Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#22915: foreground-color-at-point doesn't return the foreground color at point (when overlays are present)
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sat, 05 Mar 2016 08:17:01 +0000
Resent-Message-ID: <handler.22915.B22915.14571657705093 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 22915
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: =?UTF-8?Q?Cl=C3=A9ment?= Pit--Claudel <clement.pitclaudel@HIDDEN>
Cc: 22915 <at> debbugs.gnu.org
Reply-To: Eli Zaretskii <eliz@HIDDEN>
Received: via spool by 22915-submit <at> debbugs.gnu.org id=B22915.14571657705093
          (code B ref 22915); Sat, 05 Mar 2016 08:17:01 +0000
Received: (at 22915) by debbugs.gnu.org; 5 Mar 2016 08:16:10 +0000
Received: from localhost ([127.0.0.1]:34253 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ac7Ni-0001K5-0O
	for submit <at> debbugs.gnu.org; Sat, 05 Mar 2016 03:16:10 -0500
Received: from eggs.gnu.org ([208.118.235.92]:52151)
 by debbugs.gnu.org with esmtp (Exim 4.84)
 (envelope-from <eliz@HIDDEN>) id 1ac7Nf-0001Jk-VT
 for 22915 <at> debbugs.gnu.org; Sat, 05 Mar 2016 03:16:08 -0500
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <eliz@HIDDEN>) id 1ac7NX-0003Gt-GJ
 for 22915 <at> debbugs.gnu.org; Sat, 05 Mar 2016 03:16:02 -0500
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD
 autolearn=disabled version=3.3.2
Received: from fencepost.gnu.org ([2001:4830:134:3::e]:52073)
 by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@HIDDEN>)
 id 1ac7NX-0003Go-CL; Sat, 05 Mar 2016 03:15:59 -0500
Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:4633
 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1ac7NW-0004QI-K4; Sat, 05 Mar 2016 03:15:59 -0500
Date: Sat, 05 Mar 2016 10:15:58 +0200
Message-Id: <83lh5xxrup.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-reply-to: <56DA785D.8080202@HIDDEN> (message from =?UTF-8?Q?Cl=C3=A9ment?= Pit--Claudel on Sat, 5 Mar 2016 01:10:37 -0500)
References: <56DA785D.8080202@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
X-Received-From: 2001:4830:134:3::e
X-Spam-Score: -5.0 (-----)
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: -5.0 (-----)

> From: Clément Pit--Claudel <clement.pitclaudel@HIDDEN>
> Date: Sat, 5 Mar 2016 01:10:37 -0500
> 
> (with-current-buffer (get-buffer-create "*broken*")
>   (require 'cl-lib)
>   (erase-buffer)
>   (delete-all-overlays)
>   (fundamental-mode)
>   (insert "AAAAA")
>   (goto-char (point-min))
> 
>   ;; Add two faces
>   (set-text-properties (point-min) (point-max) '(face font-lock-type-face))
>   (let ((ov (make-overlay (point-min) (point-max))))
>     (overlay-put ov 'face 'font-lock-negation-char-face))
> 
>   ;; This passes, proving that font-lock-negation-char-face is not contributing to the
>   ;; foreground color
>   (cl-assert (eq (face-attribute 'font-lock-negation-char-face :foreground)
>                  'unspecified))
> 
>   ;; This fails: foreground-color-at-point reads the face of the overlay, sees that it's undefined, 
>   ;; and ignores the 'face text property
>   (cl-assert (eq (foreground-color-at-point)
>                  (face-attribute 'font-lock-type-face :foreground)))
> 
>   (pop-to-buffer (current-buffer)))

You are creating a situation where the actual color of the character
is the result of face merging as part of redisplay.  I don't think
there's currently any way of accessing the results of face merging
from Lisp.

By contrast, foreground-color-at-point simply returns the color
specified by the highest-priority overlay/text property at point; in
this case that color is unspecified, so it defaults to the default
face's foreground color.

If I'm right, you expect too much from foreground-color-at-point, or
from any Lisp implementation of this functionality in general.

AFAICT, if we want this kind of functionality supported from Lisp, we
will need first to implement a primitive that would accept a list of
faces and return the fully realized face spec produced by merging
those faces.  Then a Lisp implementation of foreground-color-at-point
could be changed to collect all the relevant text/overlay properties
at point and pass them to that primitive.

Alternatively, an entirely-C implementation, exposed to Lisp as a
primitive, could simulate display of the character at point and return
the resulting color.

If there are other ideas, I'm all ears.  If not, I think this is a
fine subject for a small project, patches are welcome.





Last modified: Mon, 25 Nov 2019 12:00:02 UTC

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