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--
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
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.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.