GNU bug report logs - #41544
26.3; Possible incorrect results from color-distance

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: Simon Pugnet <simon@HIDDEN>; Keywords: patch; dated Tue, 26 May 2020 16:34:01 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.

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


Received: (at 41544) by debbugs.gnu.org; 21 Aug 2020 11:32:22 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Aug 21 07:32:22 2020
Received: from localhost ([127.0.0.1]:45161 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1k95HR-0005BA-I5
	for submit <at> debbugs.gnu.org; Fri, 21 Aug 2020 07:32:21 -0400
Received: from mail205c50.megamailservers.eu ([91.136.10.215]:42244
 helo=mail193c50.megamailservers.eu)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mattiase@HIDDEN>) id 1k95HP-00058a-PM
 for 41544 <at> debbugs.gnu.org; Fri, 21 Aug 2020 07:32:20 -0400
X-Authenticated-User: mattiase@HIDDEN
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu;
 s=maildub; t=1598009537;
 bh=Swbe7d+7ctMmBqjLyE26S1n5bF84A2mSLYTRPHcqtMw=;
 h=From:Subject:Date:In-Reply-To:Cc:To:References:From;
 b=jdZM/KWIK5DuGOLjGpti5QzoU0BLCPf+Ow6RX1aHC1Mg+8oiUx40FyUXVw+gUyScn
 Ie1pgkrkNSxLYkT6iPT5kzgM4/YKojB7Ptecl1b/hJmpduQr0+3Na+/8CGUWS3FMVK
 0BYljgRrHR4Xkqz/muKiL0fqNk/3abXFn2+l1Zck=
Feedback-ID: mattiase@HIDDEN
Received: from [192.168.0.4] (c188-150-171-71.bredband.comhem.se
 [188.150.171.71]) (authenticated bits=0)
 by mail193c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 07LBWFuE011994; 
 Fri, 21 Aug 2020 11:32:16 +0000
From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>
Message-Id: <DA1854A8-BD74-4C83-A9AA-4E5B231A320E@HIDDEN>
Content-Type: multipart/mixed;
 boundary="Apple-Mail=_277FAD2E-6E8F-4BDC-B57C-7B32ADD3A2E0"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.15\))
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
Date: Fri, 21 Aug 2020 13:32:14 +0200
In-Reply-To: <87tuwxwjkr.fsf@HIDDEN>
To: Lars Ingebrigtsen <larsi@HIDDEN>
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN> <83r1us8kw6.fsf@HIDDEN>
 <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN> <83img48ffx.fsf@HIDDEN>
 <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN> <83bllw82xt.fsf@HIDDEN>
 <1B0F31C8-1E11-4527-A053-DD2DE8235F58@HIDDEN> <83wo4g5hz6.fsf@HIDDEN>
 <49B7D7B5-D9E3-4E97-A749-CF5E8D8EE2C6@HIDDEN> <83mu5b5573.fsf@HIDDEN>
 <A829B1D4-5072-469D-A689-D448BA21176C@HIDDEN> <83lfku69q2.fsf@HIDDEN>
 <87eeo4m5kd.fsf@HIDDEN> <83d03of3pf.fsf@HIDDEN> <87blj8kpsr.fsf@HIDDEN>
 <838secf1mq.fsf@HIDDEN> <87zh6r7xlf.fsf@HIDDEN> <837dtuelhr.fsf@HIDDEN>
 <87sgciznhy.fsf@HIDDEN> <83sgcid0ap.fsf@HIDDEN> <87tuwxwjkr.fsf@HIDDEN>
X-Mailer: Apple Mail (2.3445.104.15)
X-CTCH-RefID: str=0001.0A782F25.5F3FB0C1.00A0, ss=1, re=0.000, recu=0.000,
 reip=0.000, cl=1, cld=1, fgs=0
X-CTCH-VOD: Unknown
X-CTCH-Spam: Unknown
X-CTCH-Score: 0.000
X-CTCH-Rules: 
X-CTCH-Flags: 0
X-CTCH-ScoreCust: 0.000
X-CSC: 0
X-CHA: v=2.3 cv=cM2eTWWN c=1 sm=1 tr=0 a=SF+I6pRkHZhrawxbOkkvaA==:117
 a=SF+I6pRkHZhrawxbOkkvaA==:17 a=M51BFTxLslgA:10 a=OocQHUDgAAAA:8
 a=_ChZKkyvCguCiKtrDYIA:9 a=CjuIK1q_8ugA:10 a=UmfJOHRxoQaBqsDoL6wA:9
 a=De_Ol2h6w80A:10 a=xUZTl98r3Qw_uB5NK3jt:22
X-Origin-Country: SE
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 41544
Cc: Eli Zaretskii <eliz@HIDDEN>, 41544 <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.0 (/)


--Apple-Mail=_277FAD2E-6E8F-4BDC-B57C-7B32ADD3A2E0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

20 aug. 2020 kl. 15.08 skrev Lars Ingebrigtsen <larsi@HIDDEN>:

> Mattias?

I don't want to revive this discussion and consider the matter settled, =
but since you asked:

Suppose we add standard-colour-darkness-predicate, say, with =
color-dark-p being the default and (r+b+g)/3<0.6 the 'traditional' =
option (or the default, if you prefer). How would the effects of that =
choice be explained to the user?

A difference is only visible when:

1. a face sensitive to the background mode is used (many standard faces =
are), and
2. a background colour used that is judged differently by the available =
predicates

Most reasonable backgrounds are either too light or too dark to pass the =
latter criterion, but people's idea of what is reasonable varies. For =
instance, black-on-green text is somewhat readable, but

  emacs -bg green -fg black

will give mostly bad default faces (for instance, the minibuffer prompt =
is almost invisible). With color-dark-p it becomes workable (attached =
diff).

Whether this is reason enough to add a defcustom is something I won't =
comment on. I doubt anyone will change it, whatever the default would =
be.


--Apple-Mail=_277FAD2E-6E8F-4BDC-B57C-7B32ADD3A2E0
Content-Disposition: attachment;
	filename=dark.diff
Content-Type: application/octet-stream;
	x-unix-mode=0644;
	name="dark.diff"
Content-Transfer-Encoding: 7bit

diff --git a/lisp/frame.el b/lisp/frame.el
index 081d3010e9..75e7f74209 100644
--- a/lisp/frame.el
+++ b/lisp/frame.el
@@ -1198,13 +1198,10 @@ frame-set-background-mode
 		   non-default-bg-mode)
 		  ((not (color-values bg-color frame))
 		   default-bg-mode)
-		  ((>= (apply '+ (color-values bg-color frame))
-		       ;; Just looking at the screen, colors whose
-		       ;; values add up to .6 of the white total
-		       ;; still look dark to me.
-		       (* (apply '+ (color-values "white" frame)) .6))
-		   'light)
-		  (t 'dark)))
+		  ((color-dark-p (mapcar (lambda (c) (/ c 65535.0))
+                                         (color-values bg-color frame)))
+                   'dark)
+		  (t 'light)))
 	   (display-type
 	    (cond ((null (window-system frame))
 		   (if (tty-display-color-p frame) 'color 'mono))
diff --git a/lisp/term/rxvt.el b/lisp/term/rxvt.el
index 31e3d6ede4..793512105a 100644
--- a/lisp/term/rxvt.el
+++ b/lisp/term/rxvt.el
@@ -208,10 +208,7 @@ rxvt-set-background-mode
       (setq rgb (car (cddr (nth bg rxvt-standard-colors))))
       ;; See the commentary in frame-set-background-mode about the
       ;; computation below.
-      (if (< (apply '+ rgb)
-	     ;; The following line assumes that white is the 15th
-	     ;; color in rxvt-standard-colors.
-	     (* (apply '+ (car (cddr (nth 15 rxvt-standard-colors)))) 0.6))
+      (if (color-dark-p (mapcar (lambda (c) (/ c 255.0)) rgb))
 	  (set-terminal-parameter nil 'background-mode 'dark)))))
 
 (provide 'term/rxvt)
diff --git a/lisp/term/w32console.el b/lisp/term/w32console.el
index 36e9d896c7..66680af44b 100644
--- a/lisp/term/w32console.el
+++ b/lisp/term/w32console.el
@@ -86,7 +86,7 @@ terminal-init-w32console
     (setq r (nth 2 descr)
 	  g (nth 3 descr)
 	  b (nth 4 descr))
-    (if (< (+ r g b) (* .6 (+ 65535 65535 65535)))
+    (if (color-dark-p (mapcar (lambda (c) (/ c 65535.0)) (list r g b)))
 	(setq bg-mode 'dark)
       (setq bg-mode 'light))
     (set-terminal-parameter nil 'background-mode bg-mode))
diff --git a/lisp/term/xterm.el b/lisp/term/xterm.el
index 1a727e3933..d71297d811 100644
--- a/lisp/term/xterm.el
+++ b/lisp/term/xterm.el
@@ -1122,7 +1122,8 @@ xterm-register-default-colors
 (defun xterm-maybe-set-dark-background-mode (redc greenc bluec)
   ;; Use the heuristic in `frame-set-background-mode' to decide if a
   ;; frame is dark.
-  (when (< (+ redc greenc bluec) (* .6 (+ 65535 65535 65535)))
+  (when (color-dark-p (mapcar (lambda (c) (/ c 65535.0))
+                              (list redc greenc bluec)))
     (set-terminal-parameter nil 'background-mode 'dark)
     t))
 

--Apple-Mail=_277FAD2E-6E8F-4BDC-B57C-7B32ADD3A2E0--




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

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


Received: (at 41544) by debbugs.gnu.org; 20 Aug 2020 13:09:04 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Aug 20 09:09:04 2020
Received: from localhost ([127.0.0.1]:41918 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1k8kJU-00042X-8f
	for submit <at> debbugs.gnu.org; Thu, 20 Aug 2020 09:09:04 -0400
Received: from quimby.gnus.org ([95.216.78.240]:57090)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <larsi@HIDDEN>) id 1k8kJS-000424-O5
 for 41544 <at> debbugs.gnu.org; Thu, 20 Aug 2020 09:09:03 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org;
 s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date:
 References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding:
 Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:
 Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:
 List-Subscribe:List-Post:List-Owner:List-Archive;
 bh=RgB2vYzkbsI3l2RHctZ+CApjPJl7Eq7gai6kYmJjWMg=; b=j9sV6rA3OAcamJe9DMe8WAEvqt
 vPaGtbZ8i3yevQbTb9ZsO7cpfJCXVa5fy87kXiZc5OKB6FmpTt7LTsuO6OrlzFvv8d8ioLncDw+tZ
 WzG6zOrkzmQVgRW+/JeZePm10+eki8BM54AYxy0eOrzeGEIPjgFE/6GtR4c1fQlGZ3sA=;
Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo)
 by quimby with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.92) (envelope-from <larsi@HIDDEN>)
 id 1k8kJJ-0003cy-Pn; Thu, 20 Aug 2020 15:08:56 +0200
From: Lars Ingebrigtsen <larsi@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN>
 <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
 <83img48ffx.fsf@HIDDEN>
 <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN>
 <83bllw82xt.fsf@HIDDEN>
 <1B0F31C8-1E11-4527-A053-DD2DE8235F58@HIDDEN>
 <83wo4g5hz6.fsf@HIDDEN>
 <49B7D7B5-D9E3-4E97-A749-CF5E8D8EE2C6@HIDDEN>
 <83mu5b5573.fsf@HIDDEN>
 <A829B1D4-5072-469D-A689-D448BA21176C@HIDDEN>
 <83lfku69q2.fsf@HIDDEN> <87eeo4m5kd.fsf@HIDDEN>
 <83d03of3pf.fsf@HIDDEN> <87blj8kpsr.fsf@HIDDEN>
 <838secf1mq.fsf@HIDDEN> <87zh6r7xlf.fsf@HIDDEN>
 <837dtuelhr.fsf@HIDDEN> <87sgciznhy.fsf@HIDDEN>
 <83sgcid0ap.fsf@HIDDEN>
Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAACBj
 SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAGFBMVEX8/PzS0dDAv7+k
 o6JkYmAoJSOCgH3///+94UAcAAAAAWJLR0QHFmGI6wAAAAd0SU1FB+QIFA0DKyFDQe0AAAG0SURB
 VDjLhZRNd6sgEIYHMXuQZG+07qnYrslhvOsYYd9zev//b7gDmDal5tx3oQzPfMmHAMDgLtbPJmrs
 WgBljEizTZyRHYlGlryYTIBNiOacRsZMBJQyven7CJt3DB7NnzNwAiBBSkl1+IQBHeUnnwQexBoz
 zQHR8isZMkncoUInbRVBI2XXfIFmBPVqGYFKSkLyDBW1hSF4IzJ4LNFj0Ey59gOK4llGaLjszFee
 HnsAInjdxvIRvJN5B+PPmDct98HgxT4Yh9su4DeGABSkCzAvcVepY/sTHNdkujKiCjqZLyWol2zW
 ogBcbED/Kp7Nyj4BcGFPgHkGjs9AXdaoN5PrjwLYbLJLmWrt8tuV4LTt+KkEfEmv7mDLrjBn4jfx
 CBgoykG6VbOnAb8fJYZhvCaATEQ7fG3Iy9WlffFbDzYH9IIvQ2whTCI7koOa0I10tw4xt6/bHPKm
 B+/x0yAe41WrLUe6esacj2u9bosil7hkJNl03RQczDoDvabDkKSQDvIhfbMKeqJ9Sq2ovy73LOhP
 EC5wAph6Q5fPbed+uPLZt6mAoh+I+F6/EJILh1LYwn/0D01PRr3IrfFcAAAAJXRFWHRkYXRlOmNy
 ZWF0ZQAyMDIwLTA4LTIwVDEzOjAzOjQzKzAwOjAwr1HJbAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAy
 MC0wOC0yMFQxMzowMzo0MyswMDowMN4McdAAAAAASUVORK5CYII=
X-Now-Playing: Various's _SHAPE Platform 2019_: "Tim Shaw - Three Different
 Sized Vessels"
Date: Thu, 20 Aug 2020 15:08:52 +0200
In-Reply-To: <83sgcid0ap.fsf@HIDDEN> (Eli Zaretskii's message of "Wed, 19 Aug
 2020 20:15:42 +0300")
Message-ID: <87tuwxwjkr.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Report: Spam detection software, running on the system "quimby.gnus.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
 @@CONTACT_ADDRESS@@ for details.
 Content preview: Eli Zaretskii <eliz@HIDDEN> writes: > So you propose to
 explain
 that the alternatives change what colors > Emacs considers "dark" and "light"
 when it needs to decide which > colors will contrast well enough, and let
 people experiment wi [...] 
 Content analysis details:   (-2.9 points, 5.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
 -1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%
 [score: 0.0000]
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 41544
Cc: simenheg@HIDDEN, mattiase@HIDDEN, tom@HIDDEN,
 41544 <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: -1.0 (-)

Eli Zaretskii <eliz@HIDDEN> writes:

> So you propose to explain that the alternatives change what colors
> Emacs considers "dark" and "light" when it needs to decide which
> colors will contrast well enough, and let people experiment with these
> two alternatives to their taste?  I'm not sure, but maybe that could
> be useful to someone.

I think so.

Mattias?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




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

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


Received: (at 41544) by debbugs.gnu.org; 19 Aug 2020 17:16:05 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Aug 19 13:16:05 2020
Received: from localhost ([127.0.0.1]:40896 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1k8Rgv-0002QP-Dh
	for submit <at> debbugs.gnu.org; Wed, 19 Aug 2020 13:16:05 -0400
Received: from eggs.gnu.org ([209.51.188.92]:59994)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1k8Rgu-0002LU-8K
 for 41544 <at> debbugs.gnu.org; Wed, 19 Aug 2020 13:16:00 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:53132)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <eliz@HIDDEN>)
 id 1k8Rgm-0000bv-MO; Wed, 19 Aug 2020 13:15:52 -0400
Received: from [176.228.60.248] (port=2867 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1k8Rgl-0006eN-MB; Wed, 19 Aug 2020 13:15:52 -0400
Date: Wed, 19 Aug 2020 20:15:42 +0300
Message-Id: <83sgcid0ap.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Lars Ingebrigtsen <larsi@HIDDEN>
In-Reply-To: <87sgciznhy.fsf@HIDDEN> (message from Lars Ingebrigtsen on Wed, 
 19 Aug 2020 17:03:37 +0200)
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN>
 <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN>
 <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
 <83img48ffx.fsf@HIDDEN>
 <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN>
 <83bllw82xt.fsf@HIDDEN>
 <1B0F31C8-1E11-4527-A053-DD2DE8235F58@HIDDEN>
 <83wo4g5hz6.fsf@HIDDEN>
 <49B7D7B5-D9E3-4E97-A749-CF5E8D8EE2C6@HIDDEN>
 <83mu5b5573.fsf@HIDDEN>
 <A829B1D4-5072-469D-A689-D448BA21176C@HIDDEN>
 <83lfku69q2.fsf@HIDDEN> <87eeo4m5kd.fsf@HIDDEN>
 <83d03of3pf.fsf@HIDDEN> <87blj8kpsr.fsf@HIDDEN>
 <838secf1mq.fsf@HIDDEN> <87zh6r7xlf.fsf@HIDDEN>
 <837dtuelhr.fsf@HIDDEN> <87sgciznhy.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 41544
Cc: simenheg@HIDDEN, mattiase@HIDDEN, tom@HIDDEN,
 41544 <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: Lars Ingebrigtsen <larsi@HIDDEN>
> Cc: mattiase@HIDDEN,  simenheg@HIDDEN,  tom@HIDDEN,
>   41544 <at> debbugs.gnu.org
> Date: Wed, 19 Aug 2020 17:03:37 +0200
> 
> Eli Zaretskii <eliz@HIDDEN> writes:
> 
> >> It's probably say "If non-nil, use old-style computation".
> >
> > Is that a useful doc string?
> 
> It would then go on to discuss the differences in the two approaches.  I
> thought you wanted only the first line.

So you propose to explain that the alternatives change what colors
Emacs considers "dark" and "light" when it needs to decide which
colors will contrast well enough, and let people experiment with these
two alternatives to their taste?  I'm not sure, but maybe that could
be useful to someone.




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

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


Received: (at 41544) by debbugs.gnu.org; 19 Aug 2020 15:04:07 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Aug 19 11:04:07 2020
Received: from localhost ([127.0.0.1]:40730 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1k8PdH-0006o7-1e
	for submit <at> debbugs.gnu.org; Wed, 19 Aug 2020 11:04:07 -0400
Received: from quimby.gnus.org ([95.216.78.240]:46284)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <larsi@HIDDEN>) id 1k8Pd2-0006n0-3Q
 for 41544 <at> debbugs.gnu.org; Wed, 19 Aug 2020 11:04:05 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org;
 s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date:
 References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding:
 Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:
 Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:
 List-Subscribe:List-Post:List-Owner:List-Archive;
 bh=5U9l5uyDPgKTkHEMO0bO/Cdt7SOu5AO/vFFzbqUj49I=; b=cjv7aGXY8rUoVwDPfuyw8zPfft
 1F2ikSrRcRYrco4NDwSvieR1sq0YFzDZsWo8+33zrXPfbkeLZNdBD0SjGVBI1bWNWMJLc8IAH37+P
 kUzs5Raer1TNR/F0vbZWdSnud3zGtBsqwQbIQJkmY5ll2nEsElVSwgutUc5rl3fdbMxg=;
Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo)
 by quimby with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.92) (envelope-from <larsi@HIDDEN>)
 id 1k8Pco-00065o-PU; Wed, 19 Aug 2020 17:03:45 +0200
From: Lars Ingebrigtsen <larsi@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN>
 <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN>
 <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
 <83img48ffx.fsf@HIDDEN>
 <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN>
 <83bllw82xt.fsf@HIDDEN>
 <1B0F31C8-1E11-4527-A053-DD2DE8235F58@HIDDEN>
 <83wo4g5hz6.fsf@HIDDEN>
 <49B7D7B5-D9E3-4E97-A749-CF5E8D8EE2C6@HIDDEN>
 <83mu5b5573.fsf@HIDDEN>
 <A829B1D4-5072-469D-A689-D448BA21176C@HIDDEN>
 <83lfku69q2.fsf@HIDDEN> <87eeo4m5kd.fsf@HIDDEN>
 <83d03of3pf.fsf@HIDDEN> <87blj8kpsr.fsf@HIDDEN>
 <838secf1mq.fsf@HIDDEN> <87zh6r7xlf.fsf@HIDDEN>
 <837dtuelhr.fsf@HIDDEN>
X-Now-Playing: Le =?utf-8?B?TXlzdMODwqhyZQ==?= des Voix Bulgares's _Volume
 2_: "Messetchinko Lio"
Date: Wed, 19 Aug 2020 17:03:37 +0200
In-Reply-To: <837dtuelhr.fsf@HIDDEN> (Eli Zaretskii's message of "Wed, 19 Aug
 2020 17:52:32 +0300")
Message-ID: <87sgciznhy.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Report: Spam detection software, running on the system "quimby.gnus.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
 @@CONTACT_ADDRESS@@ for details.
 Content preview:  Eli Zaretskii <eliz@HIDDEN> writes: >> It's probably say
 "If non-nil, use old-style computation". > > Is that a useful doc string?
 It would then go on to discuss the differences in the two approaches. I
 thought you wanted only the first line. 
 Content analysis details:   (-2.9 points, 5.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
 -1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%
 [score: 0.0000]
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 41544
Cc: simenheg@HIDDEN, mattiase@HIDDEN, tom@HIDDEN,
 41544 <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: -1.0 (-)

Eli Zaretskii <eliz@HIDDEN> writes:

>> It's probably say "If non-nil, use old-style computation".
>
> Is that a useful doc string?

It would then go on to discuss the differences in the two approaches.  I
thought you wanted only the first line.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




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

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


Received: (at 41544) by debbugs.gnu.org; 19 Aug 2020 14:52:57 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Aug 19 10:52:57 2020
Received: from localhost ([127.0.0.1]:40717 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1k8PSP-0006Vb-GQ
	for submit <at> debbugs.gnu.org; Wed, 19 Aug 2020 10:52:57 -0400
Received: from eggs.gnu.org ([209.51.188.92]:43674)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1k8PSK-0006VJ-Do
 for 41544 <at> debbugs.gnu.org; Wed, 19 Aug 2020 10:52:51 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:49597)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <eliz@HIDDEN>)
 id 1k8PSD-0004JE-Oy; Wed, 19 Aug 2020 10:52:41 -0400
Received: from [176.228.60.248] (port=2059 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1k8PSD-0008Ti-5G; Wed, 19 Aug 2020 10:52:41 -0400
Date: Wed, 19 Aug 2020 17:52:32 +0300
Message-Id: <837dtuelhr.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Lars Ingebrigtsen <larsi@HIDDEN>
In-Reply-To: <87zh6r7xlf.fsf@HIDDEN> (message from Lars Ingebrigtsen on Wed, 
 19 Aug 2020 12:13:00 +0200)
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN>
 <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN>
 <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN>
 <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
 <83img48ffx.fsf@HIDDEN>
 <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN>
 <83bllw82xt.fsf@HIDDEN>
 <1B0F31C8-1E11-4527-A053-DD2DE8235F58@HIDDEN>
 <83wo4g5hz6.fsf@HIDDEN>
 <49B7D7B5-D9E3-4E97-A749-CF5E8D8EE2C6@HIDDEN>
 <83mu5b5573.fsf@HIDDEN>
 <A829B1D4-5072-469D-A689-D448BA21176C@HIDDEN>
 <83lfku69q2.fsf@HIDDEN> <87eeo4m5kd.fsf@HIDDEN>
 <83d03of3pf.fsf@HIDDEN> <87blj8kpsr.fsf@HIDDEN>
 <838secf1mq.fsf@HIDDEN> <87zh6r7xlf.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 41544
Cc: simenheg@HIDDEN, mattiase@HIDDEN, tom@HIDDEN,
 41544 <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: Lars Ingebrigtsen <larsi@HIDDEN>
> Cc: mattiase@HIDDEN,  simenheg@HIDDEN,  tom@HIDDEN,
>   41544 <at> debbugs.gnu.org
> Date: Wed, 19 Aug 2020 12:13:00 +0200
> 
> Eli Zaretskii <eliz@HIDDEN> writes:
> 
> > I think it is.  Think about what you'd say in the doc string of such a
> > defcustom.  "If non-nil, handle colors correctly, otherwise handle
> > them incorrectly"?
> 
> It's probably say "If non-nil, use old-style computation".

Is that a useful doc string?




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

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


Received: (at 41544) by debbugs.gnu.org; 19 Aug 2020 11:34:39 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Aug 19 07:34:38 2020
Received: from localhost ([127.0.0.1]:38226 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1k8MMY-0006Ho-Cn
	for submit <at> debbugs.gnu.org; Wed, 19 Aug 2020 07:34:38 -0400
Received: from quimby.gnus.org ([95.216.78.240]:43680)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <larsi@HIDDEN>) id 1k8MMW-0006Ha-GD
 for 41544 <at> debbugs.gnu.org; Wed, 19 Aug 2020 07:34:37 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org;
 s=20200322; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID
 :In-Reply-To:Date:References:Subject:Cc:To:From:Sender:Reply-To:Content-ID:
 Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
 :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:
 List-Post:List-Owner:List-Archive;
 bh=+44+4HjkZ0lmKpaJFDjfGnULiJPupCXX51lVbdIUVSA=; b=QCfRbO9jq6yM+kCC2BztB3JKwJ
 sGPjZ3M8ikAAKUHzFrQY6ypClOwbSuEvUCSFFvprGh7J4GqcKghW/6k52Ct2A41mO4eAk/yD8B19d
 LWXWvgywjSYvKeH4ekOExI2kn0v1HTq7MKHbFk6QSFj4F3sCAyOOqPkNwpuzLVuaf1Kk=;
Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo)
 by quimby with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.92) (envelope-from <larsi@HIDDEN>)
 id 1k8MML-000497-0X; Wed, 19 Aug 2020 13:34:30 +0200
From: Lars Ingebrigtsen <larsi@HIDDEN>
To: Mattias =?utf-8?Q?Engdeg=C3=A5rd?= <mattiase@HIDDEN>
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN>
 <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN>
 <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
 <83img48ffx.fsf@HIDDEN>
 <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN>
 <83bllw82xt.fsf@HIDDEN>
 <1B0F31C8-1E11-4527-A053-DD2DE8235F58@HIDDEN>
 <83wo4g5hz6.fsf@HIDDEN>
 <49B7D7B5-D9E3-4E97-A749-CF5E8D8EE2C6@HIDDEN>
 <83mu5b5573.fsf@HIDDEN>
 <A829B1D4-5072-469D-A689-D448BA21176C@HIDDEN>
 <83lfku69q2.fsf@HIDDEN> <87eeo4m5kd.fsf@HIDDEN>
 <83d03of3pf.fsf@HIDDEN> <87blj8kpsr.fsf@HIDDEN>
 <8DE1C96A-9DE1-490D-BA13-21BFD6761788@HIDDEN>
 <874koz9c7k.fsf@HIDDEN>
 <D803C0B7-F2E1-4B7E-A7DC-4965A5B1A583@HIDDEN>
Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAACBj
 SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAFVBMVEUJCA0fGyIuKzI7
 PUdVVFSAjJn///8GzqdsAAAAAWJLR0QGYWa4fQAAAAd0SU1FB+QIEwsgDzqzllYAAAG+SURBVDjL
 bZPrdeQgDIXNZAtA2AVYggLGiAIyRjQwY/pvZeXJ7glywk++c68eXKbJwftQ4Jyqd9P3AQceYM45
 Ux2uVTGBV1nhO7ABq95OALHmeRvBdN6qV+R9yZMlKnEQZVflaOUdAnmY20abM8VdAFrVaxOxXYXg
 A2rPqYofwG0LYQUihKXXschNcF7BRYRUyShK1QouIMTAFnAidOdWGKwVJ//e41zBKEQSQtDh/WJW
 ooDT44aeIKABVWiTG6xRzYxVTfS5aAl2OI+SD0n0mMl5huXmDeANo6CPoX1aUCskEZ9i3ycDRFDB
 nqSbdv8oCOkptUg/VjuHzPEIWRXP8W0/qo5O/Wgi/R5s8ZJS1yMvtnPIvhRJ0o6+b5eukuyxtKO9
 LktUgMRa43lZOychyiKtP8wLqqL+A8dvoPV2jPk5geYBc2mtvy7FSw6YWfvdrkDzxiwHjfn5UpC2
 ywJyAUlBlCih3H+Ccir4CugNigmQ+6+ouZAJ1vweMJedCuLwpRwiKagnWM0S1WapPnKOZTVpz6Wk
 rEHMkccsTI6Y0/4FcLRysZIqwhsYha52Oa04ZgOCDrBkDMy85+/ifwGgnGg1yQAZtQAAACV0RVh0
 ZGF0ZTpjcmVhdGUAMjAyMC0wOC0xOVQxMTozMjoxNSswMDowMBz8HxwAAAAldEVYdGRhdGU6bW9k
 aWZ5ADIwMjAtMDgtMTlUMTE6MzI6MTUrMDA6MDBtoaegAAAAAElFTkSuQmCC
X-Now-Playing: Dead Can Dance's _Within the Realm of a Dying Sun_: "Xavier"
Date: Wed, 19 Aug 2020 13:34:23 +0200
In-Reply-To: <D803C0B7-F2E1-4B7E-A7DC-4965A5B1A583@HIDDEN> ("Mattias
 =?utf-8?Q?Engdeg=C3=A5rd=22's?= message of "Wed, 19 Aug 2020 13:28:52
 +0200")
Message-ID: <87v9he6f9c.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Report: Spam detection software, running on the system "quimby.gnus.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
 @@CONTACT_ADDRESS@@ for details.
 
 Content preview:  Mattias Engdegård <mattiase@HIDDEN> writes: > Technically
    yes, but is there is a reason for users to adjust this > particular behaviour?
    Users dissatisfied with the outcome of the > existing algorithms typically
    curse and set colours explicitly [...] 
 
 Content analysis details:   (-2.9 points, 5.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
 -1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%
                             [score: 0.0000]
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 41544
Cc: Eli Zaretskii <eliz@HIDDEN>, 41544 <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: -1.0 (-)

Mattias Engdeg=C3=A5rd <mattiase@HIDDEN> writes:

> Technically yes, but is there is a reason for users to adjust this
> particular behaviour? Users dissatisfied with the outcome of the
> existing algorithms typically curse and set colours explicitly (or
> suffer in silence); they are unlikely to set a 'use different
> algorithm' variable.

Well, adding this variable would allow us to experiment with defaulting
it to `new-style' during Emacs 28 and see whether there's any immediate
fallout, and allow switching between the two to see what the effect is
(on various systems).

As Eli points out, these things can be finicky.

--=20
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




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

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


Received: (at 41544) by debbugs.gnu.org; 19 Aug 2020 11:29:36 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Aug 19 07:29:36 2020
Received: from localhost ([127.0.0.1]:38218 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1k8MHg-0003w7-Iz
	for submit <at> debbugs.gnu.org; Wed, 19 Aug 2020 07:29:36 -0400
Received: from mail154c50.megamailservers.eu ([91.136.10.164]:52740
 helo=mail50c50.megamailservers.eu)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mattiase@HIDDEN>) id 1k8MHc-0003vs-Lm
 for 41544 <at> debbugs.gnu.org; Wed, 19 Aug 2020 07:29:35 -0400
X-Authenticated-User: mattiase@HIDDEN
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu;
 s=maildub; t=1597836570;
 bh=XYeYXKn4SeclTjj/3amood8P8Lsq+Mch3ga39ykzfgI=;
 h=Subject:From:In-Reply-To:Date:Cc:References:To:From;
 b=GHfuyo+5BH+MvQ2UWGhicA9jJSsNOuDc5CrmetrOEhqLqCngEkSSP0L5ee/Ekxuc1
 TZyRVmtBRm9/DKDMzHwv2OATbkMbLkPAEAAupfmDeGY2JSHW/UeUYPGgEpYLP8f/Bs
 dxd2GFLFTmBcGGY7VDaDNeEAUq9ZlWN1a7vJVeOk=
Feedback-ID: mattiase@HIDDEN
Received: from [192.168.0.4] (c188-150-171-71.bredband.comhem.se
 [188.150.171.71]) (authenticated bits=0)
 by mail50c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 07JBTPe5016616; 
 Wed, 19 Aug 2020 11:29:29 +0000
Content-Type: text/plain;
	charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.15\))
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>
In-Reply-To: <874koz9c7k.fsf@HIDDEN>
Date: Wed, 19 Aug 2020 13:28:52 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <D803C0B7-F2E1-4B7E-A7DC-4965A5B1A583@HIDDEN>
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN> <835zc5bsut.fsf@HIDDEN>
 <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN> <838sh0abzz.fsf@HIDDEN>
 <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN> <83r1us8kw6.fsf@HIDDEN>
 <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN> <83img48ffx.fsf@HIDDEN>
 <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN> <83bllw82xt.fsf@HIDDEN>
 <1B0F31C8-1E11-4527-A053-DD2DE8235F58@HIDDEN> <83wo4g5hz6.fsf@HIDDEN>
 <49B7D7B5-D9E3-4E97-A749-CF5E8D8EE2C6@HIDDEN> <83mu5b5573.fsf@HIDDEN>
 <A829B1D4-5072-469D-A689-D448BA21176C@HIDDEN> <83lfku69q2.fsf@HIDDEN>
 <87eeo4m5kd.fsf@HIDDEN> <83d03of3pf.fsf@HIDDEN> <87blj8kpsr.fsf@HIDDEN>
 <8DE1C96A-9DE1-490D-BA13-21BFD6761788@HIDDEN> <874koz9c7k.fsf@HIDDEN>
To: Lars Ingebrigtsen <larsi@HIDDEN>
X-Mailer: Apple Mail (2.3445.104.15)
X-CTCH-RefID: str=0001.0A782F22.5F3D0D1A.0043, ss=1, re=0.000, recu=0.000,
 reip=0.000, cl=1, cld=1, fgs=0
X-CTCH-VOD: Unknown
X-CTCH-Spam: Unknown
X-CTCH-Score: 0.000
X-CTCH-Rules: 
X-CTCH-Flags: 0
X-CTCH-ScoreCust: 0.000
X-CSC: 0
X-CHA: v=2.3 cv=NoevjPVJ c=1 sm=1 tr=0 a=SF+I6pRkHZhrawxbOkkvaA==:117
 a=SF+I6pRkHZhrawxbOkkvaA==:17 a=kj9zAlcOel0A:10 a=M51BFTxLslgA:10
 a=OocQHUDgAAAA:8 a=LUUatbi7KA7-G3vn9BgA:9 a=CjuIK1q_8ugA:10
 a=xUZTl98r3Qw_uB5NK3jt:22
X-Origin-Country: SE
X-Spam-Score: 1.4 (+)
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: [CC list trimmed] 19 aug. 2020 kl. 12.11 skrev Lars
 Ingebrigtsen
 <larsi@HIDDEN>: > I'm not quite sure I follow you here, but could these
 other computations > also be fixed, with a defcustom to switched between
 the two computation > methods? 
 Content analysis details:   (1.4 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 1.0 SPF_SOFTFAIL           SPF: sender does not match SPF record (softfail)
 0.4 KHOP_HELO_FCRDNS       Relay HELO differs from its IP's reverse DNS
X-Debbugs-Envelope-To: 41544
Cc: Eli Zaretskii <eliz@HIDDEN>, 41544 <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.0 (/)

[CC list trimmed]

19 aug. 2020 kl. 12.11 skrev Lars Ingebrigtsen <larsi@HIDDEN>:

> I'm not quite sure I follow you here, but could these other =
computations
> also be fixed, with a defcustom to switched between the two =
computation
> methods?

Technically yes, but is there is a reason for users to adjust this =
particular behaviour? Users dissatisfied with the outcome of the =
existing algorithms typically curse and set colours explicitly (or =
suffer in silence); they are unlikely to set a 'use different algorithm' =
variable.

To be precise, the computations I suppose we are talking about are =
located in:

 frame-set-background-mode (frame.el:1184)
 xterm-maybe-set-dark-background-mode (xterm.el:1122)
 rxvt-set-background-mode (rxvt.el:198)
 terminal-init-w32console (w32console.el:89)

which all use the predicate (r+g+b)/3 < 0.6 to determine if a colour is =
dark.
It is also mentioned in a comment in pc-win.el:57.

I believe it to be suboptimal but have no plans to do anything about it.





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

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


Received: (at 41544) by debbugs.gnu.org; 19 Aug 2020 10:13:12 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Aug 19 06:13:12 2020
Received: from localhost ([127.0.0.1]:37942 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1k8L5k-0005gx-2C
	for submit <at> debbugs.gnu.org; Wed, 19 Aug 2020 06:13:12 -0400
Received: from quimby.gnus.org ([95.216.78.240]:42878)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <larsi@HIDDEN>) id 1k8L5i-0005gk-Jd
 for 41544 <at> debbugs.gnu.org; Wed, 19 Aug 2020 06:13:11 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org;
 s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date:
 References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding:
 Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:
 Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:
 List-Subscribe:List-Post:List-Owner:List-Archive;
 bh=Z1b8dztGuMPvVisiOFlAYrv3VfJoIcCVIeFkjDGIVvQ=; b=VLcCLHG4aJnfmrfQIziF9l6LVT
 fsanXFpMu6rV29RAW2zPOxjllN6Z7hMYt+UxfBEbCUjXl81LvAQYF/rlWbWi+tse6oh2MuL5z7Pep
 lZSsSaKfaPuTRBUZhREZcdXqVSh1fg6XpiVgamaMlhwaZF2Q/U555wQl70NkioYdyDEE=;
Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo)
 by quimby with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.92) (envelope-from <larsi@HIDDEN>)
 id 1k8L5a-0003NG-0z; Wed, 19 Aug 2020 12:13:04 +0200
From: Lars Ingebrigtsen <larsi@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN>
 <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN>
 <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN>
 <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
 <83img48ffx.fsf@HIDDEN>
 <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN>
 <83bllw82xt.fsf@HIDDEN>
 <1B0F31C8-1E11-4527-A053-DD2DE8235F58@HIDDEN>
 <83wo4g5hz6.fsf@HIDDEN>
 <49B7D7B5-D9E3-4E97-A749-CF5E8D8EE2C6@HIDDEN>
 <83mu5b5573.fsf@HIDDEN>
 <A829B1D4-5072-469D-A689-D448BA21176C@HIDDEN>
 <83lfku69q2.fsf@HIDDEN> <87eeo4m5kd.fsf@HIDDEN>
 <83d03of3pf.fsf@HIDDEN> <87blj8kpsr.fsf@HIDDEN>
 <838secf1mq.fsf@HIDDEN>
Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAACBj
 SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAGFBMVEUbFRZeNzKmUjr9
 +cj06rLRsYfMm23////T9WBdAAAAAWJLR0QHFmGI6wAAAAd0SU1FB+QIEwoKM3t1TM4AAAGfSURB
 VDjLrZPBktowDIZjniDSdjhjTeHcYoczYJtzlwSfqUny/o+wcthNlLCXzlQz8Tj+LMv6JRfFl6ni
 Hwyepj+/cgRvZmZHARz/W/M5HBce1n3jMZlbgoqItu7V44CIAFi/AI1ESIBuAc6KTyKNgM0CAKWU
 SEO5qiWwAINHTn1tThPYK0WJeJmlhIcAJyhxcMB7PwNnBJVlxMe1QxmDAUuqaB05Ui3AAWjQ/Wff
 JtoJUHEGoLROjyq2UYCQNCfeE7aHm7vIBLOElPrYB1+H01jCN3trbnFrD+3t4rz/LTJ3NnStCU3V
 cQHm9cg1ddayhubPSwWt97mCv74Dy3o8GyG0Q6ecXmK8b4cNMxCCM7ZaWe+8Edc1Vfd3zXu3HMVG
 EKDcAdRDeHsGAfarDYN8vveEegLHdVmsnHEcxxPdJ3CnQsEj92e4Im0kALXzWZPuHUkcdaVILcvX
 2KQVCHDpXM4jNibEOWg4LjtkQTaFuG7lsyJhEGwvwfiYco6lzFxaNYEfXpqb1FUlZH/IM+7qcgLP
 zuWnz7NpecTj8J/tAzQFeIl0nVBIAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIwLTA4LTE5VDEwOjEw
 OjUxKzAwOjAw7faFjAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMC0wOC0xOVQxMDoxMDo1MSswMDow
 MJyrPTAAAAAASUVORK5CYII=
X-Now-Playing: The Wolfgang Press's _Big Sex_: "That Heat"
Date: Wed, 19 Aug 2020 12:13:00 +0200
In-Reply-To: <838secf1mq.fsf@HIDDEN> (Eli Zaretskii's message of "Tue, 18 Aug
 2020 17:51:41 +0300")
Message-ID: <87zh6r7xlf.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Report: Spam detection software, running on the system "quimby.gnus.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
 @@CONTACT_ADDRESS@@ for details.
 Content preview: Eli Zaretskii <eliz@HIDDEN> writes: > I think it is. Think
 about what you'd say in the doc string of such a > defcustom. "If non-nil,
 handle colors correctly, otherwise handle > them incorrectly"? It's probably
 say "If non-nil, use old-style computation". 
 Content analysis details:   (-2.9 points, 5.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
 -1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%
 [score: 0.0000]
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 41544
Cc: simenheg@HIDDEN, mattiase@HIDDEN, tom@HIDDEN,
 41544 <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: -1.0 (-)

Eli Zaretskii <eliz@HIDDEN> writes:

> I think it is.  Think about what you'd say in the doc string of such a
> defcustom.  "If non-nil, handle colors correctly, otherwise handle
> them incorrectly"?

It's probably say "If non-nil, use old-style computation".

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




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

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


Received: (at 41544) by debbugs.gnu.org; 19 Aug 2020 10:12:13 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Aug 19 06:12:13 2020
Received: from localhost ([127.0.0.1]:37938 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1k8L4m-0005fP-PZ
	for submit <at> debbugs.gnu.org; Wed, 19 Aug 2020 06:12:12 -0400
Received: from quimby.gnus.org ([95.216.78.240]:42856)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <larsi@HIDDEN>) id 1k8L4j-0005fA-W5
 for 41544 <at> debbugs.gnu.org; Wed, 19 Aug 2020 06:12:10 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org;
 s=20200322; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID
 :In-Reply-To:Date:References:Subject:Cc:To:From:Sender:Reply-To:Content-ID:
 Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
 :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:
 List-Post:List-Owner:List-Archive;
 bh=G651SRgAHv5nOmwEm3eBUke2P1hJ5h3nsBcu26oYDMw=; b=eqvbO/1Mudou4yo2yzE1urvYgC
 fuTS8mkFilSBQbCiVLXHvIjPkIZC8z7MC3WQ7cLKLwQyb7yS89TetMLwRe0ecZdo6Ur3h+XgeEnQG
 ey4IQ8/m3B7L2e55xiBqA3ZXiNNwJXXmuLFYtCDZroplM3TaZPrdmmHm7/V0ScLl0zMo=;
Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo)
 by quimby with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.92) (envelope-from <larsi@HIDDEN>)
 id 1k8L4a-0003Mo-PN; Wed, 19 Aug 2020 12:12:03 +0200
From: Lars Ingebrigtsen <larsi@HIDDEN>
To: Mattias =?utf-8?Q?Engdeg=C3=A5rd?= <mattiase@HIDDEN>
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN>
 <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN>
 <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN>
 <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
 <83img48ffx.fsf@HIDDEN>
 <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN>
 <83bllw82xt.fsf@HIDDEN>
 <1B0F31C8-1E11-4527-A053-DD2DE8235F58@HIDDEN>
 <83wo4g5hz6.fsf@HIDDEN>
 <49B7D7B5-D9E3-4E97-A749-CF5E8D8EE2C6@HIDDEN>
 <83mu5b5573.fsf@HIDDEN>
 <A829B1D4-5072-469D-A689-D448BA21176C@HIDDEN>
 <83lfku69q2.fsf@HIDDEN> <87eeo4m5kd.fsf@HIDDEN>
 <83d03of3pf.fsf@HIDDEN> <87blj8kpsr.fsf@HIDDEN>
 <8DE1C96A-9DE1-490D-BA13-21BFD6761788@HIDDEN>
Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAACBj
 SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAGFBMVEUbFRZeNzKmUjr9
 +cj06rLRsYfMm23////T9WBdAAAAAWJLR0QHFmGI6wAAAAd0SU1FB+QIEwoKM3t1TM4AAAGfSURB
 VDjLrZPBktowDIZjniDSdjhjTeHcYoczYJtzlwSfqUny/o+wcthNlLCXzlQz8Tj+LMv6JRfFl6ni
 Hwyepj+/cgRvZmZHARz/W/M5HBce1n3jMZlbgoqItu7V44CIAFi/AI1ESIBuAc6KTyKNgM0CAKWU
 SEO5qiWwAINHTn1tThPYK0WJeJmlhIcAJyhxcMB7PwNnBJVlxMe1QxmDAUuqaB05Ui3AAWjQ/Wff
 JtoJUHEGoLROjyq2UYCQNCfeE7aHm7vIBLOElPrYB1+H01jCN3trbnFrD+3t4rz/LTJ3NnStCU3V
 cQHm9cg1ddayhubPSwWt97mCv74Dy3o8GyG0Q6ecXmK8b4cNMxCCM7ZaWe+8Edc1Vfd3zXu3HMVG
 EKDcAdRDeHsGAfarDYN8vveEegLHdVmsnHEcxxPdJ3CnQsEj92e4Im0kALXzWZPuHUkcdaVILcvX
 2KQVCHDpXM4jNibEOWg4LjtkQTaFuG7lsyJhEGwvwfiYco6lzFxaNYEfXpqb1FUlZH/IM+7qcgLP
 zuWnz7NpecTj8J/tAzQFeIl0nVBIAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIwLTA4LTE5VDEwOjEw
 OjUxKzAwOjAw7faFjAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMC0wOC0xOVQxMDoxMDo1MSswMDow
 MJyrPTAAAAAASUVORK5CYII=
X-Now-Playing: The Wolfgang Press's _Big Sex_: "That Heat"
Date: Wed, 19 Aug 2020 12:11:59 +0200
In-Reply-To: <8DE1C96A-9DE1-490D-BA13-21BFD6761788@HIDDEN> ("Mattias
 =?utf-8?Q?Engdeg=C3=A5rd=22's?= message of "Tue, 18 Aug 2020 16:19:18
 +0200")
Message-ID: <874koz9c7k.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Report: Spam detection software, running on the system "quimby.gnus.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
 @@CONTACT_ADDRESS@@ for details.
 
 Content preview:  Mattias Engdegård <mattiase@HIDDEN> writes: > 18 aug. 2020
    kl. 16.10 skrev Lars Ingebrigtsen <larsi@HIDDEN>: > >> My impression was
    that only a few bug fixes were done, but the rest of >> the colour computation
    was not applied? That may be wr [...] 
 
 Content analysis details:   (-2.9 points, 5.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
 -1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%
                             [score: 0.0000]
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 41544
Cc: simenheg@HIDDEN, Eli Zaretskii <eliz@HIDDEN>, tom@HIDDEN,
 41544 <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: -1.0 (-)

Mattias Engdeg=C3=A5rd <mattiase@HIDDEN> writes:

> 18 aug. 2020 kl. 16.10 skrev Lars Ingebrigtsen <larsi@HIDDEN>:
>
>> My impression was that only a few bug fixes were done, but the rest of
>> the colour computation was not applied?  That may be wrong -- Mattias?
>
> In the end, the only affected code was css-mode and
> list-colors-display. 'color-dark-p' was made available for code that
> want to use the same mechanism. Other contrasting-colour computations
> were left unchanged.

I'm not quite sure I follow you here, but could these other computations
also be fixed, with a defcustom to switched between the two computation
methods?

--=20
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




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

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


Received: (at 41544) by debbugs.gnu.org; 18 Aug 2020 14:52:06 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Aug 18 10:52:06 2020
Received: from localhost ([127.0.0.1]:36641 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1k82y1-0005FT-W9
	for submit <at> debbugs.gnu.org; Tue, 18 Aug 2020 10:52:06 -0400
Received: from eggs.gnu.org ([209.51.188.92]:33342)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1k82y0-0005Ex-8j
 for 41544 <at> debbugs.gnu.org; Tue, 18 Aug 2020 10:52:00 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:53184)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <eliz@HIDDEN>)
 id 1k82xt-0004Z1-QS; Tue, 18 Aug 2020 10:51:53 -0400
Received: from [176.228.60.248] (port=1236 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1k82xt-0002pq-8e; Tue, 18 Aug 2020 10:51:53 -0400
Date: Tue, 18 Aug 2020 17:51:41 +0300
Message-Id: <838secf1mq.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Lars Ingebrigtsen <larsi@HIDDEN>
In-Reply-To: <87blj8kpsr.fsf@HIDDEN> (message from Lars Ingebrigtsen on Tue, 
 18 Aug 2020 16:10:44 +0200)
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN>
 <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN>
 <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN>
 <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN>
 <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
 <83img48ffx.fsf@HIDDEN>
 <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN>
 <83bllw82xt.fsf@HIDDEN>
 <1B0F31C8-1E11-4527-A053-DD2DE8235F58@HIDDEN>
 <83wo4g5hz6.fsf@HIDDEN>
 <49B7D7B5-D9E3-4E97-A749-CF5E8D8EE2C6@HIDDEN>
 <83mu5b5573.fsf@HIDDEN>
 <A829B1D4-5072-469D-A689-D448BA21176C@HIDDEN>
 <83lfku69q2.fsf@HIDDEN> <87eeo4m5kd.fsf@HIDDEN>
 <83d03of3pf.fsf@HIDDEN> <87blj8kpsr.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 41544
Cc: simenheg@HIDDEN, mattiase@HIDDEN, tom@HIDDEN,
 41544 <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: -1.0 (-)

> From: Lars Ingebrigtsen <larsi@HIDDEN>
> Cc: mattiase@HIDDEN,  simenheg@HIDDEN,  tom@HIDDEN,
>   41544 <at> debbugs.gnu.org
> Date: Tue, 18 Aug 2020 16:10:44 +0200
> 
> Eli Zaretskii <eliz@HIDDEN> writes:
> 
> > How do they make things better, and what things, exactly?  My
> > recollection is that this was about consistency, not correctness.
> 
> According to the screen shots, they compute correct colours (based on
> fixing the luminance formulas, if I remember correctly (it's been a
> couple weeks since I read this thread)).

My bitter experience with handling colors in Emacs is that changes
frequently fix some use cases and botch others.  So I'd prefer to make
such changes only where the current results are completely
unacceptable (and I'd be surprised if we have such cases nowadays).

> > I don't think defcustom is the proper way of handling differences in
> > behavior at this low level.
> 
> Different ways of computing colours?  That's not very low level.

I think it is.  Think about what you'd say in the doc string of such a
defcustom.  "If non-nil, handle colors correctly, otherwise handle
them incorrectly"?




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

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


Received: (at 41544) by debbugs.gnu.org; 18 Aug 2020 14:19:31 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Aug 18 10:19:31 2020
Received: from localhost ([127.0.0.1]:36587 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1k82SZ-0004R6-Ec
	for submit <at> debbugs.gnu.org; Tue, 18 Aug 2020 10:19:31 -0400
Received: from mail1446c50.megamailservers.eu ([91.136.14.46]:42246
 helo=mail265c50.megamailservers.eu)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mattiase@HIDDEN>) id 1k82SW-0004Qr-JI
 for 41544 <at> debbugs.gnu.org; Tue, 18 Aug 2020 10:19:29 -0400
X-Authenticated-User: mattiase@HIDDEN
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu;
 s=maildub; t=1597760361;
 bh=fcD3Fa+Mw76y+oAsLYdNFXnJdcWW2PnnYTxjIiiQHxU=;
 h=Subject:From:In-Reply-To:Date:Cc:References:To:From;
 b=n21Pr7ehKzDQzgbrsp6Stl8nlZwfdMOIxK6Qhc9quqQRLBTQB3CJHfpGzoQHK77Oe
 eGqOobo5wmn4wOd3R4+jxHpAcpc8bZSfLg9RsaXFf9rJ9EEXuOAX0ihaL2i2AxfWMZ
 PjkaxDuNQQwBZ7PelGM7HqicVu8w4SWrj1SIQyEQ=
Feedback-ID: mattiase@HIDDEN
Received: from [192.168.0.4] (c188-150-171-71.bredband.comhem.se
 [188.150.171.71]) (authenticated bits=0)
 by mail265c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 07IEJInB010923; 
 Tue, 18 Aug 2020 14:19:20 +0000
Content-Type: text/plain;
	charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.15\))
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>
In-Reply-To: <87blj8kpsr.fsf@HIDDEN>
Date: Tue, 18 Aug 2020 16:19:18 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <8DE1C96A-9DE1-490D-BA13-21BFD6761788@HIDDEN>
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN> <83o8pyc4bq.fsf@HIDDEN>
 <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN> <835zc5bsut.fsf@HIDDEN>
 <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN> <838sh0abzz.fsf@HIDDEN>
 <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN> <83r1us8kw6.fsf@HIDDEN>
 <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN> <83img48ffx.fsf@HIDDEN>
 <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN> <83bllw82xt.fsf@HIDDEN>
 <1B0F31C8-1E11-4527-A053-DD2DE8235F58@HIDDEN> <83wo4g5hz6.fsf@HIDDEN>
 <49B7D7B5-D9E3-4E97-A749-CF5E8D8EE2C6@HIDDEN> <83mu5b5573.fsf@HIDDEN>
 <A829B1D4-5072-469D-A689-D448BA21176C@HIDDEN> <83lfku69q2.fsf@HIDDEN>
 <87eeo4m5kd.fsf@HIDDEN> <83d03of3pf.fsf@HIDDEN> <87blj8kpsr.fsf@HIDDEN>
To: Lars Ingebrigtsen <larsi@HIDDEN>
X-Mailer: Apple Mail (2.3445.104.15)
X-CTCH-RefID: str=0001.0A782F29.5F3BE369.009D, ss=1, re=0.000, recu=0.000,
 reip=0.000, cl=1, cld=1, fgs=0
X-CTCH-VOD: Unknown
X-CTCH-Spam: Unknown
X-CTCH-Score: 0.000
X-CTCH-Rules: 
X-CTCH-Flags: 0
X-CTCH-ScoreCust: 0.000
X-CSC: 0
X-CHA: v=2.3 cv=D5w51cZj c=1 sm=1 tr=0 a=SF+I6pRkHZhrawxbOkkvaA==:117
 a=SF+I6pRkHZhrawxbOkkvaA==:17 a=kj9zAlcOel0A:10 a=M51BFTxLslgA:10
 a=OocQHUDgAAAA:8 a=TisEoJga-hbO4ijymiAA:9 a=CjuIK1q_8ugA:10
 a=xUZTl98r3Qw_uB5NK3jt:22
X-Origin-Country: SE
X-Spam-Score: 1.4 (+)
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: 18 aug. 2020 kl. 16.10 skrev Lars Ingebrigtsen
 <larsi@HIDDEN>:
 > My impression was that only a few bug fixes were done, but the rest of
 > the colour computation was not applied? That may be wrong -- Mattias? 
 Content analysis details:   (1.4 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 1.0 SPF_SOFTFAIL           SPF: sender does not match SPF record (softfail)
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 0.4 KHOP_HELO_FCRDNS       Relay HELO differs from its IP's reverse DNS
X-Debbugs-Envelope-To: 41544
Cc: simenheg@HIDDEN, Eli Zaretskii <eliz@HIDDEN>, tom@HIDDEN,
 41544 <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.0 (/)

18 aug. 2020 kl. 16.10 skrev Lars Ingebrigtsen <larsi@HIDDEN>:

> My impression was that only a few bug fixes were done, but the rest of
> the colour computation was not applied?  That may be wrong -- Mattias?

In the end, the only affected code was css-mode and list-colors-display. =
'color-dark-p' was made available for code that want to use the same =
mechanism. Other contrasting-colour computations were left unchanged.





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

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


Received: (at 41544) by debbugs.gnu.org; 18 Aug 2020 14:10:56 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Aug 18 10:10:56 2020
Received: from localhost ([127.0.0.1]:36563 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1k82KG-00020u-Lq
	for submit <at> debbugs.gnu.org; Tue, 18 Aug 2020 10:10:56 -0400
Received: from quimby.gnus.org ([95.216.78.240]:33128)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <larsi@HIDDEN>) id 1k82KF-00020h-Nx
 for 41544 <at> debbugs.gnu.org; Tue, 18 Aug 2020 10:10:56 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org;
 s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date:
 References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding:
 Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:
 Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:
 List-Subscribe:List-Post:List-Owner:List-Archive;
 bh=zNB3kqdsdvjcyNH0Rbi11VkS40lIGKW6lHkh4UPFADg=; b=HiYbCnPgQnbKmW3pVj8Jc4Xoqn
 INB0KYsd/IzcMmeFsKhL/xXXuaGiaypqkE62A19dbbvBHiOTQspQozmm8LEklDBQtomztuvSXJGhl
 LOx+W+mCQQQflMI+Nns3kGLZEvFX1E03HbrBQZ8zvmDHis2Z97InTn5lWinQpexooUd4=;
Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo)
 by quimby with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.92) (envelope-from <larsi@HIDDEN>)
 id 1k82K6-0007hx-1n; Tue, 18 Aug 2020 16:10:49 +0200
From: Lars Ingebrigtsen <larsi@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN>
 <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN>
 <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN>
 <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN>
 <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
 <83img48ffx.fsf@HIDDEN>
 <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN>
 <83bllw82xt.fsf@HIDDEN>
 <1B0F31C8-1E11-4527-A053-DD2DE8235F58@HIDDEN>
 <83wo4g5hz6.fsf@HIDDEN>
 <49B7D7B5-D9E3-4E97-A749-CF5E8D8EE2C6@HIDDEN>
 <83mu5b5573.fsf@HIDDEN>
 <A829B1D4-5072-469D-A689-D448BA21176C@HIDDEN>
 <83lfku69q2.fsf@HIDDEN> <87eeo4m5kd.fsf@HIDDEN>
 <83d03of3pf.fsf@HIDDEN>
Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAACBj
 SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAGFBMVEXNuarHq5SyjnHf
 0r2aLDpQLStHLCr///9aH4LaAAAAAWJLR0QHFmGI6wAAAAd0SU1FB+QIEg4HMgZpzawAAAGZSURB
 VDjLndGxUsMwDAZgB67McWh34guZC4YHaM9mBs7STi7S+z8CsmKXQtMFLbn4s37HijH/raa9Aje3
 +yvir4LIap733pj9SqvPJU126FfA3yDytL9c9yMznMOtrwBMs7mEPYPUCtwR4C+oR7xwhnZFMEc9
 nEO7wOYvdFPJIgA8gy1ngHv/+qdj5C/vX5kfRkgA77JiC8Dnk39DZmQBODS2wA4n1zGTCPKMUwUr
 0A0sc2JCJvgs0JgNTM+PhLJdDKhAa9zI07DLJyhAsgLWNk7eeX5kLTmbC2x1KwU6ASm0owakAIgk
 6yhh/QK4QFwa8hco2HG5WIgyp9+g2SG8pRA0irh3vcCuQAwh6P9gPjh3gqSQ4wQ+LiAo0FcBGZCA
 FkK+/qTQEfxAzEk8dc70dpl3Bd01S0eKUa6HFYJ8r87GcCkqENIQQAJNndwcfipKXAbM102nRS00
 pJcFnk9nSMnDkP4BrBD19wKBqROtUa6UOTqXB1rPPdhcnUDjbMzbhgWOed1lGNLSOtSorkTVzArH
 /HK8Bm5w38Sz4AMzeJCqAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIwLTA4LTE4VDE0OjA3OjUwKzAw
 OjAwBgKxhgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMC0wOC0xOFQxNDowNzo1MCswMDowMHdfCToA
 AAAASUVORK5CYII=
X-Now-Playing: Dead Can Dance's _Spleen and Ideal_: "Circumradiant Dawn"
Date: Tue, 18 Aug 2020 16:10:44 +0200
In-Reply-To: <83d03of3pf.fsf@HIDDEN> (Eli Zaretskii's message of "Tue, 18 Aug
 2020 17:06:52 +0300")
Message-ID: <87blj8kpsr.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Report: Spam detection software, running on the system "quimby.gnus.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
 @@CONTACT_ADDRESS@@ for details.
 Content preview: Eli Zaretskii <eliz@HIDDEN> writes: > How do they make
 things
 better, and what things, exactly? My > recollection is that this was about
 consistency, not correctness. According to the screen shots, they compute
 correct colours (based on fixing the luminance formulas,
 if I remember correctly
 (it's been a couple weeks since I read this thread)). 
 Content analysis details:   (-2.9 points, 5.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
 -1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%
 [score: 0.0000]
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 41544
Cc: simenheg@HIDDEN, mattiase@HIDDEN, tom@HIDDEN,
 41544 <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: -1.0 (-)

Eli Zaretskii <eliz@HIDDEN> writes:

> How do they make things better, and what things, exactly?  My
> recollection is that this was about consistency, not correctness.

According to the screen shots, they compute correct colours (based on
fixing the luminance formulas, if I remember correctly (it's been a
couple weeks since I read this thread)).

> Also, the original discussion was about quite a few separate changes,
> some of which were installed, so I don't think I have a clear idea
> which parts you allude to.

My impression was that only a few bug fixes were done, but the rest of
the colour computation was not applied?  That may be wrong -- Mattias?

>> Would it be possible to add the new calculations with a defcustom to
>> say whether to use the new or old methods?
>
> I don't think defcustom is the proper way of handling differences in
> behavior at this low level.

Different ways of computing colours?  That's not very low level.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




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

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


Received: (at 41544) by debbugs.gnu.org; 18 Aug 2020 14:07:25 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Aug 18 10:07:25 2020
Received: from localhost ([127.0.0.1]:36549 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1k82Gm-0001uc-RI
	for submit <at> debbugs.gnu.org; Tue, 18 Aug 2020 10:07:25 -0400
Received: from eggs.gnu.org ([209.51.188.92]:48938)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1k82Gj-0001uM-TK
 for 41544 <at> debbugs.gnu.org; Tue, 18 Aug 2020 10:07:19 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:52698)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <eliz@HIDDEN>)
 id 1k82Gd-0006kO-ID; Tue, 18 Aug 2020 10:07:11 -0400
Received: from [176.228.60.248] (port=2455 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1k82Ga-0006D7-JA; Tue, 18 Aug 2020 10:07:10 -0400
Date: Tue, 18 Aug 2020 17:06:52 +0300
Message-Id: <83d03of3pf.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Lars Ingebrigtsen <larsi@HIDDEN>
In-Reply-To: <87eeo4m5kd.fsf@HIDDEN> (message from Lars Ingebrigtsen on Tue, 
 18 Aug 2020 15:44:50 +0200)
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN>
 <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN>
 <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN>
 <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN>
 <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN>
 <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
 <83img48ffx.fsf@HIDDEN>
 <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN>
 <83bllw82xt.fsf@HIDDEN>
 <1B0F31C8-1E11-4527-A053-DD2DE8235F58@HIDDEN>
 <83wo4g5hz6.fsf@HIDDEN>
 <49B7D7B5-D9E3-4E97-A749-CF5E8D8EE2C6@HIDDEN>
 <83mu5b5573.fsf@HIDDEN>
 <A829B1D4-5072-469D-A689-D448BA21176C@HIDDEN>
 <83lfku69q2.fsf@HIDDEN> <87eeo4m5kd.fsf@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 41544
Cc: simenheg@HIDDEN, mattiase@HIDDEN, tom@HIDDEN,
 41544 <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: -1.0 (-)

> From: Lars Ingebrigtsen <larsi@HIDDEN>
> Cc: Mattias Engdegård <mattiase@HIDDEN>,
>   simenheg@HIDDEN,
>   tom@HIDDEN,  41544 <at> debbugs.gnu.org
> Date: Tue, 18 Aug 2020 15:44:50 +0200
> 
> Eli Zaretskii <eliz@HIDDEN> writes:
> 
> > I gave all the reasons I have.  They are serious, at least to me.
> > They have nothing to do with the quality of your research or of the
> > resulting code.  They have everything to do with considerations of
> > stability, and with weighing risks and efforts vs advantages.  If you
> > don't regard such considerations as technical arguments, so be it.
> 
> I understand your objections to changing this behaviour, but the new,
> correct calculations make things a lot better.

How do they make things better, and what things, exactly?  My
recollection is that this was about consistency, not correctness.
Also, the original discussion was about quite a few separate changes,
some of which were installed, so I don't think I have a clear idea
which parts you allude to.

> Would it be possible to add the new calculations with a defcustom to
> say whether to use the new or old methods?

I don't think defcustom is the proper way of handling differences in
behavior at this low level.




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

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


Received: (at 41544) by debbugs.gnu.org; 18 Aug 2020 13:45:02 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Aug 18 09:45:02 2020
Received: from localhost ([127.0.0.1]:34564 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1k81vB-0004qO-W1
	for submit <at> debbugs.gnu.org; Tue, 18 Aug 2020 09:45:02 -0400
Received: from quimby.gnus.org ([95.216.78.240]:32804)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <larsi@HIDDEN>) id 1k81vA-0004q1-Ju
 for 41544 <at> debbugs.gnu.org; Tue, 18 Aug 2020 09:45:01 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org;
 s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date:
 References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding:
 Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:
 Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:
 List-Subscribe:List-Post:List-Owner:List-Archive;
 bh=c2kR48xifqUvT/KcFHRLym9SIZawk15PloxS/mhWjY0=; b=Py0tv8rAvnxPxJEc88t+gQ06JP
 S0c1Qr6wSJxZRDbtyAwka6NLH5hSl23+Z1un/IdNsWIiKzZz6+uKShTSRm2kirspVm0g3r7w8wAjr
 DzrM/3Bbc6qRcyzRsUyvTUjTruJWykLR3xiRt34NxZT3eUmfI6kTE5gHNtuhJJ2sJB2o=;
Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo)
 by quimby with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.92) (envelope-from <larsi@HIDDEN>)
 id 1k81v1-0007WC-Tj; Tue, 18 Aug 2020 15:44:54 +0200
From: Lars Ingebrigtsen <larsi@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN>
 <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN>
 <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN>
 <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN>
 <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN>
 <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
 <83img48ffx.fsf@HIDDEN>
 <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN>
 <83bllw82xt.fsf@HIDDEN>
 <1B0F31C8-1E11-4527-A053-DD2DE8235F58@HIDDEN>
 <83wo4g5hz6.fsf@HIDDEN>
 <49B7D7B5-D9E3-4E97-A749-CF5E8D8EE2C6@HIDDEN>
 <83mu5b5573.fsf@HIDDEN>
 <A829B1D4-5072-469D-A689-D448BA21176C@HIDDEN>
 <83lfku69q2.fsf@HIDDEN>
X-Now-Playing: Cocteau Twins's _Echoes in a Shallow Bay_: "Great Spangled
 Fritillary"
Date: Tue, 18 Aug 2020 15:44:50 +0200
In-Reply-To: <83lfku69q2.fsf@HIDDEN> (Eli Zaretskii's message of "Wed, 10 Jun
 2020 21:45:25 +0300")
Message-ID: <87eeo4m5kd.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Report: Spam detection software, running on the system "quimby.gnus.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
 @@CONTACT_ADDRESS@@ for details.
 Content preview: Eli Zaretskii <eliz@HIDDEN> writes: > I gave all the reasons
 I have. They are serious, at least to me. > They have nothing to do with
 the quality of your research or of the > resulting code. They have everything
 to do with consideration [...] 
 Content analysis details:   (-2.9 points, 5.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
 -1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%
 [score: 0.0000]
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 41544
Cc: simenheg@HIDDEN, Mattias =?utf-8?Q?Engdeg=C3=A5rd?= <mattiase@HIDDEN>,
 tom@HIDDEN, 41544 <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: -1.0 (-)

Eli Zaretskii <eliz@HIDDEN> writes:

> I gave all the reasons I have.  They are serious, at least to me.
> They have nothing to do with the quality of your research or of the
> resulting code.  They have everything to do with considerations of
> stability, and with weighing risks and efforts vs advantages.  If you
> don't regard such considerations as technical arguments, so be it.

I understand your objections to changing this behaviour, but the new,
correct calculations make things a lot better.  Would it be possible to
add the new calculations with a defcustom to say whether to use the new
or old methods?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




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

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


Received: (at 41544) by debbugs.gnu.org; 10 Jun 2020 19:12:37 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jun 10 15:12:36 2020
Received: from localhost ([127.0.0.1]:35388 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jj69M-0000tl-OR
	for submit <at> debbugs.gnu.org; Wed, 10 Jun 2020 15:12:36 -0400
Received: from mail1450c50.megamailservers.eu ([91.136.14.50]:33908
 helo=mail265c50.megamailservers.eu)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mattiase@HIDDEN>) id 1jj69K-0000tV-Cs
 for 41544 <at> debbugs.gnu.org; Wed, 10 Jun 2020 15:12:35 -0400
X-Authenticated-User: mattiase@HIDDEN
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu;
 s=maildub; t=1591816347;
 bh=QMsPKopwUh2yLX96lDiF1HuKEKa0sJCY+DcQ7R9766w=;
 h=Subject:From:In-Reply-To:Date:Cc:References:To:From;
 b=KpjPHZZBq6jT2q8qxeynBwgZa3SlyUuXw2BxpUzSVpX0F4fr3ynYgcuvDmtLWk5oC
 4PJrb+eNxTnzlXnwm4F9VmEh2wFYakiBODcS5lYMWSxT/yDtSfukgSRDdV+Vu3yB+j
 4ovf/27l0Y0xARI4uqy5rU/tDA56PV+wD9zdNBv8=
Feedback-ID: mattiase@HIDDEN
Received: from [192.168.0.4] (c188-150-171-71.bredband.comhem.se
 [188.150.171.71]) (authenticated bits=0)
 by mail265c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 05AJCNsP000646; 
 Wed, 10 Jun 2020 19:12:24 +0000
Content-Type: text/plain;
	charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.14\))
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>
X-Priority: 3
In-Reply-To: <7073e74c-9535-45c9-9d46-3e1080381a8c@default>
Date: Wed, 10 Jun 2020 21:12:22 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <CC316C5E-4262-43B6-A532-FA08A11C29DF@HIDDEN>
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN> <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN> <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN> <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN> <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN> <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN> <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN> <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
 <83img48ffx.fsf@HIDDEN> <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN>
 <83bllw82xt.fsf@HIDDEN> <1B0F31C8-1E11-4527-A053-DD2DE8235F58@HIDDEN>
 <0b4807d5-a5b9-47ad-91eb-d9240ea330e1@default>
 <E4880FCB-AC8D-4418-8512-FF63A1FC4760@HIDDEN>
 <7073e74c-9535-45c9-9d46-3e1080381a8c@default>
To: Drew Adams <drew.adams@HIDDEN>
X-Mailer: Apple Mail (2.3445.104.14)
X-CTCH-RefID: str=0001.0A782F1D.5EE13027.0005, ss=1, re=0.000, recu=0.000,
 reip=0.000, cl=1, cld=1, fgs=0
X-CTCH-VOD: Unknown
X-CTCH-Spam: Unknown
X-CTCH-Score: 0.000
X-CTCH-Rules: 
X-CTCH-Flags: 0
X-CTCH-ScoreCust: 0.000
X-CSC: 0
X-CHA: v=2.3 cv=D5w51cZj c=1 sm=1 tr=0 a=SF+I6pRkHZhrawxbOkkvaA==:117
 a=SF+I6pRkHZhrawxbOkkvaA==:17 a=kj9zAlcOel0A:10 a=M51BFTxLslgA:10
 a=yPCof4ZbAAAA:8 a=JPmaRQt990E2PDnAJv8A:9 a=CjuIK1q_8ugA:10
X-Spam-Score: 1.4 (+)
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: 10 juni 2020 kl. 20.37 skrev Drew Adams
 <drew.adams@HIDDEN>:
 > So this never happened? The bug was "fixed" without > fixing this mismatch?
 Too bad, if so. I'm not dismissing your concern, but I did amend the doc
 string prior to pushing to state explicitly that it can be used for either
 foreground or background colours. 
 Content analysis details:   (1.4 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.0 URIBL_BLOCKED          ADMINISTRATOR NOTICE: The query to URIBL was
 blocked.  See
 http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block
 for more information. [URIs: megamailservers.eu]
 1.0 SPF_SOFTFAIL           SPF: sender does not match SPF record (softfail)
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 0.4 KHOP_HELO_FCRDNS       Relay HELO differs from its IP's reverse DNS
X-Debbugs-Envelope-To: 41544
Cc: =?utf-8?Q?Simen_Heggest=C3=B8yl?= <simenheg@HIDDEN>,
 Eli Zaretskii <eliz@HIDDEN>, 41544 <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.0 (/)

10 juni 2020 kl. 20.37 skrev Drew Adams <drew.adams@HIDDEN>:

> So this never happened?  The bug was "fixed" without
> fixing this mismatch?  Too bad, if so.

I'm not dismissing your concern, but I did amend the doc string prior to =
pushing to state explicitly that it can be used for either foreground or =
background colours.

I didn't bother making separate functions since they would probably have =
been identical anyway, after studying the different cases. Hope that's =
all right, and if you can argue -- after having used it yourself in your =
own code -- that there is an important semantic distinction, then the =
code can be modified accordingly.





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

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


Received: (at 41544) by debbugs.gnu.org; 10 Jun 2020 18:45:53 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jun 10 14:45:53 2020
Received: from localhost ([127.0.0.1]:35357 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jj5jU-0000Cl-VR
	for submit <at> debbugs.gnu.org; Wed, 10 Jun 2020 14:45:53 -0400
Received: from eggs.gnu.org ([209.51.188.92]:45358)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1jj5jS-0000CV-GA
 for 41544 <at> debbugs.gnu.org; Wed, 10 Jun 2020 14:45:51 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:46546)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <eliz@HIDDEN>)
 id 1jj5jL-0002cR-KI; Wed, 10 Jun 2020 14:45:43 -0400
Received: from [176.228.60.248] (port=2723 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1jj5jK-0001B7-P0; Wed, 10 Jun 2020 14:45:43 -0400
Date: Wed, 10 Jun 2020 21:45:25 +0300
Message-Id: <83lfku69q2.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Mattias =?utf-8?Q?Engdeg=C3=A5rd?= <mattiase@HIDDEN>
In-Reply-To: <A829B1D4-5072-469D-A689-D448BA21176C@HIDDEN> (message from
 Mattias =?utf-8?Q?Engdeg=C3=A5rd?= on Wed, 10 Jun 2020 20:29:37 +0200)
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN> <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN> <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN> <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN> <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN> <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN> <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN> <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
 <83img48ffx.fsf@HIDDEN> <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN>
 <83bllw82xt.fsf@HIDDEN> <1B0F31C8-1E11-4527-A053-DD2DE8235F58@HIDDEN>
 <83wo4g5hz6.fsf@HIDDEN> <49B7D7B5-D9E3-4E97-A749-CF5E8D8EE2C6@HIDDEN>
 <83mu5b5573.fsf@HIDDEN> <A829B1D4-5072-469D-A689-D448BA21176C@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.1 (--)
X-Debbugs-Envelope-To: 41544
Cc: simenheg@HIDDEN, tom@HIDDEN, 41544 <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.1 (---)

> From: Mattias Engdegård <mattiase@HIDDEN>
> Date: Wed, 10 Jun 2020 20:29:37 +0200
> Cc: tom@HIDDEN, simenheg@HIDDEN, 41544 <at> debbugs.gnu.org
> 
> >  . the changes in list-colors-print
> >  . the addition of color-dark-p and the change in
> >    readable-foreground-color to use it
> >  . the replacement of css--contrasty-color with
> >    readable-foreground-color (assuming Tom doesn't object)
> 
> Thank you, pushed to master. It does not prevent extended use later on.

Thank you.

> Would still like a better reason for it than a curt dismissal without any technical argument whatsoever other than a general aversion to change. The proposed code is likely considerably better researched and tested than what it aimed to replace ever was.

I gave all the reasons I have.  They are serious, at least to me.
They have nothing to do with the quality of your research or of the
resulting code.  They have everything to do with considerations of
stability, and with weighing risks and efforts vs advantages.  If you
don't regard such considerations as technical arguments, so be it.

However, after saying that in so many different ways, I don't see any
point in continuing the argument, as we evidently disagree.  Let's
move on, we both have better things to do.




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

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


Received: (at 41544) by debbugs.gnu.org; 10 Jun 2020 18:38:16 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jun 10 14:38:16 2020
Received: from localhost ([127.0.0.1]:35353 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jj5c8-0008Rp-4M
	for submit <at> debbugs.gnu.org; Wed, 10 Jun 2020 14:38:16 -0400
Received: from aserp2120.oracle.com ([141.146.126.78]:41376)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <drew.adams@HIDDEN>) id 1jj5c6-0008RZ-7b
 for 41544 <at> debbugs.gnu.org; Wed, 10 Jun 2020 14:38:14 -0400
Received: from pps.filterd (aserp2120.oracle.com [127.0.0.1])
 by aserp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 05AIN3NK184489;
 Wed, 10 Jun 2020 18:38:03 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com;
 h=mime-version :
 message-id : date : from : sender : to : cc : subject : references :
 in-reply-to : content-type : content-transfer-encoding; s=corp-2020-01-29;
 bh=guIvITPg7n2ObkUc1TTA/V4yAnXvTpgvQUACDCr19EA=;
 b=D2HBANUtKQyzdiXousp7KBLawRA5z8M2WLfia+NyzH3EkUos2dm45V1WoRTlrPhVAbFG
 aIMQAZhaVta2ku93O4co/8lf5X8nfd0baVrRGo8P/MHvZhCd5vgBz9n1TxitrGqLgeoy
 Gm1Lqwpk5ysOjQngBILbT59IUZ1emfCa0T8IgpkahYxaHKHtE0fYDkfBtJmP7CW6+XSG
 CFJ70QT8RK+BUScxzePbiBcVye6VUdla6rr4g1phcU6mAqu1t7TgbVjg6OHsNjhz7o7u
 97ZT5wuWG6gD0QenRPGx3q4WRJLUacjAPL9oth21NATR6Kvpa/omsRnU+twFvCO3DPR/ Pg== 
Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79])
 by aserp2120.oracle.com with ESMTP id 31jepnwuwr-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL);
 Wed, 10 Jun 2020 18:38:03 +0000
Received: from pps.filterd (userp3020.oracle.com [127.0.0.1])
 by userp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 05AIIgJ3060784;
 Wed, 10 Jun 2020 18:38:03 GMT
Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235])
 by userp3020.oracle.com with ESMTP id 31gmwtpen6-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Wed, 10 Jun 2020 18:38:03 +0000
Received: from abhmp0014.oracle.com (abhmp0014.oracle.com [141.146.116.20])
 by aserv0121.oracle.com (8.14.4/8.13.8) with ESMTP id 05AIbnqt005876;
 Wed, 10 Jun 2020 18:37:52 GMT
MIME-Version: 1.0
Message-ID: <7073e74c-9535-45c9-9d46-3e1080381a8c@default>
Date: Wed, 10 Jun 2020 11:37:49 -0700 (PDT)
From: Drew Adams <drew.adams@HIDDEN>
To: =?iso-8859-1?B?TWF0dGlhcyBFbmdkZWflcmQ=?= <mattiase@HIDDEN>
Subject: RE: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN> <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN> <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN> <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN> <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN> <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN> <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN> <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
 <83img48ffx.fsf@HIDDEN> <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN>
 <83bllw82xt.fsf@HIDDEN> <1B0F31C8-1E11-4527-A053-DD2DE8235F58@HIDDEN>
 <0b4807d5-a5b9-47ad-91eb-d9240ea330e1@default>
 <E4880FCB-AC8D-4418-8512-FF63A1FC4760@HIDDEN>
In-Reply-To: <E4880FCB-AC8D-4418-8512-FF63A1FC4760@HIDDEN>
X-Priority: 3
X-Mailer: Oracle Beehive Extensions for Outlook 2.0.1.9.1  (1003210) [OL
 16.0.5005.0 (x86)]
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9648
 signatures=668680
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0
 spamscore=0 adultscore=0
 mlxscore=0 mlxlogscore=891 bulkscore=0 malwarescore=0 phishscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2004280000
 definitions=main-2006100139
X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9648
 signatures=668680
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0
 lowpriorityscore=0 suspectscore=0
 priorityscore=1501 bulkscore=0 clxscore=1015 phishscore=0 impostorscore=0
 malwarescore=0 mlxscore=0 cotscore=-2147483648 adultscore=0 spamscore=0
 mlxlogscore=931 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2004280000 definitions=main-2006100139
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 41544
Cc: =?iso-8859-1?B?U2ltZW4gSGVnZ2VzdPh5bA==?= <simenheg@HIDDEN>,
 Eli Zaretskii <eliz@HIDDEN>, 41544 <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 (---)

> > I still have the same comment as before, regarding
> > the name `color-dark-p' and the doc string
>=20
> Quite, both naming and documentation can be improved. Those will have to
> follow the semantics, so that will have to be nailed first.

So this never happened?  The bug was "fixed" without
fixing this mismatch?  Too bad, if so.




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

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


Received: (at 41544) by debbugs.gnu.org; 10 Jun 2020 18:29:45 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jun 10 14:29:45 2020
Received: from localhost ([127.0.0.1]:35341 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jj5Ts-0008Ce-V0
	for submit <at> debbugs.gnu.org; Wed, 10 Jun 2020 14:29:45 -0400
Received: from mail210c50.megamailservers.eu ([91.136.10.220]:58638
 helo=mail194c50.megamailservers.eu)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mattiase@HIDDEN>) id 1jj5Tr-0008CV-Mm
 for 41544 <at> debbugs.gnu.org; Wed, 10 Jun 2020 14:29:44 -0400
X-Authenticated-User: mattiase@HIDDEN
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu;
 s=maildub; t=1591813781;
 bh=fc/YGrssHJ8gVJ070dklY2+wiytkIn6XTq9Vxf/EIJM=;
 h=Subject:From:In-Reply-To:Date:Cc:References:To:From;
 b=lNeTm5oNKynfj+AVRRi9NDcP39tyvHn59Gul5t1Ra76hI4iLrmnHH6Jr3ioCD8INF
 qFnJn+0DeAy/yuD9TdzJyES5v4c4+7hT1Z6JcG2SBW06nd6A+JvxoWxv+fVuJtnA+E
 3UmmXsiPblAILsPc0C5MaA2D2qP4EKF2a5ULlS7M=
Feedback-ID: mattiase@HIDDEN
Received: from [192.168.0.4] (c188-150-171-71.bredband.comhem.se
 [188.150.171.71]) (authenticated bits=0)
 by mail194c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 05AITc6R026660; 
 Wed, 10 Jun 2020 18:29:39 +0000
Content-Type: text/plain;
	charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.14\))
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>
In-Reply-To: <83mu5b5573.fsf@HIDDEN>
Date: Wed, 10 Jun 2020 20:29:37 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <A829B1D4-5072-469D-A689-D448BA21176C@HIDDEN>
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN> <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN> <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN> <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN> <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN> <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN> <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN> <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
 <83img48ffx.fsf@HIDDEN> <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN>
 <83bllw82xt.fsf@HIDDEN> <1B0F31C8-1E11-4527-A053-DD2DE8235F58@HIDDEN>
 <83wo4g5hz6.fsf@HIDDEN> <49B7D7B5-D9E3-4E97-A749-CF5E8D8EE2C6@HIDDEN>
 <83mu5b5573.fsf@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
X-Mailer: Apple Mail (2.3445.104.14)
X-CTCH-RefID: str=0001.0A782F16.5EE12695.0066, ss=1, re=0.000, recu=0.000,
 reip=0.000, cl=1, cld=1, fgs=0
X-CTCH-VOD: Unknown
X-CTCH-Spam: Unknown
X-CTCH-Score: 0.000
X-CTCH-Rules: 
X-CTCH-Flags: 0
X-CTCH-ScoreCust: 0.000
X-CSC: 0
X-CHA: v=2.3 cv=KsozJleN c=1 sm=1 tr=0 a=SF+I6pRkHZhrawxbOkkvaA==:117
 a=SF+I6pRkHZhrawxbOkkvaA==:17 a=kj9zAlcOel0A:10 a=M51BFTxLslgA:10
 a=mDV3o1hIAAAA:8 a=ZKmGqOLGlA_ATwHfmhUA:9 a=CjuIK1q_8ugA:10
 a=_FVE-zBwftR9WsbkzFJk:22
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 41544
Cc: simenheg@HIDDEN, tom@HIDDEN, 41544 <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.0 (/)

10 juni 2020 kl. 17.08 skrev Eli Zaretskii <eliz@HIDDEN>:

> Please make sure the doc string says that the function will return
> either the black or the white color, depending on which one will
> contrast better with COLOR.  Otherwise it is impossible to know,
> without looking at the code, that this function can return only these
> two colors.

A good suggestion -- followed.

> Other than that, I'm okay with the following parts of your patch:
>=20
>  . the changes in list-colors-print
>  . the addition of color-dark-p and the change in
>    readable-foreground-color to use it
>  . the replacement of css--contrasty-color with
>    readable-foreground-color (assuming Tom doesn't object)

Thank you, pushed to master. It does not prevent extended use later on.

Would still like a better reason for it than a curt dismissal without =
any technical argument whatsoever other than a general aversion to =
change. The proposed code is likely considerably better researched and =
tested than what it aimed to replace ever was.





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

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


Received: (at 41544) by debbugs.gnu.org; 10 Jun 2020 15:09:01 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jun 10 11:09:00 2020
Received: from localhost ([127.0.0.1]:35091 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jj2Lc-0000pG-JV
	for submit <at> debbugs.gnu.org; Wed, 10 Jun 2020 11:09:00 -0400
Received: from eggs.gnu.org ([209.51.188.92]:57296)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1jj2La-0000p3-3P
 for 41544 <at> debbugs.gnu.org; Wed, 10 Jun 2020 11:08:58 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:42167)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <eliz@HIDDEN>)
 id 1jj2LT-00088c-MB; Wed, 10 Jun 2020 11:08:51 -0400
Received: from [176.228.60.248] (port=4231 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1jj2LS-0004yw-Oy; Wed, 10 Jun 2020 11:08:51 -0400
Date: Wed, 10 Jun 2020 18:08:32 +0300
Message-Id: <83mu5b5573.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Mattias =?utf-8?Q?Engdeg=C3=A5rd?= <mattiase@HIDDEN>
In-Reply-To: <49B7D7B5-D9E3-4E97-A749-CF5E8D8EE2C6@HIDDEN> (message from
 Mattias =?utf-8?Q?Engdeg=C3=A5rd?= on Wed, 10 Jun 2020 16:51:24 +0200)
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN> <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN> <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN> <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN> <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN> <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN> <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN> <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
 <83img48ffx.fsf@HIDDEN> <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN>
 <83bllw82xt.fsf@HIDDEN> <1B0F31C8-1E11-4527-A053-DD2DE8235F58@HIDDEN>
 <83wo4g5hz6.fsf@HIDDEN> <49B7D7B5-D9E3-4E97-A749-CF5E8D8EE2C6@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.1 (--)
X-Debbugs-Envelope-To: 41544
Cc: simenheg@HIDDEN, tom@HIDDEN, 41544 <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.1 (---)

> From: Mattias Engdegård <mattiase@HIDDEN>
> Date: Wed, 10 Jun 2020 16:51:24 +0200
> Cc: Tom Tromey <tom@HIDDEN>, simenheg@HIDDEN, 41544 <at> debbugs.gnu.org
> 
>  (defun readable-foreground-color (color)
>    "Return a readable foreground color for background COLOR."

Please make sure the doc string says that the function will return
either the black or the white color, depending on which one will
contrast better with COLOR.  Otherwise it is impossible to know,
without looking at the code, that this function can return only these
two colors.

Other than that, I'm okay with the following parts of your patch:

  . the changes in list-colors-print
  . the addition of color-dark-p and the change in
    readable-foreground-color to use it
  . the replacement of css--contrasty-color with
    readable-foreground-color (assuming Tom doesn't object)

Please don't install anything else.

Thanks.




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

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


Received: (at 41544) by debbugs.gnu.org; 10 Jun 2020 14:51:41 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jun 10 10:51:41 2020
Received: from localhost ([127.0.0.1]:35015 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jj24q-0000Le-UW
	for submit <at> debbugs.gnu.org; Wed, 10 Jun 2020 10:51:40 -0400
Received: from mail1472c50.megamailservers.eu ([91.136.14.72]:59898
 helo=mail102c50.megamailservers.eu)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mattiase@HIDDEN>) id 1jj24o-0000LO-8n
 for 41544 <at> debbugs.gnu.org; Wed, 10 Jun 2020 10:51:39 -0400
X-Authenticated-User: mattiase@HIDDEN
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu;
 s=maildub; t=1591800689;
 bh=TdBKlRHO1luPd5nw2LqNS3YGbkUG9bHm1puvw3mOyuQ=;
 h=From:Subject:Date:In-Reply-To:Cc:To:References:From;
 b=Xqg+YynTptpsWrE37en05CqYW+t75qGbYhbjfoTrXrN/aBFad3v3hVQ+xK5t2uMm3
 GWoY5c6Zyl99Wu6DYyZ1gap8djMU/+EvC4/K3F1737PtzY9BpeXoVWt3hrpgrzOcAp
 E0mW1ojOLp1MIUxBJ7Xh7K9eyePF906kt6TP9euw=
Feedback-ID: mattiase@HIDDEN
Received: from [192.168.0.4] (c188-150-171-71.bredband.comhem.se
 [188.150.171.71]) (authenticated bits=0)
 by mail102c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 05AEpPrg008390; 
 Wed, 10 Jun 2020 14:51:27 +0000
From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>
Message-Id: <49B7D7B5-D9E3-4E97-A749-CF5E8D8EE2C6@HIDDEN>
Content-Type: multipart/mixed;
 boundary="Apple-Mail=_6F17D297-4269-4872-8C80-C4479CA1382B"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.14\))
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
Date: Wed, 10 Jun 2020 16:51:24 +0200
In-Reply-To: <83wo4g5hz6.fsf@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN> <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN> <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN> <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN> <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN> <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN> <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN> <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
 <83img48ffx.fsf@HIDDEN> <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN>
 <83bllw82xt.fsf@HIDDEN> <1B0F31C8-1E11-4527-A053-DD2DE8235F58@HIDDEN>
 <83wo4g5hz6.fsf@HIDDEN>
X-Mailer: Apple Mail (2.3445.104.14)
X-CTCH-RefID: str=0001.0A782F20.5EE0F2E2.0029, ss=1, re=0.000, recu=0.000,
 reip=0.000, cl=1, cld=1, fgs=0
X-CTCH-VOD: Unknown
X-CTCH-Spam: Unknown
X-CTCH-Score: 0.000
X-CTCH-Rules: 
X-CTCH-Flags: 0
X-CTCH-ScoreCust: 0.000
X-CSC: 0
X-CHA: v=2.3 cv=S52nP7kP c=1 sm=1 tr=0 a=SF+I6pRkHZhrawxbOkkvaA==:117
 a=SF+I6pRkHZhrawxbOkkvaA==:17 a=M51BFTxLslgA:10 a=mDV3o1hIAAAA:8
 a=kfNVcK2iS-W87huDdlEA:9 a=CjuIK1q_8ugA:10 a=lGF3lR9w51y1-4mckb4A:9
 a=yqeNY1akf6KHNrAA:18 a=HXjIzolwW10A:10 a=T6a71-JsGAwA:10
 a=aEPl1mVp0m1puAZP54IA:9 a=vkNixvT7t99V8_m2IUwA:9 a=EBHNVijxwc4VbIUE:18
 a=YJhQbpU6uDDJ0y4jywQA:9 a=fZWv9ZC44yW6LjfT:21 a=3mH4_fjekTG3icXz:21
 a=XW0Riyo6ierAjKN0HB4A:9 a=F4d38yluVZt48hL4:18 a=o2KRJY66TO9FCUnQf8YA:9
 a=v2P1BxBuv7hAHzKYk4wA:9 a=4P5X5LYwo7aTLCV4:18 a=xceWIb6BRPLUjjSNeugA:9
 a=LUiTdrM7ar1z_bhPKtoA:9 a=B2y7HmGcmWMA:10 a=_FVE-zBwftR9WsbkzFJk:22
X-Debbugs-Envelope-To: 41544
Cc: simenheg@HIDDEN, Tom Tromey <tom@HIDDEN>, 41544 <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>


--Apple-Mail=_6F17D297-4269-4872-8C80-C4479CA1382B
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

9 juni 2020 kl. 18.20 skrev Eli Zaretskii <eliz@HIDDEN>:

>> Let's consider the three saturated colours #ff0000 (red), #00ff00 =
(green) and #0000ff (blue). Black text looks terrible on blue, as does =
white on green; black on red isn't good either. This comes as no =
surprise: the human eye is more sensitive to brightness levels of green =
than blue, with red somewhere in-between.
>=20
> Here we already not necessarily agree: at least on some text-mode
> terminals some of the above combinations look quite legible to me.

Of course there will be some terminals where some of the combinations =
are legible. But that wasn't the point, the point being that they are =
less legible that the alternative, and on most terminals substantially =
so.

> Like I said: individual taste and differences, as well as different
> RGB values used by some terminals for the same color names, can and do
> wreak havoc on this, so a perfect solution is simply not possible.

Nowhere did I claim perfection; let's tuck away the straw men. However, =
I do think we should strive to do as well as we can, and I think I'm not =
alone. This is not a matter of individual taste: colour perception is a =
science.

It is true that Emacs sometimes doesn't know the exact colours used by =
the terminal, but that is a problem that the old code suffers from as =
well. Maybe the old predicates are more robust for bad input? =
Unfortunately, there is no evidence of this at all; I've experimented =
with many terminals and settings. See further below for a =
counter-example.

> Again, I see no practical problems described here, just a theoretical
> issue with the particular implementations we have now.  Those
> implementations do their job, although they are clearly not perfect.
> However, I seed no reason to seek perfection in this case.

Again, it is not a matter of perfection but about being better. Or more =
critically, avoiding being bad. The new predicate almost never gives bad =
results; the old ones often do.

If you want to argue for the old code, please come up with precise =
examples of colours for which they avoid a bad decision while =
colour-dark-p does not. You could also show how the old predicates are =
better than the new one in a majority of cases. Describe the =
circumstances (environment, configuration etc) so that they can be =
reproduced.

Meanwhile, here are two screenshots of Emacs displaying some lisp code, =
both using XTerm version 328, configured for 256 colours, with =
TERM=3Dxterm-256color, and the same background, without any Emacs =
customisation.

First, without the patch:


--Apple-Mail=_6F17D297-4269-4872-8C80-C4479CA1382B
Content-Disposition: inline;
	filename=without-patch.png
Content-Type: image/png;
	x-unix-mode=0644;
	name="without-patch.png"
Content-Transfer-Encoding: base64

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
f/1vtr9VH2AcKG1AGmY29DaKGjubUpo6Do472NLs13zg95G/bz9keajqsOHh5UeoR4qPDBwtOtp3
THqs53jm8Qct01punZh44vLJCSfbTkWeOvNH2B8nTrNPHz3jf+bQWd+zB895n2s873m+odWj9cCf
Hn8eaPNsa7jgdaGp3ae9uWNsx5GLgRePXwq59Mdl7uXzV6KvdFxNvHr92uRrndcF15/cyLnx4mbB
zf5b828Tbpfe0b1Tftf0bs2/HP+1p9Oz8/C9kHut9+Pv33rAf/Dsofzhx67iR/RH5Y8tHtc+cXty
qDusu/3ppKddz6TP+ntK/tL7q/q5w/Pf/g76u7V3Ym/XC9mLgZdLXxm/2v56zOuWvti+u29y3/S/
LX1n/G7He+/3pz8kf3jcP+Mj6WPFJ8dPzZ8jP98eyB0YkPJkPNVRAIMNzcgA4OV2AOgp8OzQDgB1
kvqepxJEfTdVIfCfsPouqBJPALYHAZA4H4AoeEbZCJstxDT4VB7VE4IA6u4+1DQiz3B3U3PR4I2H
8G5g4JUZAKRmAD7JBgb6NwwMfNoKg70BwLE89f1SKUR4N/jZSIlar+mCb+XfPzZ+cSYrG50AAAAJ
cEhZcwAAFiUAABYlAUlSJPAAAAIFaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRh
IHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA1LjQuMCI+CiAgIDxy
ZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4
LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHht
bG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxu
czp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyI+CiAgICAgICAgIDxleGlmOlBp
eGVsWURpbWVuc2lvbj43MzI8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQ
aXhlbFhEaW1lbnNpb24+MTAyNDwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDx0aWZm
Ok9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9u
PgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgoJl6qxAABAAElEQVR4AezdPZYlyXEu2qy3egpP
p0jxToDS5QAoAkPBCDCUgogB8EqcwBUpUn+DyIfqxtfdaZ2WHhEn/mNjLdDb3c3NzXecLCCOMwvf
3t6/v7/5FwECBAgQIECAAAECBAgQeLDA//Pgszs6AQIECBAgQIAAAQIECBD4WcDLsQ8CAQIECBAg
QIAAAQIECDxe4KcPAt/+/KGrQ4AAAQIECBAgQIAAAQIEbinw/v3Dsdwcf+DQIUCAAAECBAgQIECA
AIEnCng5fuJTd2YCBAgQIECAAAECBAgQ+CDg5fgDhw4BAgQIECBAgAABAgQIPFHg4+8cl/+f6xbk
1d9Nrvu8mq8tdDBR6+jCp9aXfFPju/22Hk+ddZ+z113rvVq/c8851vav+43yz41P3Vdp6/m6ukdO
3bql47WuvfdP3bWOjNf2qPpqHXv34/OU84/OO5qf+nySJ/FP8c15tQQIECBwKgE3x6d6HIohQIAA
AQIECBAgQIAAgSMEPt4cp4Kl39zmG+DR+swnPvse1aaerffPeUf7TY2bW+8o72h+6n5L8yxdN7Wu
o+Py3LtzduNz6+7yrDU+t56zxMc/9XQemd+rTV2pZ699u31STzdvfJlAni/fj37xiM/HWT0CBAgQ
ILCrgJvjXbltRoAAAQIECBAgQIAAAQJnFPj85nhppfkGeOn6u6/j8/UT5vO1z6uzc33nxr9an/UE
7izg5+nOT9fZCBAgQOAmAm6Ob/IgHYMAAQIECBAgQIAAAQIElgusc3Ncf1do7W/Ia/6cd+19knfU
dvV062p8V3eNq/1uXbfvq+N1/5qv1lPja7/GJ9/UuC4+4zV/8mY8/S4+4zUu48mT/tZt6uj2Hc1v
VV/2rflrnYnLePpZl/H009a4jHfxmd+qnVvP3Pi5dW+df2o9tY48n4ynX/Nlvo4fFV/rWLtfz9ud
M/vW+IzXdV1cF5/xrduurlr/3Dq6vMnzav7k0RIgQIDAowXcHD/68Ts8AQIECBAgQIAAAQIECPwQ
+PzmuPuGtvtmNuPduqXWyZf8Nc9ovsZ3/eSp83XfxNXxrMt8+mkT3813cVmX+aParo6cJ/Np6/io
7rquix/l7eanjndxqWc0n7ipbfIlPg7pz21rvtqv+et87XfxdTx1Zn2dnzrexY3yZ37tdm49c+Pn
1rt1/tSTfdJPW59rHc+6xNV+jU8/bY2v/cSlrfO1n7i0dT79zHdtztPNj8azfrRf5hNf83bzc+Nr
3lE/+06N27qerfOPzmmeAAECBG4t4Ob41o/X4QgQIECAAAECBAgQIEBgisDnN8fdN7NTMm4RM/Wb
66V7n+28S89h3ecCU59v4urnLeNpP99l/mjNl33r+NTMWTc1z9z41JH86Y/a7FPj6nj6NX/G09Y8
T+nn/Fv7ZJ+tXGv9S/epdaZf82c8bfar/Ywf1aaeqfXvVWfqqvvVOjPfjWdeS4AAAQIETizg5vjE
D0dpBAgQIECAAAECBAgQILCPwOc3x/vsPX2X7pvr6RlEEpguUD9vuQmp49Mz3itya4ean//Hz89V
fUbPMfMfTzu/d1WfnPRu9edcWgIECBAgcAEBN8cXeEhKJECAAAECBAgQIECAAIFtBa5xc9wZ5Kah
ftPexV99/KjzZt/qN9c9eeauq/tu1e/qS73d/Fb1dHlTRzd/1HjqitfcOrr1ydfNz93nqvHd+a/u
k3PNfS5ZNzr/aH7uvlvF1/Nkn1H9WZf4tFmX/tFt6ny1ruSp53k1b82nT4AAAQKPFHBz/MjH7tAE
CBAgQIAAAQIECBAg8HuBdW6O6ze56Xff5GY+laRf49PPfOLTZj79pW2XP/myT9pRfNalrfHpJ1/i
0mY8cXU8/bltlzd5Mp9+2m4887VN/NT6a1z6yZP86Wc+42kzn/7cNuu3yl/z1n72T93pd3F1POu2
art6sl/m05/bZn13rszPzbs0PvtNrWdufOqq+dNPvsSln/mMp818+kvbLn/ydft043VdzZ91U8dr
vtqveep8+kvbLn/y5Tzp1/j0a1z6mc/6tJlPP203nvm92tQxt/4an37y1fq78RqnT4AAAQIEFgi4
OV6AZgkBAgQIECBAgAABAgQI3Evg29v79/dfj+Qb2V8p/MM/BEbf4EMiQIAAgWMEnvbn89POe8yn
yq4ECBB4nkD+8+WfJ3dz/LyPgBMTIECAAAECBAgQIECAQBHwclxAdAkQIECAAAECBAgQIEDgeQJe
jp/3zJ2YAAECBAgQIECAAAECBIrAx985LpO6BAgQIECAAAECBAgQIEDgCQJujp/wlJ2RAAECBAgQ
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
gAABAgQOEbjEzfFUmXzznW/qu37y1biMp818+lu32S911/0yX8fn9rv8c/McHZ9zxCX9o+sa7X+2
Os9Wz8jPPIErCfj5utLTUisBAgQIPF3AzfHTPwHOT4AAAQIECBAgQIAAAQJvt7o5Xut55iZyrXw1
z9z8c+OzX9ZNvbmYG599jm5zvrXrT76cL/ukv3ab/eo+dbz2ax2Zr+M1b52v/eSZum7r+Frf3H7O
kTrnrt87PnWm7r33f3W/revfOv+r5x+tn1v/1PjEjfbfej51XPXzu7WP/AQIECBwTgE3x+d8Lqoi
QIAAAQIECBAgQIAAgR0FLnFznG+gO5f6zXT6WZd+XZ/xxGW+G898jU8/6xKXfubXHp+abxRX59Pf
uu18sm/m0z+qXauO5Kmfh5wr8+knro6nP5pPnq6teWpc5jOefvbNeNrMp58243VdxhOXtsal38Vn
3dS2y5N9pubp4mqe9Lt9M5645M14+lu32a/WkX0zn37ajNd1GU/c0jZ5Rvm7uOyb+fS3brNfrTv7
Zj79tBmv6zI+Na6uz7qt27pv+rX+reuQnwABAgQILBFwc7xEzRoCBAgQIECAAAECBAgQuJXAt7f3
7++3OpHDEHhR4Ko3HVet+8XHNXn5yGc0P3kjgQQIvPl58iEgQIAAgSsKuDm+4lNTMwECBAgQIECA
AAECBAisKuDmeFVOyQgcJ+CmZpp9nGq034msIvoECBAgQIAAgWcJuDl+1vN2WgIECBAgQIAAAQIE
CBD4RMDN8ScohggQIECAAAECBAgQIEDgWQJujp/1vJ2WAAECBAgQIECAAAECBD4R8HL8CYohAgQI
ECBAgAABAgQIEHiWgJfjZz1vpyVAgAABAgQIECBAgACBTwR++mTs1/99wjo3+ttc698CO4qv+Wu/
5qvz6dd9unVT40Z5a57EZ99uPnFL263zL63LOgJXEsjPUWre6uc1+bXnFsjnIZ+D2j939aojQIAA
AQIE1hRwc7ymplwECBAgQIAAAQIECBAgcEmBT2+O536D3n3T3o3PlUo9o3Wj/br5Ln8XP6rD/LkE
PMdtnsdVXfPznvq30ZGVAAECBAgQIEDgagJujq/2xNRLgAABAgQIECBAgAABAqsLfHpzvNYuuaFZ
K99Z8uTGKedL/yz1qYPAHgL5/O+xlz0IECBAgAABAgQIbC3g5nhrYfkJECBAgAABAgQIECBA4PQC
m94cn/70CwvMjVlujGt/YdpflyXvrwODf+jiU1ddvnV83a/rp47UmX7iM55+2hqX8Rpf42q/i6/j
yZ/1me/6iU9c+nPjs27rNnXVfWr9ma/xXVwXn/G6Lnkznn4Xn/Eal/HkSX+vdmo9iUud6afOjKe/
tK15k6fmT1zG018rPnlq3oxn3/QTl/H0M5/x9Je2NU/tL81rHQECBAgQIHA9ATfH13tmKiZAgAAB
AgQIECBAgACBlQVeujmu3+TX/lrfwNe8MbhK/tQ7anPO7lyZT570R/GZ3zo+dc1tu7rqeO3Xfer8
1HPXPHP7dd+sX2s8+dZuu/qyTzdfXRNf22594rr5ueOpJ3nTdnkyv1U7t56uzm58at2j9d38VuNd
3pynm587nnxaAgQIECBAgMBcATfHc8XEEyBAgAABAgQIECBAgMDtBF66Oc4NSffN/lpa2WetfDVP
8s89R9bVfGfv55yjOnO+Gp/xtKM8o/kuTzde6xnl33q+q3Pu+NZ11vypr3pmPG1dt3V/7r61/q3r
G+WfW8/c8472r/Nr1dPVOXe81jfqb51/tL95AgQIECBA4DkCbo6f86ydlAABAgQIECBAgAABAgQa
gZdujpuclx3ODUVuWtK/7IGawueeq8Yf7VPraY5peKJA9Tz6+U4s+21UZ+an5ns1LvtVz+TNfPp7
tV09e+1vHwIECBAgQIDAVQTcHF/lSamTAAECBAgQIECAAAECBDYTcHP8CW1uWnLTk/4nobcaquet
/Rw2Ht184vZu59YzNT5xe5+n7lfryHOocVP7yVfzpN/NT81f80xd92pc6n41z1rrz1ZPzpW68pwy
fpf27ue7y3NyDgIECBAgcCYBN8dnehpqIUCAAAECBAgQIECAAIFDBD69Oc437qko/bPfMKS+1Jv6
02Y+/bO1qa+rv9Y7is981qXf5c/80vis26pNfVPrTx3duoxPjev2zfq92lr30n2TpztX5mv+Gp9+
F9+NZ13NP7WfvDVPN568NT79rEvc3Dbrky/ru/HMb9WO9s38VvvXvNmv+iQu8+kvbWv+9NfKv7Qu
6wgQIECAAIHzC7g5Pv8zUiEBAgQIECBAgAABAgQIbCzw7e39+/vGe0hPgMALAle9+RrVPZp/gcxS
AsO/zRwRAQIECBAgQKAKuDmuIvoECBAgQIAAAQIECBAg8DgBN8ePe+QOTGBfgdwQ1139DmgV0SdA
gAABAgQIEDhSwM3xkfr2JkCAAAECBAgQIECAAIFTCLg5PsVjUAQBAgQIECBAgAABAgQIHCng5vhI
fXsTIECAAAECBAgQIECAwCkEzvFy/O3Pb28//u1f1xDwvPZ9TnO958bvexq7ESBAgAABAgQIEDil
wDlejk9JoygCBAgQIECAAAECBAgQeIrAsb9znNvi9+8Lvf/0z3V/W7h+6bLsm/V77599d25ffV5H
r9+Za/Xt5vrNjV+9YAkJECBAgAABAgQIXEfAzfF1npVKCRAgQIAAAQIECBAgQGAjAS/Hi2B/3BQ/
5LZ4kY9FXwr8uNHNre6XgSYJECBAgAABAgQIENhLwMvxXtL2IUCAAAECBAgQIECAAIHTCvx0SGW5
NVv8u8aHVP3cTT2vczz7/LxMfR5z489xSlUQIECAAAECBAgQOETAzfEh7DYlQIAAAQIECBAgQIAA
gTMJHHNzPFug/u3QowRdfPd7wnPjR/vX+an5E5c600++jKeftsZlvIvP/EZtbjanpu/ic/NZ80yN
T9woT53Purpvjavzo37NW/uv5h/tb54AAQIECBAgQIAAgVbAzXFLY4IAAQIECBAgQIAAAQIEniJw
8pvj3Ih2N6CZz+NKfxSf+bnx2Wdum/3qum7/qeNdXPYZzSdupTY3od0NaOazXfqj+Dpf+1PzJa5r
l9bT5avjqXu0T12nT4AAAQIECBAgQIDA5gJujjcntgEBAgQIECBAgAABAgQInF3g5DfHS/lyY7p0
fdZ1N76Zn9rOrafbtxufm39q3TvF5SZ1p+1sQ4AAAQIECBAgQIAAgSrg5riK6BMgQIAAAQIECBAg
QIDA4wRuenPc3bDu/Xxzo9vVk/lX6+ryv5p3p/X5XdydtrMNAQIECBAgQIAAAQIEqoCb4yqiT4AA
AQIECBAgQIAAAQKPEzjm5jg3hfld0/Q3589N7dSb1rnxUw+QvFPjl8Zln6nnbfbJ89n7eW21X/LW
49Zz1vmt+6krddT9RvOvxtf1+gQIECBAgAABAgQeJODm+EEP21EJECBAgAABAgQIECBA4HOBY26O
P6/lk9HceOYG9JOQD0Oj+MxnUfpd/swnPm2NT7/Gp5/5rO/GMz+1HeXJ/NR8L8blxjM3nKN0o/jM
1zxd/hqffo3vxrNP5tNPW/NkfG6b/DVfxufmE0+AAAECBAgQIECAwMsCbo5fJpSAAAECBAgQIECA
AAECBK4u8O3t/fv74YfIDZqbs8MfxaQC7vq8RucazU/CWxA0d9+58QtKsoQAAQIECBAgQIDA3QTc
HN/tiToPAQIECBAgQIAAAQIECMwWOMfN8eyyLSCwoUBuXusW/j8bqog+AQIECBAgQIAAgdsIuDm+
zaN0EAIECBAgQIAAAQIECBBYKnDyv6166bGsI/CCgBviF/AsJUCAAAECBAgQIHBNATfH13xuqiZA
gAABAgQIECBAgACBFQWOfTn+8bud3e93fnXIpeu+ymmOAAECBAgQIECAAAECBB4rcOzL8WPZHZwA
AQIECBAgQIAAAQIEziRw7O8c53c7c3ucfic0Na5bf7nxP/2z4r+do/L4p5rR80qclgABAgQIECBA
gAABAicXcHN88gekPAIECBAgQIAAAQIECBDYXuDYm+Oczw1kJP7Z5sa4DB/VzY1xfU7d+FF12pcA
AQIECBAgQIAAAQILBdwcL4SzjAABAgQIECBAgAABAgTuI3COm+OR52NuKHNjnN8xTn8EdNB8vUk+
qAzbEiBAgAABAgQIECBA4FUBN8evClpPgAABAgQIECBAgAABApcXuMbN8WTm0U1rbmSTMPEZTz/z
GU8/bY3L+Kvx3frkv0ibm/5abr1pTlzG08+6jKffzWe8xmedlgABAgQIECBAgAABAgMBN8cDINME
CBAgQIAAAQIECBAgcH+Bm90c54F1N7C58a3zU8e7uOxb52s/cWlH84k7qM2NbLav/XpTm/k6XtfX
+W5dN571db72s6+WAAECBAgQIECAAAECAwE3xwMg0wQIECBAgAABAgQIECBwf4Gb3hzPfXD1Jjnr
u/HM37ztbmjXPnb2qXm78RqnT4AAAQIECBAgQIAAgRcF3By/CGg5AQIECBAgQIAAAQIECFxfwMvx
9Z+hExAgQIAAAQIECBAgQIDAiwJejl8EtJwAAQIECBAgQIAAAQIEri9wjd85zu+eTv7biPO3QNcH
tPfvEGe/rp5a3879eGbbOKevJUCAAAECBAgQIECAwEME3Bw/5EE7JgECBAgQIECAAAECBAj0Ate4
Oe7rb2ZyY9tMLx5O3u4mOPN1g2685qn95KnjXb7Ez2zXujFOnnojnXIyn/6r7dr5Xq3HegIECBAg
QIAAAQIELivg5viyj07hBAgQIECAAAECBAgQILCWwLe39+/vayXbLU9uJv9wc5gb1pVvVhcfbFTP
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
OXUTIECAAAECBAgQIECAwGoCh9wc1xuh2l96unpDWPN08xmv8a/Wlbxdnm4+46N6alztj/Yd5a/z
V+3HIT61v/e5UkfdN3VlPHF1vJtPfOZrO8qzdnytp/an1jOKy/zS/Dl38qS/tK11JM9R+afWk7jU
mf6o/hrXxde42s++WZ+2xmW8xicu4+mP4jM/ik/c1Db5ptaTvFmXftrkSb/G1X4XX8drvswnX+0n
PuPpz43PuqltzV/XdfMZr/G1/jo/6idvl6ebz3jN3+WpcfoECBAgsK2Am+NtfWUnQIAAAQIECBAg
QIAAgQsIHHJzPNdl629au29ss283P/ccU+O7/Wo9iavj3T6juNF8l7eOJ08dT711fG5/6/xz65ka
n7o7hzqfuDpe+3X/rKvjdV3trx2fOkb71H3rujpf+13+Ol77U/PUuFE/9de40f41vvZH6+t87U/N
162r47U/yh+X0bqaJ+vqeJdn6njydvF1v6X9Ln8dr/26X50/W/2pt9Y5Gs/8Vm2cav6uzhq3Vn+0
32h+rTrkIUCAAIGvBdwcf+1jlgABAgQIECBAgAABAgQeIHCJm+Pum9+1nk++sV0r36t5tq5n6/xb
P6/kzznSH7lPjRvleXU+dU/Nk7qzLv2p60dxyTuKG82vXddov8wftW/2r+1anjXvqL+Ww9Q8iavn
zXjaUd2j+Zp/FL/WvqN9ps539XTjc887tY6lcV2dc8eX7v/qurN5nq2eV32tJ0CAwN0E3Bzf7Yk6
DwECBAgQIECAAAECBAjMFrjEzfHUU+Wb7Hwz2/WTr8ZlPG3m09+6zX6pu+6X+To+t9/ln5vn6Pic
Iy7pH13XaP+z1Xm2ekZ+Z50ffQ4zf9b6l9ZVPz85Zx2fm3+UJ/Nz8549/lW3s59vaX1xyXPv+slf
4zKeNvPp79Wm7r32sw8BAgQIzBNwczzPSzQBAgQIECBAgAABAgQI3FDgVjfHaz2frb9Rnpt/bnwc
sm7qN9Vz47PP0W3Ot3b9yZfzZZ/0126zX92njtd+rSPzdbzmrfO1nzxT120dX+ub2885Uufc9Uvj
99ov++ScS+uduq7bL/t3813+qfGJ6/KsNZ59cp618i7NM7eeqfGJW1rX1dZtfd6l+bOu+7yN5q/2
HNRLgACBswq4OT7rk1EXAQIECBAgQIAAAQIECOwmcImb43xj2qnUb1rTz7r06/qMJy7z3Xjma3z6
WZe49DO/9vjUfKO4Op/+1m3nk30zn/5R7Vp1JE/9PORcmU8/cXU8/dF88nRtzVPjMp/x9LNvxtNm
Pv20Ga/rMp64tDUu/S4+66a2XZ7sMzVPjUvemqcbr+tH/VGezCdP+rWeOp/+3HZp/m5dxlNH+rX+
bjzr5rZdvozPzbc0PvvV8yZf5tNPm/G6LuNT4+r6rDtbm3Ol3vRrnRlPXOa78czX+PSzLnHpZ37p
eF2XftqaP/3snzgtAQIECKwj4OZ4HUdZCBAgQIAAAQIECBAgQODCAt/e3r+/X7h+pRNYXeCq38xf
te7VH2CTcOQzmm/SGiZAgMDmAv582pzYBgQIEPhZwM2xDwIBAgQIECBAgAABAgQIPF7AzfHjPwIA
7iLgZmHak4xTjfY7fFVEnwABAgQIECDwLAE3x8963k5LgAABAgQIECBAgAABAp8IuDn+BMUQAQIE
CBAgQIAAAQIECDxLwM3xs5630xIgQIAAAQIECBAgQIDAJwJejj9BMUSAAAECBAgQIECAAAECzxLw
cvys5+20BAgQIECAAAECBAgQIPCJwE+fjL0t/dtc67pX//bXmu+zWn+M1X26dVPjsk8XX8cTn327
+cRprymw9vNNvmiMPjdz45NXu6+A5/S5d1xGn/PPVxslcKzA2T+/qW+k5OdvJGSeAIGnC7g5fvon
wPkJECBAgAABAgQIECBA4O3Tm+N8s5hvItPvvLq4brzL042P9s+60X7dfJe/i89+V23veq6jn8dU
1y5urfG9HLp699r/rPvkz5P4nLVOdT1bIJ/PfF6frXH909fneJbne5Y6rv+EnYAAgb0E3BzvJW0f
AgQIECBAgAABAgQIEDitwKc3x2tVW7/JXCvv0XnqN6HpH12X/Y8VePXzPnf93Pi1dY7ef+3zyEfg
SQJ+fp/0tJ2VAAECBKYKuDmeKiWOAAECBAgQIECAAAECBG4rsOnN8V3V8o17boxrf+m5R/myT82f
dXW8xte42u/i63j2yfrMd/3EJy79ufF1Xfppa/6Mz21T19R1NX6tOqbuX+NqPZmvdSUu4+l38Rmf
G/dq/uybPOnPbVN3l6ebz3jdr8tT47p+8nZ5uvmM17yjPFPja1zXTx2jfUfzyT81rouv9aTfxWd8
apt8qTP9rM94+pmv4918jU8/8TVP5jOefhef8blxr+bPvsmT/tw2dXd56nzXz76jPIkbtdmnxtX8
ict4+lmX8fT3amsd2berZ2p8jav9V/Onzpo34zV/4up44rv5jCcubc2TuIyn38VnXEuAwPkE3Byf
75moiAABAgQIb4xBOQAALtRJREFUECBAgAABAgR2Fnjp5rh+M1b7+Qbt1TPVvMl3lfypd2qb89bz
1fHar/nrfPLV8bru1X6X/9Xxbn3qHc0nrmtH6zNf11fXOp9+XV/7yfNqfM1T89X51DF1PHFZl/xd
m7isS1wdr/3EpR3NJ27tttad/HvXM9qvztd+6k47mk/c2m23bx2v/VpHNz93vOYd9c+Wf249+Txn
3VrnTb7kr3lH8zV+rX63bx2v/bp/5jOe/tzzduu68ey3djvar87Xfq2nzseljtd16Y/i6nztJ0/a
0Xziuna0vpufO97tb5wAgeME3BwfZ29nAgQIECBAgAABAgQIEDiJwEs3x3O/GVx65uyzdP1oXfJ3
3/h167Oum1863uXtxlP30v3WXtfVOXe81pX19bwZT1vXnaWf+lJ/+l19mZ8anzyJT3/UZp8a143X
uFF/rTyjfbaan+u5VR3JO7WeuNf4jKdN3lfb7DPKO5qvdSRvHe/6c/N3ebrxLn833uXpxufmmRvf
7duNb52/23et8a3rX+vzuXWdnefU+lNfjc942m6fV8e3zt/VV8/bxWW8q7MbzzotAQLnEXBzfJ5n
oRICBAgQIECAAAECBAgQOEjgpZvjg2rebNt8s5dvCtPfbMOVEl+lzpWO+1bPe7XntZZDl6f6dHFP
G49L/bzUfly68Tqf/l5tzjF1vxo/OtfUvHvF1fr32tc+BKYIXP3zObf+Gn+VP09Sd6239uszz7o6
rk+AwH0F3Bzf99k6GQECBAgQIECAAAECBAhMFHBz/AlUvikcfaP4ydJTDc2tf2p84vY+bPbN88n+
6XfziXt6e3af+hzP+rziuFV9S/NnXXVMP/WmX+Mzf5X2qvWn7qs4T62zfq6mrns17qyeqSsur55z
7/W1/tpPPTlfN5+42m4dX/dbuz+3/tH+yZe4uKavJUBgPwE3x/tZ24kAAQIECBAgQIAAAQIETirw
6c1x/QYr/bN/k5X6Um81z3wdv2o/55l73m5dxuORfs3fjWfdVu1o38wv3T/r63lH+Wp8+sk3Wr/W
fPbL/jVv5uv43H7Nn/5a+bs82WduvTU++ZMv/VFc5hOf9RlPW8fTz7rEpZ/5peN1Xe3X/HU+/blt
rb/rz82b+Jov42kzn/7Z2tRX/bvxveqv9aSful6to8uTfZbmT96apxufu8/cPKP4zM+tY6/41Fc9
s3/ma39q/Gjdq/mz/tV6kif1ps343PxZv7TNvkvXW0eAwOsCbo5fN5SBAAECBAgQIECAAAECBC4u
8O3t/fv7xc+gfAIEbiCQb+i7b85H8zcgcAQClxUY/XyO5i97cIUTeEHAz8ULeJYS2EjAzfFGsNIS
IECAAAECBAgQIECAwHUE3Bxf51mplMAjBPJNej1sd6Nc4/QJEDhOwM/vcfZ2JkCAAIHXBdwcv24o
AwECBAgQIECAAAECBAhcXMDN8cUfoPIJECBAgAABAgQIECBA4HUBN8evG8pAgAABAgQIECBAgAAB
AhcX8HJ88QeofAIECBAgQIAAAQIECBB4XcDL8euGMhAgQIAAAQIECBAgQIDAxQV++n393d8y+fuY
H//sb42tIvq/F6ifo9HnZW787/fyzwSeJpCfl/xc1f7TPJyXAAECBAgQILCWgJvjtSTlIUCAAAEC
BAgQIECAAIHLCny4Oc5NRE5zlhuJs9QRl6e2U59DPkeJH3nNjR/lO2o+5815jqrDvgQIECBAgAAB
AgQIzBdwczzfzAoCBAgQIECAAAECBAgQuJnAh5vjm53NcVYWcCP6NSifr33MEiBAgAABAgQIEDiz
gJvjMz8dtREgQIAAAQIECBAgQIDALgKr3Bzndy1rxd1N2tT4Glf7r+ZPvTVvxmv+xNXxxHfzGU9c
2poncRlPv4vP+NQ2+ZK/ruvmM574bn3mz9Km7tSbfurLePppa1zGp8Z3ccnzav7kGe2TuFE7tZ7E
Zd/0kz/j6S9ta97kqfkTl/H014pPnpo349k3/cRlPP3MZzz9pW3NU/tL81pHgAABAgQIEHi6gJvj
p38CnJ8AAQIECBAgQIAAAQIE3l66Oc7NSHdzUedrv/rX+eSt43Vd+qO4Ol/7yZN2NJ+4rh2t7+bn
jnf7rzVen8NaeffKM9cz5631dXkSn/m6Lv3MJz7jaet87Scu7Wg+caN2aj3J0+3bjWfdqB2t7+a3
Gu/y5hzd/Nzx5NMSIECAAAECBAgcK+Dm+Fh/uxMgQIAAAQIECBAgQIDACQReujlO/bkpSb9rc0NV
4zOetlv/6vjW+bv66nm7uIx3dXbjWTe3TV1r551bx9bx3fm68bisXVf2q/kznrbuW+Pr/Kv9ufm7
Ol+tI+vXqqerc+546prabp1/ah3iCBAgQIAAAQIE5gm4OZ7nJZoAAQIECBAgQIAAAQIEbiiwys1x
d1PSedX43BTV8W79UeOpr9Zb+7W+rKvj+ucSGD3HzL9adf08JG8dzz7deOaXtqN9M780/9J1W513
aT3WESBAgAABAgQIPEPAzfEznrNTEiBAgAABAgQIECBAgMAXAqvcHHf5c/OUm6Daz7rRfOJq2+Wr
cenPjc+6rdqz1bPVOa+eN8/p1XMkTz7vyZd+N5+42s6Nr+u7fvJ280eNp654HVXHVvve/XxbuclL
gAABAgQIEFhLwM3xWpLyECBAgAABAgQIECBAgMBlBb69vX9/76qfepORuJqnu+GZG5+8dd1a+Wve
7Nflz3zWTY3LurR13dR8Wb+0rfvUfs2b+Tpe68/81vHZZ9Smjq7Obn3WZT7rM55+5jOeftoal/Gt
47PP1LbWk7oz3vVr/hpf56f2k6fGp46MJ66OZ762c+OzPuvST1v3TVwdT3zXZl2dn5unrtcnQIAA
AQIECBCYJ+DmeJ6XaAIECBAgQIAAAQIECBC4ocCXN8c3PK8jESBA4JQCuUF2Y3zKx6MoAgQIECBA
4AECbo4f8JAdkQABAgQIECBAgAABAgS+FnBz/LWPWQIECBAgQIAAAQIECBB4gICb4wc8ZEckQIAA
AQIECBAgQIAAga8FvBx/7WOWAAECBAgQIECAAAECBB4g4OX4AQ/ZEQkQIECAAAECBAgQIEDga4Fz
vBx/+/Pb249/+9c1BDyvfZ/TXO+58fuexm4ECBAgQIAAAQIETilwjpfjU9IoigABAgQIECBAgAAB
AgSeInDs31ad2+L37wu9//TPdX9buH7psuyb9Xvvn313bl99Xkev35lr9e3m+s2NX71gCQkQIECA
AAECBAhcR8DN8XWelUoJECBAgAABAgQIECBAYCMBL8eLYH/cFD/ktniRj0VfCvy40c2t7peBJgkQ
IECAAAECBAgQ2EvAy/Fe0vYhQIAAAQIECBAgQIAAgdMK/HRIZbk1W/y7xodU/dxNPa9zPPv8vEx9
HnPjz3FKVRAgQIAAAQIECBA4RMDN8SHsNiVAgAABAgQIECBAgACBMwkcc3M8W6D+7dCjBF1893vC
c+NH+9f5qfkTlzrTT76Mp5+2xmW8i8/8Rm1uNqem7+Jz81nzTI1P3ChPnc+6um+Nq/Ojfs1b+6/m
H+1vngABAgQIECBAgACBVsDNcUtjggABAgQIECBAgAABAgSeInDym+PciHY3oJnP40p/FJ/5ufHZ
Z26b/eq6bv+p411c9hnNJ26lNjeh3Q1o5rNd+qP4Ol/7U/MlrmuX1tPlq+Ope7RPXadPgAABAgQI
ECBAgMDmAm6ONye2AQECBAgQIECAAAECBAicXeDkN8dL+XJjunR91nU3vpmf2s6tp9u3G5+bf2rd
O8XlJnWn7WxDgAABAgQIECBAgACBKuDmuIroEyBAgAABAgQIECBAgMDjBG56c9zdsO79fHOj29WT
+Vfr6vK/mnen9fld3J22sw0BAgQIECBAgAABAgSqgJvjKqJPgAABAgQIECBAgAABAo8TOObmODeF
+V3T9Dfnz03t1JvWufFTD5C8U+OXxmWfqedt9snz2ft5bbVf8tbj1nPW+a37qSt11P1G86/G1/X6
BAgQIECAAAECBB4k4Ob4QQ/bUQkQIECAAAECBAgQIEDgc4Fjbo4/r+WT0dx45gb0k5APQ6P4zGdR
+l3+zCc+bY1Pv8ann/ms78YzP7Ud5cn81HwvxuXGMzeco3Sj+MzXPF3+Gp9+je/Gs0/m009b82R8
bpv8NV/G5+YTT4AAAQIECBAgQIDAywJujl8mlIAAAQIECBAgQIAAAQIEri7w7e39+/vhh8gNmpuz
wx/FpALu+rxG5xrNT8JbEDR337nxC0qyhAABAgQIECBAgMDdBNwc3+2JOg8BAgQIECBAgAABAgQI
zBY4x83x7LItILChQG5e6xb+PxuqiD4BAgQIECBAgACB2wi4Ob7No3QQAgQIECBAgAABAgQIEFgq
cPK/rXrpsawj8IKAG+IX8CwlQIAAAQIECBAgcE0BN8fXfG6qJkCAAAECBAgQIECAAIEVBbwcL8H8
8Tup3e+lLslnDQECBAgQIECAAAECBAgcKuDl+FB+mxMgQIAAAQIECBAgQIDAGQSO/Z3jevt6ld/1
TJ2pP/0zPFE1ECBAgAABAgQIECBAgMBsATfHs8ksIECAAAECBAgQIECAAIG7CRxzc9zduHbjd1N3
HgIECBAgQIAAAQIECBA4lYCb41M9DsUQIECAAAECBAgQIECAwBECx9wcdye92u/upl433t0TNU6A
AAECBAgQIECAAIFLCLg5vsRjUiQBAgQIECBAgAABAgQIbClwrpvj7qS5ma3zubnNeOIynn7mM55+
N5/xGp91WgIECBAgQIAAAQIECBC4lYCb41s9TochQIAAAQIECBAgQIAAgSUC+94c50Y2ldZ+vanN
fB2v6+t8t64bz/o6X/vZV0uAAAECBAgQIECAAAECtxJwc3yrx+kwBAgQIECAAAECBAgQILBEYN+b
4+6GdknlX63JPjWmG69x+gQIECBAgAABAgQIECDwKAE3x4963A5LgAABAgQIECBAgAABAp8JeDn+
TMUYAQIECBAgQIAAAQIECDxKwMvxox63wxIgQIAAAQIECBAgQIDAZwL7/s7xZxVceczfZn3lp6d2
AgQIECBAgAABAgQI/Crg5vhXCv9AgAABAgQIECBAgAABAk8VOPfNcf526dzQ1qeU+Tq+tL92vqV1
WEeAAAECBAgQIECAAAECuwq4Od6V22YECBAgQIAAAQIECBAgcEaBb2/v39/PWNipa8pNtpvmUz8m
xREgQIAAAQIECBAgQGCqgJvjqVLiCBAgQIAAAQIECBAgQOC2Auf+neOzsrsxPuuTURcBAgQIECBA
gAABAgQWCbg5XsRmEQECBAgQIECAAAECBAjcScDL8Z2eprMQIECAAAECBAgQIECAwCIBL8eL2Cwi
QIAAAQIECBAgQIAAgTsJeDm+09N0FgIECBAgQIAAAQIECBBYJODleBGbRQQIECBAgAABAgQIECBw
JwEvx3d6ms5CgAABAgQIECBAgAABAosEvBwvYrOIAAECBAgQIECAAAECBO4k4OX4Tk/TWQgQIECA
AAECBAgQIEBgkYCX40VsFhEgQIAAAQIECBAgQIDAnQS8HN/paToLAQIECBAgQIAAAQIECCwS8HK8
iM0iAgQIECBAgAABAgQIELiTgJfjOz1NZyFAgAABAgQIECBAgACBRQJejhexWUSAAAECBAgQIECA
AAECdxLwcnynp+ksBAgQIECAAAECBAgQILBIwMvxIjaLCBAgQIAAAQIECBAgQOBOAl6O7/Q0nYUA
AQIECBAgQIAAAQIEFgl4OV7EZhEBAgQIECBAgAABAgQI3EnAy/GdnqazECBAgAABAgQIECBAgMAi
AS/Hi9gsIkCAAAECBAgQIECAAIE7CXg5vtPTdBYCBAgQIECAAAECBAgQWCTg5XgRm0UECBAgQIAA
AQIECBAgcCcBL8d3eprOQoAAAQIECBAgQIAAAQKLBLwcL2KziAABAgQIECBAgAABAgTuJODl+E5P
01kIECBAgAABAgQIECBAYJGAl+NFbBYRIECAAAECBAgQIECAwJ0EvBzf6Wk6CwECBAgQIECAAAEC
BAgsEvByvIjNIgIECBAgQIAAAQIECBC4k4CX4zs9TWchQIAAAQIECBAgQIAAgUUCXo4XsVlEgAAB
AgQIECBAgAABAncSmPZy/O3Pb28//u1fBAgQuJuAP9/u9kS3PY/Py7a+shMgQIAAgQMFpr0cH1ig
rQkQIECAAAECBAgQIECAwNYCP325QW6L379/GdZP/umfU3/rQ2bNJF8WrZU3+Z7d/vW/f/H9y7+u
45p8UV0rb/K92qa+pXW9uv7V+q1/UeDlP99e3H/u8r3qzT6pb/Gf/0lwszYecUr/Zsd0HAIECBAg
8EQBN8dPfOrOTIAAAQIECBAgQIAAAQIfBL6+Of4QemQnN8b1RrMbP7JWe3c3qt04MQIETiSQm9Dc
jJ6oNKUQIECAAAECBLYUcHO8pa7cBAgQIECAAAECBAgQIHAJgc9vjnNjkBuE0x6l3iSftlCF/UNg
6e/2wiOwqsBl/nxb9dSSrS2Q/3z0eVpbVj4CBAgQIHCYgJvjw+htTIAAAQIECBAgQIAAAQJnEfj8
5nh2dfnd36kLu/hXb4Jr3uTLePq1zszX8Vfjkzd50s8+GU8/bY3LeBef+Wltfvd3WvTbWxd/1E3w
3Hq6+O78XXx33qnxiRvlqfNZV+utcXV+an9q/i4u+3T1dOvWis/+m7W5Gawb5OYw44mr49184jOf
dRlPP/NpM59+2rXik2+rdmr9XVzqWuu83T5d/uyvJUCAAAECBG4n4Ob4do/UgQgQIECAAAECBAgQ
IEBgrsCLN8e54exuNDOfstIfxWc+8XV9+olLP23Gs77r1/j0005d38XPHa/7ZX3a0XziPm9zgzf1
xm5qfPIlPrvXfuK6+YzXNuuSL/0aV+drv4vP+NT4un/tT82XuK6dW0/iu3wZT72JTz/zabv5qfHd
+i7/3Pjk2azNjWJ3gzian1pY8td8tZ98iU8/bY2v/cSlHc0nbq12tF83v9V5u/1y3tF84rQECBAg
QIDAbQTcHN/mUToIAQIECBAgQIAAAQIECCwVePHmeOm2uQEdrR/d+I7WT52fWs8oX+qtcXPH6/pj
+7nRG1WRG8XEp9+tG81365K/m391fOv8r9bXrZ/rmfh63oyn7fabOl7zT11X49aqp+Zt+7mxzA1i
AjOeNuParwXitbVnzf91Vf1s6u0jzBAgQIAAAQI3E3BzfLMH6jgECBAgQIAAAQIECBAgMF/goJvj
7iZ1/gFeW5Eb466ezL+2y9VX735jNwDbup6t8w+Ot/t0PW9ueuv40sLWyrN0/5fX1RvE3EzW8W6j
xHfzTxuvbvGp40td1sqzdH/rCBAgQIAAgcsKuDm+7KNTOAECBAgQIECAAAECBAisJfD5zXG+eV/7
G/1h1bmp7W5yhwlWCkgdc9Nl3dH1z617WfzaN4zLqvht1db1bJU/eX87yS//lBvXbr7Gz+0nb/bJ
+vS7+YwnPm3WpT9qk2fqurnx7f5T/3zr/vzr1tfxFNCNZ/4p7VzPuGRd+mnjmv6oTZ6p60bxo/lR
PeYJECBAgACB0wm4OT7dI1EQAQIECBAgQIAAAQIECOwt8PnN8eQqckOaG9PRwlF85kd5ps6P8mW+
1j93PPVkXfpz26yv9SRP5tOf1+aGLjdwo9Wj+MyP8qw1n/26+jOf/dLv4hOXdhSf+cSn7fLX+PRr
fDee/JlPP23Nk/GpbfJ2eTJf83XjXdzU/Mk7Nb7ut3o/N4y5IawbZH7qeI2r/S5fjZtaT/JNjc8+
NT795Evc3Dbrk6+uz/zU8S5uav7sNzW+7qdPgAABAgQI3E7AzfHtHqkDESBAgAABAgQIECBAgMBc
gW9v79/fh4vyzXq+aR8uEECAwKsCuUHNjWrNN5qv8a/2997v1Xonr1/rz7dRntH85IIfEnhWr7PW
9ZCPhWMSIECAAIEtBdwcb6krNwECBAgQIECAAAECBAhcQmDa7xy7Mb7Ew1TkvQRyY5wb23q6zNdx
/ZkCa/35ljy5WaxlZL6O619LwHO81vNSLQECBAgQmCHg5ngGllACBAgQIECAAAECBAgQuKfAtN85
vufZnYoAAQIECBAgQIAAAQIECPws4ObYB4EAAQIECBAgQIAAAQIEHi/g5fjxH4HpAO9//5+3H//2
LwIECBAgQIAAAQIECNxNwMvx3Z6o8xAgQIAAAQIECBAgQIDAbIFDfuc4t4/f/uNffi649uspMl/H
s76OX7Wfc579XHvV+de3//Xzo/zL2/9d9EhfXb9o0w0X5TzZYqlL1mu3Fdjr52TbU8h+lEA+P9l/
rf9cqHm7/Inr9q3ztZ+8aet8+pmv7WjfUXzyd3nqev3XBHi/5jd1dZxrfP2cd3FZNzd+7rqaP+u1
BK4g4Ob4Ck9JjQQIECBAgAABAgQIECCwqcC0/53jTUvok+ebr+4bqNF8n/njzFp5Pmb9rbd1/t92
2uefuuexz+7P2yU3xvWmuBt/npATE/hN4Op/3nb1d+O/nfzrfxqtH81/nX3+bP5zpNu3jtd+3XE0
X+P19xW46vM5S92jOrr5/JzVpz03fur6xHX5M68lcGYBN8dnfjpqI0CAAAECBAgQIECAAIFdBE59
czwS6L4RG60zT+AOAvUm+Q5ncgYCBD4X2Po/72r+9OsNUO3Xaut8+jVO/1kC+Tw969T7nfZsvmer
Z78nYac7CLg5vsNTdAYCBAgQIECAAAECBAgQeEngkJvj+o1S7b90on8s7r6prvvUuNqv8XPrqvlq
f5R/anyNS52j/Ilbu83vwta83U1nF1/Xp9/Fz81f45O3jtd963zWJS5tjcv41u3UehKXOtNPfRlP
v5vPeI3Purlt8tV1NX8Xl3U1PuPdurXis8/aP3/dz3m3X+JTR/pdfMZrXMaTJ/0uLvM1PuPduhqf
uIynnzwZT7/O134XX8drvm4+caO21pH4V/Mmz9nanCvnrv2z1ftqPTlnzZNz1/GzxKeO1Jl+6s14
+mlrXMa7tsaP8mZ+7rq6f/LU8an9un/td/lrXPbr4jOvJUDgPAJujs/zLFRCgAABAgQIECBAgAAB
AgcJHHJzPPWs+aZt6jdxicu6uk+dT1wdr+uW9pfm7+qp47Vf6xzN1/hX+7mRG93AZX5qfOqaGp/8
WVf7GR/lS1zXjtbX+fS7fBlPvTW+9hOXdZmv46P5bl03nvx1vutn/67t8tX4mj/zWZ9+2hpf+4lL
W+drP3FpR/OJW7vNnys1b/fzPnW8i8s+3fzUerr1o/zdujqeOup48u/djuqo8+mnztrP+TI/t836
mjd5Mp9+2oxnXfqZX6tN/uTbap/kX6vt6sx5Ml/7df86X/trxydft08dr/2sT5v59NPW82e8a5Mn
6xJXx2s/cWlH84nr2uw/Nc8objTf1ZHxWk/G02Y+/bTZN/20a8Unn5bAnQTcHN/paToLAQIECBAg
QIAAAQIECCwSOPXNcU40+oarznfflCXf2dt6nlG9ZztvbtRGdS+d3zr/0rpG67obzm5d4nPe9Lv4
peNd3m586j5z1yc+580+GU+b8aVtzb80z1r1LN1/6rruz5NufGrepXFz/7zq6uzGl9Z19LqcJz7p
r11Xl3ftfbt9uvPU+LXr6fZ9dTx1vpqnnn+Ub258l6/L0413edYaP2rfterfOk/nk89hna/9UX1z
40f5zBO4ooCb4ys+NTUTIECAAAECBAgQIECAwKoCl7g5nnvip33zdbbzbn2jtnX+uZ838esK1Oeb
m946vnTXtfIs3f/p687251V9HrmBqeP6BH4vkM9J93nO/O/X+GcCBAgQOL+Am+PzPyMVEiBAgAAB
AgQIECBAgMDGAqe+Oc43r903s3Nt5uabG791PWfLP7eetW8A6/5b5U/eul9uILv5Gq//tUAc45ro
9Lv5jCc+bdalP2qTZ+q6ufGj/afO58+lGr/Wn5M176i/Vj3Js9U5av7sk/GcsxvP/FXbnDPnu+o5
zl53nOfWmXVTn8/c+Ln1nD0+TnHYu97smzq23n/v/V49z6je0fyr+1tP4BUBN8ev6FlLgAABAgQI
ECBAgAABArcQOPXNcb6RyzdMVTzzGU9/avxoXfIlbmmbPLWujK+dN/lezZ88U9vcuOVGra7LfMbT
7+ITl3YUn/nEp+3y1/j0a3w3nvyZTz9tzZPxrdrU0e2b+bX23yrf3Pqn1pG4qfnnxq/lOsqz1c91
8tY/p1JP5tNP241nPm3i5ubP+qltt0/Ga55uvMbN7Sfv1uedWtfZ6qkutZ96c770a1ydTz9tF5/5
5E1/apt1Nf/c8eyXdbVf89f52p8an3VT29TX5e/y1Pj0k69bN3W8y5N9pubp4pK/5st41qVf4+p8
+nPbrfOnnq7+zKeOtF185rMubY1Pv4vPOi2BPQXcHO+pbS8CBAgQIECAAAECBAgQOKXAt7f37++n
rExRBE4ukBvI3DDWckfzNV5/nsDTfM/2DfvZ6pn36Xl7G9U/mp+7n3gCBNYTGP18jubXq0SmJQKe
zxI1a/YScHO8l7R9CBAgQIAAAQIECBAgQOC0Aqf+nePTqimMwD8EcmOcG8yKkvk6rk+AwPEC+R23
3GDUijJfx/UJEDheID+ffn6PfxZLKsjzW7LWGgJbC7g53lpYfgIECBAgQIAAAQIECBA4vYDfOT79
I1IgAQIECBAgQIAAAQIECGwt4OZ4a2H5CRAgQIAAAQIECBAgQOD0Al6OT/+IFEiAAAECBAgQIECA
AAECWwt4Od5aWH4CBAgQIECAAAECBAgQOL3Ah7+tuvtb/3KKvf92udSz9b7ZJ+dMW/dNXB1PfJ2v
/cSlrfPpZ762o31H8cnf5anrr9Zf63zJU89f3bq4rJsbP3ddzZ/12nsL1M/dUz8HcTjr+VPf6NOY
+hOf/mjdXvOpq+5X6+zism5u/Nx1NX/WP6WN/9MdnvK8nZMAge0E3BxvZyszAQIECBAgQIAAAQIE
CFxE4MPNcb5x7L6B7MbnnnWtPHP3rfGjOkbzNd+r/bn+o/pG86/We7f1I69uPs+tesyNn7o+cV3+
zGvvKZDPW57/0adMHanr6HrOsn/1uJrTqN5uvp47z2NufNal7dZPnU+clgABAgQIfCXg5vgrHXME
CBAgQIAAAQIECBAg8AiBDzfHjzjxjEPWb8DTr99g137dos6nX+P0zy2Q53+WKs9Wz1lc1EGAwPYC
Z/vz52z1bP8Ejt0h/z2G+7HPwe4ECKwv4OZ4fVMZCRAgQIAAAQIECBAgQOBiAqvcHOcbxHr2+o1i
jav9Gl/zzY2v64/q51ypv/aPqmurfXPOmj/nznjiMp5+5jOeftoal3HtMoHOs/onLuPpZ9eMp5+2
xmW8i8/8qE3eLk+d7/rZZ5QncWlrfM2fuLTdfMYTl7bmz/jUNnm7PN18xus+NU+Nq/0an3w1LuNz
47Purm11muvTxd/Va61zVffk7TynxicuedIf5c/81Lbmzbrsm37aV+OzvsuffbQECBC4ioCb46s8
KXUSIECAAAECBAgQIECAwGYCX94c5xvB7F6/Gcx8HU98nU9cHU9813bx3XiXp47Xerr5bvzV/Wve
2k/+jKfe9M/adnXmPHV+6ngXF4fMpz+3TV1dnszXvFvH1/3W7o/OVedz3tF4F5f6R/OJW7vt9q3j
tV/rGM3X+K5fHRO3Vv7km9pOrSdxU+scxdX52q/1Z76OX72fc8U356njtZ+4tKP5xHVt9k+eGpf5
Or51fN1vrX7qHp2rztd+6unyzR1Pvqnt1Hq6OrJPN5/83XzWawkQIHBVATfHV31y6iZAgAABAgQI
ECBAgACB1QS+vDnON4TZ7ahvCmsdqWettsu/9nm7fbpz1Pi16+n2fXU8dU7NU885dd1WcV09OVed
r/1RXXPjR/lenc+5pubp6u/G5+afWsfSuK7OLt/W9W+dvztXN751PVvn7851lfGzfT67evIc63zt
j9znxo/ybTXf1RmHqft2eaauXztubv3Z/2znSF1aAgQIvCrg5vhVQesJECBAgAABAgQIECBA4PIC
X94cX/50DrCrQL6B7r5RzvyuRdmsFcjz2Pp5dfnbwk42MbX+xFXX2s/xuvE6n/7W7V71xGnr8zwl
P89jnvRePy9bn87nZ2th+QkQuJqAm+OrPTH1EiBAgAABAgQIECBAgMDqAqe6OR59E7v26ffeb+36
r5IvzmevN3Ve5Zv0repN3q2fV/ZZ2zt51f+5wFyfufHZNeumPt+58dmna9fO1+1z1vFXz//q+r1d
tq53av7E7X3+tffLObqf39H82vXIR4AAgb0E3BzvJW0fAgQIECBAgAABAgQIEDitwIeb43wTmGpr
v36DmH6Ny/rMp58243VdxhO3dZv9ah3ZN/Ppb93WOmq/1pN+jUudmU8/bRef+W5d5rs262r+brzL
042vlWdp/uzfrZ86Xn3quuyTtovPfF0/tZ/1NX83PjVv4kZ5Mp/4uW3Wn63+Wlf69XwZn1t/jU8/
+bJP+plfe3xqvlFcna/9Wn/mu7bGpx+Pbt3VxnOenK/Wn/k6PrWf9VvlTx1d/synjrRdfOazbm6b
9VPzd/Hd+Nx6lsa/Wn/2zTnST1vzp9/FZ52WAAECVxFwc3yVJ6VOAgQIECBAgAABAgQIENhM4Nvb
+/f3zbJLTIAAAQIEDhBwo3UAui0fI+Dn6zGP2kEJPE7AzfHjHrkDEyBAgAABAgQIECBAgEAVcHNc
RfQJECBAgAABAgQIECBA4HECbo4f98gdmAABAgQIECBAgAABAgSqwIe/rfo//8//W+f1CRAgQIAA
AQIECBAgQIDA7QT+/X//fx/O5Ob4A4cOAQIECBAgQIAAAQIECDxRwMvxE5+6MxMgQIAAAQKHC/z7
v//7249/+xeBMwj4PJ7hKajhaAEvx0c/AfsTIECAAAECBAgQIECAwOECH37neG41+bbzP//zPz9d
Wudrvy6q87U/iq/zd+/HZ3TOqc9nlOdq8//1X//1oeR/+7d/+9C/SqeeI3Vf9TypX/uLQPdzPPfn
Nnm6dSPvuesTP8pb6+nW1bhR3qPmr17/UW72/SiQz1H3uc/8x1V/7GV94tP/Y+S1R7rzZTynW+v8
NW/y17buV9fV+ayvcRlP263L/FZt9k196W+1n7wEzijg5viMT0VNBAgQIECAAAECBAgQILCrwEs3
x7tWarNWYO43e/lGsE1o4lQCuSHubpBPVaxiJgvk57D7+a3zo/7kjVcK7OpO+tRb+926xHfzyXNU
O6rv1fmca5QncXdpn3beuc9tr5+Hqz6H+KT+ub6j+OQfxWU+8aN6alz6yZP1dTzzWgIEthNwc7yd
rcwECBAgQIAAAQIECBAgcBGBW98c++bt46eweqT/MUqPAIEzCuQGIT+3Xf/o2mt9U+vJeabGny1u
VP9o/mznUc82Akt/Prap5resZ/18ntXrN7l7/lM+D/zv+Xyd6msBN8df+5glQIAAAQIECBAgQIAA
gQcI3PLmON905fmln2/CMv609qznH/0ubfc7txnPcxzl6eKSp64fjSff3LbuU9dn3zqufy+BpT+P
S9fdS+86p8l//qTi7vnVuNrv1iXvqO3yZbzLn/ma/9X4mrf218qfPFPz13PevT/XpcbHJ87pd3GZ
r/EZ134t0Ll2nnPjv97dLIFnCLg5fsZzdkoCBAgQIECAAAECBAgQ+ELgw81x9w1TXd99Q1Xjjuqn
vpwn/VpP5ut47f//7d3bbRw3FAZgpQUDeROgOvKclKAa1Fo60A1JL7q9pQgHXuAHPAcmOKMZ7c7l
M+DQJA/Jw2+0gXcPZGX92uKTZyuv5J24tbW1glorpplPOzf/7JNz0k9b9894Kz7jdV2rn/0yX9dn
Pm2dzzrtvgXyeu69fsfGnUtrbD6Jq3n17lvjt9LPvVr3zj1qXPqZr21vv8TXfdLP+la/tT7jY9e3
4nvnZl3ael7G07bmp45nv7W0yb/mE786PrWffVrnZL/MJz7jaVvzU+N7+2X+XG3uVc9r3avGLdVP
Hq1z63zt1zx68zV+bj/n9fbJ/cT/WorPr10y+lmfrE+rchwJLQECBAgQIECAAAECBAgcVmBQOc47
7r1o9O7Tm68Oa4tPflPzyrpLt6mMplKaNnllPv06n/Gxbd2vt67G135vfW9+7n16+5vflkA+Ke+9
nsfGrfX2rftt9V7JO96t+2V+qfZc59T7tfJPPjU+42lb68eO1/1761rntsZ7+517fi15Jo/qn/G0
c32y/1L7zc1nLXnMvUddf+57TT1PfH1iwz6foUftTfWp61WOq4g+AQIECBAgQIAAAQIECBxOYFA5
PtztXXgVArUim4pq2jq/iqQXSGKv91qA5lBbzK2UzF0/F/vS58/Nf+76fEIdh7n7rWV97pP71bwy
X8drfOLqeF03tr/UPmPPEzcUqP5LP9/haXoECBA4v4DK8fnNnUiAAAECBAgQIECAAAECKxPYdeXY
J5or+2or6aQynOFUUtNmPm3iatubT3zisn/Gl2qzf/b7qnOyv3bbAlP//1Tje/1t68i+CtTnXefP
1U8e9byM18pi+q35uk/6Xx2fc87dftbj3HnW81rPo3efrKv7ZV3GE1fHM69dVqDn3ZtfNhu7EViX
gMrxup6HbAgQIECAAAECBAgQIEDgAgK/XX3/+3vO/eff3/PHSW0+YaqLWp8Ari2+5r2VfhxbzvUe
ia/jtT92v7rus/1aca371Apsjc98HW/tU+Na6zNe96n9ul+dr/t8dXw9X3+dAlNfj4mvr8/W+NRb
Z5/eurnnt86p+/byuNT81Pynxudedd1cn+zX2qc1n/HklfUZTz/zGU8/bY3LeNq6rhVf47K+xieu
jif+0m0vv8z38sz9psZn39a67Ju4tGPjE9faJ/ulnRpf16Wfduy5ia9t8qnjtV/Paa0bG5f9a3zG
x+7/2fi6rpVH4rQE9iDw15//Da6hcjzg0CFAgAABAgQIECBAgACBIwosUjleK1w+YfPJ11qf0L7y
qhXhWjHe123dhgABAgTmCuz17yl7vdfc57329Z7b2p+Q/L5CQOX4K1TtSYAAAQIECBAgQIAAAQKb
Ftj1v1atYrzpr83NJa9SvLlHJmECBAhcVMDfUy7K7/Ai4OuxgOgeUsD3HB/ysbs0AQIECBAgQIAA
AQIECPwsMPie458n/JkAAQIECBAgQIAAAQIECJxb4OX1j3MfeTpP5fgi7A4lQIAAAQIECBAgQIAA
gTUJ7Pp7jtcELRcCBAgQIECAAAECBAgQGC9wc3MzPniBSJXjBRBtQYAAAQIECBAgQIAAAQLbFvDm
eNvPT/YECBAgQIAAAQIECBAgsICAN8cLINqCAAECBAgQIECAAAECBLYt4M3xtp+f7AkQIECAAAEC
BAgQIEDgEwIfHx9XP37nlzfHkdASIECAAAECBAgQIECAwGEFvDk+7KN3cQIECBAgQIAAAQIECBxP
IBXj+/v7qx+/88ub40hoCRAgQIAAAQIECBAgQOCwAn7O8WEfvYsTIECAAAECBAgQIEDgOALv7++n
yz48PJza29vbweVVjgccOgQIECBAgAABAgQIECBwRAGV4yM+dXcmQIAAAQIECBAgQIDAQQRaFeNv
374NBFSOBxw6BAgQIECAAAECBAgQIHBEAZXjIz51dyZAgAABAgQIECBAgMDOBV5fX083fHp6OrX5
HuNUjPMzjq+vr0/zKsc7/4JwPQIECBAgQIAAAQIECBDoC6gc941EECBAgAABAgQIECBAgMBGBF5e
Xk6ZPj8/n9pWxTg/4/ju7u4Up3J8YvAfAgQIECBAgAABAgQIEDiygMrxkZ++uxMgQIAAAQIECBAg
QGAnAr2K8dvb2+mmj4+PpzYV5Vxf5TgSWgIECBAgQIAAAQIECBA4rIDK8WEfvYsTIECAAAECBAgQ
IEBg+wKfrRjnX62OgMpxJLQECBAgQIAAAQIECBAgcFiB/wEgVX37SKZv9QAAAABJRU5ErkJggg==
--Apple-Mail=_6F17D297-4269-4872-8C80-C4479CA1382B
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
	charset=us-ascii



Next, with the patch:


--Apple-Mail=_6F17D297-4269-4872-8C80-C4479CA1382B
Content-Disposition: inline;
	filename=with-patch.png
Content-Type: image/png;
	x-unix-mode=0644;
	name="with-patch.png"
Content-Transfer-Encoding: base64

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
f/1vtr9VH2AcKG1AGmY29DaKGjubUpo6Do472NLs13zg95G/bz9keajqsOHh5UeoR4qPDBwtOtp3
THqs53jm8Qct01punZh44vLJCSfbTkWeOvNH2B8nTrNPHz3jf+bQWd+zB895n2s873m+odWj9cCf
Hn8eaPNsa7jgdaGp3ae9uWNsx5GLgRePXwq59Mdl7uXzV6KvdFxNvHr92uRrndcF15/cyLnx4mbB
zf5b828Tbpfe0b1Tftf0bs2/HP+1p9Oz8/C9kHut9+Pv33rAf/Dsofzhx67iR/RH5Y8tHtc+cXty
qDusu/3ppKddz6TP+ntK/tL7q/q5w/Pf/g76u7V3Ym/XC9mLgZdLXxm/2v56zOuWvti+u29y3/S/
LX1n/G7He+/3pz8kf3jcP+Mj6WPFJ8dPzZ8jP98eyB0YkPJkPNVRAIMNzcgA4OV2AOgp8OzQDgB1
kvqepxJEfTdVIfCfsPouqBJPALYHAZA4H4AoeEbZCJstxDT4VB7VE4IA6u4+1DQiz3B3U3PR4I2H
8G5g4JUZAKRmAD7JBgb6NwwMfNoKg70BwLE89f1SKUR4N/jZSIlar+mCb+XfPzZ+cSYrG50AAAAJ
cEhZcwAAFiUAABYlAUlSJPAAAAIFaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRh
IHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA1LjQuMCI+CiAgIDxy
ZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4
LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHht
bG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxu
czp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyI+CiAgICAgICAgIDxleGlmOlBp
eGVsWURpbWVuc2lvbj43MzI8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQ
aXhlbFhEaW1lbnNpb24+MTAyNDwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDx0aWZm
Ok9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9u
PgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgoJl6qxAABAAElEQVR4AezdUZrkRnIm2qrL5j5m
OXrtt26Js4/RCjTrGLZu9Vu/ajmzELJyCmz+FMtYlg4ggAAQOPl9lNPdzc3ND7LYivSKyI8fPnz4
tw9vn/72pfVFgAABAgQIECBAgAABAgRuIfD/fTnl2y1O6pAECBAgQIAAAQIECBAgQOBXgenF8PSP
LwIECBAgQIAAAQIECBAgcBsBN8O3edQOSoAAAQIECBAgQIAAAQIR+NOXf/mYzm/tx7/+9q/+hQAB
AgQIECBAgAABAgQIvJqAm+FXe6LOQ4AAAQIECBAgQIAAAQJDgenF8B9vhofLBBAgQIAAAQIECBAg
QIAAgesKeDF83WencgIECBAgQIAAAQIECBBYKTC9Z/jzH9a+ffrD0DcHHn1vcd3n0XzfLHLGYK2j
WzK3vuSbG9/tt/d46qz7nL3uWu/V+p17zrG1f91vlH9pfOq+SlvP19U9curWrR2vdT17/9Rd68h4
bY+qr9bx7H587nL+0XlH83OfT/Ik/i6+Oa+WAAECBA4RmG6GfREgQIAAAQIECBAgQIAAgVsJfPvT
pEOw9iez+QnvaH3mE599j2pTz97757yj/ebGLa13lHc0P3e/tXnWrptb19Fxee7dObvxpXV3ebYa
X1rPWeLjn3o6j8w/q01dqedZ+3b7pJ5u3vg6gTxfvl/7xSM+X8/qESBAgACBXQTcDO/CKikBAgQI
ECBAgAABAgQInFlguhne/is/4d0+82tk5PP+c+Tzvs+js0t9l8Y/Wp/1BF5ZwJ+nV366zkaAAAEC
FxNwM3yxB6ZcAgQIECBAgAABAgQIEHhcYLoZfns8za8Z6nt9tv4JeM2fwrfeJ3lHbVdPt67Gd3XX
uNrv1nX7Pjpe96/5aj01vvZrfPLNjeviM17zJ2/G0+/iM17jMp486e/dpo5u39H8XvVl35q/1pm4
jKefdRlPP22Ny3gXn/m92qX1LI1fWvfe+efWU+vI88l4+jVf5uv4UfG1jq379bzdObNvjc94XdfF
dfEZ37vt6qr1L62jy5s8j+ZPHi0BAgQI3EJguhn+469WusXRHZIAAQIECBAgQIAAAQIE7irw/qdJ
dz+B7X7ymvFu3Vrl5Ev+mmc0X+O7fvLU+bpv4up41mU+/bSJ7+a7uKzL/FFtV0fOk/m0dXxUd13X
xY/ydvNzx7u41DOaT9zcNvkSH4f0l7Y1X+3X/HW+9rv4Op46s77Ozx3v4kb5M791u7SepfFL6907
f+rJPumnrc+1jmdd4mq/xqeftsbXfuLS1vnaT1zaOp9+5rs25+nmR+NZP9ov84mvebv5pfE176if
fefG7V3P3vlH5zRPgAABAi8hMN0M7/MhWi/B4xAECBAgQIAAAQIECBAg8IoC779nuPvJ61ESc38y
vba+s5137Tms+7bA3OebuPr9lvG0395l+WjNl33r+NzMWTc3z9L41JH86Y/a7FPj6nj6NX/G09Y8
d+nn/Hv7ZJ+9XGv9a/epdaZf82c8bfar/Ywf1aaeufU/q87UVferdWa+G8+8lgABAgQInEBguhn+
+QR1KIEAAQIECBAgQIAAAQIECDxNYLoZvs6vV+p+Mv00LhvdSqB+v+Wmo47fCuV3h93boebn/zv8
L/96VZ/Rc8z816dd3ruqT076avXnXFoCBAgQIHAigemF8McT1aMUAgQIECBAgAABAgQIECCwu8B0
M/zT7rvsvUFuEupP0vfe96j8R503+9ZzL3VPnqXr6r579bv6Um83v1c9Xd7U0c0fNZ664rW0jm59
8nXzS/e5anx3/qv75FxLn0vWjc4/ml+6717x9TzZZ1R/1iU+bdalf3SbOh+tK3nqeR7NW/PpEyBA
gMBLC0w3w9+/9AkdjgABAgQIECBAgAABAgQIFIH3P026BA+79Se16Xc/qc18Eqdf49PPfOLTZj79
tW2XP/myT9pRfNalrfHpJ1/i0mY8cXU8/aVtlzd5Mp9+2m4887VN/Nz6a1z6yZP86Wc+42kzn/7S
Nuv3yl/z1n72T93pd3F1POv2art6sl/m01/aZn13rswvzbs2PvvNrWdpfOqq+dNPvsSln/mMp818
+mvbLn/ydft043VdzZ91c8drvtqveep8+mvbLn/y5Tzp1/j0a1z6mc/6tJlPP203nvlntaljaf01
Pv3kq/V34zVOnwABAgQIvCPg06TfwTFFgAABAgQIECBAgAABAq8pMH141g8f3j79+NXx/MT1K47b
d0Y/ob89EAACBAgcJHC3/z7f7bwHfVvZlgABAncRcDN8lyftnAQIECBAgAABAgQIECDwm8D0Yvi7
33r+hQABAgQIECBAgAABAgQI3EBgejH8+QbndEQCBAgQIECAAAECBAgQIPCbwPSe4X/98p7h//xt
xL8QIECAAAECBAgQIECAAIEXF/DXpF/8ATseAQIECBAgQIAAAQIECPxRYHox/PbHYSMECBAgQIAA
AQIECBAgQOB1Bbxn+HWfrZMRIECAAAECBAgQIECAQCMwvRie/vFFgAABAgQIECBAgAABAgRuI+Cv
Sd/mUTsoAQIECBAgQIAAAQIECERgejE8faK0LwIECBAgQIAAAQIECBAgcBsBN8O3edQOSoAAAQIE
CBAgQIAAAQIRcDMcCS0BAgQIECBAgAABAgQI3EbAi+HbPGoHJUCAAAECBAgQIECAAIEITC+GP6ej
JUCAAAECBAgQIECAAAECdxCYXgz7IkCAAAECBAgQIECAAAECtxLw16Rv9bgdlgABAgQIECBAgAAB
AgQmATfDvg8IECBAgAABAgQIECBA4HYCXgzf7pE7MAECBAgQIECAAAECBAh4Mex7gAABAgQIECBA
gAABAgRuJzC9GH673akdmAABAgQIECBAgAABAgRuLTC9GParlW79LeDwBAgQIECAAAECBAgQuJ/A
9GL44/2O7cQECBAgQIAAAQIECBAgcGeB6cXwn+4M4OwECBAgQIAAAQIECBAgcD8B7xm+3zN3YgIE
CBAgQIAAAQIECNxeYHox/PPtFQAQIECAAAECBAgQIECAwK0EphfD0z++CBAgQIAAAQIECBAgQIDA
bQSmF8I+QOs2j9tBCRAgQIAAAQIECBAgQGASmF4M/4SCAAECBAgQIECAAAECBAjcSWB6Mfz9nQ7s
rAQIECBAgAABAgQIECBAYHox/IaBAAECBAgQIECAAAECBAjcSWB6MezTpO/0xJ2VAAECBAgQIECA
AAECBH55z/D0gnje18e/fvm4rS//+CJA4PwC/rye/xmpkAABAgQIECBA4DABN8OH0duYAAECBAgQ
IECAAAECBI4S+NOXjb8bbp7b4LdPw9BvBfzj419+Gf7z29+/Nb14LPmy8Ox5U+dp2wef72nP1RV2
lvOmjtQ5+vO1ND75si797KclQIAAAQIECBAgcGOB6Wb4843P7+gECBAgQIAAAQIECBAgcEOB6Wb4
Ml+5Ea43wd340oMlb/LNXZ/4rJ+7TlwR+PVvEHzY6G8QlOzn6+amNje3owqXxo/ymSdAgAABAgQI
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
vo4nf9ZnvusnPnHpL43POi0BAgQIELiCgJvhKzwlNRIgQIAAAQIECBAgQIDApgLTzfBlvvIT6lpw
/Ul2nZ/b7/Jk325+bv6lcd1+tZ7E1fFuv1HcaL7LW8eTp46n3jq+tL93/qX1zI1P3Z1DnU9cHa/9
un/W1fG6rva3jk8do33qvnVdna/9Ln8dr/25eWrcqD+3/hqX/ij/0vnu3HW89us+dT711vG6bm1/
af5RHaP5uXV2eep47df8dX7peWu+uf26b9ZtNZ58WgIECBAgcGYBN8NnfjpqI0CAAAECBAgQIECA
AIFdBKab4bddMu+QND8x3yH1LynzE/G98i/Nu3c9e+ff+3klf86R/sh5btwoz6PzqXtuntSddenP
XT+KS95R3Gh+67pG+2X+qH2z/9lbPts+oc6zG9/qz9dWp+jqXDq+VT3yECBAgACBIwSmm2G/WukI
eXsSIECAAAECBAgQIECAwGECh36a9F6nzk+285P4rp/9a1zG02Y+/b3b7Je6636Zr+NL+13+pXmO
js854pL+0XWN9j9bnWerZ+RnnsCVBPz5utLTUisBAgQI3EVguhm+1Ido3eXBOCcBAgQIECBAgAAB
AgQI7CdwqfcM78fw7cy5afz27OOjS/MvjU+FWTf3ZmJpfPY5us35tq4/+XK+7JP+1m32q/vU8dqv
dWS+jte8db72k2fuur3ja31L+zlH6ly6/tnxqTN1P3v/R/fbu/698z96/tH6pfXPjU/caP+951PH
Vb9/9/aRnwABAgSOFZhuhn8+tgS7EyBAgAABAgQIECBAgACB5wpMN8OX+fVK+QlzR1R/8px+1qVf
12c8cZnvxjNf49PPusSln/mtx+fmG8XV+fT3bjuf7Jv59I9qt6ojeer3Q86V+fQTV8fTH80nT9fW
PDUu8xlPP/tmPG3m00+b8bou44lLW+PS7+Kzbm7b5ck+c/N0cTVP+t2+GU9c8mY8/b3b7FfryL6Z
Tz9txuu6jCdubZs8o/xdXPbNfPp7t9mv1p19M59+2ozXdRmfG1fXZ93ebd03/Vr/3nXIT4AAAQIE
3hOYXgh/fC/AHAECBAgQIECAAAECBAgQeDWB6YXwXz+8ffr/X+1gzkPgUYGr3mRcte5Hn9fc9SOf
0fzcfcQRIPDhgz9PvgsIECBA4MwC083w92cuUG0ECBAgQIAAAQIECBAgQGBrAZ8mvbWofC8j4L1t
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
bHF3O+/u/nkv8dyb47nxidv9ADY4UmDpn8e58Yk78myr9l76/8/sHb/qEBYRIEBgPwE3w/vZykyA
AAECBAgQIECAAAECJxWYboa/O2ltpy0r7xHOe4HT1oITV8e37mef1JG27lPj6vxV+rmp7H5Sn/mt
zrN1vlrXKH/m63m78Zp/bb/mTz9trSf7ZL72u/jErW2zX/J3/Zo/8RlPP+sznjbjiavj6V++zY1s
d5Oa+bUHzfql+bt1GU896df83XjWXbTtvi9Hx6nfx+knX9ann/mMH9WO6sl8rS/j9RwZT3z6XVwd
zzotAQIECFxTYLoZ/nzN0lVNgAABAgQIECBAgAABAgTWCXz8suxfP7x9+s91y1981dL3zrw4h+MR
IECAAAECFxBY+v+/7B1/ATIlEiBwT4HpZthfk77ns3dqAgQIECBAgAABAgQI3FZguhn+4cvN8I+3
FXBwAgQIECBAgAABAgQIELidgPcM3+6ROzABAgQIECBAgAABAgQIfPv3DOe9I3N9/D7euVLiCBAg
QIAAAQIECBAgQOAEAtPN8NsJ6lACAQIECBAgQIAAAQIECBB4msD0Ynh637AvAgQIECBAgAABAgQI
ECBwGwE3w7d51A5KgAABAgQIECBAgAABAhFwMxwJLQECBAgQIECAAAECBAjcRsCL4ds8agclQIAA
AQIECBAgQIAAgQhML4Y/p6MlQIAAAQIECBAgQIAAAQJ3EJheDPsiQIAAAQIECBAgQIAAAQK3EvDX
pG/1uB2WAAECBAgQIECAAAECBCYBN8O+DwgQIECAAAECBAgQIEDgdgJeDN/ukTswAQIECBAgQIAA
AQIECHgx7HuAAAECBAgQIECAAAECBG4nML0YfrvdqR2YAAECBAgQIECAAAECBG4tML0Y9quVbv0t
4PAECBAgQIAAAQIECBC4n8D0Yvjj/Y7txAQIECBAgAABAgQIECBwZ4HpxfCf7gzg7AQIECBAgAAB
AgQIECBwPwHvGb7fM3diAgQIECBAgAABAgQI3F5gejH88+0VABAgQIAAAQIECBAgQIDArQSmF8PT
P74IECBAgAABAgQIECBAgMBtBKYXwj5A6zaP20EJECBAgAABAgQIECBAYBKYXgz/hIIAAQIECBAg
QIAAAQIECNxJYHox/P2dDuysBAgQIECAAAECBAgQIEBgejH8hoEAAQIECBAgQIAAAQIECNxJYHox
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
hQABAgQIECBAgAABAgQuJHDo7xle6rT3T1K7n8hm325+6Tnmxnf71XoSV8e7fUZxo/kubx1Pnjqe
euv40v7e+ZfWMzc+dXcOdT5xdbz26/5ZV8frutrfOj51jPap+9Z1db72u/x1vPbn5qlxo37qr3Gj
/Wt87Y/W1/nan5uvW1fHa3+UPy6jdTVP1tXxLs/c8eTt4ut+a/td/jpe+3W/On+2+lNvrXM0nvm9
2jjV/F2dNW6r/mi/0fxWdchDgAABAv8UmG6GD/tr0h4CAQIECBAgQIAAAQIECBA4QmC6Gf54xMZr
9ux+srsm17fW5Cey35o7YmzvevbOv/fzSv6cI/3Rs5obN8rz6HzqnpsndWdd+nPXj+KSdxQ3mt+6
rtF+mT9q3+xf2608a95RfyuHuXkSV8+b8bSjukfzNf8ofqt9R/vMne/q6caXnnduHWvjujqXjq/d
/9F1Z/M8Wz2P+lpPgACBqwq4Gb7qk1M3AQIECBAgQIAAAQIECKwWuNTN8NxT5ifV+clr10++Gpfx
tJlPf+82+6Xuul/m6/jSfpd/aZ6j43OOuKR/dF2j/c9W59nqGfmddX70fZj5s9a/tq76/ZNz1vGl
+Ud5Mr8079njH3U7+/nW1heXPPeun/w1LuNpM5/+s9rU/az97EOAAAEC3xaYboYv89ekv30EowQI
ECBAgAABAgQIECBAYJnAdDP8edmS+0Tv/RPjpfmXxudJZd3cn0Qvjc8+R7c539b1J1/Ol33S37rN
fnWfOl77tY7M1/Gat87XfvLMXbd3fK1vaT/nSJ1L16+Nf9Z+2SfnXFvv3HXdftm/m+/yz41PXJdn
q/Hsk/NslXdtnqX1zI1P3Nq6rrZu7/OuzZ913ffbaP5qz0G9BAgQOFpguhn2RYAAAQIECBAgQIAA
AQIEbiVwqfcM5yei3ROqP0lNP+vSr+sznrjMd+OZr/HpZ13i0s/81uNz843i6nz6e7edT/bNfPpH
tVvVkTz1+yHnynz6iavj6Y/mk6dra54al/mMp599M5428+mnzXhdl/HEpa1x6XfxWTe37fJkn7l5
alzy1jzdeF0/6o/yZD550q/11Pn0l7Zr83frMp460q/1d+NZt7Tt8mV8ab618dmvnjf5Mp9+2ozX
dRmfG1fXZ93Z2pwr9aZf68x44jLfjWe+xqefdYlLP/Nrx+u69NPW/Oln/8RpCRAgQGCZgJvhZV6i
CRAgQIAAAQIECBAgQOAFBKYPz/rhw9unH1/gLI5AYFOBq/7k/ap1b/rw3kk28hnNv5PaFAECBHYV
8N+nXXklJ0DgbNt1ZgAANCVJREFUhgJuhm/40B2ZAAECBAgQIECAAAECdxeY3jP8dncE5yfwLQHv
xfqWyvXH8lxzw1JPlPk6rk+AAIGjBfz36egnYH8CBF5NYLoZ9quVXu2pOg8BAgQIECBAgAABAgQI
vCswvWf4X7+8Z/g/340ySYAAAQIECBAgQIAAAQIEXkhguhme/qq0LwIECBAgQIAAAQIECBAgcBuB
6cWw9wzf5nE7KAECBAgQIECAAAECBAhMAtOL4Z9RECBAgAABAgQIECBAgACBOwlMf0V6ekH8za+1
n7Za1z366Yc13zeL/TJY9+nWzY3LPl18HU989u3mE6e9psDWzzf5ojH6vlkan7za5wp4Tt/2jsvo
+/zbq40SOFbg7N+/qW+k5M/fSMg8AQJ3EZheCE8fouWLAAECBAgQIECAAAECBAjcRmC6Gf6pO21+
cpifNKbfxXdx3XiXpxsf7Z91o/26+S5/F5/9rtq+6rmOfh5zXbu4rcaf5dDV+6z9z7pP/nsSn7PW
qa57C+T7M9+v99a4/unrczzL8z1LHdd/wk5AgMDWAtPN8PdbJ5WPAAECBAgQIECAAAECBAicWWC6
Gd7906TrTyrPDLKktvqTzvSX5BD7egKPfr8vXb80fmvxo/ff+jzyEbiTgD+/d3razkqAAAECVcCn
SVcRfQIECBAgQIAAAQIECBB4eYF3P0365U//4AHzE/XcCNf+2vSjfNmn5s+6Ol7ja1ztd/F1PPtk
fea7fuITl/7S+Lou/bQ1f8aXtqlr7roav1Udc/evcbWezNe6Epfx9Lv4jC+NezR/9k2e9Je2qbvL
081nvO7X5alxXT95uzzdfMZr3lGeufE1ruunjtG+o/nknxvXxdd60u/iMz63Tb7UmX7WZzz9zNfx
br7Gp5/4mifzGU+/i8/40rhH82ff5El/aZu6uzx1vutn31GexI3a7FPjav7EZTz9rMt4+s9qax3Z
t6tnbnyNq/1H86fOmjfjNX/i6njiu/mMJy5tzZO4jKffxWdcS4DAcQJuho+ztzMBAgQIECBAgAAB
AgQIHCQw3Qx/9+je9SdftZ+fkG29T/JdJX/qndvGsZ6vjtd+zV/nk6+O13WP9rv8j45361PvaD5x
XTtan/m6vrrW+fTr+tpPnkfja56ar86njrnjicu65O/axGVd4up47Scu7Wg+cVu3te7kf3Y9o/3q
fO2n7rSj+cRt3Xb71vHar3V080vHa95R/2z5l9aT7+es2+q8yZf8Ne9ovsZv1e/2reO1X/fPfMbT
X3rebl03nv22bkf71fnar/XU+bjU8bou/VFcna/95Ek7mk9c147Wd/NLx7v9jRMgsL/AdDP8ef9t
7ECAAAECBAgQIECAAAECBM4jMN0MP/y19Cd/azfMPmvXj9Ylf/cTvW591nXza8e7vN146l6739br
ujqXjte6sr6eN+Np67qz9FNf6k+/qy/zc+OTJ/Hpj9rsU+O68Ro36m+VZ7TPXvNLPfeqI3nn1hP3
Gp/xtMn7aJt9RnlH87WO5K3jXX9p/i5PN97l78a7PN340jxL47t9u/G983f7bjW+d/1bfX/uXWfn
Obf+1FfjM5622+fR8b3zd/XV83ZxGe/q7MazTkuAwPMFppvhh/+a9PPLtiMBAgQIECBAgAABAgQI
EFgv8JTfM7y+vGNW5id3+Ulg+sdUM3/Xq9Q5/0TvR9bzXu15vX+6x2erz+MZXyNDXOr3S+3ntN14
nU//WW3OMXe/Gj8619y8z4qr9T9rX/sQmCNw9e/PpfXX+Kv89yR113prvz7zrKvj+gQIXF/Ae4av
/wydgAABAgQIECBAgAABAgQWCvg9w++A5SeBo58YvpPiFFNL658bn7hnHzL75vlk//S7+cTdvT27
T32OZ31ecdyrvrX5s646pp9606/xmb9Ke9X6U/dVnOfWWb+v5q57NO6snqkrLo+e89nra/21n3py
vm4+cbXdO77ut3V/af2j/ZMvcXFNX0uAwPYC083w2/ZpZSRAgAABAgQIECBAgAABAucVmG6GP3bl
1Z9QpX/2n1SlvtRbz5f5On7Vfs6z9LzduozHI/2avxvPur3a0b6ZX7t/1tfzjvLV+PSTb7R+q/ns
l/1r3szX8aX9mj/9rfJ3ebLP0nprfPInX/qjuMwnPusznraOp591iUs/82vH67rar/nrfPpL21p/
11+aN/E1X8bTZj79s7Wpr/p348+qv9aTfup6tI4uT/ZZmz95a55ufOk+S/OM4jO/tI5nxae+6pn9
M1/7c+NH6x7Nn/WP1pM8qTdtxpfmz/q1bfZdu946AgTmC7gZnm8lkgABAgQIECBAgAABAgReRGC6
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
WCOw7NOk1+zwzprcLv7727/8ElX7dWnm63jW1/Gr9nPOs54rdT2tzv/9f//5KP/X/1j3SB9dv27X
/VblPNlhrUvWa3cVeNqfk11PIflRAvn+yf7572/6a9uaN3lq/sTV8cTX+dpPXNo6n37mazvadxSf
/F2eul7/MQHej/nNXR3nGl+/z7u4rFsav3RdzZ/1WgJnEphuhqcXxL4IECBAgAABAgQIECBAgMBt
BKYXwqd/z3B+stX9hGk0P/dpbpWn22/v/N2+e413z2Ov/W6fNzfC9Sa4G789GIA7C1z9v7dd/d34
3Gc9Wj+an7vP3Lj870i3bx2v/brPaL7G6z9X4KrP5yx1j+ro5vPnrD7tpfFz1yeuy595LYEzCEw3
wz+foRA1ECBAgAABAgQIECBAgACBZwlMN8PTC+JLf3U/8br0oRRPYK5AvSmeu04cAQKXE9j7f+9q
/vTrDU/tV8g6n36N07+XQL6f7nXq5532bL5nq+d5T8JOVxKYXgh/vFLBaiVAgAABAgQIECBAgAAB
Ao8KTDfDPz2aZO36+hOj2l+bN+u6n0TXfWpc7df45J/b1ny1P8o/N77Gpb5R/sRt3ua9rDVxd5PZ
xdf16XfxS/PX+OSt43XfOp91iUtb4zK+dzu3nsSlzvRTX8bT7+YzXuOzbmmbfHVdzd/FZV2Nz3i3
bqv4X/fZ+s9f9+c8x6r7JT7j6XfxGa9xGU+e9Lu4zNf4jHfranziMp5+8mQ8/Tpf+118Ha/5uvnE
jdpaR+IfzZs8Z2tzrpy79s9W76P15Jw1T85dx88SnzpSZ/qpN+Ppp61xGe/aGj/Km/ml6+r+yVPH
5/br/rXf5a9x2a+Lz7yWAIHnC0w3w98/f1s7EiBAgAABAgQIECBAgACB4wQu8WnS+Una3J+0JS7r
Km+dT1wdr+vW9tfm7+qp47Vf6xzN1/iH+7lxG92wZX5ufAqbG5/8WVf7GR/lS1zXjtbX+fS7fBlP
vTW+9hOXdZmv46P5bl03nvx1vutn/67t8tX4mj/zWZ9+2hpf+4lLW+drP3FpR/OJ27jNf1dq2u7P
+9zxLi77dPNz6+nWj/J36+p46qjjyf/sdlRHnU8/ddZ+zpf5pW3W17zJk/n002Y869LP/FZt8iff
Xvsk/1ZtV2fOk/nar/vX+drfOj75un3qeO1nfdrMp5+2nj/jXZs8WZe4Ol77iUs7mk9c12b/uXlG
caP5ro6M13oynjbz6afNvumn3So++bQErijg06Sv+NTUTIAAAQIECBAgQIAAAQIPCVzq06RHP8Gq
891Pwh4Se+Liep7R1qc7b27MRoWvnd87/9q6Ruu6G8xuXeJz3vS7+LXjXd5ufO4+S9cnPufNPhlP
m/G1bc2/Ns9W9azdf+a67r8n3fjMtKvDlv73qquzG19d2MELc574pL91WV3erfft9unOU+O3rqfb
99Hx1Plonnr+Ub6l8V2+Lk833uXZavyofbeqf+88nU++D+t87Y/qWxo/ymeewJkF3Ayf+emojQAB
AgQIECBAgAABAgR2EZhuhr/bJfMJkt7tJ1unO+/eN2Z75z/B9/CtS6jPNze5dXwt0lZ51u5/83Wn
++9VeR65YSnDugS+Esj3Sff9nPmvFukQIECAwGkEppvhz6epRiEECBAgQIAAAQIECBAgQOAJAtPN
8Om/8pPV7ievSw+wNN/S+L3rOVv+pfV82PqGrxawV/7krfvlhrGbr/H67wvEMa6JTr+bz3ji02Zd
+qM2eeauWxo/2n/mfP67VMO3+u9kzTvqb1VP8ux1jpo/+2Q85+zGM3/VNufM+a56jrPXHeeldWbd
3OezNH5pPWePj1Mcnl1v9k0de+//7P0ePc+o3tH8o/tbT2COwHQz/LJ/TXoOgBgCBAgQIECAAAEC
BAgQuJ/AS/6e4fyELj9xqo818914XdfF1/WjfvJsnb/Lm3oyn/7ubW7UcmNWN8x8xtPv4hOXdhSf
+cSn7fLX+PRrfDee/JlPP23Nk/G92tTR7Zv5rfbfK9/S+ufWkbi5+ZfGb+U6yLPXn+vkrf+dSjmZ
Tz9tN575tIlbmj/r57bdPhmvebrxGre0n7x7n3duXWerp7rUfurN+dKvcXU+/bRdfOaTN/25bdbV
/EvHs1/W1X7NX+drf2581s1tU1+Xv8tT49NPvm7d3PEuT/aZm6eLS/6aL+NZl36Nq/PpL233zp96
uvoznzrSdvGZz7q0NT79Lj7rtAT2EPCe4T1U5SRAgAABAgQIECBAgACBUwt8/FLdDx/ePv146ioV
R+DMArlhzA1irXU0X+P1lwnczPdsP0E/Wz3Lvnk+fBjVP5pfup94AgS2Exj9+RzNb1eJTGsEPJ81
atZsLTDdDL9tnVQ+AgQIECBAgAABAgQIECBwZoHpPcPT7bAvAgTWCuRGODeUNU/m67g+AQKHC+Q9
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
V+Nrv7e+Nz/3PL385rclkHfCe6/nsXFrPX3rfFs9V+qOd+t8mT9Xe6196vla9aeeGp/xtK31Y8dr
/t661r6t8V6+a8+vpc7UUf0znnauT/KfK9/cetZSx9xz1PXXPtfU/cTXJ/a4z+exR+2N9Rluhnf/
q5Uqjj4BAgQIECBAgAABAgQI3LbArn+a9G0/2u2dvt645sY0bZ3f3gmPV7zXcx0/rdGWwNybkLnr
W3WNHV96/7F1Xiou70DH4VL7XDtvzpPz1f0zX8drfOLqeF03tn+uPGP3E/dYoPqf+/k+3k2PAAEC
lxMYboaP/hCty20pMwECBAgQIECAAAECBAgQWFbg6PcML1vS+Xf3juX5Tc+ZMTe/yZmb0rSZT5u4
2vbmE5+45M/4udrkT75L7ZP82m0LTP33U43v9beto/oqUJ93nb9WP3XU/TJebw7Tb83XPOlfOj77
XLs91ePaddb9Ws+jd56sq/myLuOJq+OZ155XoOfdmz9vNbIRWEZguBn+e5mt7UqAAAECBAgQIECA
AAECBJYR+OXrtr8/uf/zj4fb3/3128Pu6D/nHaS6oPUO39ria91b6cex5VzPkfg6Xvtj89V1p/br
jWrNU29Ya3zm63grT41rrc94zVP7NV+dr3kuHV/311+nwNTXY+Lr67M1PvXUydNbN3f/1j41b6+O
pean1j81Pueq6+b6JF8rT2s+46kr6zOefuYznn7aGpfxtHVdK77GZX2NT1wdT/zSba++zPfqzPmm
xidva13yJi7t2PjEtfIkX9qp8XVd+mnH7pv42qaeOl77dZ/WurFxyV/jMz42/6nxdV2rjsRpCWxZ
YLgZHr4g9kGAAAECBAgQIECAAAECBG5GYPhC+F9fb4b/+/DEp94MP8yxpj/nHTTvbK3pqey3lnrj
W2+E93tyJyNAgACBUwT2+t8pez3XKc94S2s8ty09LbXOFRhuhv8xN4n1BAgQIECAAAECBAgQIEBg
SwI38dOk3Qhv6VNy+7W6Cd7+M3QCAgQIXFPAf6dcU9tePQGfjz0h83sS8NOk9/Q0nYUAAQIECBAg
QIAAAQIERgkc/WnSo1YKIkCAAAECBAgQIECAAAECFxL48PGfF8r8La2b4YvySk6AAAECBAgQIECA
AAECaxQYvmf41zUWpiYCBAgQIECAAAECBAgQIPDs2bOLIAw3w18ukllSAgQIECBAgAABAgQIECCw
UoHhi2EfBAgQIECAAAECBAgQIEDgpgSGL4b9NembeuQOS4AAAQIECBAgQIAAAQLDF8P3GAgQIECA
AAECBAgQIECAwC0J+J7hW3razkqAAAECBAgQIECAAAECB4Hhi+HhHx8ECBAgQIAAAQIECBAgQOBm
BPw16Zt51A5KgAABAgQIECBAgAABAhEYfs/wL+loCRAgQIAAAQIECBAgQIDAngU+f/58OJ6b4T0/
ZWcjQIAAAQIECBAgQIAAgaMCboaPshgkQIAAAQIECBAgQIAAgT0J5Eb41atXh2MNN8P+mvSenrCz
ECBAgAABAgQIECBAgEBXYLgZ/tKNEkCAAAECBAgQIECAAAECBDYo8PHjx0PVb968ObQvX748tH6t
0gYfppIJECBAgAABAgQIECBAYJ6A7xme52c1AQIECBAgQIAAAQIECKxQ4MOHD4eq3r59e2hzI/z0
6dND383wgcH/ECBAgAABAgQIECBAgMAtCQw3w/e3dGBnJUCAAAECBAgQIECAAIH9CvRuhD99+nQ4
vJvh/X4OOBkBAgQIECBAgAABAgQINASGm2EfBAgQIECAAAECBAgQIEBg0wJjb4Rfv359OOdwM+xX
K236kSueAAECBAgQIECAAAECBKYKuBmeKiaeAAECBAgQIECAAAECBFYj8P79+0Mtd3d3h7b+1Oh8
j3BuhDM/3Az7gng1j1EhBAgQIECAAAECBAgQIHANAT9N+hrK9iBAgAABAgQIECBAgACBswrkxnfq
jfDD3zP8v7NWJBkBAgQIECBAgAABAgQIEFi5gL8ivfIHpDwCBAgQIECAAAECBAgQ+C6QG+H6PcC5
8R077/cMfzf1JwIECBAgQIAAAQIECBC4EYH/A+WAw/JMTFBGAAAAAElFTkSuQmCC
--Apple-Mail=_6F17D297-4269-4872-8C80-C4479CA1382B
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii



This particular background is taken from the XTerm's 256-colour palette =
used by Emacs, and there are many more in that set exhibiting similar =
problems. Obviously, with 24-bit colour terminals, there is a large =
number of colours that cause trouble for the old heuristics.

> IMO, the commentary here doesn't explain enough, and actually begs
> more questions than it answers.  What is "gamma-correction", and why
> is it pertinent here?  Why is the power 2.2 a "good enough"
> approximation here?  What are the other constants, and what is the
> meaning of each one of them?  And pointing to the bug number for
> rationale of the cut-off value doesn't really help, since the
> discussion is very long, so I doubt people will easily find that
> rationale.

Fair enough -- I thought that the programmers who don't already know the =
theory would immediately look it up, but I've added a link to Wikipedia.

> I still don't understand why we need this function.  Did you see any
> practical problems with using color-name-to-rgb?  Why does it matter
> that it needs the display to be initialized?  Would it be enough to
> document that it needs the display to be initialized?

If we use color-name-to-rgb then we get a crash on start-up with =
TERM=3Dxterm (for example), as explained before. I agree it's a somewhat =
artificial function; I've eliminated it in the attached patch.

> As I said before, I don't want to change the default value of
> frame-background-mode.  This code has been relatively stable for quite
> some time, and the result is customizable if the user doesn't like the
> default.  Changing the default value in subtle ways simply risks
> annoying users.  There's nothing to gain here, only potential losses.

Quite the contrary: the new predicate is more robust than the old one, =
which I have argued with both concrete examples and theory. If you =
disagree, please supply both: why the AVG predicate is better, and =
specifically for what colours.
There is nothing to lose here, only potential gains.

Here is another screenshot: it compares the three old predicates with =
the new one for all colours in an Xterm with TERM=3Dxterm-16color. The =
left-hand columns show the contrasting decision with each colour as =
background, the right-hand columns with the same colour as foreground. =
max, avg and dist refer to the old predicates as per previous message; =
new is color-dark-p of the patch.


--Apple-Mail=_6F17D297-4269-4872-8C80-C4479CA1382B
Content-Disposition: inline;
	filename=xterm-16color-predicate-comparison.png
Content-Type: image/png;
	x-unix-mode=0644;
	name="xterm-16color-predicate-comparison.png"
Content-Transfer-Encoding: base64

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
f/1vtr9VH2AcKG1AGmY29DaKGjubUpo6Do472NLs13zg95G/bz9keajqsOHh5UeoR4qPDBwtOtp3
THqs53jm8Qct01punZh44vLJCSfbTkWeOvNH2B8nTrNPHz3jf+bQWd+zB895n2s873m+odWj9cCf
Hn8eaPNsa7jgdaGp3ae9uWNsx5GLgRePXwq59Mdl7uXzV6KvdFxNvHr92uRrndcF15/cyLnx4mbB
zf5b828Tbpfe0b1Tftf0bs2/HP+1p9Oz8/C9kHut9+Pv33rAf/Dsofzhx67iR/RH5Y8tHtc+cXty
qDusu/3ppKddz6TP+ntK/tL7q/q5w/Pf/g76u7V3Ym/XC9mLgZdLXxm/2v56zOuWvti+u29y3/S/
LX1n/G7He+/3pz8kf3jcP+Mj6WPFJ8dPzZ8jP98eyB0YkPJkPNVRAIMNzcgA4OV2AOgp8OzQDgB1
kvqepxJEfTdVIfCfsPouqBJPALYHAZA4H4AoeEbZCJstxDT4VB7VE4IA6u4+1DQiz3B3U3PR4I2H
8G5g4JUZAKRmAD7JBgb6NwwMfNoKg70BwLE89f1SKUR4N/jZSIlar+mCb+XfPzZ+cSYrG50AAAAJ
cEhZcwAAFiUAABYlAUlSJPAAAAIFaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRh
IHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA1LjQuMCI+CiAgIDxy
ZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4
LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHht
bG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxu
czp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyI+CiAgICAgICAgIDxleGlmOlBp
eGVsWURpbWVuc2lvbj43MzI8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQ
aXhlbFhEaW1lbnNpb24+MTAyNDwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDx0aWZm
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
lY9BRgAAAABJRU5ErkJggg==
--Apple-Mail=_6F17D297-4269-4872-8C80-C4479CA1382B
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii



Here is the same comparison on a terminal configured with the exact =
colours of a Linux VGA console, TERM=3Dlinux:


--Apple-Mail=_6F17D297-4269-4872-8C80-C4479CA1382B
Content-Disposition: inline;
	filename=linux-console-predicate-comparison.png
Content-Type: image/png;
	x-unix-mode=0644;
	name="linux-console-predicate-comparison.png"
Content-Transfer-Encoding: base64

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
f/1vtr9VH2AcKG1AGmY29DaKGjubUpo6Do472NLs13zg95G/bz9keajqsOHh5UeoR4qPDBwtOtp3
THqs53jm8Qct01punZh44vLJCSfbTkWeOvNH2B8nTrNPHz3jf+bQWd+zB895n2s873m+odWj9cCf
Hn8eaPNsa7jgdaGp3ae9uWNsx5GLgRePXwq59Mdl7uXzV6KvdFxNvHr92uRrndcF15/cyLnx4mbB
zf5b828Tbpfe0b1Tftf0bs2/HP+1p9Oz8/C9kHut9+Pv33rAf/Dsofzhx67iR/RH5Y8tHtc+cXty
qDusu/3ppKddz6TP+ntK/tL7q/q5w/Pf/g76u7V3Ym/XC9mLgZdLXxm/2v56zOuWvti+u29y3/S/
LX1n/G7He+/3pz8kf3jcP+Mj6WPFJ8dPzZ8jP98eyB0YkPJkPNVRAIMNzcgA4OV2AOgp8OzQDgB1
kvqepxJEfTdVIfCfsPouqBJPALYHAZA4H4AoeEbZCJstxDT4VB7VE4IA6u4+1DQiz3B3U3PR4I2H
8G5g4JUZAKRmAD7JBgb6NwwMfNoKg70BwLE89f1SKUR4N/jZSIlar+mCb+XfPzZ+cSYrG50AAAAJ
cEhZcwAAFiUAABYlAUlSJPAAAAIFaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRh
IHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA1LjQuMCI+CiAgIDxy
ZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4
LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHht
bG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxu
czp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyI+CiAgICAgICAgIDxleGlmOlBp
eGVsWURpbWVuc2lvbj45ODI8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQ
aXhlbFhEaW1lbnNpb24+MTM5NDwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDx0aWZm
Ok9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9u
PgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgriJwQAAABAAElEQVR4AeydB4AURdbHXy85ZwUD
AmYRFQVzwMiZw5k5xXhnFvOZc/jUM56eeuqd8dQzZxGVM2cxB0QxgCA55+3v/Wrmzfb0zszODrvL
zkw9mO3uSt397+6ql+pVICKh/jx5BDwCHgGPgEfAI+AR8Ah4BDwCHgGPgEegqBGoKOqr9xfvEfAI
eAQ8Ah4Bj4BHwCPgEfAIeAQ8Ah6BJAJewPWvgkfAI+AR8Ah4BDwCHgGPgEfAI+AR8AiUBAJNs93F
I488ki3Lp3sEPAIeAY+AR8Aj4BHwCHgEPAIeAY+AR6DRIeAtuI3ukfgL8gh4BDwCHgGPgEfAI+AR
8Ah4BDwCHoFCEPACbiGo+ToeAY+AR8Aj4BHwCHgEPAIeAY+AR8Aj0OgQ8AJuo3sk/oI8Ah4Bj4BH
wCPgEfAIeAQ8Ah4Bj4BHoBAEss7BLaSxbHWmTZsmDz/8sMybN08OOeQQ6dq1a7aiPj0PBDyeeYBU
iyIez1qA5Yt6BDwCHgGPgEfAI+AR8Ah4BBoxAg0i4L7wwgvy6quvOhjat28vRx55ZFZIhg8fLrNm
zaqWv9NOO0m7du2qpZdSwg8//CCffPKJrLjiirLppptmvbXa4Jm1kQbKWLBggTRr1kwqKhqvs0Ax
4dlAj22Znmb8+PHy+++/y+zZs6VJkybSokUL6du3r9vmurBC6+Vq0+fVDwLl3M/nQtTjkgsdn+cR
8Ah4BDwCHoH8EKhRwP3444/lqaeeytlaEARy0UUXZS3TsmXLVF6PHj1S+5l2nnnmGZk4cWK1rIED
BzYqAffRRx+Vzz//vNp1RhN69+4thx12WDQp5/63337rLN3cay4BtzZ42gnDMJRFixY5QbNp0xof
u1UraDt16lR58MEHZfTo0fLbb79J8+bNpVevXu6edt11V+F9qWtamvsrBM+6vv7G0B4C5TXXXFPt
Ulq3bi0rrbSS9OvXT9Zbb71q+XWVMGXKFLn++uvlu+++q9Yk6Sh+MlGh9TK1VcxpV1xxhaBQyoe2
2GILQWm4rKgY+vk33nhDRowY4d75P/7xj9WgWrhwoYA5fc9ZZ50lfCdLS8WAy9Leo6/vEfAIeAQ8
Ah6B+kagRkkHYeXrr79equvYc889pXPnzoIgMWDAgJxtHX/88TJ//vxUGRhbXJsbG/3666814lIf
ghw41AZPw+3DDz90wsu6664rF1xwgSXX+farr76S6667TmbOnJlqG0YQoYUfSoFTTjnFvQupAnWw
szT3VwiedXDJja4JnlO2b/2jjz5yiq7ddttNhgwZ4iyrdX0Dt99+u3tH2rZtKxtssIGsttpqThlC
f9CxY8espyu0XtYGizSDZ5evgNunT59lepfF0M9PmjTJfQ+MXZloyZIlQn8HLV68OFORWqcVAy61
vilfwSPgEfAIeAQ8Ag2MQI0Crl1Pz549s7oW1yTI4WY4aNAgayrndq211krLx/rXGAVcu8htttlG
tttuOztM28Ko1wfVBk87P1YGyLaWXpdbmLxbbrnFCbedOnWSo48+WnieuJy/9tpr8uSTTzoX7Kef
flr233//ujx16r4Kub9C8KzTi2+EjaFYwrUcgemLL76QDz74wG2fffZZQUmy4YYb1ulVV1ZWpoQF
3pvNNtssr/YLrZdX40VW6PzzzxeELiM8KO6//35hWshpp51myW7bpUuXtOOGPii2fr6h8PG4NBTS
/jweAY+AR8AjUMoI5C3gtmnTRtZee+2iwQJ3S5i9Dh061Os1L7fccgXjgsUMAQJBuCYlQb3eRB01
jjsfVg8Eo8svvzwVTIz7O/jgg53V9qGHHhKEpF122cXdd65Tz5kzx9VBAG2shPCOEoZ5orUlrNy4
NebrMo7wPn36dGnVqlWdW8Dj17788sunrmvllVeWP/zhD3LJJZfIl19+KaNGjapzAZdvgR+Ei36+
VGg9a78u+gnamDx5snsuBNDL9r7W9/NbY4017LbclikJEO9mbfvuQt/rQuu5C63ln/rGs5aXk7N4
XbxnOU+QIbMY+s8Ml+2TPAIeAY+AR8AjsNQI5C3g1vZM5513nkyYMKFatcsuu0y6d+9eLb0uEnBl
RIB69913BddqCEZ96623FuZQNZZAR1zff//7Xxk3bpxggQKPPfbYIycEheD5+uuvOzxo2Ny+v/nm
GznuuOPSzrX33nvLjjvumJZWyAGCD7TtttumhNtoOzvvvLNgvZ07d65wHeauDvOH2zKCMe7Nd911
l3Nl5hnyzBB4DjroIFlhhRWizcnS3F8heNrJua57773XWTTNFRvBhjmNzDHmPqJEGSxoKFuuvPJK
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
259/VPzD9GG3033plev7/Gf6Pu+m7/Ir9J3/D11/X6+6TL863Hil6l7JeNA3dtywuHjV2v4ZbTNf
Szb7pV4vbTNG65+kferYYCkyXceImVp2gvZ3rF/uLdX2f9b2KmwNX+mPb9SP3Kp1t2jdy7Vu78Y+
bF+dcdl4dQnOfujQoXLIIYeYrw0Q1a9fP7N9wAEHNLSgDtswtxDRkSsqKswXxtdSsNzup8xScH9r
2vXsiThbpLy83GiJbX+U33TTTYa5paygoMAw5sH9rLe2XarnmWo7e767+3JzZLOsq18n9229z2jw
9DEyQQ5u2XSLzKqa1XD6TETerX63YZuV9fXrhUk9L0uYWySEMMMf130s12+6Xl7Y/kJMfTaGdBki
I3NGylZvq9y79d4YTdX7Ne/Lv7f/W8q9cvla4deatE33glTwHJ473GD5Ts07RvMXj9GbVW+a/Qx0
8cztw9selnu33Suf139uhBy9w70FBvuurXfJzKqZpl0manWJgPzrLb+Wz+o/M3CCy4b6DfLHbX+U
N6reiIe4YRvpeH44v+HLf5wvz0RzhFDppk03yRvVb5iAHkwo9sray0xEHi5/2Bw3vj19bve2m68N
PEIgEFtml5ZZjm+fttuBMT50gQ76ytyayYUynFAoJ2QYUBmQAAE1XApdpm2UuTUM6gZ9G+rXtNtX
y3ViI/6cz5R5q/194htF+fX28U/ATFj6mSIRlW00TGA+j5al+YKxYI+sPUz08IJwgZnME3X8J91/
YhhNLh9mFDP+g3NQlTdSr3AvuanHTUYwgx87YxTM8KAug+T67tfLCfknNFaOri2rWybza+ZLcbhY
vlf0vRhN1QFdDpCTC042GrNHyh9p0jbdC1LBc2H1QoPlITmHmHE9HqOxeWPNfpileOaWsfv7Rd+X
vtl9jZCD+QVp0i4qvsgwUNwj/hOZRpPyJ8nlJZcbBQDXDi49s3rKd4u+K0fkqWQsCfF+r4xUNnyL
QkUGe56J5qhbqJv8tPtP5ci8I00AwiU1S8xYj7D1nG7nyHe6fadJc/rE2oKv1fai8bdldokiI6MI
NmmbfrcqM/uQvvcRkGLsCAzs+1jLf6vjRWV0TNAiS0aoepuWv6Il2l50nGFMgDn2/q1t7ottE+ql
Y0i57lsRKF8ebbtSyyv8cnOsVVperV+fndKVzk/N/qsJCHX77bfLmDFjjNb2o48+kieeeMJc9eTJ
k42PKxpT6sEkWlqyZImcd955ZhMtMH1AV1xxhaxZkzxaW6rtunfHZkuFGYEAWEOGDJErr7zSmEmb
ndEffGZXr15ttlJtl+p5ptoueP67+zoT4+MKjpOvdP2KPFT+kGEy3699X6YWTzWh62/ddKssqV0i
H9V9FKNxRXsIYwsDQHAbJjRM1pHaz6icYb4nFpzY5PLR7sLMro+sFybwpFBBY/j7rb83dc/seqaZ
zDRpmOYFqeCJtrw0u1Q+qftEZlfPFtIIBOnN6jfN5vi88cFiWV23Wp7Z/owpOyL3CDPIMulgIIWR
e73q9Zj6mbLB/xdNKjQsZ5hcXHyxmUzw/yTv4AuVTYU2Fpt4i4ML1l9gng+7P9kSbTH5DJm4/LrX
r6VruKupivXEtC3T5NXKV2Vy4WTpFlbxcZTQkPCFiLxJkCkicaItdhRFQOGKPKizj9m6rZB6h6vE
/HRlVJWxCh2hTGxwAqFVQl/V8iwtx+zs9zqJWOH3443Sdt/QfUU68VDImZQYiu4XlCu6S2fzIv3N
Hv+H9U/0y4RGySvTCo1Drl+Yxr9E9P7P9v/I38v/LucUniOndD1FDso5SG7ffLu8U/2O/Lj7j+WA
nANkUPagGI3rqV1PNQHaYABu2niTGSeYrJP/84SCE+T4/OPlxcoXmyCHdvfAnAPNOPT1wq8biyQm
4jBb3PMny580wtcmDdO8IBU8Ee4tr10u+3bZVw7PPVyer3w+BqWxuWPN9n+rmOk3EoK50wpOMwUI
yP+w9Q8mFzjaQBiqo/J9t7TGFpmxxv8XTSqE8OB3W35nhJ/8P8mTPqlgUlIg4i0O7up1l3k+kjaI
7kCghGBhS2SLXFZ2mRF+sgsLvR+W/FCOyT9G/lb+N6NQsH29UvWK8IVskKkP1WLiuk3XmbKM/+H9
rZrb0Pd0PBimYwUM7Tv6bn9clzC8b+j32FiUvOd0H4p2ZUJD52u7PgwW2maJjjP36r6Fur5Yx5gD
/PIG4evnpppf91OtZ+lTXRmqX8uW6TjTIEC1dTrxMtzcuRMdedasWbJ+/XpTjZQ+8+bNM1+rrX3t
tddMnYULFdldRPjzQpgjQ/jjXnfddYa5peyOO+4w5fzYusH11rZr6MytJESASQMTEjtw4R/CwMbA
hJkYVB6JnZ2NyRsjFxddLFd3v9pMKqiDlhAGVR9jWVm30kT8ozxIMFIXFl9o6sAwLK5ZbJgKpMGY
mtE+EylVPC3zGq9dxDx5Rd0Ko/1A4h6khTULjbYQ4QT3wkrU0UBeUHRBw/0MtsmE9Q9qPjATMiTV
lxZfaphbrhvzrvO6nSfkK2xrQkgEDewysIG5ZRszTjRWV5ZcqTJ054cIJq0ieCCYW4jJx0v6XcyG
Um9/0fCL2BgfXSXDwK7w183vW/r7dnT7wEC51jGR/1UrbCToSPORzEcp1F/LlRrMnYN9Ruuk+2LG
9hkmxYgVtOHPznq1fnBrgQrDhTEwILDBzPhnm35mmFt2oiV8suJJIU7EgC4DjNlyTCPdqPQq5a4t
d5k6J+afKEO7DDVMBRorXGNon4mUKp6WeY3XLmJ2XNqlVGq9WsFCKEjDc4YLAfYQTnAvuCcQbhR3
b707oQtHsH26ruOuxRhLjJPfbvmtYW65VixscA0jv3pbE6b9EH1j0WMJVwHcljA9d+l/LCotX4a+
5DO3tAjl6/qR+p4f47f31gYYUdsl44dS6MxG5tZsD9V2480u8eYG2iEwzdPvOh1f6qPlK3XbamlZ
hywDPMDfTJffZhlce5GlpaVm1QaYIl3Q3nvvbcqWL19uq+2yJRJVqL6+XtAsk6cXk+rPPvtMrr76
6hiz5eBJptou2Idbj0VAw30YSR+lmIRBmBdZrHuE/TKzI/CDNB6J7F7ZvoqCoEgwwUT6w0QNQnqY
iJDcn1pwqtnFC//Z7c9qOIocY8aEz04mUqp44ltGDlR8MEkhYMlOPhBQxE8i0eBCJJfvEmJm3kgI
OkbkjGgsyKA1zLUhJsdBjSllPA+jckex2qaESTK0oGaBcRVAcwLjBA3NGSojckc0CCBMoftpEQLe
u9HJQbC2/7ePDQzF/j30/lo/qGrdVql4zNfOD+0kgzZV+kUyD8HY6vBKH947KpnHJFr9gQ1ZDe4n
Cc4nWiUdFzA1WCZA9r1k3zumLNL4rjKVoj9YD2FBYvN8ItzpGupq3nGYK0OYuSYiLI2mb59unlUE
VPiSYuJ555Y7jblsojbpXpYqnsTCqPfqjQ+mZZbAygpLEVBUeEiOGol5AzS/en4T1wyYKd5xmUho
tiH+n7hgxdNb1VEuKH7HTmwzH4AYy7/V7VvG0st2xz6E3FYAYcvdsgUIDGtap8H3dmvsPtxjxL7m
9ovdx1ZoiM8Hia+PNBXMvHuArtbrV8uNSTJ9MPVQWaC30h9HvM/9Zag02ofuTgdKaqKMKe/EiRPN
NZLvFjr44IOF8uLiYpP/lrJJkyZJdXW1PPPMM2zuErKmyQRx4guhUZ42bZps375dMFe2ZOuybddb
28725ZYJEEjwfKCBbQnNrJxpTFo+qv2o1S9LTHYYCK2vI34hllluybHTsU4qeDLZYxDDDxemFlNA
yGpNjs47uglUdmDDhCkRJStPVDedyiwu+EYlovbABcEGQdzwc8f0ki8TeoRAE/ImyOi80YlOxZXt
CAGfF4qpxYQj4bstt7Fa+H+aEbB1baxn1lboL8wt83oYXiXvAz0GAT8oQ3YUZXDlE13PJPLnXzFX
rKx/zHayjXF548x/H79ba12SrG58OS4GCO5w34Ae2vpQA7McXzdTtlPBk/gBMKQISGFqiY8BWSuv
16peawJffijflBHLIRElK09UN53KLC7EckhE7YHLezXvySuVrxg/d1zF+KKAwGIOM+T2YKoTXVta
lelr3biqxF9UYPyI2RWQ/3hX8faLe//ZzXg90ADtBfnE5/r1DbwktK8KT1dpA0yUIfZBpeY3bX6S
MrjDhw+Xs88+O+ZC49PssJM6+N/uSgaXKMlBIt8tuXCtGbX1taVOsG5wnX0tbUddR22LAEGK/rX9
X6ZTNLYEj0JTiFnz89uflxr9NEdI5jH9tISfYybTzuA5Pn+8z+Cq+R8MrjVPxtT8kNxDksLa5IUb
rZmsPGlHabYjIRPUTteIxpwI5fg8oblaXLvYWD7Mq1bXEv2Oqx5nIs9mqmVDO8GetFtvoU4ikr2K
amObeZ8oM3u4/luIuozEHVqhX7S5e+uEZJD21T1qavaZ2et+doAAQYqI4AuRMmt+lcYL0Yk5GmF8
FW3wm2TdoCkMjiXBMSZZm3Qu3xk8/1v5X5/BVZ9bGFxrnoypOX7UySjZ+zNZebJ+0q28I8dVngMi
lJsxRAVGBFsrySoRXKH4IkwnU0ZHnlOnv5/6mk+JaHdoMy1jvTQEray5LzCxluNTpje0Ssvf0z0E
mmJfkZZ1T/WkmjmfXbjLXm6TUyAY1PPPP2+iI/fv31/Kysrkrbd804fx48ebtDyLFy+WlStXyrp1
auC9C2nDhkZJFjlwYW6DNHLkyP9v7zzg7KiqP363JtlsyqbQCWuoFpogoiCELtIFI1VQipEO0nuo
Uv80UVAEkRqq0qSDIAgoEEBBapCWXjbZ7GZL9n++973zct/svC1vS/LenLOftzNz594pv5m59/Tr
NxsaJHuc/JTybaftbdk7CDBPp6a3P6D6AO8Kpi7NnIEsvE2Lc3GJqWtgehsyLiMc43pGciqEsVXK
U670vXOlhXGUnuKJ6yxaYhJCoCVW92QyKCJARUmZxFwa5Vzl0eMU2zZu8pC6Vkbvry9xUcaDc37S
/IlPaEWGcoReMnCuVRnj4xS9QNvODwF1QZbWbY8I8/B5Fw8zJV0PK66ESZMx030hSwTfzYWdR/gV
13aveW/p4jETXI1+SafjumX+LT50JYSDaUwGlA0Ii9qtIxxj+UU4rimr8cmpEMaY8itp1FM8sfKR
SZ8EdoQqqXsyCaTi4jc1o3suD5hc5cX+XFTZz3RNcdSXuKiilPOOKR/jiE9n6jjCy0geRny6UR8h
oB4/MiyU7CNjwYAuCqO1qetpmyoNF8u6vDYlQ2QcWU22oXflhzv0emwUF+X0nyLj74033uhee+01
f8evvPKK36ZMk07df//9vuzBBx9cqqhMnjzZNTamfLqY7zYk5sfdeOOUW97LL2uWkFSNfNuFx7f1
niNAQijV/JHNNRRuYSw0cU6uM01pnuLuqb/Hx1WdPPxkP30ACRdITEHcT9Kop3hipVDmg6y8Gfdk
mcc2jsh4DeEiTrKQkNimPIk0uizVF5FsKm6KpL6IIeNckxdN9hnIFXMS6TB9BPMlQlh1c5FadhG+
ScJjlAcCom/VuOeSDWOYkLFyzO3lt1nk2AizItRirfVW3P/Jfh7BlFS9ko3Tx0pvp0rtfy4EmM5M
3+dnGp7JqoYiVHNEZO0INlYrX83PBsAYcvHci/180fSNJNIjT0HSqKd4MiajLGV8Jytvxj1Z5rGN
I5JLQbiIR6exYZvyJBJTAEIkm1J35RCHvsh5gVKCpF9kcFYi8SezJHzWknInwaqbi3QsQfiW3i1X
NSvvAAEv0Kp1NkaPgCWWkBaNq9VDIcy6EbIl44tjTKmVH7Sa/GQXc69DJasV33PptJceO3asv3lN
JkXyJk0wpUmnfIWl+A/hlmzP0EYbbeR22mknb2Gurq52xx13XCZz8pNPPpl1lfm2yzqIbfQYAWJl
dS40YgeVcF3C7aUjIhkVddAAo61nKgKmDmKaFCy699ff31HzotzXEzwVEM2mTJIVsieT2IJ5h+OI
qQIYtJiqiQQsZHeEEOpQMlCeRGJOTt5rEoGQ9VOFXAZ7YvuwkPc2PVD/gLto7kXusrmXZSl3SMij
Sa80SUncuVVZgdUZjXzonhlX38piEMC6+na6fGtZIsgy0uL8IFMyML1D6S6lrmSjCEOBMKsxUbKq
gi3Jp9oWprXtUoxF16hzBAit0PeXuHQlQi2OGHqEbsYuCXmhDh4reBdNaZnimDqIRIdYdPcYvEds
u2Iu7AmeiotmUyYpZG1FrZ9ijnmH44gMvfSV9EnMe0s2egihDiWD9lVxbYu57O2mt/17TeJCZilQ
IZcxePzg8V7w7e37333w7n6GixOGn5Cl3GEs0fFEx5e4c6uygrwTeBApvxdX18o6QCAdIdZ2rwiy
05eMAyhG234jv2vl98yS8syRamVNxhFicEtqU+MOWZv9tHRYcKFa/7+o/rX3N4zcngq4KszW1ta6
0tJS77Ks0+tEmiyVTazJuCKTBOvAAw90+++/v9cUcq3QCy+84N57rz1DmW+7pXKTRXpStOIkn2Du
VZiIh+ofcli/EKzYp27HcbePK/KnLZ+6lcpWcntV7+Wr0PEzH+6V8670Ai4utwi+SaGe4KkYkfmX
aX9UOI1LLqV1Eah3rNrRuwBi7X15xssO96nZ6cymX6v4miP7ZtKIGKVdBu/ipxSBWXtzxps+8RlJ
QBB60YrnEnIvn3t5VtZwzfhKlnDi0iEYmrNrzs5YqSjjOWAZ5riHzTjMKyWY1uGD5g/EGLjYrVK2
iltvQG5fJPYzvRZMJ9/ibfNvcyuXr+yFZZicpM49CbbdobYHhclYXZ5RlTylvcUdbC/ZFn6CuXGh
tmZhRB6OYUQ+kZ3SDsoSZClXA8kU9hp1hgAWQ7Lz4o1y0NCD3M6Dd3ZYv7DMIviq23HccZgnd0zF
GPd5y+d+7l3q8M3eVHeTO3b4sV7AxeUWwTcp1BM8FSMy/yLsqHAal1xK65L5mlhd5t5leiGmGkTx
pjMxkPiIpHpJI5QsD9Y/6Pas3tNP/0Z/jvIB4RHeBy8erLtxdPyw47OyhsNbQWQJJy4dkp7JTZwz
MeNVRxnPAcswx71h9A3eFRmFwxoVa/ipnODBmJM3F5H8E/dllOR8iyQB5dtiGiiUsoTOGHWOQMkO
MpZMlnFD8q61XSRPqlbWGUb+J79m+Q2SMWb71BgTHg3rbNtr6fGmNtjD+lT50WSM/IqMUtJfjpuq
qqpy/Jqamtznn6diTkaNGuVrq8Cbo2mmuKUFdbY8A5mqQtczOztY0bpdbTdt2jR31lln+ZhgDltW
VuYFcY5D8qhwLtzwtPm202N09zp72k7bL4tLGO7QdYttSJesq8tYWEb5kcOOdFgNac8gRup5klCc
Nvy0zIAWHps2TIGCdp1jTRg6IWuKGpiaTQZs4i27WM+SRvngGWKEG9n3ApfkzgQbYqf5IdgyQOJW
zuDHwLlu5brhoRO1DqO8X/V+nqlgvk4YYhQQJGshfgmKvteUMd8gQqr+wBTCLUzL+Ea03O+UfzA7
Z9Wc5caWj/VTmrzR9Iavz36+L+aZVgFZ24RLnvtJNSc5QgWYzqNF/lA0waDETUkRti269dTQlZqm
Jy7SIb1fIGpPX8qYd7k8nXfkJ/MPlpRLL6XC7QdSdo08zw/bN8sSaqcE+9Pr3pKbMIcI3nGUM0ps
Q7pkXV0gwzLKr513rXuu4TmvoEEAYBotBKcL516YUcCFx6ZNbXmt9wbimCTW4RtQ8go8CdvwydzE
epY0ygfPKEbPp12S4e1ITtQR/WnBnxzx0ygF4R3ok1DWoeh7q+mtjpoW9b676+92t86/1c1tnev7
cxT4KG1ILvl4w+P+3qPvNYXMj46Qqj/lxwhj0TK+kSh/BtbnzjnXMcMFsdjkN6E+xPfFPNOMbx3R
JXMucU8vfNpP88V0gljwyU6OR0Uiqb0cmoJBy3UZgFMyTJ7MSbJjfSlk/wfyYxxBuBVdT8mxsp8k
hVGqTRdg0lxlyc6S2nTdFaTtwJh2S6oW5Bp3lBbrC/L6Yy96+PDhfmqg+vp69/7777vmZp5+55Rv
u86P3P817lz+zv4/aS+ckU4aLTuxGsqIMxDyp51xL5wmMYdYGnjioswAhiAH3VB3g3u64Wlv9WA6
pyQSrvQwaTDGfTE9UBymnBO3MdzBOGdcgrC4dmEZ7w+MEgmz7PsLkenGOgZ39MLIaLPk1zEfKBWW
Xdp72t7L7sV1cGV8A3gFEVseMuIw8lGhuIPD2K40AksDTyyG5HTgDzp0yKFum6pt3H0L7nOT6iel
ryxZC1zp6dvp63MlM+xtRDgnbsk8B8a0uARhnZ2T9wfFLgmzlub3N2lS4b43PgkhYepl8iNxVGXh
Cqjjx4/v7JXJa3+nLsp5HXUpN2J+21dffbXbV5Fvu26fyBrkRAChCJfIkLAq8WfUfQT6A0+SGhH3
yXyr5484P2v+4aktU91LjS/5C68Vy0hSCeFyhXJRk/YjcU6dvzPf06qSIt/21k4QwPPvM0NiaSIA
M/5FK1lWsmlpMtfZV1JYW/2BJ0mN8DhhWqczZp+RNf8wCa9wW4amtEzxyyT+Q7gkqWR/EufEo6cn
pEqKnhwj6W29QBtYY5OOR9z9F6WAG3ejVmYIGAJ9gwAuyBqve9bss7ybLO7lxEipGy3uyszNamQI
GAKGgCFgCHSGAG6xGq977ohzfYwn7uXE3eJGi0fJ+03v+7lZOzuW7TcEDIHkIWACbvKeud2xIdCr
CMBowIBcV3edI8NjNGEE800Sh0pCCSNDwBAwBAwBQ6AzBLCuozA9fOjhjoz0YR4IwpaI5b1twW0+
hKKzY9l+Q8AQSB4CJuAm75nbHRsCvY5ATVmNO73mdJ/ogkRIxOYMKx3mY3XIJmxkCBgChoAhYAh0
BwGyx5MQjJjNMeVjfBw1ZeQWIJuwkSFgCBgCuRAwATcXMlZuCBgC3UaAmE3ckfkZGQKGgCFgCBgC
PUWAmM0PWz70v54ey9obAoZAMhAoyizKyXh0Hd/lSpPu6riC7TUEDAFDwBAwBLqBwBfjk5kFvRsQ
WVVDwBAwBAyBZQCBDufBXQauzy7BEDAEDAFDwBAwBAwBQ8AQMAQMAUPAEOgSAibgdgkmq2QIGAKG
gCFgCBgChoAhYAgYAoaAIbCsI2AC7rL+hOz6DAFDwBAwBAwBQ8AQMAQMAUPAEDAEuoSAJZnqEkxW
yRAwBAyBpYNA65w5bv5dd7nFDQ1u2AEHuLJRo5bOhdhZDQFDwBAwBIoCgfJVVnHDfvZTVzJwoJv3
+9+75o8+Lor7spswBBSBfhFwq6ur3UorreQWL17sPvroI7/UC+homW87jjlkyBC3ySabuFHCDA4e
PNi1tLS4pqYm9/TTT7vp06fnPG2htMt5A7bDEDAECgKBJukLF73+uitfeWU3aNNNc15z/aOPuoVP
P+P3lw4d6oYffHDOurbDEDAEDAFDILkIDFhvXTfw2992LZ9+5ur/+tecQFTvvLMb8I1v+P3Vu+zi
5lx1dc66tsMQKEQEuizgrrDCCu6KK65wM2fOdEcffbS/1x122MEdeOCB7sknn3R/+MMf2t0/wuXx
xx/vVl99dVdSQsJm5xobG339W265pV19Lci3nbbfeOON3bHHHusqKyu1KLP897//nVPALZR2mZux
FUPAEChYBJr++1+xzE5yA7/1rQ4FXDTsSuUrrqirfbJsa2tzrrnZudJSV1Le5eGhT67FDmoIGAKG
gCHQPQQq1ljDDd5uO7fo7bc7FHBb59dlDtz82WeZ9T5ZqaxwZSNGujbh/xfPndsnp7CDGgJRBLrM
wYwdO9aVC8MzN3g515APibLZs2dHj+tGjx7tJk6c6C2o7IRxQsgdKMzazqI5wjp73XXX9Vq78EAT
Jkzwwi3C9BtvvOHef/99b8EdMGCA++STT8KqWeuF0i7rom3DEDAEihqB6t12E+ZghHclGyjKu76k
xn/+08259DJX+Y2vu1FnndWXp7JjGwKGgCFgCCwlBFCutnz+hWtbtMg1vvpqn17FoE2/42qOPMLh
tTTzlFP79Fx2cENAEeiWgEsjXIyVsMxCYZnu23333TPCLdZdrLxjxoxx++23n1t33XXduHHj3OOP
P+4++OADbeKX+bbTg4wQRnCouPFBd0nc2sMPP6y7OlwWSrsOb8J2GgKGQNEhUFJW5qqkv+wXwoIL
pRepDftvCBgChoAhUFQISNhew7PPFtUt2c0YAiECXc6ijAUXUmEWayhxtWGZ35B/7Nt888395hNP
POH+KnEAxMDS9re//a1fZ+e2227r6+i/fNthGR4+fLj/rRi48GG51XJdqqs05yyUdopPIS3bJN56
cX191iUvxj1Ffl2hNnlfvLtkVypbnU4R6E88F4tGePHChZ1eU9IqtEkOgMXz5/fbe833Q4Kqrn5z
SXse+d5va12d43vqDi1esMC1zpvXnSZWVxEQd3lc5qESyadRvuqquscvy1ZY3sexy4CeVd5uo7zM
lS2/vCsdNqzdrnYFolRy/OKI87AvfU1xVRJR1lU8M3h18Hw6whsw5RhlwtuVj1nVlQh/mSHadfbc
M5WLc4V3urx2tWxcct1qafrdVbx1mat+THnp0CEON2hyRziOZ9R9BMA97D/kW6oQGatMPF+7TOI9
W77aar6dk/axpN9e9BthO1rG9XBdRUQdWnARYImxhdZaay2/3GOPPdxmm23mXY1L0w/oqKOOkrCt
Zh+jSyKp9ddf3w0aNMjXfzaiIaoT5mCOMF24MG8qiVUQeJXybYdF+IwzztDDZJbnn39+Zl1Xzj33
XPe2xCZAhdJOr31ZX047+hj/0Qzd+8du3k03ucXyrAd+axNXc+wxbu6117qGl19xot1wg8aNczWH
/6Ld7bRIfPeC++5zjf96zS2Wd8RVVLgKYWaGHnSgG7DOOu3qN4kCY/Yll+L/7mqOPsoNWG+9rDrz
br7ZNbzwd98JjDqz/fuRVbkIN7qL54KHHnYLHnjAD14jTzm5HSItX37pZp4pbqvSMY6+/DJXlvaU
0Ir1Tz3lFjz4oGv9cqp/JjCeQ/bc07VJ3zD/zrvcoC22cMN+coBWT8yy4R//cPPvvkfcwT5zbnGb
A5fqXXft8P5nSH/WOnVauzqjzj/PlUs+hI6oZepUV3fnnQ53Y9ck8bRCMEGDt9vWDZZkIqGSj30L
//a8PJ87Wc0Iw03vvuumHX6EL9N/1Xvs7mO7dLvYlwiyM355gheIRl90oav7059c4+tvuNZp8lxk
7Ktcc0037NBDXIV4JsURigXee57/4nQYD8+haovvuWr5LkoCBqdu0iS38PEnXPXuuzmSv0CLJF8E
iV/KRo50nF9p+okn+f6xK++Ctink5Yq33+b7k7o77nBD997bx4Y3/+9/bta557kRp57iKtOeZIve
ecfNOu88GWNas263Yo3V3dB99nGVX/96BnMUTfP+eItr+NvfsuqyMeCbG7qRp5ziy+f+9npJ8PZ0
Vp0R0jcO3HBDx3c2nTEvYdRdPIfsu48bImEWLV984aYfe1w7tCrXWduNEr4MmnbU0anvS2sJ484z
r9p+e1eazkVANvn6Rx5xba2tbuj48a7h739PXoIkGYOrd9tV+ovdXWlVlUcLXBaKp2RHyuXlhd8u
E2NQlGaI23Bz4J0Z3c925dpre15MvzfKUNoyftQJr8V6SIOlHxu6/36+SPu6ShHiVrzzjrCa5/nm
T7o7q6yYNxgDlr/maj/WTj/iSDdcXLcrv/Y1V5pW3LTKWDH3+ht8Aso4HErFS3X4IQe7AdIH4d0F
YVRoFP6abNjEOSsNO/RQN3jbbdwC8WStk/4OGvjd77oRwpPznkw96Kda1a1w803+G5shfV+xZNTu
UMBdR4SKDQXEkFYWrQ2/kKgzXwYMhFtopAzI0ALRWmNFVaL85JNP9sItZVXyYRKTS6wslG87siPX
p62FJJaqEMEIohzBOyTKlAqlnV7vsr4keQDCzLwbb5QpTeSZCjPf+PLLwnSc75r+8x8nAdv+FnCL
qdp8syyBtGXGDDfzjDNTgq3UKpVOeHHdPN/pzjr7HJ/OfrAkNQsJBpOPnOPRISB06SC4SM5X/8ij
nhEdKgNs0igfPAesv56rk+RvZPbF8ldWU5MFW8NLwqgL089AFxVu6267zS34819S9YVxLxs9yrXO
mOnm/vo6Vyn9CO3aFmZb9LMOXqQbC8R7pe4PN6XuTpgSNLStM2e5eTf8TnBZO+ddlwwY6EqqUkpC
Kqmw25nlEKFsljCLnAOtLuegrPWLL13drbcJUz7NDT/s0OzzitJJmaK2lnR/KcyjlmnltubuWS21
XcEu8ULB6ioKtLm/+Y1XlmFBdJIwBcUBScJmTTzXLSfMijKZeq8wHDNPPU2UGp97rTiWJxkgXctn
n3tlR/OUT9yIE0/Q6q58ueX9N9L0wYeZMhR49Kn+J2NpqeSt4Jm0SB6JEhnnypZbLlO3mFeUOUaY
UasHSoXRl1zsY9M1v8eAr37VDfrOd1zD8y9k4KgQ4Xfk2WcvYR7lWwDHUpllgZjAitXGiOLi1kx9
Vha99rpXSpDZfKgo5BrfeF0UFKJwFUJJh3CLh9LcQDnvdybgXz54Et+JgFsuBhMsTry/IQ2UZwah
tPDKo2BnjSQ01Qzz3itMmH8YfBSn9GueAkVR0LSoV3kvq3fayd8j7//iWbM8z0Q25AwuMQiAbygA
ZZSlnWCI9XzEaae6UjFcoVhAGOYboj0CFOP97AuWKOH8qfHCE6HbkwhvmrQwU5a+vjbpSxNFZaX+
dvFEqJExAOMN/TpjOxiRb2PECb/0yqBW4YtDKh0+zC132aW+D+M5oDTC4EDySRSnFTLOoKxgrIFa
5JuCQq+XytXH+jLGrDJ5fq2iqIMvgXfmGyMuu1ioQwGXBE1XXnml+5Zk+cRq++GHH7p7773X3/ve
olUjphYLLfUQZpVq0oxxmJBqTRFGTjzxRO8yrPVYEvv6BQ9JKN9274q14ac/TWkisDpzzdAJJ5zg
psrDy0WF0i7X9S+T5fLRVW2zjRvyox95hhpNK8JtzXHHemF09kW/ck2iaSfZQGhxrX/oIS/cli03
2o2U5DblwrzRUTP/58InnnT18osKuNz/MLHuNomlg44AIYspVNAkKvMxZK89Mxr+ZRKvPrqofPDE
Wl7xla+45o8/9gxe9Y47Zl1dwz9e8tuDpCMNiU52wYMP+SK0gwhQdJ5olOf97ndeMAjrJ2Xdv79p
yyhTNwwXT5cycY/k/Zwn1sCFjz2eE4qox8HUn0/IKH9yNpIdjf942Qu3TCe03FVXulIEMqGGV15x
cy673C2U/nroPnt75sTvkH9VW2/lf2E9lBijzjtXqyR6iXKmUYSeESed6EjyBTPS8NJLbp4oLrAE
MoVT9c4pZlOBWiDjJMItQihWxoq0UrjxzTfF6+QSn9SlUcbNgRts4JtUrLmGX7Z89qkeIsuiQn85
UDxUWtLZTnFnU8Ev06DIV+qffMrViTV32M9+5gZvvbVnBOeI4gElKmMG1qEKEaBCAReGH8sICjuU
EfRVuChjWaracks36HvfayfgAuO83/3eK+awdg0/7DA3+1cXiwAxzI837K8Xi0jTf95hNVGUD57N
70mST/H+gQlHATE/FHCFOR8kU9pACyPWdBSjKtz65HeSlLRtQb13Ux/+iwlukEwDmUTCA2jw97/v
b32R8L5zhN9FAYPANOzgn3WYr8F7YAWgrXDLHzNGgaC43SrPDeGWvm/6McemFH9SC4UPiqKB4rWp
wpI2ZooinaZI66HEmHHCiVol0Us8qSpqa91seX6NL77k3+tBYvgZdtBBrkSMdFWiOJh/R8qzSoEa
esABXrjFyjtLeGlVFjEu1Rx/nD9e1bgtM9MKNn3wvm9aIXMeKzF2KCHsNoiMpAIwAjFJx4qFSju6
EbIjv/jii25GWovAFDv/FLc3fmqtff75532dN2XgViLeFcIdGSIe92zRolJO2TXXXOPL+ad1w/Xu
tssczFaWCQSqJEU9mqhB39nUX0+JaMwHijYcDRHuXxCMYUhMlTJc3IxHnn66F27Zh5UQTS1xHnx4
fNRRQpAafsThXouFwICbGu6ZWLyIE6n+4Q+jTRKxnS+eg7bcwuPTKAx8SDAoLWJ1wgrPYBcSTDsa
Q5QTNfIs1JrFgDj88MMTY2kKMWEdC1/bwgaxxFa5mmOO8cIt5VjfYNIrxn6FzV6l1jmpbwRLiwq3
nABmcOS5E72QVmxxNr0KYI6DIRBpBmve78GixKsS4QjyrueRdg1/f9GXDD3wJxnhlgKEVGVOG2Ts
VMK6hcUeAQzNPNT84Uf+m/LraffB5k9TArAKxL5iQv4tlBAILOeN4vINYSUHQ76xRaIsgPjWQqp/
8gk35+qrveuyt3bITqzy8++731dDgC2PcTFnfFIl6cBvflME4c1FeDjYM5cw6XURxjM8ZzGv54un
Cq/KEyhGlWuvlbLCy/gRKibYX5meo7VVvBh4hgi3UJt468295lpHeRKpcp2vetdU3v85/5cSbj0u
so1Lvb7nvYlNaXVKUdo6fXpGuOX4uPjPPGeim3XBhVnlvXnuYj7W/Lvv9sIt98h7DQ+LqzEUNyXg
wI028vvqbr89I9xSgAJo4TPP+H3MgayEpxCWYT8LQ1rZjRFDPcFU2K1YNSUAN0WS/upxCnXZoYCr
N1UrWgZIE0wxNdAqaY3Ax2LtiZLGeLXKQI2ll3lzcR3+TLTPp512Wpbbctg233bhMWx96SKAFrFc
5j+GcCWCsF7osyWeLI6YcLxKFCH6UfMBkpgFl4nSYSmFiXcXjGk8QOIXBqctKHOuvEq06494IaLm
qCMTZ+VQePLFc5B4auAG2PTuf7MUCrgnQ3SwuPiF5N0wpWDABhITkg4P0P0oOgakrVRalpSlMhpY
InDnConvQQersLyn65wLWjT5DTdX4nGwxmuyNlyhsBiqAqKn50pSexVuw3tWwSiaPIrYW3Ut4zuM
0gCJBYVaiOVNE+9DxepixZX4UZRJCFgcY5D0iSR1QdiFWj79zC8Jz0gaqfVaFZ3enTUdb9sqLppx
1PT2v70HCa7hKBBQwvHcUJ5q8jVl3qPtcVWul5hGCEUdlkbGpTkiXJFLIomUL55eESGutIzvJERS
Uvdk5mz1eTd0hyxR+kCL3nxL3GqzrUpYmShPIikuzeJRGcUMRXPja6/1OixN773nj4nFEVflgaIw
VWUSHnqLJk9e4o7c62cv3gM2vip5MiKEAg3CCysk+Gkdu+nPCOMLf8qHlUuMb4akn2qeMsVvIsTi
as4xyCuAggRFOKQWXMJiiolyuijjOrzVVlv5e2W+W+gbMlhTPkxcfBByoR0kLnKRAPWQuJgqqWsy
SZz4QVh4r7jiCrdQXBxwV1bSumzrenfb6bFsuQwgUBJzDXFlMdUWvvCCaKGeFWbuA6+Vj6mSs4hE
FIvemCwMYMrCMXT//TPCcs5GRb4jHzxxoR2wwfqZOLTqH/zAo5TLPZmdGlNTllZsRGHNVR6tV2zb
SwMXhKdB4qLU8OxzPmkRiYuIG0UJVLXVuIwVstiw7tP7EQ+SuMQsGu8fnVIJxZxSmMRDy4jphTSu
U8sr11zDNb31lndDVoENQRYtvCaAUQtuZXpM1ra2zIGAKNxIxlMlrpSZeMMcVeOKyUkwQNwvyyVG
DZovSRDVLTCuftGX5Yln6/QZojR912mc9Hy8gYTUPTku2VfJgEpfp1WST8ZRrvK4usVUtgSXeKVO
X+CC0ExYBt5bKEn5oTjlW1j43HOu/tFHpUNL9WvFhHVf34smHwzPE8ZIh+WhR9boX10U7spajwrG
CK2MF+WrrOrKRjX4unyL5WKkRGEBsQ41v/+BXxbLv5wC7nriSvXjH/846z6j0/qwkzrE34YCLlmS
Q2K+W+bCVbdmjbWlTlg3XGdfV9tR16iwEQiTFKGVwhqIZr1E3JoX/vWxdhn62t2tZJPD9VMpmtFP
y5Oy7AmeVVtsmRJwJS4EAVfdk72reSTpXBaebanEBlllfiPhA18XFTztcet+CRbzGrE24aLeIAoj
4t0Xz52XivmUZC9YBMnamLT4ze4jGbbI8wGKVXbQd7Pd+cOjRqerUaHVK+nSCuQKEXArhYlcJAwm
Vl320T8mVWkU4teVdbx4NI6TmHgskN4zSKzs1bvu0oVDlGS8j6gcp+jowkGKpkpP8ESIzQi44uJN
AjxcJ7Gkq1tmHFD0abGU9ClqcnZLOXfEwtilQgkNwB26QXI80KdVSkI3vCAQkIbJD8GXrOZJ57u6
hGUvVCJzeFpP2u5obWJEDMkLrZJOpVwsuC4d/tIkgiwJ31B8M90TMbrkTFErcNi+kNdz9BzOJ2d6
7LHH3FflRSaZ1EzRov3rX//y97qFaEOZBugdYZ7+J+b06eKXH9KswF2IOXARbkPaIO2y2CCA8lPK
t522t2VhIsAAt+AvD/qLH/qTn7jBO/0gi6kgNqezjnPBA38Wy++Hnvkj62idJKci3jcMri9MdLp/
1T3Fc+DGG3l3vmZxS8KSpO7Jgzb7biYTYnhVOi+hWp3Cfaz3hUY5eo5lcbukcoC/rJy4zGofU95b
9zFIBFx+ULMISPUS28MUEgi9g7+/g6tMT/vWW+ez4yxBIOPCLxzIsJ//vEtJXGiNMAs1f/qZWEOI
aV/OM5Eq+C4SLyj6NpQXRp0jUDZqZEa4rZt0tyPxV8gVVm2/XafPhinqUCbQp2KxJ78E091haU8a
9RRPLIDDJBkolnTiANU9uVES4MUlttEyzhtHJKJMIrUtSs0EkmvOVDIa9xWRm0Pzc5BDYrAkoiRZ
G+MJSUP91HR9dfKEHzf0DJonMyKQObsrlEk0xfzhEn6Goo/wDrXWDpRcORiHmpg+NZfU3JUTLYN1
csbgkmH4Rpnu5bW0P/8r0gmxzU+TTt1///1++0GZ+zKkyeKPr1P/MN9tSAjGG0vGL+hlyX4YUr7t
wmPYeuEhQJpy/bDI6KrxutwJ2S/bxZlEbpEYA4L1+XiZo5CEIDI/lMy9++tMwpZIk6Le7CmedHaD
Nk1ZnpjDU92TcfOLI435WCRzhDJNVEhsU55EIt4PIp6Z7JNRIotubxNZNRul/2UQUyKzLJmt0dRC
izrI/qrz6rXOmunj3/UYtuw6AghC6iZGhvcoYYldJAJSkyjkQiI8AKYVKy0uyZVrpQRekuVJp+hd
AamfxARTIU5dXQ+nUfIJvQLmDQEr42Ke44AoSMnWjCsm2f9h3hmbaiSDbziFV47mRVfcUzxJBtb4
z5SRBGVpR+7JgKdTBpHDgTj0kMhpgOt4Eql1RsqgRNbwdp4c5WV9ktuBJKGDJMRF43/BnblSmQZQ
x5qKjpSmi1OJ87jekoEpxW8Sn11P7hk+WA09A9PJWsPjkcWaJKED0omodB8JVxlzyD3gZ8lIx9lq
vC0KCki3tV0xLHMKuHpzY9MppTWZFMmiNMGUJp3SurpEuCX7MrSRgL2TzNeFYFstyWmOO+64TObk
J9MJHHraTtvbsjAR8J0mc0sKLZTYQSU+yjkipHZEPunHtdd614vqXXf1U0WQZh0GEyZxgShhkkY9
wVOx0qmAFjz0sM+eTHKCXIltvEVJGD+S4syRZ7FYsgFCCHVzfv3rTMIdPXZSlj7BkMSstUkIx1yZ
4kKFXBKnkekbC3lv04IHHvDzEc6+5NIs5Q4Jr3A1h8pXWjHnadUqwDy69V0JDch5pGTvgCGE5t38
x6yspiT2mHXRRX5ucJLhRQnhFTcxvB4q1kgJuCQFQTmxaLJkKxdSi260rW1nI+AziMq3BmFpUk+T
8lVW9m762bWztwjHGD5hgi8ksymu/nNl6iD6Nph0xpikUU/wVKw0mzJjNe7JJAxb9JZYjmJI3ZZ5
/0ecfLIw6GKBknGGhDgjTj4pK0t8TPOiLfIJneS9RhHN1DAINlCJhHTVHHlkXrHmnYE1eMfvi2Ln
F37KszC0YoCELOGqDMVlk9fjts5IxVHzLIfsvU8mO7zut2XXEMBFHBq6zz6SZTyVrJDtMkksNfLM
M2QWiyMkw//WFGUR2ZF5TsxsgXsyhMDMOKMGCrXoZjUs8I2cLsp6XyrgqjBbK/72pWIpw2VZp/PR
uuES6y6uyCSlOvDAA93+kvQH7SdtoRfEVe69GAYv33bhuW29sBCgo2YqBubwrLv5ZplT9UGf1APX
SvYRc4ZrXhwxT27L/z71msUhP9rLV0G7y3xwxIzMv/c+r9FEc5UU6gmeipGPsRFrkmaDZRLxXERm
zME/2NFnv3NeiAAAI3NJREFUr26UbMtTxTOjbMTITBbmSonzINNi0oh4PeL8Fsg72PjKq27a5Ak+
iyGDCkIvc80ylVAczb7sMpkGY15m1+J5qfd/zlVXZxj1EolBG3nOOVnxtIMlZppkawjPUw851LuO
wZQ3k/5fmCKYw3D+6cwJ0ivsx2JIfb7FultvlQQUYvltXeyqd98tMzVOtJ1tZyMw5Id7+LhnrFDT
TzwppRwSS2CTJNBjqhsSf1VLnShVilDLnIiQWnBZ94Ivc+DKGKqZLyk3yo0AsWhYypmjs1r6p8Hb
bevjb2HQ2Yc1hL4yjoYfeoiPt20RpR1z70IwhHUyfzWCb9W4cd5VeVE6bCvuGMVW1hM8FQumcyLr
ON4KECET6r2ldXSJZ1a9ZHvFio5ydTnpE1EOkj+AZbN8D0kMQSJhF/PLkh8DZdfyV1/l32v6FHjs
FuY1TQu9iqUuR196ie97dFu9GEbKXN0o3zwJtsxVGyY7Yt5nxiuEoeVvkKmIRAmHsIqSAuKccRmB
/U75h3WQBHkVMr7wLfLzLrdyvfPvucfzDlrXlrkRwFORJKAIq6Nk7u8WwkPle9CZSwilAM8oIdQO
TOdPCS21CL6D0slB1ZU52raQtzu04FbJC8yvSQaCz+WFhkalwVCBN9fNT5OB/Sx5AMToQmWSBAjh
tkXSVpM8KpwLNzxGvu30GBwf8hne0uu6r6NlobTr6B6W+j6SPpQseaUyrsYxZSVBGdddc9RR3r2C
j5XYgqb3/itZkFdwI884PdOJwtyFxBQoPnZXyocf/ousKWp8tj8mgpeg+jnX/SZsloj1fPAMgeHZ
qRWX8kHpOT/DOuE6sdP8SpkGSrIpts6d4wWlmmOP6VCgCo9RjOtDJQkfGb09Uy0MRIswbTDVQ/bd
11XtsH3qliPvNYVNMi0MQqr+NEMlWSu1DNfnKHPIPKsjzzlb5tgd6+PaFr3+uq/PMXFfGnn6aR26
ZvLccfOvEqaydESNnw6F+Y9xm1XLPMdKFOVKZpMuz/RzASgwfqMvutBPp+Gk20LBgxUQ4RbX11ET
z4llzsmk7EkS62iGS7Yr11wrVSzJQNDCJ4mYFxiBJvOui7IF0rkc/Ua6TJOo+DL5N+eyy12DKAy8
YCTeFHyHzKk+S1yOEV6z2qYbDVhv3cxc3/Ouvz5ripqFTz8j09OkLOkIwdExKX2Iol3kg2cWGPIc
SZCjpBZd3Y4u511/gygY7vChSn4fSiIRlvCIIfFaUqlOPEPqJk3yrqdgQNw/RoD599wrPNFfPCw6
n3aIEdM0IgzpT/dhFNAy78UjfFhIKGhnX3hhasoZ+R5RLNDH8V3xPGedf75XGoVtstal3qzzL3A8
b52/mGsmM3AuJVNW+2LaSE9tBnY6hV/W7aXduaN9GXVQmM489TTXKIo1wr+IQ1fhtlH6pVnnnONd
x7OOJxvNH6Sm/+F8zFKi1PReqrxFlO4koyw2QmLo8xSnw8WSwdRA9WJJeB9NjjyYrlC+7bpy7GKv
s9KkuwryFtGqw3jQEat20XcC8mFa5tfuP9KlgSeCEPPh6sA1V5jEhU897S1WTOeURIIZ98m2RHDR
AamvceCcuCXzLHzsk5y7u8T744UDEcrt++sueqn6WEZacQ8XJS9xjKUyV3ih0hfjs2dWKJj7kBAY
vEoQAkLLlBdQZWwx6iYC/YEnCokh1cKdt3hBDhdcFET0SVDNCb90g0SJvUCmqKm76WZflrh/EnNb
Nno5r4hUb6s+x0DOSRhUmzwXHw+cFti6dV55fzBy+JwdIugZdR8BYpm9e7rg1zptemyitu4ftbha
dJ/jyeP+md/2VZmioruUb7vunsfqLzsIIBRVpJPh6FV5C0mMlUv32zI3Av2BJ8mSZl94kY8BGn3B
BVnzD+O6RPZMKLRI5b7i4tzDVBe53Mb66o45Jy5hPSHen2y/iZ4cLZltEWhLa2uTefPLyl2LYOST
70Wvx4TbKCJd2+4HPAdK/pYREmOKog4LYVOQHI8wC/ZDzR9P8ctE/hPh0ivP+vPm5ZyEhfWIUFT0
6ADWuK0Rj7BPDIgOEOgXAbeD89suQ8AQKHAEYDbIGExs0Mwzz/QuyWgWmXPSx5gKE8kUKDa9SYE/
aLt8Q8AQMAT6CQHcMHFnJZfByNNP91nHWyXmkLk7NXsweTp8HG8/XZOdxhAwBAoHgX5xUS4cOIrn
SgvVRbl4nkCy7oTpnOZKxuRFzKUmMbghMW0TcahlNRLTaWQIGAIFi0DBuigXLOLJvnAE2eFHHuEq
11mnXYgEU9jV3XKLhH50bT7QZCNpd28IJA8BE3CL9JmbgFukD3YZvy3io5oliQvxQCR0IVYHDbyR
IWAIFD4CJuAW/jMsxDtgiqfy1cbIWFLjs+8y7VmumRUK8f7smg0BQ6D3ETAX5d7H1I5oCCQWAWI2
/TydMn2BkSFgCBgChoAh0FME2iRRW7NkfO1aetKens3aGwKGQDEgYAJuMTzFmHu40lLDxKBiRYaA
IWAIGAL5IjA+34bWzhAwBAwBQ8AQ6EcEsie76scT26kMAUPAEDAEDAFDwBAwBAwBQ8AQMAQMgd5E
wATc3kTTjmUIGAKGgCFgCBgChoAhYAgYAoaAIbDUEDABd6lBbyc2BAwBQ8AQMAQMAUPAEDAEDAFD
wBDoTQQsBrc30bRjGQKGgCHQywjMkSmY7rrrLtfQ0OAOOOAAN0qmzjAyBAwBQ8AQMATyReDrX/+6
+8UvfuEqJTHkDTfc4P75z3/meyhrZwgskwj0m4A7ZMgQt8kmm3jmbPDgwa6lpcU1yZQiTz/9tJsu
k3fnImuXCxkrNwQMgUJG4KOPPnKvv/66W3nlld2mm26a81YeffRR309SYejQoe7ggw/OWdd2GAKG
gCFgCCQXgc0339zx+59M13f77bfnBGKnnXZyyy23nN+/ww47mICbEynbUagIdFnAXWGFFdwVV1zh
Zs6c6Y4++ujMR3HggQe6J5980v3hD3/IicHGG2/sjj32WK8pilb697//nVPAtXa5Bf8ojrZtCBgC
hYXAf//7X2+Z/da3vtWhgDtw4MDMja244oqZ9b5YaWtrc83Nza60tNSVl3d5eOiLS7FjGgKGgCFg
CHQTgdVWW81985vfdMNkHvqOaPbs2ZndCMN9SRiqxowZ4+rr692UKVP68lR2bEMgg0CXOZixY8d6
hmfu3LmZxmvIXJcwQeGHktkZrEyYMMELt42Nje6NN95w77//vrfgDpDJuz/55JOgZvaqtcvGw7YM
AUMgeQjstttubsSIEQ5BF6VfXxJuapdeeqn7xje+4c4666y+PJUd2xAwBAwBQ2ApIfCnP/3JffDB
B96Tsq/dkzfbbDP3s5/9zH355ZfumGOOWUp3bKdNGgLdEnABB7c6pdVXX92vhmW6T5cwZrjVQcSR
Pfzww7qrw6W16xAe22kIGAIJQaCsrMyNGzeuX+4WCy6ky345qZ3EEDAEDAFDoF8RWLRokXv22Wf7
9Zx2MkOgPxHIW8DF+rrSSiv5a40KuCUlJRn3iNClDsvt8OHDs+5v3rx5GWbK2i2BJsRlSWnhrC1e
vNgnxSHeWgkLPhS6XOq+6JIYbRh73gmjniPQn3gycLa2trqqqqqeX3gRHYGcA2BTXV3dL+81Qioe
N4MGDerSN1dEUPfprdTV1fl3uzsu3AsWLPDfRGdug3164QV68JEjR/ornzVrllt11VXd6NGj3dtv
v+0tT4wRX/3qV/1Ygcu/jjHRW2UcoR0J2vgGp02b5ngmcUTSHeVTOCd9WUj0a3zDlLM/idQdPBUv
+r/QA1BxIxxCE+cRAgfvECWMJLje8s199tlnbsaMGb5Po3zhwoU5n2X0OMW2zXsILvBUn376ac5w
P73vmpoaV1FRoZuZZS7cMxXSK7TlGyR2l6SHuDaTBDGOqKv8Hy7KUPhtaRueH+9Gkgj84MnU+xWD
Hh6x8+fP95jiyt0ZcQyeBX0glng9VtgO/PlxPD0mz4Dvhu8sbMM3yLfY1XchPM+yuo70kFLZx1wh
AiwxthAZ1wDm888/9x8RHxQDC0SiFOK2iNEFtPXWW8+dccYZfl9n/84991w/WFHP2i1BK8RlSWnX
1yZNmtT1yr1Uk9hsBr69997b3XTTTQ5GkPhC4q+vvfZa9/LLL/uPGmvU4Ycf3u6sfFj33Xef+9e/
/uU7Te1MDzroILfOOuu0q4/C5JJLLvEKEs7N+xPSzTff7F544QU/AJx55pnhrkSsdxfPhx56yD3w
wAO+oz3llFPaYYR7ETjyjC+//PKMZ4ZWfOqpp9yDDz7o3ZAQrojb33PPPX3fcOedd7otttjC/eQn
P9HqiVn+4x//cHfffbfvO+kfwWXXXXf1uPCd8I2ceOKJWXjQf06dOjWrjI3zzz/ft2+3IyigHXjj
dqaMw/LLL++22247t8suu7QTrv/2t7/5+hwCAQHGn0ETZiikPfbYwx8jLCvmdfqvX/7yl15Ze9FF
Fzlc+hjrEI5gBNZcc0136KGH+tiyOBzAkufA81dGgufAd8B3wTGU6K8ff/xxt/vuu7udd97ZF5Of
4qqrrnIIeJxfiXcFprIr74K26a3l+PHje+tQXToOfMYtt9zi6/797393uDpCvKPc/2mnnZbph3gu
p556ajthhwRu++67b9Z3g3BKX3fvvff6MckfNP2Pc6gbJeMRz1CJ7+Liiy/2z5xnQBbaOIFM6xfj
srt4HnLIIW777bf3zDvfSxQvjnf88cd7qE466aSsGE0Y8cMOO8wnKFUsac83hTBAciTC3i688ELd
nYgl3wUuv+MCzx7GXHgnhP8dd9zRffjhh/57CAG59dZbY3PhnHfeee6tt94Kq7ZbJ3EVWfyj4wL9
1DXXXJPp47QhfOAPf/hD3cy5JIki42BSiHDPX/3qV/52GV/4qbGQQsZsntNf//rXWEgQhOGfV1ll
laz97733nrvyyiu9gKo74L2/+93vuueee879+te/9sXf//73/bvDdwQ/xvmQ7ehnGZMmTpzoeKbF
QEtG2Ji7QajYcMMN/Q8AIDJ+UqbCLWW6rR0XgKnGAMFXKSzX/ZQphfut3RJcFJ9lfYl2lozYN954
o3/+vA8ItXSeMCdKz4pbzJtvvqmbfkmnfPrpp/uEZTAOaNBhQvAOOPvss91jjz2WVZ8NGEzePRjR
66+/Pkt7/5///Mc98sgjntmBuUka5YPn+uuv77GEiY/Tyr700kt+PwIajEdIt912m38GX3zxhReg
0C5yDXSqCFA8IzS1SSMGKRR/aNdhQLAioXhgWgbwzEV4yGD50B/48UPr2xFRB+XYiy++6BlJ+nAG
T5h/Bs3f/e537ZpzTJ5NqEnn29MyXYZ9cruDFGEB/ReeNPRrv/nNbzzDgWDFWMg+LIYwA+ATJayE
CFv0QRyDBCswJDwHlB0oiELie+HZoYlXQoHHuWFU1drIuchbgfBMm2InlGlKKtyyjeUKoT/sh1Ae
hAw/9TRRJX0WBH58hwiqKBk0Yabfmf7HWDV58mS/Rfx7bW1tZjdKHp4lxJijPE+mQpGv5IPnq6++
6lHBikdsf5Q0gzy8w5RIAiIUrcy+AYG1jksw7Qi3SaUjjzwy867zPoML+PB8EG5zEQYqFKD603rh
d6Zl4ZJxhHMi3HKejz/+OGMtxvgVZ0DAwqt8fvidaJku4/rP8NzFth5izRjB+Ex/rhgxvqC8QJCN
En0P4ztjCfX5ZnQWmrXWWssrevDYUtLkYVh6lRCwIYRZ7ds4nipc4VWKhTp0UUYzhkYACwODCwMt
Gk8I7QxgI6xQTwdg9r377rvupz/9Kav+4XEM6IQTToi1Svid8s/aKRKFu4Qx3mabbdyPfvQjz1DD
4CFsHnfccV4YhSl55513vOAaWlyxHtJJw7SR3EYZPuK2n3jiCf+LG9Cw7qJtQphCyGIKFRQlv/3t
bz2Ie+21l9NY8cJFtftXng+edIJf+cpX/OCFhjw6UFIGYYEKCaEWyy0E44HGHcGMAQ6BCit6EgmB
Ra0/vOtHHXWUtwbyfmINjFPaKE5RhuHnP/95hrnTOnFLnhECNIw/1j91EXvllVfcZZdd5vvrffbZ
x6nLGMfYeuut/Y91rbf22mt7xRRlSSee42uvveawLsFAwpChnGDmAKxITHWnVlfFinESZpJ+DCYG
xTCEYg+vE5h+xs0NNtjAl6Osg3C/VApDf1jnHdL9MCnKkGj9Yl+CM145JJ+kn4FRZBsFGkpUMFac
FQumQgEnnhOMIcoBmHT4EwQrFKR4CkWVNyg0+F4QpLGWKCOqFilmjuCdSBrlgyeWQcZ2cOe5hcpt
mHky/kLPP/98FpzUVSafNlgJURbRt9GXopBNIiHIqNAPT/5///d/XshhzGXsBbdcdPLJJ2ft6qqn
H98K3xFjF1ZBxhhIrYF8d1wXVkSlP//5z44fpPXg04444gitkvglhpzrrrvOj8uMyVtuuaW3ktO3
MS6HCk/AQvDFTZ8xCSuw7se6jgKC4/GN3nPPPR5b3Y8AyzFRhqiASwXWeWbshxCWOXaxUIcWXNyq
sATwUkIIEri98VNtA50SdcJOq1jAsfvIDwFcIfkIv/Od7/gDwCTQQeJWo4MZDEdIKFHQpmPFVcsE
A5m68qGJUje/sB2dOh0mHy8CA8IzQgUaSgZHZUjCNklYzxdPOlgoal3EPRntevhcFUe+ffoDnhvP
gmcCoUmEOdTnqfWTssTChzAEHrg8avylamjDgaa3MFELB0odFW45NgwRDD5CGtYro+4hsP/++2cy
WPM8UeJ973vf8wdBkI2SeqwQ4hMKXQipMHtQyNCjxee4KItQEkIwr/rtqLCr2nUViH3FhPxDwMXS
gVcQRJ9DGcp15T8YY0JC0XD11VdnhFv28Y3gngzhKQFjHiXGmt///ve+uFYsuIwjuCPT/zG2qNt0
tF2xb+eDJ89J33X6obD/gR/QZ4aiIiR9Llj6MJIg3EIw4CjvQqNK2K7Y11E+QnjegINa8Bhr8JhS
4bM3ceC9hzhHGHeOhxLjCuEC2jf15nmL/Vj0Q8+KkRCCJ8Ywod4j6nXid8o/FHEaqocXkAqv7MeI
gBwGobRTog5CLTwHYwlLFWapozyIeqXgNVRM1KGAqzdKBw/pIMvLriDhqmBkCCgCMAyaMILAeQgG
DwEU0oQhfiP4h+sSWihNSkbnzQDG4KiCgQ5wQTO/+rWvfS1jQWEgJFM3HzJa3qRZORSbfPHEUwPM
8KYIFQoq8G600UbeqqHnYakMPtYoOuGQ6CvUShWWJ2EdYQViUAotppTxPYBlb5MOgAySMOj0zwxw
EPt4FqqA6O1zF/PxsNxGSZmCaL+EEKZK4TiXTFz6INyVlXgfUErQ76FMgtnhGPSJKPoQdiFlIpMo
4Kr1WvslGG2whkKm2xek/5GMCuYP3PBQIbQKoQrmUb8LFbDCdqzDMKqiAo8kFKaMR+ST0PNG2xT7
dr54qvCKsnvdddfNwKTuyTDWvPchaVwiSuuoMMs2Y1QSSXkkvgeULSHhiaACUlje03Xl/bEQYjHG
Y4X+j36LdwIFEx5bRt1DIG56JnUrDhXUHJXnrvwsWDNehD8UQRChGkooJJQPof+rFVmOY+DpRV+m
Aq7Kc8Um4OZ0UUY42WqrrTxO6ibCYE05AodqdHAbJd4IzYORIaCCbIhEXFm4X9dhRJ555hnPzPFh
dodwmcflTxlALC46EHTnOMVUNx88+bYRgnC/oxP8wQ9+4CHJ5Z7MTh3YVLERxTBXebResW0vDVwQ
nsaNG+eeFa0wSYv4MVCiBKI/jxPUig333r4fGAIYuyipYKSCku4PmXFCKKKk9VVQ0/0Irbhzwriq
wEYZnhPKYGr/pmOytrVlPAIoB0iMgyCF8rW7hJIIV1gEMwgvodANs7vHK/T6+eIJ0857DIONZxdj
NUpo9ehSATjER3nMXBbJXOXhMYpxfWnggrIH6zvPC8WDJoukr0MJdPvtt2f4gGLEvK/uKToGcJ5c
yjMdb6iDO3Iu0r5K9yO0YmRCwFWehHEGJR9KCr5D9kGhVVjbF/Iyp4CLK9WPf/zjrHvbdttts7bZ
oA4vuQm47aCxgm4gQPysxmvATCJk8aHyUeMGQ+xHR4TbEx+qUmf1tV6xLnuCJzG2CLgMagi46p7M
8wjdX6LYKeMeLU/6dlcVPL2BE8wPbuG4qKPgwPpBoiJiPvlprI5qgnvjnHaMeAR47h3Fw6lnirZW
oRUhVplYBFziRvkeseqyj/4xqUojxaorS95xYg7V2g2fgrUJF1eYSDKZd0aMP/osqBt1G+ysfTHt
7ymeCLEIuPRNJNlT92S8FtRSHodXLsVE0vuwXPefqzwO266W8b0Q8wlv8O1vf9t7QsAP8MPIhTcS
cepRb5auHt/qdQ8BxnIMi3EU5X0RWlF6I8Rq+AtCL9NL8T3i1cJ4wndYbB65OQVcXB/QVnLzSPlo
y0hBDvGSE18H84RmTmMA4sC2MkOgMwToPP/yl7/4amgGCZIPhQLid6IfbfSYxDLgxgfzB0NPcioG
UHW9iNYv5u2e4omVDzdWLBVYktQ9GfflkNlTDJUBUauTlusyqZp2VbjkwiVXueLWkyVMJD8IAYm+
nMQ4CL3EgGp8W0/OYW3jEYDpg1D4kBws1LzHt0iVqiCGEIv7GDFTWMxU8MUNkL5Nn2tHx7J9zvMt
iinjC1YmcIUIpYibMiuKG8qi8Pmh4CP5C7G/SSP4wJ7gSd+DZxXfB27K6p5M1v7Q60FxVQY+V1hT
UpUNygtpfL7ipcvQRVXLemuJkkKt7bwL8Goo8RCQ6JcYY4z6BoHwGyE5GON6V0jdjuGFMQTxXSG3
IfgyfRd5V+C3OV402V5Xjr8s18kZg0t8A9O9aKZAsmuyzU/ji+6//36/rRlUl+UbtWtbdhFAmaLW
P5iHULglIYgmzsl1B7g+EXSP5pJpBUj+wodKrJRqrHK1LcbynuKJYKbMB67JHbkng58OqDofdogp
z4HyJJIyIPSlcS73uOn1NnEuYrDCTIhoasmuqcmOyGqeizQBDMK3CgO56lp5PAIIRAimUNx8glhi
cRHTuFo9ChZdppFCwMUlWZUQCLj0icxlCKmQoe1sGY9AaOVGOR++z3ioheNM3BFQBGm8KNYrrL8Q
icPCY8e1Lcay8J7zwRPljCYDw6LUkXsy+KnhhLALjcdVXNkm7CKJpLjQn6vyS3FAeaC4allvLBFk
mZEixBzBiczW+l0xA0MuUj6MTNqamyVXXSuPR4DnrnyyJnANa5Jjg2R4UU9bBFeUIlhrseIytvDM
NNQCry5IBeHwmIW+nlPA1RvTIGQ1XcP8qlVM44K0ri0NgXwQYLBSa9ezEjuoBCOIkNoR4Vahgiwu
Z7yvxL3BYPJ+ooRJGvUET8VKpwIi9AAFAvHMuRhrNLcwiyi+eBaa7AChjqyOqhDTYydlSc4CLEVo
XpkKQIVcBhcyfesA05t44MlwwQUX+KlolKng+CSa0CQuUWYxPD8CFoTVvSuhAWFbW1+CgCqIbpZp
bDTJB3vRnjNVGtPakAwvSnxjJG0Df2Ve8aaAmdXkMVoebWvb2QiE/AkMOoo4+ikEACzrHRH93X77
7eerYLFC0c/Uczw/zQ7fUfti3NcTPBUPtf5h9UMRRN+onoFaR5eaLRulG7Mr4FlE/4Q77GmnnRbr
TaRti3mJwhhBh3f5+OOP9zHieFHVigCDgl89SHoTA6x848ePdyeeeKLnAzg352QqQXWJ1iRwcedV
HgAPMKZyRGlBe94BjmXUOQLwuvqt4H2CIAv2YIrCjmdPLhoVWPWI8Bvht6uCLOOS8mrULbb4W+4p
p4syOyEVcBUgPiJAZQAOrQSp2vbfEOg+Agi3MB1YCmEI8QhgIEPzxD51O447Mq7IuFvAtJPpEiJj
LZ0o2f6Y1oABsSPtYtxxC7msJ3jqfROawDPQgUkFXt0fLmEGidWFYcedGcYELa0mUEDr25HVMDxW
Ma3z3qJ04R3EAwYBBazoO2HsmO6BqYTiiDk4sXgoaWwT00KoSzj98DnnnJNhMKjLc8AyjPB8yCGH
eCsggxiDFwMdGlwGw1zEfgQo6vMt3nrrrV6hibC8++67Z6bGydXeylMIoEknTopMycoUwpRitUWb
TuKvuCnMwF6ne1ALLkdE8IWBhBkkc6ZR5wjQ//AdgCMJcvgpEcaRi/iuSOLCd8Y3yHcAYUFBMYUF
F+UVzP2jjz7q9yXhX754htjQD5LoBiUBxHgB4x5HjBnsx1rFWMQUZyHRr0UzzYb7i3UdDw8MASQN
xKqO8B8SShgdI8Jy1unP48KMzjjjjIwlln6K6f50/KYdim6+CfBGgcr3w3H0WHj8aL9F/SjhycL3
g1cTCvEwzOK+++7LzBcfbWfb2QjccccdPmyU54BXFvPiQvocGFvoo6LEeK4zLISKdcp1PmkVfKNt
C3m7QwsummN+gKZTgaibigq8nd28dl58NLreWRv2a11r1xW0lo06MAahNk7XdclV6rou9cqZ0gct
Icegs+QjRBig41WXlmgbvAqIraKcWKlwihoGRRgaGHOsZ0mjfPAMMQLTUKjVOT/DOuE6sdP8iJdC
kIIxhFlnUviOBKrwGMW4ThI+4s5wP4XxmCLWcBQQ++67r0/OwT1H32vKEIT4BvQHphBKHy3DHZn+
MSSwRuhFMcn50PZTH+L7ghkKYwrDtqxzLWiCCRXgu6Mf5pphqkJtb7RdMW/TJ8WRlsc9P7DDUksf
xH6YdXJWMJaizJs4cWLGEyo8tnpJwLDUijJZScvxnlLhQPcV85L3nj6cpX4DGiemS+5f+YWwjPIL
L7zQMRWHtuV7QSF6ySWXZDJVR9tgfVe8CckKY98eeeSRzPe0zz77ZBhLzpUEygfPEBfefw15oVwt
umGdcJ05jAk/UmMKzxHekyRVmhsirJ+U9euvv957p6lXEPeNEhTjAEp/KPpeU0ZfRL+lP8qUtEz7
NS1nyXPim+Hb4XtkDKGP4nmgtGAuXFXChu10nWthXEII1mep++LOp/uKcanPBey03wrvU/frMtzH
OMwYjhKbtjwDFW4ZY3gO8AVRCoVXhFolLaePUw8v3VcMS3wDsjmkYrgruwdHEHohEgMgVkMEJWXE
YUr4Ja0j7I3ntzTwRBBC2YAgBzEYP/XUU95ihQtNEonBCMstg5EqCfsaB87JoMWz4Jw6EHbnvLw/
DMQ8S/v+uoPckrooGngOuFpiwchlXVnSYtldw02xEAnMUTLByIVCAQx/VElUiPfX39fcH3jiaksi
KRh9FHtss873BOHmjxfMs2LNTKISGwzo27FuI3SG82qzr6+IcQSPOcYXrLIsu0uMJ3x7PE/GF6Pu
I4DxkfEE/HgOHXmldP/oxdGiUxfl4rhNu4tCQYCOT5Ph6DXTEfIz6j4C/YEn2kQ0+zAguC9heVci
4ZVq2msDi5TuT8oSpqC/s35yTlyOe0K8P0Y9QwBhIMnvfs/Q653WCEUwgVEy4TaKSNe2+wNPvB8m
TJjgLwgB9lkRZCEU3+PGjfPCLdt4mCSVEBDDGP/+wAGBFktuTwjFqVHPEEBRl+R3vyvomYDbFZSs
jiFgCOREALdYNIkwkGeeeaZ3SUaYI+soMaYwkbj8hXE3OQ9mOwwBQ8AQMAQSjwCK0QMOOMDHfRKC
RLgH3l2EX6jiDQVqEqdsSvzLYQAYAl1AwFyUuwBSIVYpVBflQsTartn5qZzImIxQG3U5In6XOFSm
CDAyBAyBwkWgUF2UCxfxZF85ilLySZDPIerFRUbZP/7xjw4h18gQMAQMgSgCJuBGESmSbRNwi+RB
Ftht4HqE+xKadmLeiNUhm7CRIWAIFD4CJuAW/jMsxDvALZn5vAmDwT0at9wwy28h3pNdsyFgCPQt
Auai3Lf42tENgUQhgOsY2nZ+RoaAIWAIGAKGQE8RIIFOrinVenpsa28IGALFiYBZcIvzudpdGQKG
gCFgCBgChoAhYAgYAoaAIZA4BOIn+EscDHbDhoAhYAgYAoaAIWAIGAKGgCFgCBgChY6ACbiF/gTt
+g0BQ8AQMAQMAUPAEDAEDAFDwBAwBDwCJuDai2AIGAKGgCFgCBgChoAhYAgYAoaAIVAUCJiAWxSP
0W7CEDAEDAFDwBAwBAwBQ8AQMAQMAUPg/wHFTsIdCwvEZAAAAABJRU5ErkJggg==
--Apple-Mail=_6F17D297-4269-4872-8C80-C4479CA1382B
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii



Note how the Emacs's RGB values are far off (especially the brownish =
shade that it thinks is bright yellow), yet the new predicate does =
better than all the old ones here.

> Note that AFAIR CSS (and HTML in general) uses 24 BPP colors, whereas
> your color-dark-p is AFAICT based on 16-bit color values, not 8-bit.

No, CSS and Emacs normalise hex colours to the number of digits used, so =
that #123, #112233 and #111122223333 all represent the same colour. (The =
Windows-specific colour parser has a bug, as mentioned recently on =
emacs-devel; I intend to fix that since other colour parsers are buggy =
in other ways. This is completely unrelated to the current discussion.)


--Apple-Mail=_6F17D297-4269-4872-8C80-C4479CA1382B
Content-Disposition: attachment;
	filename=0001-Improved-light-dark-colour-predicate-bug-41544.patch
Content-Type: application/octet-stream;
	x-unix-mode=0644;
	name="0001-Improved-light-dark-colour-predicate-bug-41544.patch"
Content-Transfer-Encoding: quoted-printable

=46rom=2018e4b6cfa9cebfa70c1cebf52e6c2c9622b86c29=20Mon=20Sep=2017=20=
00:00:00=202001=0AFrom:=20=3D?UTF-8?q?Mattias=3D20Engdeg=3DC3=3DA5rd?=3D=20=
<mattiase@HIDDEN>=0ADate:=20Sun,=2031=20May=202020=2021:12:46=20+0200=0A=
Subject:=20[PATCH]=20Improved=20light/dark=20colour=20predicate=20=
(bug#41544)=0A=0AAdd=20a=20single=20predicate,=20color-dark-p,=20for=20=
deciding=20whether=20a=20colour=0Ais=20more=20readable=20against=20black=20=
or=20white.=20=20Previously=20this=20was=20done=20in=0Adifferent=20ways=20=
in=20several=20places,=20and=20with=20worse=20results.=0A=0AThe=20new=20=
predicate=20compares=20the=20relative=20luminance=20of=20the=20colour=20=
to=0Aan=20experimentally=20determined=20cut-off=20value,=20and=20it=20=
seems=20to=20get=20it=0Aright=20in=20almost=20all=20cases,=20with=20no=20=
value=20leading=20to=20outright=20bad=0Aresults.=0A=0A*=20=
lisp/facemenu.el=20(list-colors-print):=20Use=20=
readable-foreground-color.=0A(color-dark-p):=20New=20function.=0A*=20=
lisp/term/pc-win.el:=20Update=20comment.=0A*=20lisp/term/rxvt.el=20=
(rxvt-set-background-mode):=0A*=20lisp/term/w32console.el=20=
(terminal-init-w32console):=0A*=20lisp/term/xterm.el=20=
(xterm-maybe-set-dark-background-mode):=0A*=20lisp/faces.el=20=
(readable-foreground-color):=0A*=20lisp/frame.el=20=
(frame-set-background-mode):=20Use=20color-dark-p.=0A*=20=
lisp/textmodes/css-mode.el=20(css--contrasty-color):=20Remove.=0A=
(css--fontify-region):=20Use=20color-dark-p.=0A---=0A=20lisp/facemenu.el=20=
=20=20=20=20=20=20=20=20=20=20|=2011=20+++++------=0A=20lisp/faces.el=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20|=2033=20=
++++++++++++++++++++++++---------=0A=20lisp/frame.el=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20|=2010=20+++-------=0A=20lisp/term/pc-win.el=20=20=20=
=20=20=20=20=20|=20=208=20+++-----=0A=20lisp/term/rxvt.el=20=20=20=20=20=20=
=20=20=20=20|=2012=20+++++-------=0A=20lisp/term/w32console.el=20=20=20=20=
|=20=206=20+++---=0A=20lisp/term/xterm.el=20=20=20=20=20=20=20=20=20|=20=20=
5=20++---=0A=20lisp/textmodes/css-mode.el=20|=2014=20++------------=0A=20=
8=20files=20changed,=2047=20insertions(+),=2052=20deletions(-)=0A=0Adiff=20=
--git=20a/lisp/facemenu.el=20b/lisp/facemenu.el=0Aindex=20=
b10d874b21..419b76101b=20100644=0A---=20a/lisp/facemenu.el=0A+++=20=
b/lisp/facemenu.el=0A@@=20-621,12=20+621,11=20@@=20list-colors-print=0A=20=
=09=09=09=09=09=09=20(downcase=20b))))))=0A=20=09(setq=20color=20(list=20=
color)))=0A=20=20=20=20=20=20=20(let*=20((opoint=20(point))=0A-=09=20=20=20=
=20=20(color-values=20(color-values=20(car=20color)))=0A-=09=20=20=20=20=20=
(light-p=20(>=3D=20(apply=20'max=20color-values)=0A-=09=09=09=20=20(*=20=
(car=20(color-values=20"white"))=20.5))))=0A+=20=20=20=20=20=20=20=20=20=20=
=20=20=20(fg=20(readable-foreground-color=20(car=20color))))=0A=20=09=
(insert=20(car=20color))=0A=20=09(indent-to=2022)=0A-=09=
(put-text-property=20opoint=20(point)=20'face=20`(:background=20,(car=20=
color)))=0A+=09(put-text-property=20opoint=20(point)=20'face=20=
`(:background=20,(car=20color)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20:foreground=20,fg))=0A=20=09=
(put-text-property=0A=20=09=20(prog1=20(point)=0A=20=09=20=20=20(insert=20=
"=20")=0A@@=20-639,7=20+638,7=20@@=20list-colors-print=0A=20=09(insert=20=
(propertize=0A=20=09=09=20(apply=20'format=20"#%02x%02x%02x"=0A=20=09=09=09=
(mapcar=20(lambda=20(c)=20(ash=20c=20-8))=0A-=09=09=09=09color-values))=0A=
+=09=09=09=09(color-values=20(car=20color))))=0A=20=09=09=20'mouse-face=20=
'highlight=0A=20=09=09=20'help-echo=0A=20=09=09=20(let=20((hsv=20(apply=20=
'color-rgb-to-hsv=0A@@=20-651,7=20+650,7=20@@=20list-colors-print=0A=20=09=
=20=20=20opoint=20(point)=0A=20=09=20=20=20'follow-link=20t=0A=20=09=20=20=
=20'mouse-face=20(list=20:background=20(car=20color)=0A-=09=09=09=20=20=20=
=20=20:foreground=20(if=20light-p=20"black"=20"white"))=0A+=09=09=09=20=20=
=20=20=20:foreground=20fg)=0A=20=09=20=20=20'color-name=20(car=20color)=0A=
=20=09=20=20=20'action=20callback-fn)))=0A=20=20=20=20=20=20=20(insert=20=
"\n"))=0Adiff=20--git=20a/lisp/faces.el=20b/lisp/faces.el=0Aindex=20=
f4a9dedd79..fdc2653ba9=20100644=0A---=20a/lisp/faces.el=0A+++=20=
b/lisp/faces.el=0A@@=20-1786,15=20+1786,30=20@@=20=
defined-colors-with-face-attributes=0A=20=0A=20(defun=20=
readable-foreground-color=20(color)=0A=20=20=20"Return=20a=20readable=20=
foreground=20color=20for=20background=20COLOR."=0A-=20=20(let*=20((rgb=20=
=20=20(color-values=20color))=0A-=09=20(max=20=20=20(apply=20#'max=20=
rgb))=0A-=09=20(black=20(car=20(color-values=20"black")))=0A-=09=20=
(white=20(car=20(color-values=20"white"))))=0A-=20=20=20=20;;=20Select=20=
black=20or=20white=20depending=20on=20which=20one=20is=20less=20similar=20=
to=0A-=20=20=20=20;;=20the=20brightest=20component.=0A-=20=20=20=20(if=20=
(>=20(abs=20(-=20max=20black))=20(abs=20(-=20max=20white)))=0A-=09=
"black"=0A-=20=20=20=20=20=20"white")))=0A+=20=20;;=20We=20use=20#ffffff=20=
instead=20of=20"white",=20because=20the=20latter=20is=20sometimes=0A+=20=20=
;;=20less=20than=20white.=20=20That=20way,=20we=20get=20the=20best=20=
contrast=20possible.=0A+=20=20(if=20(color-dark-p=20(mapcar=20(lambda=20=
(c)=20(/=20c=2065535.0))=20color))=0A+=20=20=20=20=20=20"#ffffff"=20=
"black"))=0A+=0A+(defun=20color-dark-p=20(rgb)=0A+=20=20"Whether=20RGB=20=
is=20more=20readable=20against=20white=20than=20black.=0A+RGB=20is=20a=20=
3-element=20list=20(R=20G=20B),=20each=20component=20in=20the=20range=20=
[0,1]."=0A+=20=20(unless=20(<=3D=200=20(apply=20#'min=20rgb)=20(apply=20=
#'max=20rgb)=201)=0A+=20=20=20=20(error=20"RGB=20components=20%S=20not=20=
in=20[0,1]"=20rgb))=0A+=20=20;;=20Compute=20the=20relative=20luminance=20=
after=20gamma-correcting=20(assuming=20sRGB),=0A+=20=20;;=20and=20=
compare=20to=20a=20cut-off=20value=20determined=20experimentally.=0A+=20=20=
;;=20See=20https://en.wikipedia.org/wiki/Relative_luminance=20for=20=
details.=0A+=20=20(let*=20((sr=20(nth=200=20rgb))=0A+=20=20=20=20=20=20=20=
=20=20(sg=20(nth=201=20rgb))=0A+=20=20=20=20=20=20=20=20=20(sb=20(nth=20=
2=20rgb))=0A+=20=20=20=20=20=20=20=20=20;;=20Gamma-correct=20the=20RGB=20=
components=20to=20linear=20values.=0A+=20=20=20=20=20=20=20=20=20;;=20=
Use=20the=20power=202.2=20as=20an=20approximation=20to=20sRGB=20gamma;=0A=
+=20=20=20=20=20=20=20=20=20;;=20it=20should=20be=20good=20enough=20for=20=
the=20purpose=20of=20this=20function.=0A+=20=20=20=20=20=20=20=20=20(r=20=
(expt=20sr=202.2))=0A+=20=20=20=20=20=20=20=20=20(g=20(expt=20sg=202.2))=0A=
+=20=20=20=20=20=20=20=20=20(b=20(expt=20sb=202.2))=0A+=20=20=20=20=20=20=
=20=20=20(y=20(+=20(*=20r=200.2126)=20(*=20g=200.7152)=20(*=20b=20=
0.0722))))=0A+=20=20=20=20(<=20y=20(eval-when-compile=20(expt=200.6=20=
2.2)))))=0A=20=0A=20(declare-function=20xw-color-defined-p=20"xfns.c"=20=
(color=20&optional=20frame))=0A=20=0Adiff=20--git=20a/lisp/frame.el=20=
b/lisp/frame.el=0Aindex=206c2f774709..d05fbe3152=20100644=0A---=20=
a/lisp/frame.el=0A+++=20b/lisp/frame.el=0A@@=20-1181,13=20+1181,9=20@@=20=
frame-set-background-mode=0A=20=09=09=20=20=20non-default-bg-mode)=0A=20=09=
=09=20=20((not=20(color-values=20bg-color=20frame))=0A=20=09=09=20=20=20=
default-bg-mode)=0A-=09=09=20=20((>=3D=20(apply=20'+=20(color-values=20=
bg-color=20frame))=0A-=09=09=20=20=20=20=20=20=20;;=20Just=20looking=20=
at=20the=20screen,=20colors=20whose=0A-=09=09=20=20=20=20=20=20=20;;=20=
values=20add=20up=20to=20.6=20of=20the=20white=20total=0A-=09=09=20=20=20=
=20=20=20=20;;=20still=20look=20dark=20to=20me.=0A-=09=09=20=20=20=20=20=20=
=20(*=20(apply=20'+=20(color-values=20"white"=20frame))=20.6))=0A-=09=09=20=
=20=20'light)=0A-=09=09=20=20(t=20'dark)))=0A+=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20((color-dark-p=20(mapcar=20(lambda=20(c)=20(/=20=
c=2065535.0))=20=20bg-color))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20'dark)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20(t=20'light)))=0A=20=09=20=20=20(display-type=0A=20=09=20=20=20=20=
(cond=20((null=20(window-system=20frame))=0A=20=09=09=20=20=20(if=20=
(tty-display-color-p=20frame)=20'color=20'mono))=0Adiff=20--git=20=
a/lisp/term/pc-win.el=20b/lisp/term/pc-win.el=0Aindex=20=
76a48a86c7..16eb660f00=20100644=0A---=20a/lisp/term/pc-win.el=0A+++=20=
b/lisp/term/pc-win.el=0A@@=20-54,11=20+54,9=20@@=0A=20;;=20=
DJGPP-compiled=20Emacs=20on=20the=20same=20PC.=20=20The=20names=20of=20X=20=
colors=20used=20to=0A=20;;=20define=20the=20pixel=20values=20are=20shown=20=
as=20comments=20to=20each=20color=20below.=0A=20;;;=0A-;;=20If=20you=20=
want=20to=20change=20the=20RGB=20values,=20keep=20in=20mind=20that=20=
various=20pieces=0A-;;=20of=20Emacs=20think=20that=20a=20color=20whose=20=
RGB=20values=20add=20up=20to=20less=20than=200.6=20of=0A-;;=20the=20=
values=20for=20WHITE=20(i.e.=20less=20than=20117963)=20are=20``dark'',=20=
otherwise=20the=0A-;;=20color=20is=20``light'';=20see=20=
`frame-set-background-mode'=20in=20lisp/faces.el=20for=0A-;;=20an=20=
example.=0A+;;=20If=20you=20want=20to=20change=20the=20RGB=20values,=20=
consider=20the=20heuristics=20in=0A+;;=20`color-dark-p'=20which=20is=20=
used=20to=20select=20a=20suitably=20contrasting=0A+;;=20foreground=20or=20=
background=20colour.=0A=20(defvar=20msdos-color-values=0A=20=20=20=
'(("black"=20=20=20=20=20=20=20=20=20=200=20=20=20=20=200=20=20=20=20=20=
0=20=20=20=20=200)=0A=20=20=20=20=20("blue"=20=20=20=20=20=20=20=20=20=20=
=201=20=20=20=20=200=20=20=20=20=200=2052480)=20;=20MediumBlue=0Adiff=20=
--git=20a/lisp/term/rxvt.el=20b/lisp/term/rxvt.el=0Aindex=20=
31e3d6ede4..5dc754c8e0=20100644=0A---=20a/lisp/term/rxvt.el=0A+++=20=
b/lisp/term/rxvt.el=0A@@=20-206,13=20+206,11=20@@=20=
rxvt-set-background-mode=0A=20=20=20=20=20=20=20;;=20The=20next=20line=20=
assumes=20that=20rxvt-standard-colors=20are=20ordered=0A=20=20=20=20=20=20=
=20;;=20by=20the=20color=20index=20in=20the=20ascending=20order!=0A=20=20=
=20=20=20=20=20(setq=20rgb=20(car=20(cddr=20(nth=20bg=20=
rxvt-standard-colors))))=0A-=20=20=20=20=20=20;;=20See=20the=20=
commentary=20in=20frame-set-background-mode=20about=20the=0A-=20=20=20=20=
=20=20;;=20computation=20below.=0A-=20=20=20=20=20=20(if=20(<=20(apply=20=
'+=20rgb)=0A-=09=20=20=20=20=20;;=20The=20following=20line=20assumes=20=
that=20white=20is=20the=2015th=0A-=09=20=20=20=20=20;;=20color=20in=20=
rxvt-standard-colors.=0A-=09=20=20=20=20=20(*=20(apply=20'+=20(car=20=
(cddr=20(nth=2015=20rxvt-standard-colors))))=200.6))=0A-=09=20=20=
(set-terminal-parameter=20nil=20'background-mode=20'dark)))))=0A+=20=20=20=
=20=20=20;;=20The=20following=20line=20assumes=20that=20white=20is=20the=20=
15th=0A+=20=20=20=20=20=20;;=20color=20in=20rxvt-standard-colors.=0A+=20=20=
=20=20=20=20(let=20((comp-max=20(float=20(caddr=20(nth=2015=20=
rxvt-standard-colors)))))=0A+=20=20=20=20=20=20=20=20(when=20=
(color-dark-p=20(mapcar=20(lambda=20(c)=20(/=20c=20comp-max))=20rgb))=0A=
+=09=20=20(set-terminal-parameter=20nil=20'background-mode=20'dark))))))=0A=
=20=0A=20(provide=20'term/rxvt)=0A=20=0Adiff=20--git=20=
a/lisp/term/w32console.el=20b/lisp/term/w32console.el=0Aindex=20=
36e9d896c7..0e9d7c8b5c=20100644=0A---=20a/lisp/term/w32console.el=0A+++=20=
b/lisp/term/w32console.el=0A@@=20-86,9=20+86,9=20@@=20=
terminal-init-w32console=0A=20=20=20=20=20(setq=20r=20(nth=202=20descr)=0A=
=20=09=20=20g=20(nth=203=20descr)=0A=20=09=20=20b=20(nth=204=20descr))=0A=
-=20=20=20=20(if=20(<=20(+=20r=20g=20b)=20(*=20.6=20(+=2065535=2065535=20=
65535)))=0A-=09(setq=20bg-mode=20'dark)=0A-=20=20=20=20=20=20(setq=20=
bg-mode=20'light))=0A+=20=20=20=20(setq=20bg-mode=20(if=20(color-dark-p=0A=
+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
(list=20(/=20r=2065535.0)=20(/=20g=2065535.0)=20(/=20b=2065535.0)))=0A+=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20'dark=20=
'light))=0A=20=20=20=20=20(set-terminal-parameter=20nil=20=
'background-mode=20bg-mode))=0A=20=20=20(tty-set-up-initial-frame-faces)=0A=
=20=20=20(run-hooks=20'terminal-init-w32-hook))=0Adiff=20--git=20=
a/lisp/term/xterm.el=20b/lisp/term/xterm.el=0Aindex=20=
1a727e3933..bf9bcae526=20100644=0A---=20a/lisp/term/xterm.el=0A+++=20=
b/lisp/term/xterm.el=0A@@=20-1120,9=20+1120,8=20@@=20=
xterm-register-default-colors=0A=20=20=20=20=20(clear-face-cache)))=0A=20=
=0A=20(defun=20xterm-maybe-set-dark-background-mode=20(redc=20greenc=20=
bluec)=0A-=20=20;;=20Use=20the=20heuristic=20in=20=
`frame-set-background-mode'=20to=20decide=20if=20a=0A-=20=20;;=20frame=20=
is=20dark.=0A-=20=20(when=20(<=20(+=20redc=20greenc=20bluec)=20(*=20.6=20=
(+=2065535=2065535=2065535)))=0A+=20=20(when=20(color-dark-p=20(mapcar=20=
(lambda=20(c)=20(/=20c=2065535.0))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(list=20redc=20=
greenc=20bluec)))=0A=20=20=20=20=20(set-terminal-parameter=20nil=20=
'background-mode=20'dark)=0A=20=20=20=20=20t))=0A=20=0Adiff=20--git=20=
a/lisp/textmodes/css-mode.el=20b/lisp/textmodes/css-mode.el=0Aindex=20=
0035c5e7b0..2cd99787e8=20100644=0A---=20a/lisp/textmodes/css-mode.el=0A=
+++=20b/lisp/textmodes/css-mode.el=0A@@=20-1149,17=20+1149,6=20@@=20=
css--compute-color=0A=20=20=20=20;;=20Evaluate=20to=20the=20color=20if=20=
the=20name=20is=20found.=0A=20=20=20=20((css--named-color=20start-point=20=
match))))=0A=20=0A-(defun=20css--contrasty-color=20(name)=0A-=20=20=
"Return=20a=20color=20that=20contrasts=20with=20NAME.=0A-NAME=20is=20of=20=
any=20form=20accepted=20by=20`color-distance'.=0A-The=20returned=20color=20=
will=20be=20usable=20by=20Emacs=20and=20will=20contrast=0A-with=20NAME;=20=
in=20particular=20so=20that=20if=20NAME=20is=20used=20as=20a=20=
background=0A-color,=20the=20returned=20color=20can=20be=20used=20as=20=
the=20foreground=20and=20still=0A-be=20readable."=0A-=20=20;;=20See=20=
bug#25525=20for=20a=20discussion=20of=20this.=0A-=20=20(if=20(>=20=
(color-distance=20name=20"black")=20292485)=0A-=20=20=20=20=20=20"black"=20=
"white"))=0A-=0A=20(defcustom=20css-fontify-colors=20t=0A=20=20=20=
"Whether=20CSS=20colors=20should=20be=20fontified=20using=20the=20color=20=
as=20the=20background.=0A=20When=20non-`nil',=20a=20text=20representing=20=
CSS=20color=20will=20be=20fontified=0A@@=20-1199,7=20+1188,8=20@@=20=
css--fontify-region=0A=20=09=09=20=20=20=20(add-text-properties=0A=20=09=09=
=20=20=20=20=20start=20(point)=0A=20=09=09=20=20=20=20=20(list=20'face=20=
(list=20:background=20color=0A-=09=09=09=09=20=20=20=20=20=20=20=
:foreground=20(css--contrasty-color=20color)=0A+=09=09=09=09=20=20=20=20=20=
=20=20:foreground=20(readable-foreground-color=0A+=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20color)=0A=20=09=09=
=09=09=20=20=20=20=20=20=20:box=20'(:line-width=20-1))))))))))))=0A=20=20=
=20=20=20extended-region))=0A=20=0A--=20=0A2.21.1=20(Apple=20Git-122.3)=0A=
=0A=

--Apple-Mail=_6F17D297-4269-4872-8C80-C4479CA1382B--




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

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


Received: (at 41544) by debbugs.gnu.org; 9 Jun 2020 16:20:41 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jun 09 12:20:41 2020
Received: from localhost ([127.0.0.1]:60755 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jigzR-0005FI-BB
	for submit <at> debbugs.gnu.org; Tue, 09 Jun 2020 12:20:41 -0400
Received: from eggs.gnu.org ([209.51.188.92]:38266)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1jigzP-0005F4-Td
 for 41544 <at> debbugs.gnu.org; Tue, 09 Jun 2020 12:20:40 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:44931)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <eliz@HIDDEN>)
 id 1jigzJ-0008AX-D6; Tue, 09 Jun 2020 12:20:33 -0400
Received: from [176.228.60.248] (port=3831 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1jigzI-0003Q6-TA; Tue, 09 Jun 2020 12:20:33 -0400
Date: Tue, 09 Jun 2020 19:20:13 +0300
Message-Id: <83wo4g5hz6.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Mattias =?utf-8?Q?Engdeg=C3=A5rd?= <mattiase@HIDDEN>, Tom Tromey
 <tom@HIDDEN>
In-Reply-To: <1B0F31C8-1E11-4527-A053-DD2DE8235F58@HIDDEN> (message from
 Mattias =?utf-8?Q?Engdeg=C3=A5rd?= on Mon, 8 Jun 2020 15:11:36 +0200)
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN> <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN> <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN> <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN> <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN> <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN> <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN> <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
 <83img48ffx.fsf@HIDDEN> <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN>
 <83bllw82xt.fsf@HIDDEN> <1B0F31C8-1E11-4527-A053-DD2DE8235F58@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: 41544
Cc: simenheg@HIDDEN, 41544 <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: Mattias Engdegård <mattiase@HIDDEN>
> Date: Mon, 8 Jun 2020 15:11:36 +0200
> Cc: 41544 <at> debbugs.gnu.org
> 
> > What practical problem is being solved here?
> 
> The current predicates for determining whether a colour is light or dark are just bad. We can and should do better, and that's what this is all about.
> 
> Let's consider the three saturated colours #ff0000 (red), #00ff00 (green) and #0000ff (blue). Black text looks terrible on blue, as does white on green; black on red isn't good either. This comes as no surprise: the human eye is more sensitive to brightness levels of green than blue, with red somewhere in-between.

Here we already not necessarily agree: at least on some text-mode
terminals some of the above combinations look quite legible to me.

Like I said: individual taste and differences, as well as different
RGB values used by some terminals for the same color names, can and do
wreak havoc on this, so a perfect solution is simply not possible.

>  (color-distance "#ff0000" "black") => 162308
>  (color-distance "#00ff00" "black") => 260100
>  (color-distance "#0000ff" "black") => 194820
> 
> This means that we cannot fix DIST by tweaking its cut-off value; it's fundamentally unfit for this purpose.
> 
> For a proper solution, we have theory to guide us: determine the perceived brightness of a colour, and classify everything below a cut-off value as dark, others as light. The patch uses a standard expression for relative luminance: Y = 0.2126R + 0.7152G + 0.0722B, where R, G and B are linear colour components. We assume a gamma of 2.2; it is nearly identical to the sRGB gamma curve and the results are almost the same.
> 
> With a cut-off of 0.6, this predicate turns out to be quite good: much better than MAX, AVG or DIST at any rate. While not perfect, it's good enough in the sense that for colours where it seems to make the wrong decision, it's a fairly close call, and the colour is quite readable with both black and write as contrast.

Again, I see no practical problems described here, just a theoretical
issue with the particular implementations we have now.  Those
implementations do their job, although they are clearly not perfect.
However, I seed no reason to seek perfection in this case.

> diff --git a/lisp/facemenu.el b/lisp/facemenu.el
> index b10d874b21..419b76101b 100644
> --- a/lisp/facemenu.el
> +++ b/lisp/facemenu.el
> @@ -621,12 +621,11 @@ list-colors-print

I don't think this change is very important, but I don't object to
installing it, since it only affects this single command, whose
purpose is just to display the list of colors.

> +(defun color-dark-p (rgb)
> +  "Whether RGB is more readable against white than black.
> +RGB is a 3-element list (R G B), each component in the range [0,1]."
> +  (unless (<= 0 (apply #'min rgb) (apply #'max rgb) 1)
> +    (error "RGB components %S not in [0,1]" rgb))
> +  (let* ((sr (nth 0 rgb))
> +         (sg (nth 1 rgb))
> +         (sb (nth 2 rgb))
> +         ;; Gamma-correct the RGB components to linear values.
> +         ;; Use the power 2.2 as an approximation to sRGB gamma;
> +         ;; it should be good enough for the purpose of this function.
> +         (r (expt sr 2.2))
> +         (g (expt sg 2.2))
> +         (b (expt sb 2.2))
> +         ;; Compute the relative luminance.
> +         (y (+ (* r 0.2126) (* g 0.7152) (* b 0.0722))))
> +    ;; Compare it to a cut-off value determined experimentally; see bug#41544.
> +    (< y (eval-when-compile (expt 0.6 2.2)))))

IMO, the commentary here doesn't explain enough, and actually begs
more questions than it answers.  What is "gamma-correction", and why
is it pertinent here?  Why is the power 2.2 a "good enough"
approximation here?  What are the other constants, and what is the
meaning of each one of them?  And pointing to the bug number for
rationale of the cut-off value doesn't really help, since the
discussion is very long, so I doubt people will easily find that
rationale.

If these questions cannot be reasonably answered in the comments, how
about pointing to some article or URL where interested readers could
read up on that?

> +(defun frame--color-name-to-rgb (color frame)
> +  "Convert the COLOR string to a list of normalised RGB components.
> +Like `color-name-to-rgb', but works even when the display has not yet
> +been initialised."
> +  (mapcar (lambda (x) (/ x 65535.0)) (color-values color frame)))

I still don't understand why we need this function.  Did you see any
practical problems with using color-name-to-rgb?  Why does it matter
that it needs the display to be initialized?  Would it be enough to
document that it needs the display to be initialized?

>  (defun frame-set-background-mode (frame &optional keep-face-specs)
>    "Set up display-dependent faces on FRAME.
>  Display-dependent faces are those which have different definitions
> @@ -1181,13 +1187,9 @@ frame-set-background-mode
>  		   non-default-bg-mode)
>  		  ((not (color-values bg-color frame))
>  		   default-bg-mode)
> -		  ((>= (apply '+ (color-values bg-color frame))
> -		       ;; Just looking at the screen, colors whose
> -		       ;; values add up to .6 of the white total
> -		       ;; still look dark to me.
> -		       (* (apply '+ (color-values "white" frame)) .6))
> -		   'light)
> -		  (t 'dark)))
> +                  ((color-dark-p (frame--color-name-to-rgb bg-color frame))
> +                   'dark)
> +                  (t 'light)))

As I said before, I don't want to change the default value of
frame-background-mode.  This code has been relatively stable for quite
some time, and the result is customizable if the user doesn't like the
default.  Changing the default value in subtle ways simply risks
annoying users.  There's nothing to gain here, only potential losses.

Same comment for calculation of background-mode frame parameter in the
various lisp/term/*.el files.  I don't want to make those changes.

> --- a/lisp/textmodes/css-mode.el
> +++ b/lisp/textmodes/css-mode.el
> @@ -1149,17 +1149,6 @@ css--compute-color
>     ;; Evaluate to the color if the name is found.
>     ((css--named-color start-point match))))
>  
> -(defun css--contrasty-color (name)
> -  "Return a color that contrasts with NAME.
> -NAME is of any form accepted by `color-distance'.
> -The returned color will be usable by Emacs and will contrast
> -with NAME; in particular so that if NAME is used as a background
> -color, the returned color can be used as the foreground and still
> -be readable."
> -  ;; See bug#25525 for a discussion of this.
> -  (if (> (color-distance name "black") 292485)
> -      "black" "white"))
> -
>  (defcustom css-fontify-colors t
>    "Whether CSS colors should be fontified using the color as the background.
>  When non-`nil', a text representing CSS color will be fontified
> @@ -1199,7 +1188,8 @@ css--fontify-region
>  		    (add-text-properties
>  		     start (point)
>  		     (list 'face (list :background color
> -				       :foreground (css--contrasty-color color)
> +				       :foreground (readable-foreground-color
> +                                                    color)
>  				       :box '(:line-width -1))))))))))))
>      extended-region))

If Tom is okay with this change, I won't object.

Note that AFAIR CSS (and HTML in general) uses 24 BPP colors, whereas
your color-dark-p is AFAICT based on 16-bit color values, not 8-bit.
ISTR there were issues with converting between these two
representations, something to do with whether an 8-bit component
should be converted to a 16-bit component by zero-extending it or by a
left shift (i.e. whether #ff should be mapped to #00ff or to #ff00).
Apologies if I'm confused here.

Thanks.




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

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


Received: (at 41544) by debbugs.gnu.org; 9 Jun 2020 12:19:41 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jun 09 08:19:41 2020
Received: from localhost ([127.0.0.1]:59203 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jidED-00075W-I3
	for submit <at> debbugs.gnu.org; Tue, 09 Jun 2020 08:19:41 -0400
Received: from mail1451c50.megamailservers.eu ([91.136.14.51]:32886
 helo=mail266c50.megamailservers.eu)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mattiase@HIDDEN>) id 1jidEB-00075A-Gy
 for 41544 <at> debbugs.gnu.org; Tue, 09 Jun 2020 08:19:40 -0400
X-Authenticated-User: mattiase@HIDDEN
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu;
 s=maildub; t=1591705172;
 bh=mLlu2TmNjOz9T0i9gWaiWzCAy2iuL49lCnXMEnj2Slk=;
 h=Subject:From:In-Reply-To:Date:Cc:References:To:From;
 b=VD6UEujI0aThoN8wuXl81GapxHXvUhBieqIGRbUe0OqEa0w9Uba0LX6oscWMkaI4O
 t02eNjrgDAMAWosgwdALVOwEzJGBwmpQiabDX3hsDnz8ihlf1bt/iiPXevgk+2DHjp
 cLFBxE0IJ+wLH8NvsLK4/svuQl2l1Ha6590wQbEE=
Feedback-ID: mattiase@HIDDEN
Received: from stanniol.lan (c-4e4ae655.032-75-73746f71.bbcust.telenor.se
 [85.230.74.78]) (authenticated bits=0)
 by mail266c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 059CJTvw018661; 
 Tue, 9 Jun 2020 12:19:31 +0000
Content-Type: text/plain;
	charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.14\))
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>
In-Reply-To: <83zh9f6j9v.fsf@HIDDEN>
Date: Tue, 9 Jun 2020 14:19:29 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <0BCBDA86-6586-4C73-8E58-DFDE8762C250@HIDDEN>
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN> <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN> <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN> <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN> <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN> <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN> <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN> <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
 <83img48ffx.fsf@HIDDEN> <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN>
 <b4cbf0a8-d59a-4e8c-a8cf-a8df090f36bf@default>
 <5AEB442C-5592-46E4-BC38-185BA9D2D956@HIDDEN> <83zh9f6j9v.fsf@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
X-Mailer: Apple Mail (2.3445.104.14)
X-CTCH-RefID: str=0001.0A782F19.5EDF7E54.0042:SCFSTAT68638221, ss=1, re=-4.000,
 recu=0.000, reip=0.000, cl=1, cld=1, fgs=0
X-CTCH-VOD: Unknown
X-CTCH-Spam: Unknown
X-CTCH-Score: -4.000
X-CTCH-Rules: 
X-CTCH-Flags: 0
X-CTCH-ScoreCust: 0.000
X-CSC: 0
X-CHA: v=2.3 cv=A5MSwJeG c=1 sm=1 tr=0 a=klNLuyVZdLUgl+K5Uafb2A==:117
 a=klNLuyVZdLUgl+K5Uafb2A==:17 a=kj9zAlcOel0A:10 a=M51BFTxLslgA:10
 a=mDV3o1hIAAAA:8 a=TlfYVcsWVqIc_Eqo5lQA:9 a=CjuIK1q_8ugA:10
 a=_FVE-zBwftR9WsbkzFJk:22
X-Spam-Score: 1.4 (+)
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:  7 juni 2020 kl. 16.30 skrev Eli Zaretskii <eliz@HIDDEN>:
 > Background colors affect larger > portions of display, and therefore a bright
 background is perceived as > brighter and a dark background as darker, than
 when the same color is > used as foreground. 
 Content analysis details:   (1.4 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.0 URIBL_BLOCKED          ADMINISTRATOR NOTICE: The query to URIBL was
 blocked.  See
 http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block
 for more information. [URIs: gnu.org]
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 1.0 SPF_SOFTFAIL           SPF: sender does not match SPF record (softfail)
 0.4 KHOP_HELO_FCRDNS       Relay HELO differs from its IP's reverse DNS
X-Debbugs-Envelope-To: 41544
Cc: 41544 <at> debbugs.gnu.org, drew.adams@HIDDEN
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.0 (/)

7 juni 2020 kl. 16.30 skrev Eli Zaretskii <eliz@HIDDEN>:

>  Background colors affect larger
> portions of display, and therefore a bright background is perceived as
> brighter and a dark background as darker, than when the same color is
> used as foreground.

Yes, but we should ask what that means in terms of a predicate to select =
between them. Of all comparisons I've done, the latest color-dark-p =
predicate appears to work fairly well for selecting backgrounds, in the =
senses that it's never bad.

You are quite right that the optimal predicate may be different, and I'm =
not at all opposed to having two separate functions. They may be =
identical initially, but could diverge as we learn more.

Experimentally, it looks like the case of selecting a black/white =
background is more forgiving: the set of 'ambiguous' colours that =
contrast well with both black and white greater than when selecting a =
black/white text.

If you could come up with a colour that strongly prefers a black =
background but a white foreground, or vice versa, then that would =
provide us with more insight. If not, it might indicate that those =
colours are rare.





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

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


Received: (at 41544) by debbugs.gnu.org; 8 Jun 2020 19:53:26 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jun 08 15:53:26 2020
Received: from localhost ([127.0.0.1]:57958 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jiNpl-0003a9-UF
	for submit <at> debbugs.gnu.org; Mon, 08 Jun 2020 15:53:26 -0400
Received: from mail222c50.megamailservers.eu ([91.136.10.232]:44770
 helo=mail33c50.megamailservers.eu)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mattiase@HIDDEN>) id 1jiNpj-0003Zy-2j
 for 41544 <at> debbugs.gnu.org; Mon, 08 Jun 2020 15:53:24 -0400
X-Authenticated-User: mattiase@HIDDEN
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu;
 s=maildub; t=1591646000;
 bh=ydtpKebZiularrnzZo/Ni7dJl89rnZA1wioo1woqt30=;
 h=Subject:From:In-Reply-To:Date:Cc:References:To:From;
 b=lpACYnG6Wjp8f3mGnZm2GL0lw6qMzavCFyVNQsJW+KQi6bZAaAhQRrtEW1ybfWqg/
 Yd/aXjcvlomYBAEGwvoftcbZiEwmmeKzAvfxFzOP9tZO1KMYcg504HzbrMutyWUNI0
 082TrZInS4BGZzU9wl/rlpJnoSjRHoWDIbO7a59E=
Feedback-ID: mattiase@HIDDEN
Received: from stanniol.lan (c-4e4ae655.032-75-73746f71.bbcust.telenor.se
 [85.230.74.78]) (authenticated bits=0)
 by mail33c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 058JrHPR032078; 
 Mon, 8 Jun 2020 19:53:19 +0000
Content-Type: text/plain;
	charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.14\))
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>
X-Priority: 3
In-Reply-To: <0b4807d5-a5b9-47ad-91eb-d9240ea330e1@default>
Date: Mon, 8 Jun 2020 21:53:17 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <E4880FCB-AC8D-4418-8512-FF63A1FC4760@HIDDEN>
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN> <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN> <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN> <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN> <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN> <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN> <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN> <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
 <83img48ffx.fsf@HIDDEN> <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN>
 <83bllw82xt.fsf@HIDDEN> <1B0F31C8-1E11-4527-A053-DD2DE8235F58@HIDDEN>
 <0b4807d5-a5b9-47ad-91eb-d9240ea330e1@default>
To: Drew Adams <drew.adams@HIDDEN>
X-Mailer: Apple Mail (2.3445.104.14)
X-CTCH-RefID: str=0001.0A782F19.5EDE9730.004C:SCFSTAT68638221, ss=1, re=-4.000,
 recu=0.000, reip=0.000, cl=1, cld=1, fgs=0
X-CTCH-VOD: Unknown
X-CTCH-Spam: Unknown
X-CTCH-Score: -4.000
X-CTCH-Rules: 
X-CTCH-Flags: 0
X-CTCH-ScoreCust: 0.000
X-CSC: 0
X-CHA: v=2.3 cv=eaJDgIMH c=1 sm=1 tr=0 a=klNLuyVZdLUgl+K5Uafb2A==:117
 a=klNLuyVZdLUgl+K5Uafb2A==:17 a=kj9zAlcOel0A:10 a=M51BFTxLslgA:10
 a=yPCof4ZbAAAA:8 a=rtNEyu4AUv_osww1j8AA:9 a=CjuIK1q_8ugA:10
X-Spam-Score: 1.4 (+)
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: 8 juni 2020 kl. 16.30 skrev Drew Adams
 <drew.adams@HIDDEN>:
 > Sounds reasonable. Maybe you could attach some > screenshots (pic = 1000
 words)? You could try applying the latest patch, and run list-colors-display.
 To see other predicates in action, just edit color-dark-p to your heart's
 desire, and run list-colors-display again, and see which [...] 
 Content analysis details:   (1.4 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.0 URIBL_BLOCKED          ADMINISTRATOR NOTICE: The query to URIBL was
 blocked.  See
 http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block
 for more information. [URIs: megamailservers.eu]
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 1.0 SPF_SOFTFAIL           SPF: sender does not match SPF record (softfail)
 0.4 KHOP_HELO_FCRDNS       Relay HELO differs from its IP's reverse DNS
X-Debbugs-Envelope-To: 41544
Cc: =?utf-8?Q?Simen_Heggest=C3=B8yl?= <simenheg@HIDDEN>,
 Eli Zaretskii <eliz@HIDDEN>, 41544 <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.0 (/)

8 juni 2020 kl. 16.30 skrev Drew Adams <drew.adams@HIDDEN>:

> Sounds reasonable. Maybe you could attach some
> screenshots (pic =3D 1000 words)?

You could try applying the latest patch, and run list-colors-display. To =
see other predicates in action, just edit color-dark-p to your heart's =
desire, and run list-colors-display again, and see which one you think =
is better.

> I still have the same comment as before, regarding
> the name `color-dark-p' and the doc string

Quite, both naming and documentation can be improved. Those will have to =
follow the semantics, so that will have to be nailed first.





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

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


Received: (at 41544) by debbugs.gnu.org; 8 Jun 2020 18:39:39 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jun 08 14:39:39 2020
Received: from localhost ([127.0.0.1]:57901 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jiMgM-0001l0-Va
	for submit <at> debbugs.gnu.org; Mon, 08 Jun 2020 14:39:39 -0400
Received: from aibo.runbox.com ([91.220.196.211]:40470)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <simenheg@HIDDEN>) id 1jiMgK-0001kr-IR
 for 41544 <at> debbugs.gnu.org; Mon, 08 Jun 2020 14:39:37 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=runbox.com; 
 s=selector1;
 h=Content-Transfer-Encoding:Content-Type:MIME-Version:
 Message-ID:In-Reply-To:Date:References:Subject:Cc:To:From;
 bh=heMQJNS73/xXi1oDdc29DiOw+73+9yA27ZSW5a29IzM=; b=X8Z1/4USJgR9TDlNk+krW31Hmc
 GFW7tXled31rS0RmHdSCN7E5TpQZZEnLJi8UUkbCvJRS8MVKHqkTClwzOhr4BxEsb2UKQVEENNI8D
 tO1Ncek/rRnUp7z7glPNxqQ/ziC9iMQE+OXwuFGXqWNBvCecViVLhQp/xKZmSL0M/blgvEhCPNbs6
 h3c/I8CAV+ow/utBsEwKAa6/HBqb4XtYgq3Etf0sWLv49IpOGGUXCIYgnLvAbJXfFsQb0yvLK8021
 fsr1jf62l5KjPezOn358pVHwTJ19v2XwblxEefPJOc/VEtGbKO4F0fB1bT0RIk4IxVwwx6R0hOOFK
 IxoISXow==;
Received: from [10.9.9.74] (helo=submission03.runbox)
 by mailtransmit02.runbox with esmtp (Exim 4.86_2)
 (envelope-from <simenheg@HIDDEN>)
 id 1jiMgI-0000xD-Kz; Mon, 08 Jun 2020 20:39:34 +0200
Received: by submission03.runbox with esmtpsa [Authenticated alias (963757)]
 (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1)
 id 1jiMgC-0007Aj-Js; Mon, 08 Jun 2020 20:39:28 +0200
From: =?utf-8?Q?Simen_Heggest=C3=B8yl?= <simenheg@HIDDEN>
To: Mattias =?utf-8?Q?Engdeg=C3=A5rd?= <mattiase@HIDDEN>
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN>
 <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN>
 <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN>
 <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN>
 <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN>
 <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN>
 <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
 <83img48ffx.fsf@HIDDEN>
 <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN>
 <83bllw82xt.fsf@HIDDEN> <87pnabfdr5.fsf@simenheg@HIDDEN>
 <2F9BF919-4E8B-4802-AEE8-4438A78B4F68@HIDDEN>
 <87d06ar87d.fsf@simenheg@HIDDEN>
 <52B0E3DA-6CE4-47D3-8243-6E2C2F64D7BD@HIDDEN>
Date: Mon, 08 Jun 2020 20:39:28 +0200
In-Reply-To: <52B0E3DA-6CE4-47D3-8243-6E2C2F64D7BD@HIDDEN> ("Mattias
 =?utf-8?Q?Engdeg=C3=A5rd=22's?= message of "Sun, 7 Jun 2020 21:27:43
 +0200")
Message-ID: <87mu5dl7vj.fsf@simenheg@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.91 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.3 (/)
X-Debbugs-Envelope-To: 41544
Cc: Richard Copley <rcopley@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>,
 41544 <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 (/)

Mattias Engdeg=C3=A5rd <mattiase@HIDDEN> writes:

> 7 juni 2020 kl. 21.23 skrev Simen Heggest=C3=B8yl <simenheg@HIDDEN>:
>
>>> Perhaps you could try list-colours-display and see if you can spot a
>>> pattern?
>>
>> Hm, that one seems to use a black foreground color for all of the
>> entries(?).
>
> Yes, but with the patch posted, it should be using color-dark-p. Please g=
ive it a go.

Ah. With my screen and pair of eyes, every entry looks readable
there. The worst are, like you said, those darker reddish colors, like
orange3 and LightSalmon3.

-- Simen




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

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


Received: (at 41544) by debbugs.gnu.org; 8 Jun 2020 14:30:42 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jun 08 10:30:42 2020
Received: from localhost ([127.0.0.1]:57602 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jiInS-00046Y-Fr
	for submit <at> debbugs.gnu.org; Mon, 08 Jun 2020 10:30:42 -0400
Received: from aserp2120.oracle.com ([141.146.126.78]:51902)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <drew.adams@HIDDEN>) id 1jiInR-00046M-4C
 for 41544 <at> debbugs.gnu.org; Mon, 08 Jun 2020 10:30:41 -0400
Received: from pps.filterd (aserp2120.oracle.com [127.0.0.1])
 by aserp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 058EMqTY040352;
 Mon, 8 Jun 2020 14:30:34 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com;
 h=mime-version :
 message-id : date : from : sender : to : cc : subject : references :
 in-reply-to : content-type : content-transfer-encoding; s=corp-2020-01-29;
 bh=GlFJ1xNEYfgCVWxOloNDntIOm3lKDBTE3HQtNezgTyE=;
 b=zNkizt6z1O50MZuFEBwgQWhneqZhM6mVejHDoVTJAUPTqr42ytYCfNE5nagl3faXZcg3
 T++kkY3rv+b3qjHKqCrf0x++Bn9Em4V05nGapNG2Ps69U3rc+DPkcFORBN3c5cY0+oJX
 iCcoZIw0lmMPS0aGS03kG56oqzzjiY+EcJAxnyJd4TCUTr29EXj8ktvtribKFdwCnccs
 tD0UzReMpglFSjbgCqbmhlxhi9uKumZpVjEod+97kEKvcdaNh0LSrabuwJD+DoSVhpr3
 qJQs/JrBOIpWr4Tv5wpSDDPKWYfXFdQ9IxwKEhyfVqZRqi23qpNMVzIPAY1DS5gAoyMp 0w== 
Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80])
 by aserp2120.oracle.com with ESMTP id 31g33ky694-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL);
 Mon, 08 Jun 2020 14:30:33 +0000
Received: from pps.filterd (userp3030.oracle.com [127.0.0.1])
 by userp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 058ENbPQ052705;
 Mon, 8 Jun 2020 14:30:33 GMT
Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236])
 by userp3030.oracle.com with ESMTP id 31gn2v9xtw-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Mon, 08 Jun 2020 14:30:32 +0000
Received: from abhmp0007.oracle.com (abhmp0007.oracle.com [141.146.116.13])
 by aserv0122.oracle.com (8.14.4/8.14.4) with ESMTP id 058EUSAQ000647;
 Mon, 8 Jun 2020 14:30:28 GMT
MIME-Version: 1.0
Message-ID: <0b4807d5-a5b9-47ad-91eb-d9240ea330e1@default>
Date: Mon, 8 Jun 2020 07:30:27 -0700 (PDT)
From: Drew Adams <drew.adams@HIDDEN>
To: =?utf-8?B?TWF0dGlhcyBFbmdkZWfDpXJk?= <mattiase@HIDDEN>, Eli Zaretskii
 <eliz@HIDDEN>, =?utf-8?B?U2ltZW4gSGVnZ2VzdMO4eWw=?= <simenheg@HIDDEN>
Subject: RE: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN> <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN> <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN> <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN> <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN> <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN> <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN> <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
 <83img48ffx.fsf@HIDDEN> <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN>
 <83bllw82xt.fsf@HIDDEN> <1B0F31C8-1E11-4527-A053-DD2DE8235F58@HIDDEN>
In-Reply-To: <1B0F31C8-1E11-4527-A053-DD2DE8235F58@HIDDEN>
X-Priority: 3
X-Mailer: Oracle Beehive Extensions for Outlook 2.0.1.9.1  (1003210) [OL
 16.0.5005.0 (x86)]
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9645
 signatures=668680
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0
 phishscore=0 malwarescore=0
 bulkscore=0 adultscore=0 mlxlogscore=831 spamscore=0 suspectscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2004280000
 definitions=main-2006080107
X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9645
 signatures=668680
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0
 adultscore=0 spamscore=0
 cotscore=-2147483648 malwarescore=0 phishscore=0 mlxscore=0 clxscore=1015
 lowpriorityscore=0 impostorscore=0 priorityscore=1501 mlxlogscore=869
 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2004280000 definitions=main-2006080107
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 41544
Cc: 41544 <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 (---)

Sounds reasonable. Maybe you could attach some
screenshots (pic =3D 1000 words)?
___

I still have the same comment as before, regarding
the name `color-dark-p' and the doc string, FWIW:

https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D41544#103




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

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


Received: (at 41544) by debbugs.gnu.org; 8 Jun 2020 13:11:45 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jun 08 09:11:45 2020
Received: from localhost ([127.0.0.1]:56170 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jiHZ3-0001mZ-28
	for submit <at> debbugs.gnu.org; Mon, 08 Jun 2020 09:11:45 -0400
Received: from mail234c50.megamailservers.eu ([91.136.10.244]:55206
 helo=mail37c50.megamailservers.eu)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mattiase@HIDDEN>) id 1jiHYz-0001mO-RB
 for 41544 <at> debbugs.gnu.org; Mon, 08 Jun 2020 09:11:43 -0400
X-Authenticated-User: mattiase@HIDDEN
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu;
 s=maildub; t=1591621899;
 bh=NmwJ2Yo5SFpBkFUY1Do1nCgzhmUpM/Zg4YqT/itn+Xc=;
 h=From:Subject:Date:In-Reply-To:Cc:To:References:From;
 b=ooLhaEKsyIg6eZssOKUdKTNgvelBaTTlEJN8SMOTAQ/34bTqXtTYIVNJs9weTxD1Y
 DJRuLTGl0dtYWiFE0HgVRXkmH5V8Tt08I5LogN9Gbgi7TnlDlAkVwSGUESUeleKHJy
 AEny1vNqvmiI+JOjZeI2/o+3/iC/qYftL8fvvIIU=
Feedback-ID: mattiase@HIDDEN
Received: from stanniol.lan (c-4e4ae655.032-75-73746f71.bbcust.telenor.se
 [85.230.74.78]) (authenticated bits=0)
 by mail37c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 058DBbqV011349; 
 Mon, 8 Jun 2020 13:11:38 +0000
From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>
Message-Id: <1B0F31C8-1E11-4527-A053-DD2DE8235F58@HIDDEN>
Content-Type: multipart/mixed;
 boundary="Apple-Mail=_187E4226-740F-462B-93E6-2EE96E09EA79"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.14\))
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
Date: Mon, 8 Jun 2020 15:11:36 +0200
In-Reply-To: <83bllw82xt.fsf@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>,
 =?utf-8?Q?Simen_Heggest=C3=B8yl?= <simenheg@HIDDEN>
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN> <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN> <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN> <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN> <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN> <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN> <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN> <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
 <83img48ffx.fsf@HIDDEN> <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN>
 <83bllw82xt.fsf@HIDDEN>
X-Mailer: Apple Mail (2.3445.104.14)
X-CTCH-RefID: str=0001.0A782F22.5EDE388A.008B:SCFSTAT68638221, ss=1, re=-4.000,
 recu=0.000, reip=0.000, cl=1, cld=1, fgs=0
X-CTCH-VOD: Unknown
X-CTCH-Spam: Unknown
X-CTCH-Score: -4.000
X-CTCH-Rules: 
X-CTCH-Flags: 0
X-CTCH-ScoreCust: 0.000
X-CSC: 0
X-CHA: v=2.3 cv=bJNo382Z c=1 sm=1 tr=0 a=klNLuyVZdLUgl+K5Uafb2A==:117
 a=klNLuyVZdLUgl+K5Uafb2A==:17 a=M51BFTxLslgA:10 a=mDV3o1hIAAAA:8
 a=U-l7S3SeeBOyqu16-AIA:9 a=QEXdDO2ut3YA:10 a=LUiTdrM7ar1z_bhPKtoA:9
 a=B2y7HmGcmWMA:10 a=_FVE-zBwftR9WsbkzFJk:22
X-Spam-Score: 1.4 (+)
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:  6 juni 2020 kl. 20.27 skrev Eli Zaretskii <eliz@HIDDEN>:
 > What practical problem is being solved here? The current predicates for
 determining whether a colour is light or dark are just bad. We can and should
 do better, and that's what this is all about. 
 Content analysis details:   (1.4 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.0 URIBL_BLOCKED          ADMINISTRATOR NOTICE: The query to URIBL was
 blocked.  See
 http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block
 for more information. [URIs: gnu.org]
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 1.0 SPF_SOFTFAIL           SPF: sender does not match SPF record (softfail)
 0.4 KHOP_HELO_FCRDNS       Relay HELO differs from its IP's reverse DNS
X-Debbugs-Envelope-To: 41544
Cc: 41544 <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.0 (/)


--Apple-Mail=_187E4226-740F-462B-93E6-2EE96E09EA79
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

6 juni 2020 kl. 20.27 skrev Eli Zaretskii <eliz@HIDDEN>:

> What practical problem is being solved here?

The current predicates for determining whether a colour is light or dark =
are just bad. We can and should do better, and that's what this is all =
about.

Let's consider the three saturated colours #ff0000 (red), #00ff00 =
(green) and #0000ff (blue). Black text looks terrible on blue, as does =
white on green; black on red isn't good either. This comes as no =
surprise: the human eye is more sensitive to brightness levels of green =
than blue, with red somewhere in-between.

(These three colours just serve as illustrative examples; large chunks =
of the RGB space will share the same properties.)

How do the existing predicates do? Let's call them MAX, AVG and DIST.

MAX: dark iff max(r,g,b) < 0.5

This classifies saturated red and blue as light, which is clearly =
terrible.

AVG: dark iff (r+g+b) / 3 < 0.6

This classifies saturated green as dark, which is also wrong.

DIST: dark iff (color-distance c "black") =E2=89=A4 292485

This one also thinks saturated green is dark. While the approach here =
looks reasonable at first blush, it's really not: color-distance uses a =
simplified expression for how dissimilar two colours are, but doesn't do =
a very good job at determining brightness. For instance, its heavy blue =
weight makes no sense when used in this way:

 (color-distance "#ff0000" "black") =3D> 162308
 (color-distance "#00ff00" "black") =3D> 260100
 (color-distance "#0000ff" "black") =3D> 194820

This means that we cannot fix DIST by tweaking its cut-off value; it's =
fundamentally unfit for this purpose.

For a proper solution, we have theory to guide us: determine the =
perceived brightness of a colour, and classify everything below a =
cut-off value as dark, others as light. The patch uses a standard =
expression for relative luminance: Y =3D 0.2126R + 0.7152G + 0.0722B, =
where R, G and B are linear colour components. We assume a gamma of 2.2; =
it is nearly identical to the sRGB gamma curve and the results are =
almost the same.

With a cut-off of 0.6, this predicate turns out to be quite good: much =
better than MAX, AVG or DIST at any rate. While not perfect, it's good =
enough in the sense that for colours where it seems to make the wrong =
decision, it's a fairly close call, and the colour is quite readable =
with both black and write as contrast.

I have tested it on several platforms and monitors, including 80x25 VGA =
hardware text mode, and have yet to find a case where it fails, which =
definitely cannot be said about the old predicates.

We can still tweak it: mainly the cut-off value (which is just =
experimentally determined) but also the coefficients and the gamma =
correction. Although technically valid, they aren't holy.

> This code's algorithm and rationale should be explained in the
> comments before we can discuss whether it's an improvement and why.

Thanks, I have improved this in the new patch.

This patch should also use the right coefficients (see above); I think I =
got them wrong the first time.


--Apple-Mail=_187E4226-740F-462B-93E6-2EE96E09EA79
Content-Disposition: attachment;
	filename=0001-Improved-light-dark-colour-predicate-bug-41544.patch
Content-Type: application/octet-stream;
	x-unix-mode=0644;
	name="0001-Improved-light-dark-colour-predicate-bug-41544.patch"
Content-Transfer-Encoding: quoted-printable

=46rom=2000c9176cc26853e1314f95bfb540753273740807=20Mon=20Sep=2017=20=
00:00:00=202001=0AFrom:=20=3D?UTF-8?q?Mattias=3D20Engdeg=3DC3=3DA5rd?=3D=20=
<mattiase@HIDDEN>=0ADate:=20Sun,=2031=20May=202020=2021:12:46=20+0200=0A=
Subject:=20[PATCH]=20Improved=20light/dark=20colour=20predicate=20=
(bug#41544)=0A=0AAdd=20a=20single=20predicate,=20color-dark-p,=20for=20=
deciding=20whether=20a=20colour=0Ais=20more=20readable=20against=20black=20=
or=20white.=20=20Previously=20this=20was=20done=20in=0Adifferent=20ways=20=
in=20several=20places,=20and=20with=20worse=20results.=0A=0AThe=20new=20=
predicate=20compares=20the=20relative=20luminance=20of=20the=20colour=20=
to=0Aan=20experimentally=20determined=20cut-off=20value,=20and=20it=20=
seems=20to=20get=20it=0Aright=20in=20almost=20all=20cases,=20with=20no=20=
value=20leading=20to=20outright=20bad=0Aresults.=0A=0A*=20=
lisp/facemenu.el=20(list-colors-print):=20Use=20=
readable-foreground-color.=0A(color-dark-p):=20New=20function.=0A*=20=
lisp/term/pc-win.el:=20Update=20comment.=0A*=20lisp/term/rxvt.el=20=
(rxvt-set-background-mode):=0A*=20lisp/term/w32console.el=20=
(terminal-init-w32console):=0A*=20lisp/term/xterm.el=20=
(xterm-maybe-set-dark-background-mode):=0A*=20lisp/faces.el=20=
(readable-foreground-color):=0A*=20lisp/frame.el=20=
(frame-set-background-mode):=20Use=20color-dark-p.=0A*=20=
lisp/textmodes/css-mode.el=20(css--contrasty-color):=20Remove.=0A=
(css--fontify-region):=20Use=20color-dark-p.=0A---=0A=20lisp/facemenu.el=20=
=20=20=20=20=20=20=20=20=20=20|=2011=20+++++------=0A=20lisp/faces.el=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20|=2029=20=
++++++++++++++++++++---------=0A=20lisp/frame.el=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20|=2016=20+++++++++-------=0A=20lisp/term/pc-win.el=20=20=20=
=20=20=20=20=20|=20=208=20+++-----=0A=20lisp/term/rxvt.el=20=20=20=20=20=20=
=20=20=20=20|=2012=20+++++-------=0A=20lisp/term/w32console.el=20=20=20=20=
|=20=206=20+++---=0A=20lisp/term/xterm.el=20=20=20=20=20=20=20=20=20|=20=20=
5=20++---=0A=20lisp/textmodes/css-mode.el=20|=2014=20++------------=0A=20=
8=20files=20changed,=2049=20insertions(+),=2052=20deletions(-)=0A=0Adiff=20=
--git=20a/lisp/facemenu.el=20b/lisp/facemenu.el=0Aindex=20=
b10d874b21..419b76101b=20100644=0A---=20a/lisp/facemenu.el=0A+++=20=
b/lisp/facemenu.el=0A@@=20-621,12=20+621,11=20@@=20list-colors-print=0A=20=
=09=09=09=09=09=09=20(downcase=20b))))))=0A=20=09(setq=20color=20(list=20=
color)))=0A=20=20=20=20=20=20=20(let*=20((opoint=20(point))=0A-=09=20=20=20=
=20=20(color-values=20(color-values=20(car=20color)))=0A-=09=20=20=20=20=20=
(light-p=20(>=3D=20(apply=20'max=20color-values)=0A-=09=09=09=20=20(*=20=
(car=20(color-values=20"white"))=20.5))))=0A+=20=20=20=20=20=20=20=20=20=20=
=20=20=20(fg=20(readable-foreground-color=20(car=20color))))=0A=20=09=
(insert=20(car=20color))=0A=20=09(indent-to=2022)=0A-=09=
(put-text-property=20opoint=20(point)=20'face=20`(:background=20,(car=20=
color)))=0A+=09(put-text-property=20opoint=20(point)=20'face=20=
`(:background=20,(car=20color)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20:foreground=20,fg))=0A=20=09=
(put-text-property=0A=20=09=20(prog1=20(point)=0A=20=09=20=20=20(insert=20=
"=20")=0A@@=20-639,7=20+638,7=20@@=20list-colors-print=0A=20=09(insert=20=
(propertize=0A=20=09=09=20(apply=20'format=20"#%02x%02x%02x"=0A=20=09=09=09=
(mapcar=20(lambda=20(c)=20(ash=20c=20-8))=0A-=09=09=09=09color-values))=0A=
+=09=09=09=09(color-values=20(car=20color))))=0A=20=09=09=20'mouse-face=20=
'highlight=0A=20=09=09=20'help-echo=0A=20=09=09=20(let=20((hsv=20(apply=20=
'color-rgb-to-hsv=0A@@=20-651,7=20+650,7=20@@=20list-colors-print=0A=20=09=
=20=20=20opoint=20(point)=0A=20=09=20=20=20'follow-link=20t=0A=20=09=20=20=
=20'mouse-face=20(list=20:background=20(car=20color)=0A-=09=09=09=20=20=20=
=20=20:foreground=20(if=20light-p=20"black"=20"white"))=0A+=09=09=09=20=20=
=20=20=20:foreground=20fg)=0A=20=09=20=20=20'color-name=20(car=20color)=0A=
=20=09=20=20=20'action=20callback-fn)))=0A=20=20=20=20=20=20=20(insert=20=
"\n"))=0Adiff=20--git=20a/lisp/faces.el=20b/lisp/faces.el=0Aindex=20=
f4a9dedd79..d68eb82de6=20100644=0A---=20a/lisp/faces.el=0A+++=20=
b/lisp/faces.el=0A@@=20-1786,15=20+1786,26=20@@=20=
defined-colors-with-face-attributes=0A=20=0A=20(defun=20=
readable-foreground-color=20(color)=0A=20=20=20"Return=20a=20readable=20=
foreground=20color=20for=20background=20COLOR."=0A-=20=20(let*=20((rgb=20=
=20=20(color-values=20color))=0A-=09=20(max=20=20=20(apply=20#'max=20=
rgb))=0A-=09=20(black=20(car=20(color-values=20"black")))=0A-=09=20=
(white=20(car=20(color-values=20"white"))))=0A-=20=20=20=20;;=20Select=20=
black=20or=20white=20depending=20on=20which=20one=20is=20less=20similar=20=
to=0A-=20=20=20=20;;=20the=20brightest=20component.=0A-=20=20=20=20(if=20=
(>=20(abs=20(-=20max=20black))=20(abs=20(-=20max=20white)))=0A-=09=
"black"=0A-=20=20=20=20=20=20"white")))=0A+=20=20(if=20(color-dark-p=20=
(color-name-to-rgb=20color))=20"white"=20"black"))=0A+=0A+(defun=20=
color-dark-p=20(rgb)=0A+=20=20"Whether=20RGB=20is=20more=20readable=20=
against=20white=20than=20black.=0A+RGB=20is=20a=203-element=20list=20(R=20=
G=20B),=20each=20component=20in=20the=20range=20[0,1]."=0A+=20=20(unless=20=
(<=3D=200=20(apply=20#'min=20rgb)=20(apply=20#'max=20rgb)=201)=0A+=20=20=20=
=20(error=20"RGB=20components=20%S=20not=20in=20[0,1]"=20rgb))=0A+=20=20=
(let*=20((sr=20(nth=200=20rgb))=0A+=20=20=20=20=20=20=20=20=20(sg=20(nth=20=
1=20rgb))=0A+=20=20=20=20=20=20=20=20=20(sb=20(nth=202=20rgb))=0A+=20=20=20=
=20=20=20=20=20=20;;=20Gamma-correct=20the=20RGB=20components=20to=20=
linear=20values.=0A+=20=20=20=20=20=20=20=20=20;;=20Use=20the=20power=20=
2.2=20as=20an=20approximation=20to=20sRGB=20gamma;=0A+=20=20=20=20=20=20=20=
=20=20;;=20it=20should=20be=20good=20enough=20for=20the=20purpose=20of=20=
this=20function.=0A+=20=20=20=20=20=20=20=20=20(r=20(expt=20sr=202.2))=0A=
+=20=20=20=20=20=20=20=20=20(g=20(expt=20sg=202.2))=0A+=20=20=20=20=20=20=
=20=20=20(b=20(expt=20sb=202.2))=0A+=20=20=20=20=20=20=20=20=20;;=20=
Compute=20the=20relative=20luminance.=0A+=20=20=20=20=20=20=20=20=20(y=20=
(+=20(*=20r=200.2126)=20(*=20g=200.7152)=20(*=20b=200.0722))))=0A+=20=20=20=
=20;;=20Compare=20it=20to=20a=20cut-off=20value=20determined=20=
experimentally;=20see=20bug#41544.=0A+=20=20=20=20(<=20y=20=
(eval-when-compile=20(expt=200.6=202.2)))))=0A=20=0A=20(declare-function=20=
xw-color-defined-p=20"xfns.c"=20(color=20&optional=20frame))=0A=20=0A=
diff=20--git=20a/lisp/frame.el=20b/lisp/frame.el=0Aindex=20=
6c2f774709..b46ba3686f=20100644=0A---=20a/lisp/frame.el=0A+++=20=
b/lisp/frame.el=0A@@=20-1156,6=20+1156,12=20@@=20frame-background-mode=0A=
=20=0A=20(defvar=20inhibit-frame-set-background-mode=20nil)=0A=20=0A=
+(defun=20frame--color-name-to-rgb=20(color=20frame)=0A+=20=20"Convert=20=
the=20COLOR=20string=20to=20a=20list=20of=20normalised=20RGB=20=
components.=0A+Like=20`color-name-to-rgb',=20but=20works=20even=20when=20=
the=20display=20has=20not=20yet=0A+been=20initialised."=0A+=20=20(mapcar=20=
(lambda=20(x)=20(/=20x=2065535.0))=20(color-values=20color=20frame)))=0A=
+=0A=20(defun=20frame-set-background-mode=20(frame=20&optional=20=
keep-face-specs)=0A=20=20=20"Set=20up=20display-dependent=20faces=20on=20=
FRAME.=0A=20Display-dependent=20faces=20are=20those=20which=20have=20=
different=20definitions=0A@@=20-1181,13=20+1187,9=20@@=20=
frame-set-background-mode=0A=20=09=09=20=20=20non-default-bg-mode)=0A=20=09=
=09=20=20((not=20(color-values=20bg-color=20frame))=0A=20=09=09=20=20=20=
default-bg-mode)=0A-=09=09=20=20((>=3D=20(apply=20'+=20(color-values=20=
bg-color=20frame))=0A-=09=09=20=20=20=20=20=20=20;;=20Just=20looking=20=
at=20the=20screen,=20colors=20whose=0A-=09=09=20=20=20=20=20=20=20;;=20=
values=20add=20up=20to=20.6=20of=20the=20white=20total=0A-=09=09=20=20=20=
=20=20=20=20;;=20still=20look=20dark=20to=20me.=0A-=09=09=20=20=20=20=20=20=
=20(*=20(apply=20'+=20(color-values=20"white"=20frame))=20.6))=0A-=09=09=20=
=20=20'light)=0A-=09=09=20=20(t=20'dark)))=0A+=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20((color-dark-p=20(frame--color-name-to-rgb=20=
bg-color=20frame))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20'dark)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(t=20=
'light)))=0A=20=09=20=20=20(display-type=0A=20=09=20=20=20=20(cond=20=
((null=20(window-system=20frame))=0A=20=09=09=20=20=20(if=20=
(tty-display-color-p=20frame)=20'color=20'mono))=0Adiff=20--git=20=
a/lisp/term/pc-win.el=20b/lisp/term/pc-win.el=0Aindex=20=
76a48a86c7..16eb660f00=20100644=0A---=20a/lisp/term/pc-win.el=0A+++=20=
b/lisp/term/pc-win.el=0A@@=20-54,11=20+54,9=20@@=0A=20;;=20=
DJGPP-compiled=20Emacs=20on=20the=20same=20PC.=20=20The=20names=20of=20X=20=
colors=20used=20to=0A=20;;=20define=20the=20pixel=20values=20are=20shown=20=
as=20comments=20to=20each=20color=20below.=0A=20;;;=0A-;;=20If=20you=20=
want=20to=20change=20the=20RGB=20values,=20keep=20in=20mind=20that=20=
various=20pieces=0A-;;=20of=20Emacs=20think=20that=20a=20color=20whose=20=
RGB=20values=20add=20up=20to=20less=20than=200.6=20of=0A-;;=20the=20=
values=20for=20WHITE=20(i.e.=20less=20than=20117963)=20are=20``dark'',=20=
otherwise=20the=0A-;;=20color=20is=20``light'';=20see=20=
`frame-set-background-mode'=20in=20lisp/faces.el=20for=0A-;;=20an=20=
example.=0A+;;=20If=20you=20want=20to=20change=20the=20RGB=20values,=20=
consider=20the=20heuristics=20in=0A+;;=20`color-dark-p'=20which=20is=20=
used=20to=20select=20a=20suitably=20contrasting=0A+;;=20foreground=20or=20=
background=20colour.=0A=20(defvar=20msdos-color-values=0A=20=20=20=
'(("black"=20=20=20=20=20=20=20=20=20=200=20=20=20=20=200=20=20=20=20=20=
0=20=20=20=20=200)=0A=20=20=20=20=20("blue"=20=20=20=20=20=20=20=20=20=20=
=201=20=20=20=20=200=20=20=20=20=200=2052480)=20;=20MediumBlue=0Adiff=20=
--git=20a/lisp/term/rxvt.el=20b/lisp/term/rxvt.el=0Aindex=20=
31e3d6ede4..5dc754c8e0=20100644=0A---=20a/lisp/term/rxvt.el=0A+++=20=
b/lisp/term/rxvt.el=0A@@=20-206,13=20+206,11=20@@=20=
rxvt-set-background-mode=0A=20=20=20=20=20=20=20;;=20The=20next=20line=20=
assumes=20that=20rxvt-standard-colors=20are=20ordered=0A=20=20=20=20=20=20=
=20;;=20by=20the=20color=20index=20in=20the=20ascending=20order!=0A=20=20=
=20=20=20=20=20(setq=20rgb=20(car=20(cddr=20(nth=20bg=20=
rxvt-standard-colors))))=0A-=20=20=20=20=20=20;;=20See=20the=20=
commentary=20in=20frame-set-background-mode=20about=20the=0A-=20=20=20=20=
=20=20;;=20computation=20below.=0A-=20=20=20=20=20=20(if=20(<=20(apply=20=
'+=20rgb)=0A-=09=20=20=20=20=20;;=20The=20following=20line=20assumes=20=
that=20white=20is=20the=2015th=0A-=09=20=20=20=20=20;;=20color=20in=20=
rxvt-standard-colors.=0A-=09=20=20=20=20=20(*=20(apply=20'+=20(car=20=
(cddr=20(nth=2015=20rxvt-standard-colors))))=200.6))=0A-=09=20=20=
(set-terminal-parameter=20nil=20'background-mode=20'dark)))))=0A+=20=20=20=
=20=20=20;;=20The=20following=20line=20assumes=20that=20white=20is=20the=20=
15th=0A+=20=20=20=20=20=20;;=20color=20in=20rxvt-standard-colors.=0A+=20=20=
=20=20=20=20(let=20((comp-max=20(float=20(caddr=20(nth=2015=20=
rxvt-standard-colors)))))=0A+=20=20=20=20=20=20=20=20(when=20=
(color-dark-p=20(mapcar=20(lambda=20(c)=20(/=20c=20comp-max))=20rgb))=0A=
+=09=20=20(set-terminal-parameter=20nil=20'background-mode=20'dark))))))=0A=
=20=0A=20(provide=20'term/rxvt)=0A=20=0Adiff=20--git=20=
a/lisp/term/w32console.el=20b/lisp/term/w32console.el=0Aindex=20=
36e9d896c7..0e9d7c8b5c=20100644=0A---=20a/lisp/term/w32console.el=0A+++=20=
b/lisp/term/w32console.el=0A@@=20-86,9=20+86,9=20@@=20=
terminal-init-w32console=0A=20=20=20=20=20(setq=20r=20(nth=202=20descr)=0A=
=20=09=20=20g=20(nth=203=20descr)=0A=20=09=20=20b=20(nth=204=20descr))=0A=
-=20=20=20=20(if=20(<=20(+=20r=20g=20b)=20(*=20.6=20(+=2065535=2065535=20=
65535)))=0A-=09(setq=20bg-mode=20'dark)=0A-=20=20=20=20=20=20(setq=20=
bg-mode=20'light))=0A+=20=20=20=20(setq=20bg-mode=20(if=20(color-dark-p=0A=
+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
(list=20(/=20r=2065535.0)=20(/=20g=2065535.0)=20(/=20b=2065535.0)))=0A+=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20'dark=20=
'light))=0A=20=20=20=20=20(set-terminal-parameter=20nil=20=
'background-mode=20bg-mode))=0A=20=20=20(tty-set-up-initial-frame-faces)=0A=
=20=20=20(run-hooks=20'terminal-init-w32-hook))=0Adiff=20--git=20=
a/lisp/term/xterm.el=20b/lisp/term/xterm.el=0Aindex=20=
1a727e3933..bf9bcae526=20100644=0A---=20a/lisp/term/xterm.el=0A+++=20=
b/lisp/term/xterm.el=0A@@=20-1120,9=20+1120,8=20@@=20=
xterm-register-default-colors=0A=20=20=20=20=20(clear-face-cache)))=0A=20=
=0A=20(defun=20xterm-maybe-set-dark-background-mode=20(redc=20greenc=20=
bluec)=0A-=20=20;;=20Use=20the=20heuristic=20in=20=
`frame-set-background-mode'=20to=20decide=20if=20a=0A-=20=20;;=20frame=20=
is=20dark.=0A-=20=20(when=20(<=20(+=20redc=20greenc=20bluec)=20(*=20.6=20=
(+=2065535=2065535=2065535)))=0A+=20=20(when=20(color-dark-p=20(mapcar=20=
(lambda=20(c)=20(/=20c=2065535.0))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(list=20redc=20=
greenc=20bluec)))=0A=20=20=20=20=20(set-terminal-parameter=20nil=20=
'background-mode=20'dark)=0A=20=20=20=20=20t))=0A=20=0Adiff=20--git=20=
a/lisp/textmodes/css-mode.el=20b/lisp/textmodes/css-mode.el=0Aindex=20=
0035c5e7b0..2cd99787e8=20100644=0A---=20a/lisp/textmodes/css-mode.el=0A=
+++=20b/lisp/textmodes/css-mode.el=0A@@=20-1149,17=20+1149,6=20@@=20=
css--compute-color=0A=20=20=20=20;;=20Evaluate=20to=20the=20color=20if=20=
the=20name=20is=20found.=0A=20=20=20=20((css--named-color=20start-point=20=
match))))=0A=20=0A-(defun=20css--contrasty-color=20(name)=0A-=20=20=
"Return=20a=20color=20that=20contrasts=20with=20NAME.=0A-NAME=20is=20of=20=
any=20form=20accepted=20by=20`color-distance'.=0A-The=20returned=20color=20=
will=20be=20usable=20by=20Emacs=20and=20will=20contrast=0A-with=20NAME;=20=
in=20particular=20so=20that=20if=20NAME=20is=20used=20as=20a=20=
background=0A-color,=20the=20returned=20color=20can=20be=20used=20as=20=
the=20foreground=20and=20still=0A-be=20readable."=0A-=20=20;;=20See=20=
bug#25525=20for=20a=20discussion=20of=20this.=0A-=20=20(if=20(>=20=
(color-distance=20name=20"black")=20292485)=0A-=20=20=20=20=20=20"black"=20=
"white"))=0A-=0A=20(defcustom=20css-fontify-colors=20t=0A=20=20=20=
"Whether=20CSS=20colors=20should=20be=20fontified=20using=20the=20color=20=
as=20the=20background.=0A=20When=20non-`nil',=20a=20text=20representing=20=
CSS=20color=20will=20be=20fontified=0A@@=20-1199,7=20+1188,8=20@@=20=
css--fontify-region=0A=20=09=09=20=20=20=20(add-text-properties=0A=20=09=09=
=20=20=20=20=20start=20(point)=0A=20=09=09=20=20=20=20=20(list=20'face=20=
(list=20:background=20color=0A-=09=09=09=09=20=20=20=20=20=20=20=
:foreground=20(css--contrasty-color=20color)=0A+=09=09=09=09=20=20=20=20=20=
=20=20:foreground=20(readable-foreground-color=0A+=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20color)=0A=20=09=09=
=09=09=20=20=20=20=20=20=20:box=20'(:line-width=20-1))))))))))))=0A=20=20=
=20=20=20extended-region))=0A=20=0A--=20=0A2.21.1=20(Apple=20Git-122.3)=0A=
=0A=

--Apple-Mail=_187E4226-740F-462B-93E6-2EE96E09EA79--




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

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


Received: (at 41544) by debbugs.gnu.org; 7 Jun 2020 19:27:57 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jun 07 15:27:57 2020
Received: from localhost ([127.0.0.1]:54950 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ji0xZ-0000bC-4Z
	for submit <at> debbugs.gnu.org; Sun, 07 Jun 2020 15:27:57 -0400
Received: from mail1477c50.megamailservers.eu ([91.136.14.77]:54790
 helo=mail118c50.megamailservers.eu)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mattiase@HIDDEN>) id 1ji0xW-0000av-Fj
 for 41544 <at> debbugs.gnu.org; Sun, 07 Jun 2020 15:27:55 -0400
X-Authenticated-User: mattiase@HIDDEN
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu;
 s=maildub; t=1591558066;
 bh=ptgpP/XtKhWA2M3Jo+MgZGyczWxIcmObjGIaT1a9R50=;
 h=Subject:From:In-Reply-To:Date:Cc:References:To:From;
 b=Z7tjN4NTnw0yYJ4Zjx6e1+ICeWmInIIrqOX7FyHmUHcrp/SLf4oAnC+/sHw76OV0R
 b22O9jp5A2cwXYrDeheZuIrflNW8tJgwHiKHJ3ojR+26mWrTSl1vZGMhepCgIEuHB/
 NETKJn8MniKgxgqZ89R9zF73qjfFG4WCzHXAlWj0=
Feedback-ID: mattiase@HIDDEN
Received: from stanniol.lan (c-4e4ae655.032-75-73746f71.bbcust.telenor.se
 [85.230.74.78]) (authenticated bits=0)
 by mail118c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 057JRibv011181; 
 Sun, 7 Jun 2020 19:27:45 +0000
Content-Type: text/plain;
	charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.14\))
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>
In-Reply-To: <87d06ar87d.fsf@simenheg@HIDDEN>
Date: Sun, 7 Jun 2020 21:27:43 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <52B0E3DA-6CE4-47D3-8243-6E2C2F64D7BD@HIDDEN>
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN> <83y2p5cumz.fsf@HIDDEN>
 <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN> <83blm0cjlz.fsf@HIDDEN>
 <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN> <83367ccf8w.fsf@HIDDEN>
 <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN> <83o8pyc4bq.fsf@HIDDEN>
 <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN> <835zc5bsut.fsf@HIDDEN>
 <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN> <838sh0abzz.fsf@HIDDEN>
 <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN> <83r1us8kw6.fsf@HIDDEN>
 <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN> <83img48ffx.fsf@HIDDEN>
 <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN> <83bllw82xt.fsf@HIDDEN>
 <87pnabfdr5.fsf@simenheg@HIDDEN>
 <2F9BF919-4E8B-4802-AEE8-4438A78B4F68@HIDDEN>
 <87d06ar87d.fsf@simenheg@HIDDEN>
To: =?utf-8?Q?Simen_Heggest=C3=B8yl?= <simenheg@HIDDEN>
X-Mailer: Apple Mail (2.3445.104.14)
X-CTCH-RefID: str=0001.0A782F27.5EDD3F51.002B:SCFSTAT68638221, ss=1, re=-4.000,
 recu=0.000, reip=0.000, cl=1, cld=1, fgs=0
X-CTCH-VOD: Unknown
X-CTCH-Spam: Unknown
X-CTCH-Score: -4.000
X-CTCH-Rules: 
X-CTCH-Flags: 0
X-CTCH-ScoreCust: 0.000
X-CSC: 0
X-CHA: v=2.3 cv=KaGsTjQD c=1 sm=1 tr=0 a=klNLuyVZdLUgl+K5Uafb2A==:117
 a=klNLuyVZdLUgl+K5Uafb2A==:17 a=IkcTkHD0fZMA:10 a=M51BFTxLslgA:10
 a=7DrQrguiAAAA:8 a=LnkmoK0KZgWA8aYg0TwA:9 a=QEXdDO2ut3YA:10
 a=5p0t1moz68ydotlU2Z85:22
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 41544
Cc: Richard Copley <rcopley@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>,
 41544 <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.0 (/)

7 juni 2020 kl. 21.23 skrev Simen Heggest=C3=B8yl <simenheg@HIDDEN>:

>> Perhaps you could try list-colours-display and see if you can spot a
>> pattern?
>=20
> Hm, that one seems to use a black foreground color for all of the
> entries(?).

Yes, but with the patch posted, it should be using color-dark-p. Please =
give it a go.

(An updated patch as well as a longer discussion of the principles is =
upcoming; a bit busy with other things at the moment.)





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

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


Received: (at 41544) by debbugs.gnu.org; 7 Jun 2020 19:26:55 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jun 07 15:26:55 2020
Received: from localhost ([127.0.0.1]:54946 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ji0wY-0000ZW-RH
	for submit <at> debbugs.gnu.org; Sun, 07 Jun 2020 15:26:55 -0400
Received: from aibo.runbox.com ([91.220.196.211]:46380)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <simenheg@HIDDEN>) id 1ji0wX-0000ZO-1V
 for 41544 <at> debbugs.gnu.org; Sun, 07 Jun 2020 15:26:53 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=runbox.com; 
 s=selector1;
 h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date:
 References:Subject:Cc:To:From;
 bh=bDI84Ln3VUbcEABgectFB1VNOnv2Z9TBaOp4xXObZCY=; b=TmoKYl+i8IGqUvDfyB8qMBBg8d
 abpp4ENlf5iEpph/RvmeDxHn+fnHoE7wy4vj2l61Uen7PiAykxwJcBAsdCMw6Mlvp5bDJhh8kfD4O
 wfaaX1fLSupZiNF+tZucxgphkmmqUt4y50HgDjKsvDejh7Un7w192qCOs8sRGPd2xLlXmR7iF73Ca
 HBkqTNGJRUFEUcgkRIDpo+m97HBrdgHLJ2679xWXB4qO/Xy0JHR6UhSLN9BEwcrDMDCOPTxCVhxfX
 7BqCaPuDQw2O/L1xQWDALZ+E5myf+0O4ti1EvB/uISrfe6RKmD/KwjbO+YCzsFPyV/N7y4R5dDHwR
 ONjonz7Q==;
Received: from [10.9.9.73] (helo=submission02.runbox)
 by mailtransmit02.runbox with esmtp (Exim 4.86_2)
 (envelope-from <simenheg@HIDDEN>)
 id 1ji0wW-0006CF-D8; Sun, 07 Jun 2020 21:26:52 +0200
Received: by submission02.runbox with esmtpsa [Authenticated alias (963757)]
 (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1)
 id 1ji0wU-0001Xg-H5; Sun, 07 Jun 2020 21:26:50 +0200
From: =?utf-8?Q?Simen_Heggest=C3=B8yl?= <simenheg@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN>
 <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN>
 <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN>
 <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN>
 <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN>
 <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN>
 <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN>
 <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
 <83img48ffx.fsf@HIDDEN>
 <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN>
 <83bllw82xt.fsf@HIDDEN> <87pnabfdr5.fsf@simenheg@HIDDEN>
 <831rmr7xzz.fsf@HIDDEN>
Date: Sun, 07 Jun 2020 21:26:50 +0200
In-Reply-To: <831rmr7xzz.fsf@HIDDEN> (Eli Zaretskii's message of "Sun, 07 Jun
 2020 17:26:40 +0300")
Message-ID: <878sgyr81x.fsf@simenheg@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.91 (gnu/linux)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Spam-Score: 0.3 (/)
X-Debbugs-Envelope-To: 41544
Cc: rcopley@HIDDEN, mattiase@HIDDEN, 41544 <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 (/)

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

Eli Zaretskii <eliz@HIDDEN> writes:

> We can (and did) tweak the various constants involved in this, more
> than once.  The lesson I took from that is that we could never produce
> something that will fit all the needs, let alone satisfy all the
> users.  There are two main factors here on which we have no control:
> the subjective differences between color perception by different
> people, and variations in how different terminals and displays show
> the same colors.
>
> That is why I object to making changes in this low-level functionality
> with the motivation of "fixing them all": I think it's simply
> impossible.  We will make it slightly better in some situations and
> slightly worse in others.  There's no net win here.

Maybe the ultimate fix in CSS mode's case could be to display the color
separate from the text. Firefox, for instance, displays the color in a
little circle next to the color code (screenshot attached). I'm not sure
how to implement it in Emacs, though.

-- Simen


--=-=-=
Content-Type: image/png
Content-Disposition: attachment; filename=firefox-color-indicator.png
Content-Transfer-Encoding: base64

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
CIQYBQJBa/l/zAtRyHcnmJsAAAAASUVORK5CYII=
--=-=-=--




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

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


Received: (at 41544) by debbugs.gnu.org; 7 Jun 2020 19:23:57 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jun 07 15:23:57 2020
Received: from localhost ([127.0.0.1]:54918 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ji0th-0000TN-2V
	for submit <at> debbugs.gnu.org; Sun, 07 Jun 2020 15:23:57 -0400
Received: from aibo.runbox.com ([91.220.196.211]:38706)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <simenheg@HIDDEN>) id 1ji0te-0000TC-He
 for 41544 <at> debbugs.gnu.org; Sun, 07 Jun 2020 15:23:55 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=runbox.com; 
 s=selector1;
 h=Content-Transfer-Encoding:Content-Type:MIME-Version:
 Message-ID:In-Reply-To:Date:References:Subject:Cc:To:From;
 bh=NK0vaqejsfNDfv0cmS1XjUyx+elXF2luW2d5qOZrtLg=; b=d4WyLlvMW5aySLmv1JdsZOqrPF
 /5CR1oxKaYyZX7lHy+hkxFVB/GRoVERUMG1UDsThgF7lpZGywMF5Cq900AavyGDx5sOAHTLgLmSSa
 OP8IuhAKrIQXmqMWgVl4DS6wcqx3UE7EoXfC7Of3CeihYchne4UKVI2Mk31g16tFSjoWg1lGpp2Fo
 XkChLLZM1QP/Msx06T90oVoBo7OYLXVRKw90qQWUqukx7ceLxDitPa25b3bqbUHJwXDkF4rUMGDk2
 6ts9qpkz4BD0TPtifh5BGWj1Vz3MCdDHNQGmHKUAHMr3KVBHyasK7RNA5z+/UkgJPmdO27z3P97oo
 uKgKKAZQ==;
Received: from [10.9.9.73] (helo=submission02.runbox)
 by mailtransmit03.runbox with esmtp (Exim 4.86_2)
 (envelope-from <simenheg@HIDDEN>)
 id 1ji0tc-0003WE-Ck; Sun, 07 Jun 2020 21:23:52 +0200
Received: by submission02.runbox with esmtpsa [Authenticated alias (963757)]
 (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1)
 id 1ji0tL-0001Ak-9S; Sun, 07 Jun 2020 21:23:35 +0200
From: =?utf-8?Q?Simen_Heggest=C3=B8yl?= <simenheg@HIDDEN>
To: Mattias =?utf-8?Q?Engdeg=C3=A5rd?= <mattiase@HIDDEN>
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN>
 <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN>
 <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN>
 <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN>
 <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN>
 <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN>
 <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN>
 <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
 <83img48ffx.fsf@HIDDEN>
 <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN>
 <83bllw82xt.fsf@HIDDEN> <87pnabfdr5.fsf@simenheg@HIDDEN>
 <2F9BF919-4E8B-4802-AEE8-4438A78B4F68@HIDDEN>
Date: Sun, 07 Jun 2020 21:23:34 +0200
In-Reply-To: <2F9BF919-4E8B-4802-AEE8-4438A78B4F68@HIDDEN> ("Mattias
 =?utf-8?Q?Engdeg=C3=A5rd=22's?= message of "Sun, 7 Jun 2020 12:14:13
 +0200")
Message-ID: <87d06ar87d.fsf@simenheg@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.91 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.3 (/)
X-Debbugs-Envelope-To: 41544
Cc: Richard Copley <rcopley@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>,
 41544 <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 (/)

Mattias Engdeg=C3=A5rd <mattiase@HIDDEN> writes:

> Perhaps you could try list-colours-display and see if you can spot a
> pattern?

Hm, that one seems to use a black foreground color for all of the
entries(?).

-- Simen




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

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


Received: (at 41544) by debbugs.gnu.org; 7 Jun 2020 16:14:34 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jun 07 12:14:34 2020
Received: from localhost ([127.0.0.1]:54756 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jhxwQ-00024N-KY
	for submit <at> debbugs.gnu.org; Sun, 07 Jun 2020 12:14:34 -0400
Received: from userp2130.oracle.com ([156.151.31.86]:48124)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <drew.adams@HIDDEN>) id 1jhxwO-00024A-Ti
 for 41544 <at> debbugs.gnu.org; Sun, 07 Jun 2020 12:14:33 -0400
Received: from pps.filterd (userp2130.oracle.com [127.0.0.1])
 by userp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 057GCA5M135512;
 Sun, 7 Jun 2020 16:14:16 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com;
 h=mime-version :
 message-id : date : from : sender : to : cc : subject : references :
 in-reply-to : content-type : content-transfer-encoding; s=corp-2020-01-29;
 bh=w4L+YVdHimdlNtSqE8u4YMQCnyTWBOYvDuA6E6Aeihg=;
 b=hMQ1hM/d379ArZCsfjrpZ0yNbz9OwdvkJPbMsP+RjFmCc8P8Q5GtXRVhJ8joJGMJoS1y
 Uo3bxgYFXGIXGpqzImRmTNf1T1m15msmHwvoSLD3mfg5a+DFpHCN1ryERYYFz6pjqWrN
 SOgGKx7yO/MxUI++GWFf/gWXIryukyBW0p18JwGkU12JwsZepoLdbHPDLjV5SOBTl4M7
 p/8xCXiEYl1NIIU4diCo+buURR8ztcdDpUy939ylkgKP9D4niepCHXzL20q2dBciJdPl
 5ablXXEpUoD0D70Ja7OklNx8d4Dg+TgvONE2b1k4nFhFBY3kTTwAC5SlO8q59gn7PKXZ Rg== 
Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79])
 by userp2130.oracle.com with ESMTP id 31g2jqup02-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL);
 Sun, 07 Jun 2020 16:14:16 +0000
Received: from pps.filterd (userp3020.oracle.com [127.0.0.1])
 by userp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 057G8HVk161290;
 Sun, 7 Jun 2020 16:12:16 GMT
Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235])
 by userp3020.oracle.com with ESMTP id 31gmwnt11n-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Sun, 07 Jun 2020 16:12:16 +0000
Received: from abhmp0003.oracle.com (abhmp0003.oracle.com [141.146.116.9])
 by aserv0121.oracle.com (8.14.4/8.13.8) with ESMTP id 057GCFRZ026435;
 Sun, 7 Jun 2020 16:12:15 GMT
MIME-Version: 1.0
Message-ID: <80aee7da-3f99-4203-8912-81b8cc413326@default>
Date: Sun, 7 Jun 2020 09:12:11 -0700 (PDT)
From: Drew Adams <drew.adams@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>, =?utf-8?B?TWF0dGlhcyBFbmdkZWfDpXJk?=
 <mattiase@HIDDEN>
Subject: RE: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN> <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN> <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN> <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN> <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN> <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN> <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN> <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
 <83img48ffx.fsf@HIDDEN> <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN>
 <b4cbf0a8-d59a-4e8c-a8cf-a8df090f36bf@default>
 <5AEB442C-5592-46E4-BC38-185BA9D2D956@HIDDEN> <83zh9f6j9v.fsf@HIDDEN>
In-Reply-To: <83zh9f6j9v.fsf@HIDDEN>
X-Priority: 3
X-Mailer: Oracle Beehive Extensions for Outlook 2.0.1.9.1  (1003210) [OL
 16.0.5005.0 (x86)]
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9645
 signatures=668680
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0
 spamscore=0 adultscore=0
 mlxscore=0 mlxlogscore=999 bulkscore=0 malwarescore=0 phishscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2004280000
 definitions=main-2006070123
X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9645
 signatures=668680
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0
 impostorscore=0
 cotscore=-2147483648 priorityscore=1501 spamscore=0 suspectscore=0
 lowpriorityscore=0 bulkscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0
 phishscore=0 clxscore=1015 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2004280000 definitions=main-2006070124
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 41544
Cc: 41544 <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 (---)

> IME, it is unreasonable to assume that a pair of colors will be
> perceived as "contrasting enough" no matter which of them is
> foreground and which background.  Background colors affect larger
> portions of display, and therefore a bright background is perceived as
> brighter and a dark background as darker, than when the same color is
> used as foreground.

I agree with this.  And as you said earlier, different
eyes see differently (and different devices display
differently).




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

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


Received: (at 41544) by debbugs.gnu.org; 7 Jun 2020 16:13:07 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jun 07 12:13:07 2020
Received: from localhost ([127.0.0.1]:54751 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jhxv1-000220-9E
	for submit <at> debbugs.gnu.org; Sun, 07 Jun 2020 12:13:07 -0400
Received: from userp2120.oracle.com ([156.151.31.85]:34964)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <drew.adams@HIDDEN>) id 1jhxuz-00021W-Qv
 for 41544 <at> debbugs.gnu.org; Sun, 07 Jun 2020 12:13:06 -0400
Received: from pps.filterd (userp2120.oracle.com [127.0.0.1])
 by userp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 057GCviN179316;
 Sun, 7 Jun 2020 16:12:57 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com;
 h=mime-version :
 message-id : date : from : sender : to : cc : subject : references :
 in-reply-to : content-type : content-transfer-encoding; s=corp-2020-01-29;
 bh=45w37v3jUjvrwJ6FVj7CT1kc8en5/WZUPaVO8jxZodI=;
 b=Y/eijj47HXNmMEKbi5/Ay+ECu6+pf966vZwp+yT7OxrmvVbYKL+1vi4QF7IIo657ePNL
 UL6PvGsy6O9YQGQSDFVST/099gb4hsUXYxRIbFK1ZLzwfGFO+9Ut6wkIwgc67s08MHM1
 A2/Hljkqq07ZB8N+pqv2+MJ9G10p93JoaEDQhpW55jPOxDpv5yVXm85ktuMmPL9bJ4V1
 ucTgJDvyGLIXkG996gVXCEmxiilh1HZ2f0ST2t+rgtpLfhcQSvPTBhTnVlOrcg45ETpf
 4eNMjGmdCLeUe0x+W1HH/pS6VckoKG5dIObmi9x31s9eoGatMoste20r3600ANvOce5V zA== 
Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70])
 by userp2120.oracle.com with ESMTP id 31g3smkj2c-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL);
 Sun, 07 Jun 2020 16:12:56 +0000
Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1])
 by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 057G8F0W043726;
 Sun, 7 Jun 2020 16:10:56 GMT
Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235])
 by aserp3020.oracle.com with ESMTP id 31gn1ygv45-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Sun, 07 Jun 2020 16:10:56 +0000
Received: from abhmp0003.oracle.com (abhmp0003.oracle.com [141.146.116.9])
 by aserv0121.oracle.com (8.14.4/8.13.8) with ESMTP id 057GAkGL025870;
 Sun, 7 Jun 2020 16:10:46 GMT
MIME-Version: 1.0
Message-ID: <600300ac-8d00-46ef-881c-f7507c6534ca@default>
Date: Sun, 7 Jun 2020 09:10:43 -0700 (PDT)
From: Drew Adams <drew.adams@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>, =?iso-8859-1?B?U2ltZW4gSGVnZ2VzdPh5bA==?=
 <simenheg@HIDDEN>
Subject: RE: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <83o8q2elja.fsf@HIDDEN> <83mu5mel4o.fsf@HIDDEN>
 <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN> <83y2p5cumz.fsf@HIDDEN>
 <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN> <83blm0cjlz.fsf@HIDDEN>
 <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN> <83367ccf8w.fsf@HIDDEN>
 <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN> <83o8pyc4bq.fsf@HIDDEN>
 <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN> <835zc5bsut.fsf@HIDDEN>
 <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN> <838sh0abzz.fsf@HIDDEN>
 <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN> <83r1us8kw6.fsf@HIDDEN>
 <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN> <83img48ffx.fsf@HIDDEN>
 <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN> <83bllw82xt.fsf@HIDDEN>
 <87pnabfdr5.fsf@simenheg@HIDDEN> <831rmr7xzz.fsf@HIDDEN>
In-Reply-To: <831rmr7xzz.fsf@HIDDEN>
X-Priority: 3
X-Mailer: Oracle Beehive Extensions for Outlook 2.0.1.9.1  (1003210) [OL
 16.0.5005.0 (x86)]
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9645
 signatures=668680
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0
 suspectscore=0 mlxscore=0
 phishscore=0 adultscore=0 bulkscore=0 malwarescore=0 mlxlogscore=824
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2004280000
 definitions=main-2006070123
X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9645
 signatures=668680
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0
 priorityscore=1501
 lowpriorityscore=0 impostorscore=0 cotscore=-2147483648 suspectscore=0
 spamscore=0 bulkscore=0 malwarescore=0 phishscore=0 mlxscore=0
 mlxlogscore=851 clxscore=1011 classifier=spam adjust=0 reason=mlx
 scancount=1 engine=8.12.0-2004280000 definitions=main-2006070124
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 41544
Cc: rcopley@HIDDEN, mattiase@HIDDEN, 41544 <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 (---)

> There are two main factors here on which we have no control:
> the subjective differences between color perception by different
> people, and variations in how different terminals and displays show
> the same colors.

+1.




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

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


Received: (at 41544) by debbugs.gnu.org; 7 Jun 2020 16:00:50 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jun 07 12:00:50 2020
Received: from localhost ([127.0.0.1]:54731 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jhxj8-0000Iy-Aq
	for submit <at> debbugs.gnu.org; Sun, 07 Jun 2020 12:00:50 -0400
Received: from userp2120.oracle.com ([156.151.31.85]:57990)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <drew.adams@HIDDEN>) id 1jhxj7-0000CS-3o
 for 41544 <at> debbugs.gnu.org; Sun, 07 Jun 2020 12:00:49 -0400
Received: from pps.filterd (userp2120.oracle.com [127.0.0.1])
 by userp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 057FmNBV143898;
 Sun, 7 Jun 2020 16:00:40 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com;
 h=mime-version :
 message-id : date : from : sender : to : cc : subject : references :
 in-reply-to : content-type : content-transfer-encoding; s=corp-2020-01-29;
 bh=n3EfIIw++7jps+FQFmopWCOyPhRRDeAs//GmThRRS5s=;
 b=y+pWIjGdvXhYS4lPss5oym+HkLN8VgGvarBy0TqSoh+jYkxnNop2oCQmWYnodoc+IQnU
 sn5s5GNHBw5fBTSnXGqMZ1RrAqNJKg0uL3qj38ba8GErtJdgkyNSka7tCcc+xExsjP+Z
 7venskQtJ3sM2L9A6r6gNMuQd/S2dLjTYX85uuiBJMdL0LOjBhMe3AdXtrTaJDf/Foi6
 yC5iYopoWAEnXZr/onh22KVEVLPbG7fwCsQ+J7tOlMxBOwtCr35ZqxJzcyyUC1tuOiQR
 wvRGeF+5l7LPYwamxkJwAwCeYMhNqyAXgkiUXtjh3UrNrHN44VTYL3e3VoGFomyMtNG0 Hg== 
Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71])
 by userp2120.oracle.com with ESMTP id 31g3smkhdb-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL);
 Sun, 07 Jun 2020 16:00:40 +0000
Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1])
 by aserp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 057FvrxU185553;
 Sun, 7 Jun 2020 16:00:40 GMT
Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235])
 by aserp3030.oracle.com with ESMTP id 31gmqk20up-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Sun, 07 Jun 2020 16:00:39 +0000
Received: from abhmp0003.oracle.com (abhmp0003.oracle.com [141.146.116.9])
 by aserv0121.oracle.com (8.14.4/8.13.8) with ESMTP id 057G0caN021034;
 Sun, 7 Jun 2020 16:00:38 GMT
MIME-Version: 1.0
Message-ID: <93fdabf1-f725-4e8c-a9de-8e4c61ff7973@default>
Date: Sun, 7 Jun 2020 09:00:34 -0700 (PDT)
From: Drew Adams <drew.adams@HIDDEN>
To: =?iso-8859-1?B?TWF0dGlhcyBFbmdkZWflcmQ=?= <mattiase@HIDDEN>
Subject: RE: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN> <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN> <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN> <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN> <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN> <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN> <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN> <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
 <83img48ffx.fsf@HIDDEN> <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN>
 <b4cbf0a8-d59a-4e8c-a8cf-a8df090f36bf@default>
 <5AEB442C-5592-46E4-BC38-185BA9D2D956@HIDDEN>
In-Reply-To: <5AEB442C-5592-46E4-BC38-185BA9D2D956@HIDDEN>
X-Priority: 3
X-Mailer: Oracle Beehive Extensions for Outlook 2.0.1.9.1  (1003210) [OL
 16.0.5005.0 (x86)]
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9645
 signatures=668680
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0
 bulkscore=0 mlxscore=0
 mlxlogscore=999 adultscore=0 spamscore=0 suspectscore=0 malwarescore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2004280000
 definitions=main-2006070122
X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9645
 signatures=668680
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0
 priorityscore=1501
 lowpriorityscore=0 impostorscore=0 cotscore=-2147483648 suspectscore=0
 spamscore=0 bulkscore=0 malwarescore=0 phishscore=0 mlxscore=0
 mlxlogscore=999 clxscore=1015 classifier=spam adjust=0 reason=mlx
 scancount=1 engine=8.12.0-2004280000 definitions=main-2006070121
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 41544
Cc: Eli Zaretskii <eliz@HIDDEN>, 41544 <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 (---)

> > +(defun color-dark-p (rgb)
> > +  "Whether RGB is more readable against white than black.
> > +RGB is a 3-element list (R G B), each component in the range [0,1]."
>=20
> > The predicate name suggests it's about testing a
> > color (via RGB) to determine whether it's dark or
> > light.
> >
> > The doc string suggests it's specifically about
> > the readability of _foreground_ text that is of
> > that color - specifically whether it's more
> > readable against a white than a black background.
>=20
> Thank you, this actually raises a good point.
>=20
> The predicate should work with the argument both as a foreground and as a
> background colour, for selecting a black or white contrasting colour. The
> assumption is that the same predicate can be used for both, which may be
> wrong, but absent evidence to the contrary, I think it is a reasonable on=
e to
> make.
>=20
> If you are in doubt, see if you can come up with a colour for which it do=
es
> not hold. For example, if you find a rare shade of beige that when used f=
or
> text looks better against a white background, but when used as a backgrou=
nd
> prefers black text. I have yet to do so, much less been able to articulat=
e it
> formally as an algorithm.
>=20
> I agree that this could be stated more explicitly in the doc string.

1. Please do consider stating the behavior more explicitly
in the doc.

2. I don't have any special knowledge or suggestion about
whether the same criteria should be used for light and dark
foreground/background.  I'd think that the comparison would
need to use the complement of the foreground or background,
a priori.  E.g. if a background is 90% light then what
works as a "readable" dark foreground would lead to a light
foreground that is more or less similarly "readable" when
against a 90% dark background.
___

In my own work, when I supply a default foreground or
background for a face, I typically do this:

I start with a light background (my own setup uses LightBlue
- somewhat light), and I pick a color that seems reasonable
enough for the foreground default - by eyeball.  Then I
check it against the default (emacs -Q) background - again,
by eyeball.

Once I've picked a default foreground color for a light
`background-mode', I take its complement (using `hexrgb.el')
as the default foreground for a dark background.  I check
that with emacs -Q.  (I use a light background in my setup,
and I don't spend a lot of energy trying to get a great
default for a dark background.)

In my experience (feedback from users), complementing works
pretty well.  And since, in my setup, I use a background
that's only somewhat light, it gives a pretty good idea of
what works (according to my eyes) for a complemented
(hence somewhat dark) background.

No idea whether any of this info helps you, but it's
what I do.  I don't use color-distance in this endeavor.




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

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


Received: (at 41544) by debbugs.gnu.org; 7 Jun 2020 14:30:19 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jun 07 10:30:19 2020
Received: from localhost ([127.0.0.1]:54588 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jhwJX-0005gP-DG
	for submit <at> debbugs.gnu.org; Sun, 07 Jun 2020 10:30:19 -0400
Received: from eggs.gnu.org ([209.51.188.92]:52800)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1jhwJV-0005gA-Pz
 for 41544 <at> debbugs.gnu.org; Sun, 07 Jun 2020 10:30:18 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:52335)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <eliz@HIDDEN>)
 id 1jhwJQ-0004Ze-H3; Sun, 07 Jun 2020 10:30:12 -0400
Received: from [176.228.60.248] (port=3624 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1jhwJM-0003wP-GT; Sun, 07 Jun 2020 10:30:11 -0400
Date: Sun, 07 Jun 2020 17:30:04 +0300
Message-Id: <83zh9f6j9v.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Mattias =?utf-8?Q?Engdeg=C3=A5rd?= <mattiase@HIDDEN>
In-Reply-To: <5AEB442C-5592-46E4-BC38-185BA9D2D956@HIDDEN> (message from
 Mattias =?utf-8?Q?Engdeg=C3=A5rd?= on Sun, 7 Jun 2020 11:13:01 +0200)
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN> <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN> <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN> <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN> <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN> <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN> <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN> <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
 <83img48ffx.fsf@HIDDEN> <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN>
 <b4cbf0a8-d59a-4e8c-a8cf-a8df090f36bf@default>
 <5AEB442C-5592-46E4-BC38-185BA9D2D956@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -1.4 (-)
X-Debbugs-Envelope-To: 41544
Cc: 41544 <at> debbugs.gnu.org, drew.adams@HIDDEN
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: -2.4 (--)

> From: Mattias Engdegård <mattiase@HIDDEN>
> Date: Sun, 7 Jun 2020 11:13:01 +0200
> Cc: Eli Zaretskii <eliz@HIDDEN>, 41544 <at> debbugs.gnu.org
> 
> The predicate should work with the argument both as a foreground and as a background colour, for selecting a black or white contrasting colour. The assumption is that the same predicate can be used for both, which may be wrong, but absent evidence to the contrary, I think it is a reasonable one to make.

IME, it is unreasonable to assume that a pair of colors will be
perceived as "contrasting enough" no matter which of them is
foreground and which background.  Background colors affect larger
portions of display, and therefore a bright background is perceived as
brighter and a dark background as darker, than when the same color is
used as foreground.




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

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


Received: (at 41544) by debbugs.gnu.org; 7 Jun 2020 14:26:56 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jun 07 10:26:55 2020
Received: from localhost ([127.0.0.1]:54579 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jhwGF-0005Zl-KF
	for submit <at> debbugs.gnu.org; Sun, 07 Jun 2020 10:26:55 -0400
Received: from eggs.gnu.org ([209.51.188.92]:52206)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1jhwGE-0005ZX-GN
 for 41544 <at> debbugs.gnu.org; Sun, 07 Jun 2020 10:26:54 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:52282)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <eliz@HIDDEN>)
 id 1jhwG8-00046V-DJ; Sun, 07 Jun 2020 10:26:48 -0400
Received: from [176.228.60.248] (port=3419 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1jhwG6-0006tM-Gy; Sun, 07 Jun 2020 10:26:47 -0400
Date: Sun, 07 Jun 2020 17:26:40 +0300
Message-Id: <831rmr7xzz.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Simen =?iso-8859-1?Q?Heggest=F8yl?= <simenheg@HIDDEN>
In-Reply-To: <87pnabfdr5.fsf@simenheg@HIDDEN> (message from Simen
 =?iso-8859-1?Q?Heggest=F8yl?= on Sun, 07 Jun 2020 11:04:30 +0200)
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <83o8q2elja.fsf@HIDDEN> <83mu5mel4o.fsf@HIDDEN>
 <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN>
 <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN>
 <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN>
 <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN>
 <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN>
 <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN>
 <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN>
 <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
 <83img48ffx.fsf@HIDDEN>
 <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN>
 <83bllw82xt.fsf@HIDDEN> <87pnabfdr5.fsf@simenheg@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
X-Spam-Score: -1.4 (-)
X-Debbugs-Envelope-To: 41544
Cc: rcopley@HIDDEN, mattiase@HIDDEN, 41544 <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: -2.4 (--)

> From: Simen Heggestøyl <simenheg@HIDDEN>
> Cc: Mattias Engdegård <mattiase@HIDDEN>,  Richard Copley
>  <rcopley@HIDDEN>, 41544 <at> debbugs.gnu.org
> Date: Sun, 07 Jun 2020 11:04:30 +0200
> 
> I can't comment on the patch overall, but this part at least seems to
> address Richard Copley's complaints in bug#30295. A dark foreground is
> now used for #0f0/rgba(0,255,0,0.5) and #5e5 as Richard requested, which
> indeed looks more readable to me too.
> 
> Maybe the pendulum has swung too far however. For instance, a dark
> foreground is now used for #ef716e, which I think was easier to read
> with the light foreground used before. Could that be fixed by tweaking
> the cut-off values in color-dark-p, perhaps?

We can (and did) tweak the various constants involved in this, more
than once.  The lesson I took from that is that we could never produce
something that will fit all the needs, let alone satisfy all the
users.  There are two main factors here on which we have no control:
the subjective differences between color perception by different
people, and variations in how different terminals and displays show
the same colors.

That is why I object to making changes in this low-level functionality
with the motivation of "fixing them all": I think it's simply
impossible.  We will make it slightly better in some situations and
slightly worse in others.  There's no net win here.




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

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


Received: (at 41544) by debbugs.gnu.org; 7 Jun 2020 10:14:27 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jun 07 06:14:27 2020
Received: from localhost ([127.0.0.1]:53393 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jhsJv-0005Qr-At
	for submit <at> debbugs.gnu.org; Sun, 07 Jun 2020 06:14:27 -0400
Received: from mail1461c50.megamailservers.eu ([91.136.14.61]:37190
 helo=mail267c50.megamailservers.eu)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mattiase@HIDDEN>) id 1jhsJs-0005Qb-By
 for 41544 <at> debbugs.gnu.org; Sun, 07 Jun 2020 06:14:25 -0400
X-Authenticated-User: mattiase@HIDDEN
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu;
 s=maildub; t=1591524857;
 bh=zjYuVmjhXys6SkEowKSw6xzMGXpZAriCIG1Yu4VIhsY=;
 h=Subject:From:In-Reply-To:Date:Cc:References:To:From;
 b=AZa2+jDjpHf1ZGk7IDBeL/xL4yigsDRH/rbSOti9FdqbKW5SNoT3hQ6bAphIJ3UpT
 ZxthxAptRdk6lH6xmERZdHaFYDmLykxtkwBw9NBgo4vxoIP0pC/kJTD2xcneR+L99w
 rGDUw0PAQtWCsLQeLOIWEpWjWG73K1+up5XwcIpI=
Feedback-ID: mattiase@HIDDEN
Received: from stanniol.lan (c-4e4ae655.032-75-73746f71.bbcust.telenor.se
 [85.230.74.78]) (authenticated bits=0)
 by mail267c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 057AED6J027527; 
 Sun, 7 Jun 2020 10:14:15 +0000
Content-Type: text/plain;
	charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.14\))
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>
In-Reply-To: <87pnabfdr5.fsf@simenheg@HIDDEN>
Date: Sun, 7 Jun 2020 12:14:13 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <2F9BF919-4E8B-4802-AEE8-4438A78B4F68@HIDDEN>
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <83o8q2elja.fsf@HIDDEN> <83mu5mel4o.fsf@HIDDEN>
 <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN> <83y2p5cumz.fsf@HIDDEN>
 <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN> <83blm0cjlz.fsf@HIDDEN>
 <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN> <83367ccf8w.fsf@HIDDEN>
 <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN> <83o8pyc4bq.fsf@HIDDEN>
 <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN> <835zc5bsut.fsf@HIDDEN>
 <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN> <838sh0abzz.fsf@HIDDEN>
 <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN> <83r1us8kw6.fsf@HIDDEN>
 <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN> <83img48ffx.fsf@HIDDEN>
 <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN> <83bllw82xt.fsf@HIDDEN>
 <87pnabfdr5.fsf@simenheg@HIDDEN>
To: =?utf-8?Q?Simen_Heggest=C3=B8yl?= <simenheg@HIDDEN>
X-Mailer: Apple Mail (2.3445.104.14)
X-CTCH-RefID: str=0001.0A782F1D.5EDCBD89.0029:SCFSTAT68638221, ss=1, re=-4.000,
 recu=0.000, reip=0.000, cl=1, cld=1, fgs=0
X-CTCH-VOD: Unknown
X-CTCH-Spam: Unknown
X-CTCH-Score: -4.000
X-CTCH-Rules: 
X-CTCH-Flags: 0
X-CTCH-ScoreCust: 0.000
X-CSC: 0
X-CHA: v=2.3 cv=Cf92G4jl c=1 sm=1 tr=0 a=klNLuyVZdLUgl+K5Uafb2A==:117
 a=klNLuyVZdLUgl+K5Uafb2A==:17 a=IkcTkHD0fZMA:10 a=M51BFTxLslgA:10
 a=7DrQrguiAAAA:8 a=NCMz9fsz5WZ6VZw0lv4A:9 a=QEXdDO2ut3YA:10
 a=5p0t1moz68ydotlU2Z85:22
X-Spam-Score: 1.2 (+)
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:  7 juni 2020 kl. 11.04 skrev Simen Heggestøyl <simenheg@HIDDEN>:
    > I can't comment on the patch overall, but this part at least seems to >
    address Richard Copley's complaints in bug#30295. A dark foreground is >
   now used for #0f0/rgba(0,255,0,0.5) and #5e5 as Richa [...] 
 
 Content analysis details:   (1.2 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
  0.0 URIBL_BLOCKED          ADMINISTRATOR NOTICE: The query to URIBL was
                             blocked.  See
                             http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block
                              for more information.
                             [URIs: megamailservers.eu]
  1.0 SPF_SOFTFAIL           SPF: sender does not match SPF record (softfail)
  0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
  0.3 KHOP_HELO_FCRDNS       Relay HELO differs from its IP's reverse DNS
X-Debbugs-Envelope-To: 41544
Cc: Richard Copley <rcopley@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>,
 41544 <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.0 (/)

7 juni 2020 kl. 11.04 skrev Simen Heggest=C3=B8yl <simenheg@HIDDEN>:

> I can't comment on the patch overall, but this part at least seems to
> address Richard Copley's complaints in bug#30295. A dark foreground is
> now used for #0f0/rgba(0,255,0,0.5) and #5e5 as Richard requested, =
which
> indeed looks more readable to me too.

Thank you, and yes, this was actually one of the motivations.

> Maybe the pendulum has swung too far however. For instance, a dark
> foreground is now used for #ef716e, which I think was easier to read
> with the light foreground used before. Could that be fixed by tweaking
> the cut-off values in color-dark-p, perhaps?

Right; the current predicate should be a significant overall improvement =
but there are inevitably some colours where the decision isn't quite =
right. I'll see what can be done about it. It seems to be mainly those =
somewhat reddish colours that need some work.
Perhaps you could try list-colours-display and see if you can spot a =
pattern?

I'll be back with a longer reply on the principles later.





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

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


Received: (at 41544) by debbugs.gnu.org; 7 Jun 2020 09:13:29 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jun 07 05:13:29 2020
Received: from localhost ([127.0.0.1]:53301 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jhrMi-0003py-0x
	for submit <at> debbugs.gnu.org; Sun, 07 Jun 2020 05:13:29 -0400
Received: from mail1452c50.megamailservers.eu ([91.136.14.52]:55370
 helo=mail266c50.megamailservers.eu)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mattiase@HIDDEN>) id 1jhrMe-0003pe-KG
 for 41544 <at> debbugs.gnu.org; Sun, 07 Jun 2020 05:13:14 -0400
X-Authenticated-User: mattiase@HIDDEN
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu;
 s=maildub; t=1591521185;
 bh=ad0x7GweSYEUi4Vg+4WmH0UGicKq4vEERx2Xbjf9UbQ=;
 h=Subject:From:In-Reply-To:Date:Cc:References:To:From;
 b=gTXE1eHV+fs+0L60t83PoHMepBTdcuMsgeWcas1JmzJiTL/xRI5NKiho31yctuxvh
 yYPWL59R+eGQLnvSTZNcvf+0PhF+MfkbmTp5Y6UG3VqJ+ghQEPnDyINk+HE7emp7r/
 Ki3pf+e4J+h95+fQ55yKaozvnNWJRjf6HONcwa7E=
Feedback-ID: mattiase@HIDDEN
Received: from stanniol.lan (c-4e4ae655.032-75-73746f71.bbcust.telenor.se
 [85.230.74.78]) (authenticated bits=0)
 by mail266c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 0579D1x6012431; 
 Sun, 7 Jun 2020 09:13:04 +0000
Content-Type: text/plain;
	charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.14\))
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>
X-Priority: 3
In-Reply-To: <b4cbf0a8-d59a-4e8c-a8cf-a8df090f36bf@default>
Date: Sun, 7 Jun 2020 11:13:01 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <5AEB442C-5592-46E4-BC38-185BA9D2D956@HIDDEN>
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN> <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN> <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN> <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN> <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN> <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN> <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN> <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
 <83img48ffx.fsf@HIDDEN> <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN>
 <b4cbf0a8-d59a-4e8c-a8cf-a8df090f36bf@default>
To: Drew Adams <drew.adams@HIDDEN>
X-Mailer: Apple Mail (2.3445.104.14)
X-CTCH-RefID: str=0001.0A782F23.5EDCAF25.0023:SCFSTAT68638221, ss=1, re=-4.000,
 recu=0.000, reip=0.000, cl=1, cld=1, fgs=0
X-CTCH-VOD: Unknown
X-CTCH-Spam: Unknown
X-CTCH-Score: -4.000
X-CTCH-Rules: 
X-CTCH-Flags: 0
X-CTCH-ScoreCust: 0.000
X-CSC: 0
X-CHA: v=2.3 cv=A5MSwJeG c=1 sm=1 tr=0 a=klNLuyVZdLUgl+K5Uafb2A==:117
 a=klNLuyVZdLUgl+K5Uafb2A==:17 a=kj9zAlcOel0A:10 a=M51BFTxLslgA:10
 a=yPCof4ZbAAAA:8 a=iLj94LE5IQj3-QTxvVkA:9 a=CjuIK1q_8ugA:10
X-Spam-Score: 1.2 (+)
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: 6 juni 2020 kl. 20.15 skrev Drew Adams
 <drew.adams@HIDDEN>:
 > +(defun color-dark-p (rgb) > + "Whether RGB is more readable against white
 than black. > +RGB is a 3-element list (R G B), each component in the range
 [0,1]." Content analysis details:   (1.2 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.0 URIBL_BLOCKED          ADMINISTRATOR NOTICE: The query to URIBL was
 blocked.  See
 http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block
 for more information. [URIs: megamailservers.eu]
 1.0 SPF_SOFTFAIL           SPF: sender does not match SPF record (softfail)
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 0.3 KHOP_HELO_FCRDNS       Relay HELO differs from its IP's reverse DNS
X-Debbugs-Envelope-To: 41544
Cc: Eli Zaretskii <eliz@HIDDEN>, 41544 <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.0 (/)

6 juni 2020 kl. 20.15 skrev Drew Adams <drew.adams@HIDDEN>:

> +(defun color-dark-p (rgb)
> +  "Whether RGB is more readable against white than black.
> +RGB is a 3-element list (R G B), each component in the range [0,1]."

> The predicate name suggests it's about testing a
> color (via RGB) to determine whether it's dark or
> light.
>=20
> The doc string suggests it's specifically about
> the readability of _foreground_ text that is of
> that color - specifically whether it's more
> readable against a white than a black background.

Thank you, this actually raises a good point.

The predicate should work with the argument both as a foreground and as =
a background colour, for selecting a black or white contrasting colour. =
The assumption is that the same predicate can be used for both, which =
may be wrong, but absent evidence to the contrary, I think it is a =
reasonable one to make.

If you are in doubt, see if you can come up with a colour for which it =
does not hold. For example, if you find a rare shade of beige that when =
used for text looks better against a white background, but when used as =
a background prefers black text. I have yet to do so, much less been =
able to articulate it formally as an algorithm.

I agree that this could be stated more explicitly in the doc string.





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

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


Received: (at 41544) by debbugs.gnu.org; 7 Jun 2020 09:04:36 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jun 07 05:04:36 2020
Received: from localhost ([127.0.0.1]:53296 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jhrEK-0003aO-5O
	for submit <at> debbugs.gnu.org; Sun, 07 Jun 2020 05:04:36 -0400
Received: from aibo.runbox.com ([91.220.196.211]:38770)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <simenheg@HIDDEN>) id 1jhrEH-0003aD-VJ
 for 41544 <at> debbugs.gnu.org; Sun, 07 Jun 2020 05:04:35 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=runbox.com; 
 s=selector1;
 h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date:
 References:Subject:Cc:To:From;
 bh=i2bPAZIn58UZ7lWpLe3yIawPjlzsnUqTxJWqGncpfEI=; b=Akon/NWL9Zm8rmV2i97yIvARrc
 KKeyimA7T/4aQuzuc5ESG2adUnrB6Uf/ZU9uLuo4NXxd5uO5ZDi170HOEPIlQJFlqKcOPakh59BbR
 P/URyC48UvtX+nqWnYgPLWdbNNai2eYfifZV4xnTdHrF5za42Gcbhum8peMX4K/6udCPHm3q26jKr
 CnuDtOLGS6wLGeqfHYZv6+XPeybYLfcoY646KWCzUq7G9YjX4i3sVy0loKMeQbhwmfgt6at+1dG6j
 T/sqPFT5QsV028Ot/TdalRL9Uk7Luum8dFjF3rEWThdyqPxLo2xKbP0E0lbJ1oJL3MSswMTHckkIU
 oy52714A==;
Received: from [10.9.9.73] (helo=submission02.runbox)
 by mailtransmit03.runbox with esmtp (Exim 4.86_2)
 (envelope-from <simenheg@HIDDEN>)
 id 1jhrEF-0001PO-9l; Sun, 07 Jun 2020 11:04:31 +0200
Received: by submission02.runbox with esmtpsa [Authenticated alias (963757)]
 (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1)
 id 1jhrEF-0000hE-67; Sun, 07 Jun 2020 11:04:31 +0200
From: =?utf-8?Q?Simen_Heggest=C3=B8yl?= <simenheg@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <83o8q2elja.fsf@HIDDEN> <83mu5mel4o.fsf@HIDDEN>
 <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN>
 <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN>
 <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN>
 <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN>
 <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN>
 <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN>
 <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN>
 <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
 <83img48ffx.fsf@HIDDEN>
 <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN>
 <83bllw82xt.fsf@HIDDEN>
Date: Sun, 07 Jun 2020 11:04:30 +0200
In-Reply-To: <83bllw82xt.fsf@HIDDEN> (Eli Zaretskii's message of "Sat, 06 Jun
 2020 21:27:42 +0300")
Message-ID: <87pnabfdr5.fsf@simenheg@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.91 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 0.3 (/)
X-Debbugs-Envelope-To: 41544
Cc: Richard Copley <rcopley@HIDDEN>,
 Mattias =?utf-8?Q?Engdeg=C3=A5rd?= <mattiase@HIDDEN>, 41544 <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:

>> -(defun css--contrasty-color (name)
>> -  "Return a color that contrasts with NAME.
>> -NAME is of any form accepted by `color-distance'.
>> -The returned color will be usable by Emacs and will contrast
>> -with NAME; in particular so that if NAME is used as a background
>> -color, the returned color can be used as the foreground and still
>> -be readable."
>> -  ;; See bug#25525 for a discussion of this.
>> -  (if (> (color-distance name "black") 292485)
>> -      "black" "white"))
>> -
>>  (defcustom css-fontify-colors t
>>    "Whether CSS colors should be fontified using the color as the background.
>>  When non-`nil', a text representing CSS color will be fontified
>> @@ -1199,7 +1188,8 @@ css--fontify-region
>>  		    (add-text-properties
>>  		     start (point)
>>  		     (list 'face (list :background color
>> -				       :foreground (css--contrasty-color color)
>> +				       :foreground (readable-foreground-color
>> +                                                    color)
>>  				       :box '(:line-width -1))))))))))))
>>      extended-region))
>
> Here, once again I will ask what practical problem is being fixed.

I can't comment on the patch overall, but this part at least seems to
address Richard Copley's complaints in bug#30295. A dark foreground is
now used for #0f0/rgba(0,255,0,0.5) and #5e5 as Richard requested, which
indeed looks more readable to me too.

Maybe the pendulum has swung too far however. For instance, a dark
foreground is now used for #ef716e, which I think was easier to read
with the light foreground used before. Could that be fixed by tweaking
the cut-off values in color-dark-p, perhaps?

-- Simen




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

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


Received: (at 41544) by debbugs.gnu.org; 6 Jun 2020 18:28:03 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jun 06 14:28:03 2020
Received: from localhost ([127.0.0.1]:52451 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jhdY3-0007EV-7F
	for submit <at> debbugs.gnu.org; Sat, 06 Jun 2020 14:28:03 -0400
Received: from eggs.gnu.org ([209.51.188.92]:51438)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1jhdY1-0007Dp-4t
 for 41544 <at> debbugs.gnu.org; Sat, 06 Jun 2020 14:28:01 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:36188)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <eliz@HIDDEN>)
 id 1jhdXv-0002o3-TR; Sat, 06 Jun 2020 14:27:55 -0400
Received: from [176.228.60.248] (port=1972 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1jhdXr-0001xZ-W0; Sat, 06 Jun 2020 14:27:53 -0400
Date: Sat, 06 Jun 2020 21:27:42 +0300
Message-Id: <83bllw82xt.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Mattias =?utf-8?Q?Engdeg=C3=A5rd?= <mattiase@HIDDEN>
In-Reply-To: <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN> (message from
 Mattias =?utf-8?Q?Engdeg=C3=A5rd?= on Sat, 6 Jun 2020 18:54:41 +0200)
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN> <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN> <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN> <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN> <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN> <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN> <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN> <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
 <83img48ffx.fsf@HIDDEN> <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@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: 41544
Cc: 41544 <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: Mattias Engdegård <mattiase@HIDDEN>
> Date: Sat, 6 Jun 2020 18:54:41 +0200
> Cc: 41544 <at> debbugs.gnu.org
> 
> Since we are making little progress, let's leave color-name-to-rgb unchanged for the moment. We can both change our minds later. It's not strictly required for the introduction and use of color-dark-p; patch updated.

What practical problem is being solved here?  (Please don't say "this
was done in different ways", that's not a practical problem from my
POV.)

> * lisp/facemenu.el (list-colors-print): Use readable-foreground-color.

I don't mind installing this part, but have the rationale should be
spelled out in the log message.

> --- a/lisp/faces.el
> +++ b/lisp/faces.el
> @@ -1786,15 +1786,24 @@ defined-colors-with-face-attributes
>  
>  (defun readable-foreground-color (color)
>    "Return a readable foreground color for background COLOR."
> -  (let* ((rgb   (color-values color))
> -	 (max   (apply #'max rgb))
> -	 (black (car (color-values "black")))
> -	 (white (car (color-values "white"))))
> -    ;; Select black or white depending on which one is less similar to
> -    ;; the brightest component.
> -    (if (> (abs (- max black)) (abs (- max white)))
> -	"black"
> -      "white")))

What was wrong with the original code?  If it produced sub-optimal
results, please show an example of that.

> +(defun color-dark-p (rgb)
> +  "Whether RGB is more readable against white than black.
> +RGB is a 3-element list (R G B), each component in the range [0,1]."
> +  (let* ((sr (nth 0 rgb))
> +         (sg (nth 1 rgb))
> +         (sb (nth 2 rgb))
> +         ;; Use the power 2.2 as an approximation to sRGB gamma;
> +         ;; it should be good enough for the purpose of this function.
> +         (r (expt sr 2.2))
> +         (g (expt sg 2.2))
> +         (b (expt sb 2.2)))
> +    (unless (<= 0 (min r g b) (max r g b) 1)
> +      (error "RGB components %S not in [0,1]" rgb))
> +    ;; The cut-off value was determined experimentally; see bug#41544.
> +    (< (+ (* r 0.299) (* g 0.587) (* b 0.114))
> +       (eval-when-compile (expt 0.6 2.2)))))

This code's algorithm and rationale should be explained in the
comments before we can discuss whether it's an improvement and why.

> diff --git a/lisp/frame.el b/lisp/frame.el
> index 6c2f774709..253528da75 100644
> --- a/lisp/frame.el
> +++ b/lisp/frame.el
> @@ -1156,6 +1156,13 @@ frame-background-mode

This is a non-starter, sorry.  I'm not interested in changing what is
considered dark and light background of a frame.

> diff --git a/lisp/term/rxvt.el b/lisp/term/rxvt.el
> index 31e3d6ede4..5dc754c8e0 100644
> --- a/lisp/term/rxvt.el
> +++ b/lisp/term/rxvt.el
> @@ -206,13 +206,11 @@ rxvt-set-background-mode

Likewise here.

> diff --git a/lisp/term/w32console.el b/lisp/term/w32console.el
> index 36e9d896c7..0e9d7c8b5c 100644
> --- a/lisp/term/w32console.el
> +++ b/lisp/term/w32console.el
> @@ -86,9 +86,9 @@ terminal-init-w32console
>      (setq r (nth 2 descr)
>  	  g (nth 3 descr)
>  	  b (nth 4 descr))
> -    (if (< (+ r g b) (* .6 (+ 65535 65535 65535)))
> -	(setq bg-mode 'dark)
> -      (setq bg-mode 'light))
> +    (setq bg-mode (if (color-dark-p
> +                       (list (/ r 65535.0) (/ g 65535.0) (/ b 65535.0)))
> +                      'dark 'light))
>      (set-terminal-parameter nil 'background-mode bg-mode))

And here.

> diff --git a/lisp/term/xterm.el b/lisp/term/xterm.el
> index 1a727e3933..bf9bcae526 100644
> --- a/lisp/term/xterm.el
> +++ b/lisp/term/xterm.el
> @@ -1120,9 +1120,8 @@ xterm-register-default-colors
>      (clear-face-cache)))
>  
>  (defun xterm-maybe-set-dark-background-mode (redc greenc bluec)
> -  ;; Use the heuristic in `frame-set-background-mode' to decide if a
> -  ;; frame is dark.
> -  (when (< (+ redc greenc bluec) (* .6 (+ 65535 65535 65535)))
> +  (when (color-dark-p (mapcar (lambda (c) (/ c 65535.0))
> +                              (list redc greenc bluec)))
>      (set-terminal-parameter nil 'background-mode 'dark)

And here.

> -(defun css--contrasty-color (name)
> -  "Return a color that contrasts with NAME.
> -NAME is of any form accepted by `color-distance'.
> -The returned color will be usable by Emacs and will contrast
> -with NAME; in particular so that if NAME is used as a background
> -color, the returned color can be used as the foreground and still
> -be readable."
> -  ;; See bug#25525 for a discussion of this.
> -  (if (> (color-distance name "black") 292485)
> -      "black" "white"))
> -
>  (defcustom css-fontify-colors t
>    "Whether CSS colors should be fontified using the color as the background.
>  When non-`nil', a text representing CSS color will be fontified
> @@ -1199,7 +1188,8 @@ css--fontify-region
>  		    (add-text-properties
>  		     start (point)
>  		     (list 'face (list :background color
> -				       :foreground (css--contrasty-color color)
> +				       :foreground (readable-foreground-color
> +                                                    color)
>  				       :box '(:line-width -1))))))))))))
>      extended-region))

Here, once again I will ask what practical problem is being fixed.

Thanks.




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

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


Received: (at 41544) by debbugs.gnu.org; 6 Jun 2020 18:16:15 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jun 06 14:16:15 2020
Received: from localhost ([127.0.0.1]:52425 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jhdMc-0006wO-Oy
	for submit <at> debbugs.gnu.org; Sat, 06 Jun 2020 14:16:14 -0400
Received: from aserp2120.oracle.com ([141.146.126.78]:55324)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <drew.adams@HIDDEN>) id 1jhdMb-0006vt-OY
 for 41544 <at> debbugs.gnu.org; Sat, 06 Jun 2020 14:16:14 -0400
Received: from pps.filterd (aserp2120.oracle.com [127.0.0.1])
 by aserp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 056I6wkD001273;
 Sat, 6 Jun 2020 18:16:05 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com;
 h=mime-version :
 message-id : date : from : sender : to : cc : subject : references :
 in-reply-to : content-type : content-transfer-encoding; s=corp-2020-01-29;
 bh=EVFa0tZNc+J1Qg4Z4I8JuUxFh2NswrWXqaSlCiCBa2k=;
 b=LWaX+24LOOz7WZDVkZThoqYLbqQBubJTtlu6/lLHg4ZSawrdQ8DRCkqQV/HqrRU45x48
 muOcSzBITmaKYyuuj2TGm54LCT5/bOikqLEw2kP+JxdnzY20S5UGB8M9SUyRR5+gjsJq
 tsnlld9AUaDufU9q0aGXaZn4zpxCRKR8HQvEu2WNtjZ/iYSup82kkWhc0KAUG93nIzSN
 iJXtlWxEE8eE6jbBRMxJgaZu/BsJuYFPHdm6PnBAXy0ShCy0XpFW4iZtkxmg7pijDsGv
 tabXfWdXRvwY3fE09lpiOt4AYn2kQZZczU9IbAgL4X7Ve9z2FZmvl4JJohbYyKote6hN 9g== 
Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79])
 by aserp2120.oracle.com with ESMTP id 31g33ksksn-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL);
 Sat, 06 Jun 2020 18:16:05 +0000
Received: from pps.filterd (userp3020.oracle.com [127.0.0.1])
 by userp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 056I8FXo146440;
 Sat, 6 Jun 2020 18:16:04 GMT
Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235])
 by userp3020.oracle.com with ESMTP id 31g2fhh522-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Sat, 06 Jun 2020 18:16:04 +0000
Received: from abhmp0011.oracle.com (abhmp0011.oracle.com [141.146.116.17])
 by aserv0121.oracle.com (8.14.4/8.13.8) with ESMTP id 056IG0KJ015542;
 Sat, 6 Jun 2020 18:16:01 GMT
MIME-Version: 1.0
Message-ID: <b4cbf0a8-d59a-4e8c-a8cf-a8df090f36bf@default>
Date: Sat, 6 Jun 2020 11:15:57 -0700 (PDT)
From: Drew Adams <drew.adams@HIDDEN>
To: =?iso-8859-1?B?TWF0dGlhcyBFbmdkZWflcmQ=?= <mattiase@HIDDEN>, Eli
 Zaretskii <eliz@HIDDEN>
Subject: RE: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN> <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN> <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN> <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN> <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN> <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN> <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN> <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
 <83img48ffx.fsf@HIDDEN> <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN>
In-Reply-To: <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN>
X-Priority: 3
X-Mailer: Oracle Beehive Extensions for Outlook 2.0.1.9.1  (1003210) [OL
 16.0.5005.0 (x86)]
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9644
 signatures=668680
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0
 suspectscore=0 adultscore=0
 phishscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 bulkscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2004280000
 definitions=main-2006060145
X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9644
 signatures=668680
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0
 adultscore=0 spamscore=0
 cotscore=-2147483648 malwarescore=0 phishscore=0 mlxscore=0 clxscore=1011
 lowpriorityscore=0 impostorscore=0 priorityscore=1501 mlxlogscore=999
 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2004280000 definitions=main-2006060145
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 41544
Cc: 41544 <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 (---)

(Not following this thread; apologies.)

Noticed this in the patch:

+(defun color-dark-p (rgb)
+  "Whether RGB is more readable against white than black.
+RGB is a 3-element list (R G B), each component in the range [0,1]."

Something seems a bit wrong, here.  Dunno whether
it's the predicate name or the doc string (or both).

The predicate name suggests it's about testing a
color (via RGB) to determine whether it's dark or
light.

The doc string suggests it's specifically about
the readability of _foreground_ text that is of
that color - specifically whether it's more
readable against a white than a black background.

Maybe the predicate name should be changed to
indicate (1) that it's about RGB as a foreground
and (2) it's compared (in terms of contrast or
value or whatever) to a white and black background.

Just a suggestion.  Discovery, based on the
predicate name, will mislead as it is now, I think.

I also think the doc string could say just what it
means by "more readable", i.e. what kind of RGB (or
other) test it uses.




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

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


Received: (at 41544) by debbugs.gnu.org; 6 Jun 2020 16:54:49 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jun 06 12:54:49 2020
Received: from localhost ([127.0.0.1]:52351 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jhc5p-0004zS-8X
	for submit <at> debbugs.gnu.org; Sat, 06 Jun 2020 12:54:49 -0400
Received: from mail85c50.megamailservers.eu ([91.136.10.95]:37822
 helo=mail18c50.megamailservers.eu)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mattiase@HIDDEN>) id 1jhc5m-0004zI-OQ
 for 41544 <at> debbugs.gnu.org; Sat, 06 Jun 2020 12:54:47 -0400
X-Authenticated-User: mattiase@HIDDEN
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu;
 s=maildub; t=1591462484;
 bh=Dds8aXuevS4wq1D2mmOF90T3VLD0LEqC1wVjfMJ6xx0=;
 h=From:Subject:Date:In-Reply-To:Cc:To:References:From;
 b=mQ6T//fqGfn1Gx4CHCQZK9xF9PowGSM5pCe0+Y/fASvb9LJG4E6X7KQbm1UmTxfw3
 6nokwdCFVU++kmLQESdjqNKbIgGIPAtvJ4qxJIDdTYOkC4ucQz1YSucqOX9oQszlOy
 OocKZ4MPA+kY6V3x7XGL+WVFHn9+OAhmvNodkoEo=
Feedback-ID: mattiase@HIDDEN
Received: from stanniol.lan (c-4e4ae655.032-75-73746f71.bbcust.telenor.se
 [85.230.74.78]) (authenticated bits=0)
 by mail18c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 056GsgpG019201; 
 Sat, 6 Jun 2020 16:54:44 +0000
From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>
Message-Id: <EAD39303-6870-4E5F-8D3B-4B4DE29AD57B@HIDDEN>
Content-Type: multipart/mixed;
 boundary="Apple-Mail=_DB782CBA-D227-410A-B6EF-143B5FD5022B"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.14\))
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
Date: Sat, 6 Jun 2020 18:54:41 +0200
In-Reply-To: <83img48ffx.fsf@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN> <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN> <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN> <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN> <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN> <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN> <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN> <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
 <83img48ffx.fsf@HIDDEN>
X-Mailer: Apple Mail (2.3445.104.14)
X-CTCH-RefID: str=0001.0A782F26.5EDBC9F6.003F:SCFSTAT68638221, ss=1, re=-4.000,
 recu=0.000, reip=0.000, cl=1, cld=1, fgs=0
X-CTCH-VOD: Unknown
X-CTCH-Spam: Unknown
X-CTCH-Score: -4.000
X-CTCH-Rules: 
X-CTCH-Flags: 0
X-CTCH-ScoreCust: 0.000
X-CSC: 0
X-CHA: v=2.3 cv=K8Zc4BeI c=1 sm=1 tr=0 a=klNLuyVZdLUgl+K5Uafb2A==:117
 a=klNLuyVZdLUgl+K5Uafb2A==:17 a=M51BFTxLslgA:10 a=mDV3o1hIAAAA:8
 a=jVEikXp7SrS73UKdutoA:9 a=CjuIK1q_8ugA:10 a=LUiTdrM7ar1z_bhPKtoA:9
 a=B2y7HmGcmWMA:10 a=_FVE-zBwftR9WsbkzFJk:22
X-Spam-Score: 1.2 (+)
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:  6 juni 2020 kl. 15.57 skrev Eli Zaretskii <eliz@HIDDEN>:
 >> can you come up with a concrete and realistic example of what you think
 will break? > > None at this time. That's high praise! 
 Content analysis details:   (1.2 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.0 URIBL_BLOCKED          ADMINISTRATOR NOTICE: The query to URIBL was
 blocked.  See
 http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block
 for more information. [URIs: megamailservers.eu]
 1.0 SPF_SOFTFAIL           SPF: sender does not match SPF record (softfail)
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 0.3 KHOP_HELO_FCRDNS       Relay HELO differs from its IP's reverse DNS
X-Debbugs-Envelope-To: 41544
Cc: 41544 <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.0 (/)


--Apple-Mail=_DB782CBA-D227-410A-B6EF-143B5FD5022B
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

6 juni 2020 kl. 15.57 skrev Eli Zaretskii <eliz@HIDDEN>:

>> can you come up with a concrete and realistic example of what you =
think will break?
>=20
> None at this time.

That's high praise!

> I think a Lisp program that interprets the documentation too
> literally is making a mistake

I must remember that, a most useful answer!

> , but I'm not opposed to make that
> clearer in the docs.

No, I really don't think we should document the bug.

Since we are making little progress, let's leave color-name-to-rgb =
unchanged for the moment. We can both change our minds later. It's not =
strictly required for the introduction and use of color-dark-p; patch =
updated.


--Apple-Mail=_DB782CBA-D227-410A-B6EF-143B5FD5022B
Content-Disposition: attachment;
	filename=0001-Use-a-single-light-dark-colour-predicate.patch
Content-Type: application/octet-stream;
	x-unix-mode=0644;
	name="0001-Use-a-single-light-dark-colour-predicate.patch"
Content-Transfer-Encoding: quoted-printable

=46rom=20f7693e7a2e6cc65ad40d42c9854539ed85466bae=20Mon=20Sep=2017=20=
00:00:00=202001=0AFrom:=20=3D?UTF-8?q?Mattias=3D20Engdeg=3DC3=3DA5rd?=3D=20=
<mattiase@HIDDEN>=0ADate:=20Sun,=2031=20May=202020=2021:12:46=20+0200=0A=
Subject:=20[PATCH]=20Use=20a=20single=20light/dark=20colour=20predicate=0A=
=0AAdd=20a=20single=20predicate,=20color-dark-p,=20for=20deciding=20=
whether=20a=20colour=0Ais=20more=20readable=20against=20black=20or=20=
white.=20=20Previously=20this=20was=20done=20in=0Adifferent=20ways=20in=20=
several=20places,=20and=20with=20worse=20results.=20=20(Bug#41544)=0A=0A=
*=20lisp/facemenu.el=20(list-colors-print):=20Use=20=
readable-foreground-color.=0A(color-dark-p):=20New=20function.=0A*=20=
lisp/term/pc-win.el:=20Update=20comment.=0A*=20lisp/term/rxvt.el=20=
(rxvt-set-background-mode):=0A*=20lisp/term/w32console.el=20=
(terminal-init-w32console):=0A*=20lisp/term/xterm.el=20=
(xterm-maybe-set-dark-background-mode):=0A*=20lisp/faces.el=20=
(readable-foreground-color):=0A*=20lisp/frame.el=20=
(frame-set-background-mode):=20Use=20color-dark-p.=0A*=20=
lisp/textmodes/css-mode.el=20(css--contrasty-color):=20Remove.=0A=
(css--fontify-region):=20Use=20color-dark-p.=0A---=0A=20lisp/facemenu.el=20=
=20=20=20=20=20=20=20=20=20=20|=2011=20+++++------=0A=20lisp/faces.el=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20|=2027=20++++++++++++++++++---------=0A=
=20lisp/frame.el=20=20=20=20=20=20=20=20=20=20=20=20=20=20|=2017=20=
++++++++++-------=0A=20lisp/term/pc-win.el=20=20=20=20=20=20=20=20|=20=20=
8=20+++-----=0A=20lisp/term/rxvt.el=20=20=20=20=20=20=20=20=20=20|=2012=20=
+++++-------=0A=20lisp/term/w32console.el=20=20=20=20|=20=206=20+++---=0A=
=20lisp/term/xterm.el=20=20=20=20=20=20=20=20=20|=20=205=20++---=0A=20=
lisp/textmodes/css-mode.el=20|=2014=20++------------=0A=208=20files=20=
changed,=2048=20insertions(+),=2052=20deletions(-)=0A=0Adiff=20--git=20=
a/lisp/facemenu.el=20b/lisp/facemenu.el=0Aindex=20b10d874b21..419b76101b=20=
100644=0A---=20a/lisp/facemenu.el=0A+++=20b/lisp/facemenu.el=0A@@=20=
-621,12=20+621,11=20@@=20list-colors-print=0A=20=09=09=09=09=09=09=20=
(downcase=20b))))))=0A=20=09(setq=20color=20(list=20color)))=0A=20=20=20=20=
=20=20=20(let*=20((opoint=20(point))=0A-=09=20=20=20=20=20(color-values=20=
(color-values=20(car=20color)))=0A-=09=20=20=20=20=20(light-p=20(>=3D=20=
(apply=20'max=20color-values)=0A-=09=09=09=20=20(*=20(car=20=
(color-values=20"white"))=20.5))))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=
=20(fg=20(readable-foreground-color=20(car=20color))))=0A=20=09(insert=20=
(car=20color))=0A=20=09(indent-to=2022)=0A-=09(put-text-property=20=
opoint=20(point)=20'face=20`(:background=20,(car=20color)))=0A+=09=
(put-text-property=20opoint=20(point)=20'face=20`(:background=20,(car=20=
color)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20:foreground=20,fg))=0A=20=09(put-text-property=0A=20=09=20=
(prog1=20(point)=0A=20=09=20=20=20(insert=20"=20")=0A@@=20-639,7=20=
+638,7=20@@=20list-colors-print=0A=20=09(insert=20(propertize=0A=20=09=09=
=20(apply=20'format=20"#%02x%02x%02x"=0A=20=09=09=09(mapcar=20(lambda=20=
(c)=20(ash=20c=20-8))=0A-=09=09=09=09color-values))=0A+=09=09=09=09=
(color-values=20(car=20color))))=0A=20=09=09=20'mouse-face=20'highlight=0A=
=20=09=09=20'help-echo=0A=20=09=09=20(let=20((hsv=20(apply=20=
'color-rgb-to-hsv=0A@@=20-651,7=20+650,7=20@@=20list-colors-print=0A=20=09=
=20=20=20opoint=20(point)=0A=20=09=20=20=20'follow-link=20t=0A=20=09=20=20=
=20'mouse-face=20(list=20:background=20(car=20color)=0A-=09=09=09=20=20=20=
=20=20:foreground=20(if=20light-p=20"black"=20"white"))=0A+=09=09=09=20=20=
=20=20=20:foreground=20fg)=0A=20=09=20=20=20'color-name=20(car=20color)=0A=
=20=09=20=20=20'action=20callback-fn)))=0A=20=20=20=20=20=20=20(insert=20=
"\n"))=0Adiff=20--git=20a/lisp/faces.el=20b/lisp/faces.el=0Aindex=20=
e707f6f4b6..caa72fbfff=20100644=0A---=20a/lisp/faces.el=0A+++=20=
b/lisp/faces.el=0A@@=20-1786,15=20+1786,24=20@@=20=
defined-colors-with-face-attributes=0A=20=0A=20(defun=20=
readable-foreground-color=20(color)=0A=20=20=20"Return=20a=20readable=20=
foreground=20color=20for=20background=20COLOR."=0A-=20=20(let*=20((rgb=20=
=20=20(color-values=20color))=0A-=09=20(max=20=20=20(apply=20#'max=20=
rgb))=0A-=09=20(black=20(car=20(color-values=20"black")))=0A-=09=20=
(white=20(car=20(color-values=20"white"))))=0A-=20=20=20=20;;=20Select=20=
black=20or=20white=20depending=20on=20which=20one=20is=20less=20similar=20=
to=0A-=20=20=20=20;;=20the=20brightest=20component.=0A-=20=20=20=20(if=20=
(>=20(abs=20(-=20max=20black))=20(abs=20(-=20max=20white)))=0A-=09=
"black"=0A-=20=20=20=20=20=20"white")))=0A+=20=20(if=20(color-dark-p=20=
(color-name-to-rgb=20color))=20"white"=20"black"))=0A+=0A+(defun=20=
color-dark-p=20(rgb)=0A+=20=20"Whether=20RGB=20is=20more=20readable=20=
against=20white=20than=20black.=0A+RGB=20is=20a=203-element=20list=20(R=20=
G=20B),=20each=20component=20in=20the=20range=20[0,1]."=0A+=20=20(let*=20=
((sr=20(nth=200=20rgb))=0A+=20=20=20=20=20=20=20=20=20(sg=20(nth=201=20=
rgb))=0A+=20=20=20=20=20=20=20=20=20(sb=20(nth=202=20rgb))=0A+=20=20=20=20=
=20=20=20=20=20;;=20Use=20the=20power=202.2=20as=20an=20approximation=20=
to=20sRGB=20gamma;=0A+=20=20=20=20=20=20=20=20=20;;=20it=20should=20be=20=
good=20enough=20for=20the=20purpose=20of=20this=20function.=0A+=20=20=20=20=
=20=20=20=20=20(r=20(expt=20sr=202.2))=0A+=20=20=20=20=20=20=20=20=20(g=20=
(expt=20sg=202.2))=0A+=20=20=20=20=20=20=20=20=20(b=20(expt=20sb=20=
2.2)))=0A+=20=20=20=20(unless=20(<=3D=200=20(min=20r=20g=20b)=20(max=20r=20=
g=20b)=201)=0A+=20=20=20=20=20=20(error=20"RGB=20components=20%S=20not=20=
in=20[0,1]"=20rgb))=0A+=20=20=20=20;;=20The=20cut-off=20value=20was=20=
determined=20experimentally;=20see=20bug#41544.=0A+=20=20=20=20(<=20(+=20=
(*=20r=200.299)=20(*=20g=200.587)=20(*=20b=200.114))=0A+=20=20=20=20=20=20=
=20(eval-when-compile=20(expt=200.6=202.2)))))=0A=20=0A=20=
(declare-function=20xw-color-defined-p=20"xfns.c"=20(color=20&optional=20=
frame))=0A=20=0Adiff=20--git=20a/lisp/frame.el=20b/lisp/frame.el=0Aindex=20=
6c2f774709..253528da75=20100644=0A---=20a/lisp/frame.el=0A+++=20=
b/lisp/frame.el=0A@@=20-1156,6=20+1156,13=20@@=20frame-background-mode=0A=
=20=0A=20(defvar=20inhibit-frame-set-background-mode=20nil)=0A=20=0A=
+(defun=20frame--color-name-to-rgb=20(color=20frame)=0A+=20=20"Convert=20=
the=20COLOR=20string=20to=20a=20list=20of=20normalised=20RGB=20=
components.=0A+Like=20`color-name-to-rgb',=20but=20works=20even=20when=20=
the=20display=20has=20not=20yet=0A+been=20initialised."=0A+=20=20(let=20=
((valmax=20(if=20(eq=20(framep-on-display=20frame)=20'ns)=2065280.0=20=
65535.0)))=0A+=20=20=20=20(mapcar=20(lambda=20(x)=20(/=20x=20valmax))=20=
(color-values=20color=20frame))))=0A+=0A=20(defun=20=
frame-set-background-mode=20(frame=20&optional=20keep-face-specs)=0A=20=20=
=20"Set=20up=20display-dependent=20faces=20on=20FRAME.=0A=20=
Display-dependent=20faces=20are=20those=20which=20have=20different=20=
definitions=0A@@=20-1181,13=20+1188,9=20@@=20frame-set-background-mode=0A=
=20=09=09=20=20=20non-default-bg-mode)=0A=20=09=09=20=20((not=20=
(color-values=20bg-color=20frame))=0A=20=09=09=20=20=20default-bg-mode)=0A=
-=09=09=20=20((>=3D=20(apply=20'+=20(color-values=20bg-color=20frame))=0A=
-=09=09=20=20=20=20=20=20=20;;=20Just=20looking=20at=20the=20screen,=20=
colors=20whose=0A-=09=09=20=20=20=20=20=20=20;;=20values=20add=20up=20to=20=
.6=20of=20the=20white=20total=0A-=09=09=20=20=20=20=20=20=20;;=20still=20=
look=20dark=20to=20me.=0A-=09=09=20=20=20=20=20=20=20(*=20(apply=20'+=20=
(color-values=20"white"=20frame))=20.6))=0A-=09=09=20=20=20'light)=0A-=09=
=09=20=20(t=20'dark)))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20((color-dark-p=20(frame--color-name-to-rgb=20bg-color=20frame))=0A=
+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20'dark)=0A+=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(t=20'light)))=0A=20=09=20=
=20=20(display-type=0A=20=09=20=20=20=20(cond=20((null=20(window-system=20=
frame))=0A=20=09=09=20=20=20(if=20(tty-display-color-p=20frame)=20'color=20=
'mono))=0Adiff=20--git=20a/lisp/term/pc-win.el=20b/lisp/term/pc-win.el=0A=
index=2076a48a86c7..16eb660f00=20100644=0A---=20a/lisp/term/pc-win.el=0A=
+++=20b/lisp/term/pc-win.el=0A@@=20-54,11=20+54,9=20@@=0A=20;;=20=
DJGPP-compiled=20Emacs=20on=20the=20same=20PC.=20=20The=20names=20of=20X=20=
colors=20used=20to=0A=20;;=20define=20the=20pixel=20values=20are=20shown=20=
as=20comments=20to=20each=20color=20below.=0A=20;;;=0A-;;=20If=20you=20=
want=20to=20change=20the=20RGB=20values,=20keep=20in=20mind=20that=20=
various=20pieces=0A-;;=20of=20Emacs=20think=20that=20a=20color=20whose=20=
RGB=20values=20add=20up=20to=20less=20than=200.6=20of=0A-;;=20the=20=
values=20for=20WHITE=20(i.e.=20less=20than=20117963)=20are=20``dark'',=20=
otherwise=20the=0A-;;=20color=20is=20``light'';=20see=20=
`frame-set-background-mode'=20in=20lisp/faces.el=20for=0A-;;=20an=20=
example.=0A+;;=20If=20you=20want=20to=20change=20the=20RGB=20values,=20=
consider=20the=20heuristics=20in=0A+;;=20`color-dark-p'=20which=20is=20=
used=20to=20select=20a=20suitably=20contrasting=0A+;;=20foreground=20or=20=
background=20colour.=0A=20(defvar=20msdos-color-values=0A=20=20=20=
'(("black"=20=20=20=20=20=20=20=20=20=200=20=20=20=20=200=20=20=20=20=20=
0=20=20=20=20=200)=0A=20=20=20=20=20("blue"=20=20=20=20=20=20=20=20=20=20=
=201=20=20=20=20=200=20=20=20=20=200=2052480)=20;=20MediumBlue=0Adiff=20=
--git=20a/lisp/term/rxvt.el=20b/lisp/term/rxvt.el=0Aindex=20=
31e3d6ede4..5dc754c8e0=20100644=0A---=20a/lisp/term/rxvt.el=0A+++=20=
b/lisp/term/rxvt.el=0A@@=20-206,13=20+206,11=20@@=20=
rxvt-set-background-mode=0A=20=20=20=20=20=20=20;;=20The=20next=20line=20=
assumes=20that=20rxvt-standard-colors=20are=20ordered=0A=20=20=20=20=20=20=
=20;;=20by=20the=20color=20index=20in=20the=20ascending=20order!=0A=20=20=
=20=20=20=20=20(setq=20rgb=20(car=20(cddr=20(nth=20bg=20=
rxvt-standard-colors))))=0A-=20=20=20=20=20=20;;=20See=20the=20=
commentary=20in=20frame-set-background-mode=20about=20the=0A-=20=20=20=20=
=20=20;;=20computation=20below.=0A-=20=20=20=20=20=20(if=20(<=20(apply=20=
'+=20rgb)=0A-=09=20=20=20=20=20;;=20The=20following=20line=20assumes=20=
that=20white=20is=20the=2015th=0A-=09=20=20=20=20=20;;=20color=20in=20=
rxvt-standard-colors.=0A-=09=20=20=20=20=20(*=20(apply=20'+=20(car=20=
(cddr=20(nth=2015=20rxvt-standard-colors))))=200.6))=0A-=09=20=20=
(set-terminal-parameter=20nil=20'background-mode=20'dark)))))=0A+=20=20=20=
=20=20=20;;=20The=20following=20line=20assumes=20that=20white=20is=20the=20=
15th=0A+=20=20=20=20=20=20;;=20color=20in=20rxvt-standard-colors.=0A+=20=20=
=20=20=20=20(let=20((comp-max=20(float=20(caddr=20(nth=2015=20=
rxvt-standard-colors)))))=0A+=20=20=20=20=20=20=20=20(when=20=
(color-dark-p=20(mapcar=20(lambda=20(c)=20(/=20c=20comp-max))=20rgb))=0A=
+=09=20=20(set-terminal-parameter=20nil=20'background-mode=20'dark))))))=0A=
=20=0A=20(provide=20'term/rxvt)=0A=20=0Adiff=20--git=20=
a/lisp/term/w32console.el=20b/lisp/term/w32console.el=0Aindex=20=
36e9d896c7..0e9d7c8b5c=20100644=0A---=20a/lisp/term/w32console.el=0A+++=20=
b/lisp/term/w32console.el=0A@@=20-86,9=20+86,9=20@@=20=
terminal-init-w32console=0A=20=20=20=20=20(setq=20r=20(nth=202=20descr)=0A=
=20=09=20=20g=20(nth=203=20descr)=0A=20=09=20=20b=20(nth=204=20descr))=0A=
-=20=20=20=20(if=20(<=20(+=20r=20g=20b)=20(*=20.6=20(+=2065535=2065535=20=
65535)))=0A-=09(setq=20bg-mode=20'dark)=0A-=20=20=20=20=20=20(setq=20=
bg-mode=20'light))=0A+=20=20=20=20(setq=20bg-mode=20(if=20(color-dark-p=0A=
+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
(list=20(/=20r=2065535.0)=20(/=20g=2065535.0)=20(/=20b=2065535.0)))=0A+=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20'dark=20=
'light))=0A=20=20=20=20=20(set-terminal-parameter=20nil=20=
'background-mode=20bg-mode))=0A=20=20=20(tty-set-up-initial-frame-faces)=0A=
=20=20=20(run-hooks=20'terminal-init-w32-hook))=0Adiff=20--git=20=
a/lisp/term/xterm.el=20b/lisp/term/xterm.el=0Aindex=20=
1a727e3933..bf9bcae526=20100644=0A---=20a/lisp/term/xterm.el=0A+++=20=
b/lisp/term/xterm.el=0A@@=20-1120,9=20+1120,8=20@@=20=
xterm-register-default-colors=0A=20=20=20=20=20(clear-face-cache)))=0A=20=
=0A=20(defun=20xterm-maybe-set-dark-background-mode=20(redc=20greenc=20=
bluec)=0A-=20=20;;=20Use=20the=20heuristic=20in=20=
`frame-set-background-mode'=20to=20decide=20if=20a=0A-=20=20;;=20frame=20=
is=20dark.=0A-=20=20(when=20(<=20(+=20redc=20greenc=20bluec)=20(*=20.6=20=
(+=2065535=2065535=2065535)))=0A+=20=20(when=20(color-dark-p=20(mapcar=20=
(lambda=20(c)=20(/=20c=2065535.0))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(list=20redc=20=
greenc=20bluec)))=0A=20=20=20=20=20(set-terminal-parameter=20nil=20=
'background-mode=20'dark)=0A=20=20=20=20=20t))=0A=20=0Adiff=20--git=20=
a/lisp/textmodes/css-mode.el=20b/lisp/textmodes/css-mode.el=0Aindex=20=
0035c5e7b0..2cd99787e8=20100644=0A---=20a/lisp/textmodes/css-mode.el=0A=
+++=20b/lisp/textmodes/css-mode.el=0A@@=20-1149,17=20+1149,6=20@@=20=
css--compute-color=0A=20=20=20=20;;=20Evaluate=20to=20the=20color=20if=20=
the=20name=20is=20found.=0A=20=20=20=20((css--named-color=20start-point=20=
match))))=0A=20=0A-(defun=20css--contrasty-color=20(name)=0A-=20=20=
"Return=20a=20color=20that=20contrasts=20with=20NAME.=0A-NAME=20is=20of=20=
any=20form=20accepted=20by=20`color-distance'.=0A-The=20returned=20color=20=
will=20be=20usable=20by=20Emacs=20and=20will=20contrast=0A-with=20NAME;=20=
in=20particular=20so=20that=20if=20NAME=20is=20used=20as=20a=20=
background=0A-color,=20the=20returned=20color=20can=20be=20used=20as=20=
the=20foreground=20and=20still=0A-be=20readable."=0A-=20=20;;=20See=20=
bug#25525=20for=20a=20discussion=20of=20this.=0A-=20=20(if=20(>=20=
(color-distance=20name=20"black")=20292485)=0A-=20=20=20=20=20=20"black"=20=
"white"))=0A-=0A=20(defcustom=20css-fontify-colors=20t=0A=20=20=20=
"Whether=20CSS=20colors=20should=20be=20fontified=20using=20the=20color=20=
as=20the=20background.=0A=20When=20non-`nil',=20a=20text=20representing=20=
CSS=20color=20will=20be=20fontified=0A@@=20-1199,7=20+1188,8=20@@=20=
css--fontify-region=0A=20=09=09=20=20=20=20(add-text-properties=0A=20=09=09=
=20=20=20=20=20start=20(point)=0A=20=09=09=20=20=20=20=20(list=20'face=20=
(list=20:background=20color=0A-=09=09=09=09=20=20=20=20=20=20=20=
:foreground=20(css--contrasty-color=20color)=0A+=09=09=09=09=20=20=20=20=20=
=20=20:foreground=20(readable-foreground-color=0A+=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20color)=0A=20=09=09=
=09=09=20=20=20=20=20=20=20:box=20'(:line-width=20-1))))))))))))=0A=20=20=
=20=20=20extended-region))=0A=20=0A--=20=0A2.21.1=20(Apple=20Git-122.3)=0A=
=0A=

--Apple-Mail=_DB782CBA-D227-410A-B6EF-143B5FD5022B--




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

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


Received: (at 41544) by debbugs.gnu.org; 6 Jun 2020 13:57:55 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jun 06 09:57:55 2020
Received: from localhost ([127.0.0.1]:52251 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jhZKd-00073h-Ep
	for submit <at> debbugs.gnu.org; Sat, 06 Jun 2020 09:57:55 -0400
Received: from eggs.gnu.org ([209.51.188.92]:57668)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1jhZKb-00073T-NT
 for 41544 <at> debbugs.gnu.org; Sat, 06 Jun 2020 09:57:53 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:60550)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <eliz@HIDDEN>)
 id 1jhZKW-0005o0-4R; Sat, 06 Jun 2020 09:57:48 -0400
Received: from [176.228.60.248] (port=4660 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1jhZKU-0004n0-GX; Sat, 06 Jun 2020 09:57:47 -0400
Date: Sat, 06 Jun 2020 16:57:38 +0300
Message-Id: <83img48ffx.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Mattias =?utf-8?Q?Engdeg=C3=A5rd?= <mattiase@HIDDEN>
In-Reply-To: <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN> (message from
 Mattias =?utf-8?Q?Engdeg=C3=A5rd?= on Sat, 6 Jun 2020 15:29:31 +0200)
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN> <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN> <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN> <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN> <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN> <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN> <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN> <020DE875-14A8-457A-9AE4-AA0925DB8997@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: 41544
Cc: 41544 <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: Mattias Engdegård <mattiase@HIDDEN>
> Date: Sat, 6 Jun 2020 15:29:31 +0200
> Cc: 41544 <at> debbugs.gnu.org
> 
> 6 juni 2020 kl. 13.59 skrev Eli Zaretskii <eliz@HIDDEN>:
> 
> > I have already pointed out the negative consequences: the fix you
> > proposed changes the behavior and return values of a low-level API
> > that is used in many places, both directly and indirectly. Thus, it
> > runs a high risk of producing bugs and breaking code that works well
> > enough now.
> 
> This is very speculative and hypothetical. Forgive me for being sceptical, but can you come up with a concrete and realistic example of what you think will break?

None at this time.  But bitter experience has taught me that they will
almost certainly come.  They always do.

> > My assumption is that making changes for purely academic and/or
> > aesthetic reasons is something that we should avoid.
> 
> That is a rather disparaging way of referring to fixes intended to make code working as advertised. 

If the problem is that the documentation doesn't match the behavior,
it is much easier for me to agree to amend the documentation.  In this
case, I think a Lisp program that interprets the documentation too
literally is making a mistake, but I'm not opposed to make that
clearer in the docs.

> > I don't even understand what each paragraph above tries to say, and/or
> > with what argument of mine it attempts to argue.
> 
> You were saying that #ffffffffffff is as good an approximation as any other, and I was showing that it's not.

Then I'm not convinced, sorry.

> > Specifically, what is there that is the current state of affairs, what
> > is that _should_be_ the state of affairs
> 
> The current state of affairs is that 'color-values' returns an incorrect value in certain cases. This can be fixed by making the code simpler and more robust.

We've made a full circle: I was talking about the effects on the
callers of color-values and color-name-to-rgb, and explicitly asked
that we don't limit ourselves to these functions alone.  If there are
no problems caused to the callers of these functions, then I think we
should leave the code alone.




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

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


Received: (at 41544) by debbugs.gnu.org; 6 Jun 2020 13:29:41 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jun 06 09:29:41 2020
Received: from localhost ([127.0.0.1]:51068 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jhYtJ-0003wI-B2
	for submit <at> debbugs.gnu.org; Sat, 06 Jun 2020 09:29:41 -0400
Received: from mail157c50.megamailservers.eu ([91.136.10.167]:51618
 helo=mail51c50.megamailservers.eu)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mattiase@HIDDEN>) id 1jhYtE-0003w7-DF
 for 41544 <at> debbugs.gnu.org; Sat, 06 Jun 2020 09:29:40 -0400
X-Authenticated-User: mattiase@HIDDEN
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu;
 s=maildub; t=1591450174;
 bh=Q7L2t01bzD0Gp9w1YwDcKsQOepa8E7GDWP8E9rDiShg=;
 h=Subject:From:In-Reply-To:Date:Cc:References:To:From;
 b=Ijug6IQocfRjcN3FQHaCwokrEyd51NhWfwgnsytsnw8J6gXSH05eGKM4hKRgoa92K
 PH03gPEbKm9YBqoJmJT3QPUfXWRepb4S4+7e0FZ5eMFA4N+SykUjpUcvIV2vS2YUAO
 B/2BUJiUseiN2ZcjZXYCt4GCXDCluU5GhjTwhqKM=
Feedback-ID: mattiase@HIDDEN
Received: from stanniol.lan (c-4e4ae655.032-75-73746f71.bbcust.telenor.se
 [85.230.74.78]) (authenticated bits=0)
 by mail51c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 056DTWI6030485; 
 Sat, 6 Jun 2020 13:29:33 +0000
Content-Type: text/plain;
	charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.14\))
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>
In-Reply-To: <83r1us8kw6.fsf@HIDDEN>
Date: Sat, 6 Jun 2020 15:29:31 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <020DE875-14A8-457A-9AE4-AA0925DB8997@HIDDEN>
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN> <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN> <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN> <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN> <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN> <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN> <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
 <83r1us8kw6.fsf@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
X-Mailer: Apple Mail (2.3445.104.14)
X-CTCH-RefID: str=0001.0A782F23.5EDB99C4.000C:SCFSTAT68638221, ss=1, re=-4.000,
 recu=0.000, reip=0.000, cl=1, cld=1, fgs=0
X-CTCH-VOD: Unknown
X-CTCH-Spam: Unknown
X-CTCH-Score: -4.000
X-CTCH-Rules: 
X-CTCH-Flags: 0
X-CTCH-ScoreCust: 0.000
X-CSC: 0
X-CHA: v=2.3 cv=MOMeZ/Rl c=1 sm=1 tr=0 a=klNLuyVZdLUgl+K5Uafb2A==:117
 a=klNLuyVZdLUgl+K5Uafb2A==:17 a=kj9zAlcOel0A:10 a=M51BFTxLslgA:10
 a=mDV3o1hIAAAA:8 a=IwwuGxysOwN4sJXSbG8A:9 a=CjuIK1q_8ugA:10
 a=_FVE-zBwftR9WsbkzFJk:22
X-Spam-Score: 1.2 (+)
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:  6 juni 2020 kl. 13.59 skrev Eli Zaretskii <eliz@HIDDEN>:
 > I have already pointed out the negative consequences: the fix you > proposed
 changes the behavior and return values of a low-level API > that is used
 in many places, both directly and indirectly. Th [...] 
 Content analysis details:   (1.2 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.0 URIBL_BLOCKED          ADMINISTRATOR NOTICE: The query to URIBL was
 blocked.  See
 http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block
 for more information. [URIs: gnu.org]
 1.0 SPF_SOFTFAIL           SPF: sender does not match SPF record (softfail)
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 0.3 KHOP_HELO_FCRDNS       Relay HELO differs from its IP's reverse DNS
X-Debbugs-Envelope-To: 41544
Cc: 41544 <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.0 (/)

6 juni 2020 kl. 13.59 skrev Eli Zaretskii <eliz@HIDDEN>:

> I have already pointed out the negative consequences: the fix you
> proposed changes the behavior and return values of a low-level API
> that is used in many places, both directly and indirectly. Thus, it
> runs a high risk of producing bugs and breaking code that works well
> enough now.

This is very speculative and hypothetical. Forgive me for being =
sceptical, but can you come up with a concrete and realistic example of =
what you think will break?

> That is, assuming we are still talking about the last patch you
> posted in this matter.

We were specifically talking about fixing the bug in color-name-to-rgb, =
I believe. It is subordinate to the main change, which we have not =
discussed at all. If you like, we could leave color-name-to-rgb alone, =
and we will see whether the change is needed when doing the actual work =
(color-dark-p).

> My assumption is that making changes for purely academic and/or
> aesthetic reasons is something that we should avoid.

That is a rather disparaging way of referring to fixes intended to make =
code working as advertised.=20

> I don't even understand what each paragraph above tries to say, and/or
> with what argument of mine it attempts to argue.

You were saying that #ffffffffffff is as good an approximation as any =
other, and I was showing that it's not.

> Specifically, what is there that is the current state of affairs, what
> is that _should_be_ the state of affairs

The current state of affairs is that 'color-values' returns an incorrect =
value in certain cases. This can be fixed by making the code simpler and =
more robust.





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

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


Received: (at 41544) by debbugs.gnu.org; 6 Jun 2020 12:00:15 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jun 06 08:00:15 2020
Received: from localhost ([127.0.0.1]:50969 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jhXUk-0001f6-QQ
	for submit <at> debbugs.gnu.org; Sat, 06 Jun 2020 08:00:15 -0400
Received: from eggs.gnu.org ([209.51.188.92]:48562)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1jhXUi-0001eM-GP
 for 41544 <at> debbugs.gnu.org; Sat, 06 Jun 2020 08:00:13 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:59478)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <eliz@HIDDEN>)
 id 1jhXUd-0003iI-06; Sat, 06 Jun 2020 08:00:07 -0400
Received: from [176.228.60.248] (port=4848 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1jhXUX-0005Xp-L4; Sat, 06 Jun 2020 08:00:03 -0400
Date: Sat, 06 Jun 2020 14:59:53 +0300
Message-Id: <83r1us8kw6.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Mattias =?utf-8?Q?Engdeg=C3=A5rd?= <mattiase@HIDDEN>
In-Reply-To: <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN> (message from
 Mattias =?utf-8?Q?Engdeg=C3=A5rd?= on Sat, 6 Jun 2020 12:59:53 +0200)
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN> <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN> <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN> <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN> <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN> <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN> <CD510955-CF47-4F8C-9F95-C9FFF9791496@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: 41544
Cc: 41544 <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: Mattias Engdegård <mattiase@HIDDEN>
> Date: Sat, 6 Jun 2020 12:59:53 +0200
> Cc: 41544 <at> debbugs.gnu.org
> 
> Thank you all the same, but I'd like to fix this bug nevertheless. It is clearly a bug, and I'm one of those writing code calling color-values and thus being affected by it. Of course, if you can show some negative consequence of the suggested fix, then some alternative has to be considered.

I have already pointed out the negative consequences: the fix you
proposed changes the behavior and return values of a low-level API
that is used in many places, both directly and indirectly.  Thus, it
runs a high risk of producing bugs and breaking code that works well
enough now.

That is, assuming we are still talking about the last patch you
posted in this matter.

> Instead of replying point-for-point, which can go on forever, let's try to break the stalemate; we are clearly talking past one another. I'm trying to understand your assumptions, and hope that you will do me the same courtesy.

My assumption is that making changes for purely academic and/or
aesthetic reasons is something that we should avoid.  Time and again
such changes just introduce bugs in other places, wasting our time and
scarce resources, and leaving the overall quality of Emacs is none the
better.  I will therefore object to any low-level changes that don't
fix clear-cut practical problems in some important functionality.

> The values returned from color-values are scaled to a maximum of 65535 for all Emacs displays (except NS). Just because a TTY does not have a 'white' colour with RGB values (65535 65535 65535) does not mean that the scale is somehow different.
> 
> In the case of TERM=xterm-color, the brightest colour (confusingly named "white") is (58853 58853 58853). This doesn't mean that 58853 is the maximum colour component value; it just means that the brightest colour is not pure white but something like a 90% grey, ie (0.9 0.9 0.9) in 1-normalised RGB notation.
> 
> The method of using (color-values "#ffffffffffff") was a clever trick for obtaining the scale factor without having to know exactly what the maximum was for that frame, since parts of Emacs had different ideas of what range to actually use: it was common for some time to convert from 8 to 16 bit/channel by shifting 8 bits to the left. I've read through bug#25890 and bug#24273, as well as poured over the change history, and it seems very clear where this came from.
> 
> However, the back-end code appears much more robust and regular now, and the code can be simplified, as well as avoiding the irregularities occurring with TTYs lacking a pure white colour. Surely there is no harm in that?

Here you again lost me, sorry.  You asked for understanding of your
assumptions, but I cannot glean those assumptions from the text above.
I don't even understand what each paragraph above tries to say, and/or
with what argument of mine it attempts to argue.

Specifically, what is there that is the current state of affairs, what
is that _should_be_ the state of affairs in your opinion (a.k.a. "your
assumptions", I presume), and why what we have now is in your opinion
so bad that we must fix it?




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

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


Received: (at 41544) by debbugs.gnu.org; 6 Jun 2020 11:00:07 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jun 06 07:00:07 2020
Received: from localhost ([127.0.0.1]:50874 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jhWYY-0006L0-Pm
	for submit <at> debbugs.gnu.org; Sat, 06 Jun 2020 07:00:07 -0400
Received: from mail1444c50.megamailservers.eu ([91.136.14.44]:56372
 helo=mail264c50.megamailservers.eu)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mattiase@HIDDEN>) id 1jhWYV-0006JX-Px
 for 41544 <at> debbugs.gnu.org; Sat, 06 Jun 2020 07:00:05 -0400
X-Authenticated-User: mattiase@HIDDEN
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu;
 s=maildub; t=1591441197;
 bh=3396mviELq+yOhmgZNGLlG7HXvBLyK1Pi+qhuA0uLP0=;
 h=Subject:From:In-Reply-To:Date:Cc:References:To:From;
 b=RuLbfhUPbaGVBBIyROSpVvHFYUIpzAdiBvrI/x/VjrdSzJNpCEzghdRyTgLgefGiM
 ahgSly/5YGjihLqI2BL2p5hPFJM/O+AqzEdkWPvv5Haxn1B2fuK8So69TjZK3K6kUz
 mtM7v4fxESf/mxZe77DqSLnkL3SqVEg5z7vn0j4I=
Feedback-ID: mattiase@HIDDEN
Received: from stanniol.lan (c-4e4ae655.032-75-73746f71.bbcust.telenor.se
 [85.230.74.78]) (authenticated bits=0)
 by mail264c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 056AxsUb014456; 
 Sat, 6 Jun 2020 10:59:56 +0000
Content-Type: text/plain;
	charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.14\))
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>
In-Reply-To: <838sh0abzz.fsf@HIDDEN>
Date: Sat, 6 Jun 2020 12:59:53 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <CD510955-CF47-4F8C-9F95-C9FFF9791496@HIDDEN>
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN> <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN> <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN> <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN> <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN> <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
 <838sh0abzz.fsf@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
X-Mailer: Apple Mail (2.3445.104.14)
X-CTCH-RefID: str=0001.0A782F27.5EDB76CD.0044:SCFSTAT68638221, ss=1, re=-4.000,
 recu=0.000, reip=0.000, cl=1, cld=1, fgs=0
X-CTCH-VOD: Unknown
X-CTCH-Spam: Unknown
X-CTCH-Score: -4.000
X-CTCH-Rules: 
X-CTCH-Flags: 0
X-CTCH-ScoreCust: 0.000
X-CSC: 0
X-CHA: v=2.3 cv=PPNxBsiC c=1 sm=1 tr=0 a=klNLuyVZdLUgl+K5Uafb2A==:117
 a=klNLuyVZdLUgl+K5Uafb2A==:17 a=kj9zAlcOel0A:10 a=M51BFTxLslgA:10
 a=mDV3o1hIAAAA:8 a=Ecc4TiwEbbgJAD0glIkA:9 a=CjuIK1q_8ugA:10
 a=_FVE-zBwftR9WsbkzFJk:22
X-Spam-Score: 1.2 (+)
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:  [I've left Tom and Simon out of the CC list to spare them
 the noise.] 6 juni 2020 kl. 09.29 skrev Eli Zaretskii <eliz@HIDDEN>: > That
 in itself is not bad, IMO. When I said "in practice", I meant > practical
 problems this causes, and that inevitably involves some > callers of that
 function (and the callers of those callers) t [...] 
 Content analysis details:   (1.2 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.0 URIBL_BLOCKED          ADMINISTRATOR NOTICE: The query to URIBL was
 blocked.  See
 http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block
 for more information. [URIs: gnu.org]
 1.0 SPF_SOFTFAIL           SPF: sender does not match SPF record (softfail)
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 0.3 KHOP_HELO_FCRDNS       Relay HELO differs from its IP's reverse DNS
X-Debbugs-Envelope-To: 41544
Cc: 41544 <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.0 (/)

[I've left Tom and Simon out of the CC list to spare them the noise.]

6 juni 2020 kl. 09.29 skrev Eli Zaretskii <eliz@HIDDEN>:

> That in itself is not bad, IMO.  When I said "in practice", I meant
> practical problems this causes, and that inevitably involves some
> callers of that function (and the callers of those callers) that
> suffer problems which show on display or cause incorrect decisions to
> be made in specific Lisp applications.  What you presented are
> theoretical difficulties that IMO don't yet justify any significant
> changes on this level, not by themselves.

Thank you all the same, but I'd like to fix this bug nevertheless. It is =
clearly a bug, and I'm one of those writing code calling color-values =
and thus being affected by it. Of course, if you can show some negative =
consequence of the suggested fix, then some alternative has to be =
considered.

Instead of replying point-for-point, which can go on forever, let's try =
to break the stalemate; we are clearly talking past one another. I'm =
trying to understand your assumptions, and hope that you will do me the =
same courtesy.

The values returned from color-values are scaled to a maximum of 65535 =
for all Emacs displays (except NS). Just because a TTY does not have a =
'white' colour with RGB values (65535 65535 65535) does not mean that =
the scale is somehow different.

In the case of TERM=3Dxterm-color, the brightest colour (confusingly =
named "white") is (58853 58853 58853). This doesn't mean that 58853 is =
the maximum colour component value; it just means that the brightest =
colour is not pure white but something like a 90% grey, ie (0.9 0.9 0.9) =
in 1-normalised RGB notation.

The method of using (color-values "#ffffffffffff") was a clever trick =
for obtaining the scale factor without having to know exactly what the =
maximum was for that frame, since parts of Emacs had different ideas of =
what range to actually use: it was common for some time to convert from =
8 to 16 bit/channel by shifting 8 bits to the left. I've read through =
bug#25890 and bug#24273, as well as poured over the change history, and =
it seems very clear where this came from.

However, the back-end code appears much more robust and regular now, and =
the code can be simplified, as well as avoiding the irregularities =
occurring with TTYs lacking a pure white colour. Surely there is no harm =
in that?





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

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


Received: (at 41544) by debbugs.gnu.org; 6 Jun 2020 07:29:31 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jun 06 03:29:31 2020
Received: from localhost ([127.0.0.1]:50584 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jhTGc-0004x9-2L
	for submit <at> debbugs.gnu.org; Sat, 06 Jun 2020 03:29:31 -0400
Received: from eggs.gnu.org ([209.51.188.92]:56104)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1jhTGa-0004wx-DD
 for 41544 <at> debbugs.gnu.org; Sat, 06 Jun 2020 03:29:20 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:57436)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <eliz@HIDDEN>)
 id 1jhTGU-000176-Ai; Sat, 06 Jun 2020 03:29:14 -0400
Received: from [176.228.60.248] (port=3805 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1jhTGT-0006o1-DF; Sat, 06 Jun 2020 03:29:13 -0400
Date: Sat, 06 Jun 2020 10:29:04 +0300
Message-Id: <838sh0abzz.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Mattias =?utf-8?Q?Engdeg=C3=A5rd?= <mattiase@HIDDEN>
In-Reply-To: <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN> (message from
 Mattias =?utf-8?Q?Engdeg=C3=A5rd?= on Fri, 5 Jun 2020 17:50:47 +0200)
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN> <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN> <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN> <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN> <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN> <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.1 (--)
X-Debbugs-Envelope-To: 41544
Cc: tom@HIDDEN, simon@HIDDEN, 41544 <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: Mattias Engdegård <mattiase@HIDDEN>
> Date: Fri, 5 Jun 2020 17:50:47 +0200
> Cc: tom@HIDDEN, simon@HIDDEN, 41544 <at> debbugs.gnu.org
> 
> > What bad results does this issue cause in practice?
> 
> The immediate bad result is that color-name-to-rgb returns a value that is (a) wrong and (b) outside the range of legal values for that function. Code calling it expect the value to be (a) correct and (b) within the range of legal values.

That in itself is not bad, IMO.  When I said "in practice", I meant
practical problems this causes, and that inevitably involves some
callers of that function (and the callers of those callers) that
suffer problems which show on display or cause incorrect decisions to
be made in specific Lisp applications.  What you presented are
theoretical difficulties that IMO don't yet justify any significant
changes on this level, not by themselves.

> > (Btw, in a GUI session I see (0.0 0.0 1.0), so no problem there.)
> 
> Of course, but this was specifically in terminals where the colour closest to full white isn't.

On such terminals we will always have a problem, because "white" (and
"red" and "blue", and in fact any color specified by its name) is not
well-defined.  Their RGB values depend on external factors and
configurations that we cannot control, like X-level configuration of
the first 8 or 16 xterm colors.

IOW, this problem cannot be solved in principle, and we shouldn't even
try.  We currently have a solution that works "well enough" for those
cases, and I see no reason to make any significant changes in what we
arrived at after a long journey (which started during development of
Emacs 21).

> >> The main problem is trusting "#ffffffffffff" to match a colour with the maximum range.
> > 
> > Why is that a problem, given the color representation we use in Emacs?
> 
> Because there is not always a matching (white) colour that has the maximum component value.

This cannot be helped on a TTY.  Using #ffffffffffff is as good an
approximation as any other, and better than some which we tried in the
past.  I see no reason to make any changes due to this theoretical
issue.

> (1) We know that the maximum colour component value is 65535 or 65280, depending on the platform (display system).
> (2) color-name-to-rgb needs the maximum colour component value in order to normalise the result.
> (3) color-name-to-rgb currently uses (color-values "#ffffffffffff") to obtain the maximum colour component value, but it is not always correct.
> (4) Instead, we can just use 65535 or 65280 right away, which is fast and always correct.

This would make the result dependent on the frame, since the TTY type
can be different for different frames.  That would give rise to new
and exciting bugs, because these APIs currently don't accept a FRAME
argument (adding such an argument, while it can be made
backward-compatible, will take eons to propagate to Lisp code).

Again, I see no justification for such a change.  If we think these
minor deviations from theoretically perfect results may confuse
someone, we can document these pitfalls in any number of words we see
fit.




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

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


Received: (at 41544) by debbugs.gnu.org; 5 Jun 2020 15:51:01 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jun 05 11:51:01 2020
Received: from localhost ([127.0.0.1]:49635 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jhEcW-0000uy-NE
	for submit <at> debbugs.gnu.org; Fri, 05 Jun 2020 11:51:01 -0400
Received: from mail213c50.megamailservers.eu ([91.136.10.223]:32280
 helo=mail194c50.megamailservers.eu)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mattiase@HIDDEN>) id 1jhEcT-0000uk-G5
 for 41544 <at> debbugs.gnu.org; Fri, 05 Jun 2020 11:50:59 -0400
X-Authenticated-User: mattiase@HIDDEN
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu;
 s=maildub; t=1591372250;
 bh=6SrGCdAfxtbqzwTu91mjae0VBmB3/8RJwF/b6pOPHtI=;
 h=Subject:From:In-Reply-To:Date:Cc:References:To:From;
 b=FAbvCmx1vukJHA1f0MmvPdo0cY9Y+MLWB6O3xOJVdqtQFfA1EH8Rxk3Xd6LeHI3Zi
 LgwUZVmzTN1UGkZIsYNvPQ3WtJYFDVhQNYpyvKkPifJA7xnLURuz/tH/gcsdXb1OJF
 Kot2QJtHCUQU/Mmb5pLR6t/24FCRADIz+xbxKzOQ=
Feedback-ID: mattiase@HIDDEN
Received: from stanniol.lan (c-4e4ae655.032-75-73746f71.bbcust.telenor.se
 [85.230.74.78]) (authenticated bits=0)
 by mail194c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 055FolQo028398; 
 Fri, 5 Jun 2020 15:50:49 +0000
Content-Type: text/plain;
	charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.14\))
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>
In-Reply-To: <835zc5bsut.fsf@HIDDEN>
Date: Fri, 5 Jun 2020 17:50:47 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <3BBCFDD4-C14D-4628-91CB-2A0456A96FC7@HIDDEN>
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN> <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN> <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN> <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN> <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
 <835zc5bsut.fsf@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
X-Mailer: Apple Mail (2.3445.104.14)
X-CTCH-RefID: str=0001.0A782F21.5EDA6969.0073:SCFSTAT68638221, ss=1, re=-4.000,
 recu=0.000, reip=0.000, cl=1, cld=1, fgs=0
X-CTCH-VOD: Unknown
X-CTCH-Spam: Unknown
X-CTCH-Score: -4.000
X-CTCH-Rules: 
X-CTCH-Flags: 0
X-CTCH-ScoreCust: 0.000
X-CSC: 0
X-CHA: v=2.3 cv=KsozJleN c=1 sm=1 tr=0 a=klNLuyVZdLUgl+K5Uafb2A==:117
 a=klNLuyVZdLUgl+K5Uafb2A==:17 a=kj9zAlcOel0A:10 a=M51BFTxLslgA:10
 a=mDV3o1hIAAAA:8 a=-VOMddSL8ucwYjIa_j4A:9 a=CjuIK1q_8ugA:10
 a=_FVE-zBwftR9WsbkzFJk:22
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 41544
Cc: tom@HIDDEN, simon@HIDDEN, 41544 <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.0 (/)

5 juni 2020 kl. 14.27 skrev Eli Zaretskii <eliz@HIDDEN>:

> There's some history to that: see bug#25890.

Thank you very much, that certainly gives some historical perspective!

> What bad results does this issue cause in practice?

The immediate bad result is that color-name-to-rgb returns a value that =
is (a) wrong and (b) outside the range of legal values for that =
function. Code calling it expect the value to be (a) correct and (b) =
within the range of legal values.

> (Btw, in a GUI session I see (0.0 0.0 1.0), so no problem there.)

Of course, but this was specifically in terminals where the colour =
closest to full white isn't.

>> The main problem is trusting "#ffffffffffff" to match a colour with =
the maximum range.
>=20
> Why is that a problem, given the color representation we use in Emacs?

Because there is not always a matching (white) colour that has the =
maximum component value. The example I gave was for TERM=3Dxterm-color, =
where the closest colour is (#xe5e5 #xe5e5 #xe5e5).

Note that this does not mean that the gamut for that terminal is somehow =
normalised with (0xe5e5 0xe5e5 0xe5e5) as perfect white; it is not. It =
is still the case that the maximum component value is either #xffff or =
#xff00; in this case #xffff.

Now, for non-TTY Emacs, we typically have an unlimited number of colours =
and (color-values "#ffffffffffff") returns the expected value. The same =
goes for a TTY where "white" is indeed white and not washed-out grey, =
such as TERM=3Dlinux.

> Sorry, you lost me here.  I don't understand what you are saying here
> and what does that have to do with the problem being discussed.

Let me try again:
(1) We know that the maximum colour component value is 65535 or 65280, =
depending on the platform (display system).
(2) color-name-to-rgb needs the maximum colour component value in order =
to normalise the result.
(3) color-name-to-rgb currently uses (color-values "#ffffffffffff") to =
obtain the maximum colour component value, but it is not always correct.
(4) Instead, we can just use 65535 or 65280 right away, which is fast =
and always correct.

The rest of my argument was merely discarding the possible alternative =
solution of redefining "white" as (255 255 255) for xterm-color.

> yields "(65535 65535 65535)", so I don't think I understand what
> problem you are concerned with here, and how can this cause a crash.

Sorry, I should have been more specific: this condition is present =
earlier, in frame-set-background-mode, before the --eval arguments are =
processed. This only pertains to the main part of the patch, which we =
have not yet discussed. I cannot fault you for being impatient!





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

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


Received: (at 41544) by debbugs.gnu.org; 5 Jun 2020 12:27:54 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jun 05 08:27:54 2020
Received: from localhost ([127.0.0.1]:48493 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jhBRx-00028I-Si
	for submit <at> debbugs.gnu.org; Fri, 05 Jun 2020 08:27:54 -0400
Received: from eggs.gnu.org ([209.51.188.92]:47600)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1jhBRw-000285-1c
 for 41544 <at> debbugs.gnu.org; Fri, 05 Jun 2020 08:27:53 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:35508)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <eliz@HIDDEN>)
 id 1jhBRq-0008R0-CA; Fri, 05 Jun 2020 08:27:46 -0400
Received: from [176.228.60.248] (port=1299 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1jhBRd-00066j-RT; Fri, 05 Jun 2020 08:27:44 -0400
Date: Fri, 05 Jun 2020 15:27:22 +0300
Message-Id: <835zc5bsut.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Mattias =?utf-8?Q?Engdeg=C3=A5rd?= <mattiase@HIDDEN>
In-Reply-To: <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN> (message from
 Mattias =?utf-8?Q?Engdeg=C3=A5rd?= on Thu, 4 Jun 2020 17:29:06 +0200)
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN> <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN> <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN> <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN> <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.1 (--)
X-Debbugs-Envelope-To: 41544
Cc: tom@HIDDEN, simon@HIDDEN, 41544 <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.1 (---)

> From: Mattias Engdegård <mattiase@HIDDEN>
> Date: Thu, 4 Jun 2020 17:29:06 +0200
> Cc: tom@HIDDEN, simon@HIDDEN, 41544 <at> debbugs.gnu.org
> 
> 1. color-name-to-rgb calls (color-values "#ffffffffffff") as a means to get the range of the colour values.

There's some history to that: see bug#25890.

> 2. With TERM=xterm-color, there are 8 colours. These are assumed to be the 8 first of xterm-standard-colors (xterm.el).
> 3. The colour closest to "#ffffffffffff" is "white", with the values (229 229 229), or translated to 16 bit/channel, (#e5e5 #e5e5 #e5e5) which color-values returns.
> 4. "blue" has the values (0 0 238), or (0 0 #xeeee).
> 5. Thus color-name-to-rgb returns #xeeee/#xe5e5 for the blue channel, or 1.039, which is a clear bug.

What bad results does this issue cause in practice?

(Btw, in a GUI session I see (0.0 0.0 1.0), so no problem there.)

> The main problem is trusting "#ffffffffffff" to match a colour with the maximum range.

Why is that a problem, given the color representation we use in Emacs?

> It could be argued that xterm.el shouldn't use subdued colours when only 8 are present; I didn't go far back in XTerm history to find out. Modern XTerm has default colours 0-7 that correspond to the assumptions of Emacs.
> 
> Since we already document that the colour channel maximum is either 65535 or 65280 depending on platform, taking the very roundabout way of trying to match a sufficiently white colour and using its components is demonstrably unsafe and error-prone, as well as unnecessarily slow. Hence color-component-max in the patch.

Sorry, you lost me here.  I don't understand what you are saying here
and what does that have to do with the problem being discussed.

> This also fixes a different problem: if the display hasn't been initialised fully, such as when running in batch mode, then (color-values "#ffffffffffff") returns nil, and as we shall see later, it may be useful to be able to call color-name-to-rgb at this stage without crashing.

This command:

  emacs -batch --eval "(message \"%s\" (color-name-to-rgb \"white\"))"

yields "(1.0 1.0 1.0)" on my system with today's master branch, and
this command:

  emacs -batch --eval "(message \"%s\" (color-values \"#ffffffffffff\"))"

yields "(65535 65535 65535)", so I don't think I understand what
problem you are concerned with here, and how can this cause a crash.
Please elaborate.




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

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


Received: (at 41544) by debbugs.gnu.org; 4 Jun 2020 15:29:14 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jun 04 11:29:14 2020
Received: from localhost ([127.0.0.1]:47256 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jgrnt-0006k4-Tc
	for submit <at> debbugs.gnu.org; Thu, 04 Jun 2020 11:29:14 -0400
Received: from mail74c50.megamailservers.eu ([91.136.10.84]:41320
 helo=mail92c50.megamailservers.eu)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mattiase@HIDDEN>) id 1jgrnr-0006jv-Qf
 for 41544 <at> debbugs.gnu.org; Thu, 04 Jun 2020 11:29:12 -0400
X-Authenticated-User: mattiase@HIDDEN
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu;
 s=maildub; t=1591284550;
 bh=vhoSfDx0Wg6U5tW75QwhEcmfdbvvgQmIR5rB3QhC5j4=;
 h=Subject:From:In-Reply-To:Date:Cc:References:To:From;
 b=pFzquu8XqCoyMbJjHtagG0KJS9NN3FxRBEap6xaOnuwqbJx7lK1EibyhojYXlPtKr
 u4nyrtEf7pVmi10h/CJT4vLv9jjJbUGu8buEI+k2KfuiZQUOo5XqPzpr2g8nzsq8YH
 9T9IiHdrG2APC7GmA5ScXIERmxGUj/el8o9cMx8Q=
Feedback-ID: mattiase@HIDDEN
Received: from stanniol.lan (c-4e4ae655.032-75-73746f71.bbcust.telenor.se
 [85.230.74.78]) (authenticated bits=0)
 by mail92c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 054FT6VY004750; 
 Thu, 4 Jun 2020 15:29:08 +0000
Content-Type: text/plain;
	charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.14\))
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>
In-Reply-To: <83o8pyc4bq.fsf@HIDDEN>
Date: Thu, 4 Jun 2020 17:29:06 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <55D73CA5-1EFB-4B0A-8F8B-FDA1D39F51BF@HIDDEN>
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN> <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN> <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN> <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
 <83o8pyc4bq.fsf@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
X-Mailer: Apple Mail (2.3445.104.14)
X-CTCH-RefID: str=0001.0A782F1F.5ED912DC.00B2:SCFSTAT68638221, ss=1, re=-4.000,
 recu=0.000, reip=0.000, cl=1, cld=1, fgs=0
X-CTCH-VOD: Unknown
X-CTCH-Spam: Unknown
X-CTCH-Score: -4.000
X-CTCH-Rules: 
X-CTCH-Flags: 0
X-CTCH-ScoreCust: 0.000
X-CSC: 0
X-CHA: v=2.3 cv=aY8fYigt c=1 sm=1 tr=0 a=klNLuyVZdLUgl+K5Uafb2A==:117
 a=klNLuyVZdLUgl+K5Uafb2A==:17 a=kj9zAlcOel0A:10 a=M51BFTxLslgA:10
 a=mDV3o1hIAAAA:8 a=pfK807lD-pJQ71N_UpEA:9 a=CjuIK1q_8ugA:10
 a=_FVE-zBwftR9WsbkzFJk:22
X-Spam-Score: 1.4 (+)
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:  4 juni 2020 kl. 16.07 skrev Eli Zaretskii <eliz@HIDDEN>:
 > Let's please discuss each problem in detail (I tried to understand > them
 from the log message you posted, but couldn't find rationale > there). >
 > And in any case, I will prefer solutions that fix [...] 
 Content analysis details:   (1.4 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.0 URIBL_BLOCKED          ADMINISTRATOR NOTICE: The query to URIBL was
 blocked.  See
 http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block
 for more information. [URIs: gnu.org]
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 1.0 SPF_SOFTFAIL           SPF: sender does not match SPF record (softfail)
 0.4 KHOP_HELO_FCRDNS       Relay HELO differs from its IP's reverse DNS
X-Debbugs-Envelope-To: 41544
Cc: tom@HIDDEN, simon@HIDDEN, 41544 <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.0 (/)

4 juni 2020 kl. 16.07 skrev Eli Zaretskii <eliz@HIDDEN>:

> Let's please discuss each problem in detail (I tried to understand
> them from the log message you posted, but couldn't find rationale
> there).
>=20
> And in any case, I will prefer solutions that fix any problems
> locally, not changes in low-level stuff used in many other places,
> because the latter run the risk of introducing new bugs.  As the
> problems are quite minor, AFAICT, solving them in unsafe ways is
> something to be avoided.

I think we agree. There should be nothing unsafe here other than the =
code being replaced, but code should be scrutinised.

> You mean, the component that is 1.0393?  What bad decisions caused
> that, what problems does this small deviation causes in itself?

Yes, this is as good a place to start as any, and the fix for this is a =
good change on its own. It goes something like this:

1. color-name-to-rgb calls (color-values "#ffffffffffff") as a means to =
get the range of the colour values.
2. With TERM=3Dxterm-color, there are 8 colours. These are assumed to be =
the 8 first of xterm-standard-colors (xterm.el).
3. The colour closest to "#ffffffffffff" is "white", with the values =
(229 229 229), or translated to 16 bit/channel, (#e5e5 #e5e5 #e5e5) =
which color-values returns.
4. "blue" has the values (0 0 238), or (0 0 #xeeee).
5. Thus color-name-to-rgb returns #xeeee/#xe5e5 for the blue channel, or =
1.039, which is a clear bug.

The main problem is trusting "#ffffffffffff" to match a colour with the =
maximum range. It could be argued that xterm.el shouldn't use subdued =
colours when only 8 are present; I didn't go far back in XTerm history =
to find out. Modern XTerm has default colours 0-7 that correspond to the =
assumptions of Emacs.

Since we already document that the colour channel maximum is either =
65535 or 65280 depending on platform, taking the very roundabout way of =
trying to match a sufficiently white colour and using its components is =
demonstrably unsafe and error-prone, as well as unnecessarily slow. =
Hence color-component-max in the patch.

This also fixes a different problem: if the display hasn't been =
initialised fully, such as when running in batch mode, then =
(color-values "#ffffffffffff") returns nil, and as we shall see later, =
it may be useful to be able to call color-name-to-rgb at this stage =
without crashing.





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

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


Received: (at 41544) by debbugs.gnu.org; 4 Jun 2020 14:07:43 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jun 04 10:07:43 2020
Received: from localhost ([127.0.0.1]:47173 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jgqX1-0004la-8k
	for submit <at> debbugs.gnu.org; Thu, 04 Jun 2020 10:07:43 -0400
Received: from eggs.gnu.org ([209.51.188.92]:51956)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1jgqWz-0004lN-FN
 for 41544 <at> debbugs.gnu.org; Thu, 04 Jun 2020 10:07:41 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:33343)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <eliz@HIDDEN>)
 id 1jgqWt-0004b1-Hj; Thu, 04 Jun 2020 10:07:35 -0400
Received: from [176.228.60.248] (port=2435 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1jgqWs-0006uU-Ka; Thu, 04 Jun 2020 10:07:35 -0400
Date: Thu, 04 Jun 2020 17:07:21 +0300
Message-Id: <83o8pyc4bq.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Mattias =?utf-8?Q?Engdeg=C3=A5rd?= <mattiase@HIDDEN>
In-Reply-To: <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN> (message from
 Mattias =?utf-8?Q?Engdeg=C3=A5rd?= on Wed, 3 Jun 2020 22:08:46 +0200)
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN> <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN> <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN> <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.1 (--)
X-Debbugs-Envelope-To: 41544
Cc: tom@HIDDEN, simon@HIDDEN, 41544 <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.1 (---)

> From: Mattias Engdegård <mattiase@HIDDEN>
> Date: Wed, 3 Jun 2020 22:08:46 +0200
> Cc: Tom Tromey <tom@HIDDEN>, Simon Pugnet <simon@HIDDEN>,
>         41544 <at> debbugs.gnu.org
> 
> Now about the consolidation of the contrast colour predicate (color-dark-p): as described previously in detail, the current code for doing so in various places is unsatisfactory. For example, some of the methods employed classify #00ff00 as a "dark" colour, leading to suboptimal results. (Try typing #00ff00 in css-mode.)

Let's please discuss each problem in detail (I tried to understand
them from the log message you posted, but couldn't find rationale
there).

And in any case, I will prefer solutions that fix any problems
locally, not changes in low-level stuff used in many other places,
because the latter run the risk of introducing new bugs.  As the
problems are quite minor, AFAICT, solving them in unsafe ways is
something to be avoided.

> There are other bugs that are annoying in themselves, but need to be fixed in order to make progress. Start Emacs in TTY mode with TERM=xterm-color and evaluate (color-name-to-rgb "blue"). Notice how one of the components is greater than 1 -- this is the unfortunate result of several bad decisions.

You mean, the component that is 1.0393?  What bad decisions caused
that, what problems does this small deviation causes in itself?  We
should weigh the gravity of the problems we try to solve here with the
potential of breaking working code elsewhere which relies on these
idiosyncrasies.

Thanks.




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

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


Received: (at 41544) by debbugs.gnu.org; 4 Jun 2020 08:57:41 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jun 04 04:57:41 2020
Received: from localhost ([127.0.0.1]:45110 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jglgy-0002kQ-Rx
	for submit <at> debbugs.gnu.org; Thu, 04 Jun 2020 04:57:41 -0400
Received: from mail1460c50.megamailservers.eu ([91.136.14.60]:50674
 helo=mail267c50.megamailservers.eu)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mattiase@HIDDEN>) id 1jglgw-0002kB-Ai
 for 41544 <at> debbugs.gnu.org; Thu, 04 Jun 2020 04:57:39 -0400
X-Authenticated-User: mattiase@HIDDEN
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu;
 s=maildub; t=1591261051;
 bh=aOioo3604yYitbPwCyDCM8FeJy47KwL1TmO4dh5puZE=;
 h=Subject:From:In-Reply-To:Date:Cc:References:To:From;
 b=AkkBPXt984IzLbvKA8XynZJcx5zx6jejh5fo1eP/+C9hvOP7UKarxrhNQa3/PB9Ph
 qUUwQ3ZFbMmuevNGX8d7NiZ8Lu4Eiy+aN0r8AEZYvjE05N5VnCuzD8t93aS8wyIV1h
 iFILoZX74RFK6YTj0zEqoxgd/hyTu1CNfvvo/ebE=
Feedback-ID: mattiase@HIDDEN
Received: from stanniol.lan (c-4e4ae655.032-75-73746f71.bbcust.telenor.se
 [85.230.74.78]) (authenticated bits=0)
 by mail267c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 0548vRDR011007; 
 Thu, 4 Jun 2020 08:57:29 +0000
Content-Type: text/plain;
	charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.14\))
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>
In-Reply-To: <87k10ngxus.fsf@HIDDEN>
Date: Thu, 4 Jun 2020 10:57:27 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <FD9DCD41-6C27-41EB-9EFB-DDF91EB86961@HIDDEN>
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN> <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <87k10ngxus.fsf@HIDDEN>
To: Simon Pugnet <simon@HIDDEN>
X-Mailer: Apple Mail (2.3445.104.14)
X-CTCH-RefID: str=0001.0A782F22.5ED8B701.005B:SCFSTAT68638221, ss=1, re=-4.000,
 recu=0.000, reip=0.000, cl=1, cld=1, fgs=0
X-CTCH-VOD: Unknown
X-CTCH-Spam: Unknown
X-CTCH-Score: -4.000
X-CTCH-Rules: 
X-CTCH-Flags: 0
X-CTCH-ScoreCust: 0.000
X-CSC: 0
X-CHA: v=2.3 cv=Cf92G4jl c=1 sm=1 tr=0 a=klNLuyVZdLUgl+K5Uafb2A==:117
 a=klNLuyVZdLUgl+K5Uafb2A==:17 a=kj9zAlcOel0A:10 a=M51BFTxLslgA:10
 a=UifCi0nlAAAA:8 a=EJas33KIukAZGsRt7lUA:9 a=CjuIK1q_8ugA:10
 a=4HoP0KxMpNvwstRnlwcE:22
X-Spam-Score: 1.4 (+)
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: 4 juni 2020 kl. 08.15 skrev Simon Pugnet
 <simon@HIDDEN>:
 > I just noticed that the patch and commit
 7e8c1a671872ef8e45057f25912594cf548639ab
 to master both reference the bug incorrectly in test/src/xfaces-tests.el.
 The comment under the new test is "Check s [...] 
 Content analysis details:   (1.4 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.0 URIBL_BLOCKED          ADMINISTRATOR NOTICE: The query to URIBL was
 blocked.  See
 http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block
 for more information. [URIs: megamailservers.eu]
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 1.0 SPF_SOFTFAIL           SPF: sender does not match SPF record (softfail)
 0.4 KHOP_HELO_FCRDNS       Relay HELO differs from its IP's reverse DNS
X-Debbugs-Envelope-To: 41544
Cc: Eli Zaretskii <eliz@HIDDEN>, tom@HIDDEN, 41544 <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.0 (/)

4 juni 2020 kl. 08.15 skrev Simon Pugnet <simon@HIDDEN>:

> I just noticed that the patch and commit =
7e8c1a671872ef8e45057f25912594cf548639ab to master both reference the =
bug incorrectly in test/src/xfaces-tests.el. The comment under the new =
test is "Check symmetry (bug#51455)" however the bug ID is 41544.

Thanks, fixed.





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

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


Received: (at 41544) by debbugs.gnu.org; 4 Jun 2020 08:35:29 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jun 04 04:35:29 2020
Received: from localhost ([127.0.0.1]:45090 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jglLV-0002Cr-A4
	for submit <at> debbugs.gnu.org; Thu, 04 Jun 2020 04:35:29 -0400
Received: from mail-wr1-f49.google.com ([209.85.221.49]:37853)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <simon.pugnet@HIDDEN>) id 1jgjAc-0007FM-RH
 for 41544 <at> debbugs.gnu.org; Thu, 04 Jun 2020 02:16:07 -0400
Received: by mail-wr1-f49.google.com with SMTP id x13so4727463wrv.4
 for <41544 <at> debbugs.gnu.org>; Wed, 03 Jun 2020 23:16:06 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=sender:references:user-agent:from:to:cc:subject:in-reply-to:date
 :message-id:mime-version;
 bh=xYnd9YOqhDKnL5B0JSkg6Pv1Nuup0wKTcQ56pr8Wusk=;
 b=dQ7VBvfrJ8C9WwYgZjINk6ku/848Lz/gFmxhBy/h4xppQjvX4O7DLwHRSN/Xkvi5kt
 0uHWEXRYYP7PVSU9uoCrnqi2kzO9alzAO1OFIRG8UNsUZfHeEy3rRcSAtWaWAXww7Oot
 UEYxCLEg4L6DkXiorS7aI3gQ5pO7h83c3eYRA3gWTHBL/Lia3I/NJNdNbn903Cicdm2Q
 w6jG7lyJdIUDNnMwgMY0frf7qxloCmW76EAdm7Shm+t+iTovJaOFn+9M8JZC6nGllKxt
 Mqqz/h+raP+b6r4F6piXNARkzNuK1oLEtricaMygyu2NV2yfyqilTHL32ilLJzHHVgwx
 KSMw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:sender:references:user-agent:from:to:cc:subject
 :in-reply-to:date:message-id:mime-version;
 bh=xYnd9YOqhDKnL5B0JSkg6Pv1Nuup0wKTcQ56pr8Wusk=;
 b=GY2qovh8aPJpnqvH/SrwktoiDvHLBenuuSihNzIIhoXjBAAr+27Zn7IGzEHIgQeOvg
 eiPXnexV9lCM3iYZJGXtmltXxAs8OLWqzvBM2kvoxuW2PtjRYGyDzikj2zsi2uEqgaMA
 epPSJo3dEleZQwdXkOJXLPPeoeCsQn5d1RjWqaIfh3sAzkJA1lh+DXekvt6xfS8LMys4
 AClQ0XSDUH2WObJKUCmKzRxuccCVaAK/naAsDIIsYcp1pzwFqeacjJheIDI7fl5irmwE
 YRm4ccPYXb83NmSqQAu1M1vgIuKthPpmCISh7Nj7jBsXfnvp5TawTmyqh1Vu4/zKlX7j
 1ZHw==
X-Gm-Message-State: AOAM532V2RxfwHbL/fAqpbI07GNx9TFthwozH/13EPTcxnscMT39k3Wk
 kD4/0skzI0gNJW51gO4RxSKEcCbnTCE=
X-Google-Smtp-Source: ABdhPJytrl6eLZpYmd0lql9CGLXYVByK3+WbHuBZOgN21jjwK05ow3xrCY7T5V1Wopp9xzRY+5Oevw==
X-Received: by 2002:adf:dc8e:: with SMTP id r14mr2599753wrj.333.1591251360744; 
 Wed, 03 Jun 2020 23:16:00 -0700 (PDT)
Received: from karnak (141-136-153-177.dsl.iskon.hr. [141.136.153.177])
 by smtp.gmail.com with ESMTPSA id i3sm6360142wrm.83.2020.06.03.23.15.58
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 03 Jun 2020 23:15:59 -0700 (PDT)
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN> <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
User-agent: mu4e 1.2.0; emacs 26.3
From: Simon Pugnet <simon@HIDDEN>
To: Mattias =?utf-8?Q?Engdeg=C3=A5rd?= <mattiase@HIDDEN>
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
In-reply-to: <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
Date: Thu, 04 Jun 2020 07:15:55 +0100
Message-ID: <87k10ngxus.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=-=-=";
 micalg=pgp-sha256; protocol="application/pgp-signature"
X-Spam-Score: 0.5 (/)
X-Debbugs-Envelope-To: 41544
X-Mailman-Approved-At: Thu, 04 Jun 2020 04:35:28 -0400
Cc: Eli Zaretskii <eliz@HIDDEN>, tom@HIDDEN, 41544 <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.5 (/)

--=-=-=
Content-Type: text/plain; format=flowed

> Very well, it is obviously an improvement. The reason for the 
> current asymmetry was actually that the algorithm discarded the 
> low bits; what about fixing that as well? The improved accuracy 
> amounts to less than 1 % of difference in the return value; no 
> other code needs changing, and we get the symmetry for free. 
> Proposed patch attached.

Firstly, Mattias and Eli, thank you both for investigating and 
dealing with this bug so quickly and thoroughly.

I just noticed that the patch and commit 
7e8c1a671872ef8e45057f25912594cf548639ab to master both reference 
the bug incorrectly in test/src/xfaces-tests.el. The comment under 
the new test is "Check symmetry (bug#51455)" however the bug ID is 
41544.

--=-=-=
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEO/eF3hYsAMj7Tab9uhNZqCwLPvkFAl7YkZsACgkQuhNZqCwL
Pvk4bQ/+PH7d6d4S8fked/BaG5wrfDyc5YmaZGIMQhdllk8ghuxmTZ8fT52dZ/w5
Bhb+/+TP3Ht4p/q3HG5uKm584WFPMtDJABy+umP8KUgA1U/XKa+3uHf1QhN1CBQn
Q97pqZ/kM4Q25lcUVvCdRRX3JMPp0r2cUYk9dTq9V++HLxSIiozyah2aO8oXvC1M
rbNKCII4a4tVioTjgJ0035fxmERAvG+BxSlukhn953kcUvBGco9V3ZI5tgg/ZJxK
JQsdycz8fnd+UR+ZVEBtM0yiH5v4KuyIG3B/S3upq9SFl4QO5SDpiffL3TAnU9CP
8gkn0OUqhTPhjTskAwHM46L6G9xteIhB8AJB3UzT5WczYlYMpeTf/M7h5zbeap5W
v7ijgCARZX2QetwcdInQDQSzSqKrzU7OcZENvHY1sYpMglLK96UqMUOGge7Un5am
UuKZEvWAlR1HpKdIyBruVWu0rGznfmsX3Xtef3hTUZD3mkmXh9qxGD42SHE732rn
XtHS3Fzvap+HBk/N0mnZdMlDYyR+8jE1V1PniaU3ZOgp4Ozvna52hi5rqrzz6WAE
9mxmsrEpV4AhYs+zDZNvjkulGJMc9uayzA19A91IAByKEenrXvymDTiY9Eop6b3V
k6ndjCH17XfYxnzfEihCnNa/iAgBx8gJRpbHxu8w9K3kQrZIEvo=
=6bM1
-----END PGP SIGNATURE-----
--=-=-=--




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

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


Received: (at 41544) by debbugs.gnu.org; 3 Jun 2020 20:09:01 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jun 03 16:09:01 2020
Received: from localhost ([127.0.0.1]:44604 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jgZh6-00010z-8v
	for submit <at> debbugs.gnu.org; Wed, 03 Jun 2020 16:09:01 -0400
Received: from mail1450c50.megamailservers.eu ([91.136.14.50]:58488
 helo=mail265c50.megamailservers.eu)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mattiase@HIDDEN>) id 1jgZh3-00010i-4j
 for 41544 <at> debbugs.gnu.org; Wed, 03 Jun 2020 16:08:58 -0400
X-Authenticated-User: mattiase@HIDDEN
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu;
 s=maildub; t=1591214930;
 bh=VXRY4nZ1v/WVsQgi2nckWUmQ57pZbckp5Au97+Hfj3w=;
 h=From:Subject:Date:In-Reply-To:Cc:To:References:From;
 b=e4zxEn/xUpFzPXawNEFUOv0LmtV7YR6e9R00vMrZHccEI1gHPCa4sIKC8CSrrupEb
 BrJZRFWGo3p565i/gbSKUdihlO2vnTUEZAmE6GnutfQul4MbL3YoobOEVPFxmiQpe3
 n2NABf/22LDIACCsrNr+67pQ9yjNuC6+gdqMb9vc=
Feedback-ID: mattiase@HIDDEN
Received: from stanniol.lan (c-4e4ae655.032-75-73746f71.bbcust.telenor.se
 [85.230.74.78]) (authenticated bits=0)
 by mail265c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 053K8kT7016642; 
 Wed, 3 Jun 2020 20:08:48 +0000
From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>
Message-Id: <624D7FB8-A836-4A7E-8895-47E867214504@HIDDEN>
Content-Type: multipart/mixed;
 boundary="Apple-Mail=_7AF097D7-D9EE-4CBA-891D-80A035FB968B"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.14\))
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
Date: Wed, 3 Jun 2020 22:08:46 +0200
In-Reply-To: <83367ccf8w.fsf@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN> <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN> <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
 <83367ccf8w.fsf@HIDDEN>
X-Mailer: Apple Mail (2.3445.104.14)
X-CTCH-RefID: str=0001.0A782F28.5ED802FF.003B:SCFSTAT68638221, ss=1, re=-4.000,
 recu=0.000, reip=0.000, cl=1, cld=1, fgs=0
X-CTCH-VOD: Unknown
X-CTCH-Spam: Unknown
X-CTCH-Score: -4.000
X-CTCH-Rules: 
X-CTCH-Flags: 0
X-CTCH-ScoreCust: 0.000
X-CSC: 0
X-CHA: v=2.3 cv=D5w51cZj c=1 sm=1 tr=0 a=klNLuyVZdLUgl+K5Uafb2A==:117
 a=klNLuyVZdLUgl+K5Uafb2A==:17 a=M51BFTxLslgA:10 a=mDV3o1hIAAAA:8
 a=vWmk6DFq9m4vw4mpYXoA:9 a=CjuIK1q_8ugA:10 a=BcT7ibRjUQrrFaFC1yUA:9
 a=B2y7HmGcmWMA:10 a=_FVE-zBwftR9WsbkzFJk:22
X-Spam-Score: 1.4 (+)
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:  3 juni 2020 kl. 17.59 skrev Eli Zaretskii <eliz@HIDDEN>:
 > Then I think we should install it. Thank you; pushed to master. 
 Content analysis details:   (1.4 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.0 URIBL_BLOCKED          ADMINISTRATOR NOTICE: The query to URIBL was
 blocked.  See
 http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block
 for more information. [URIs: gnu.org]
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 1.0 SPF_SOFTFAIL           SPF: sender does not match SPF record (softfail)
 0.4 KHOP_HELO_FCRDNS       Relay HELO differs from its IP's reverse DNS
X-Debbugs-Envelope-To: 41544
Cc: Tom Tromey <tom@HIDDEN>, Simon Pugnet <simon@HIDDEN>,
 41544 <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.0 (/)


--Apple-Mail=_7AF097D7-D9EE-4CBA-891D-80A035FB968B
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

3 juni 2020 kl. 17.59 skrev Eli Zaretskii <eliz@HIDDEN>:

> Then I think we should install it.

Thank you; pushed to master.

Now about the consolidation of the contrast colour predicate =
(color-dark-p): as described previously in detail, the current code for =
doing so in various places is unsatisfactory. For example, some of the =
methods employed classify #00ff00 as a "dark" colour, leading to =
suboptimal results. (Try typing #00ff00 in css-mode.)

There are other bugs that are annoying in themselves, but need to be =
fixed in order to make progress. Start Emacs in TTY mode with =
TERM=3Dxterm-color and evaluate (color-name-to-rgb "blue"). Notice how =
one of the components is greater than 1 -- this is the unfortunate =
result of several bad decisions.

The attached patch supersedes the previous one; after staring at colour =
combinations I came to the conclusion that gamma-expansion is a =
necessity, but the exact sRGB composite gamma curve isn't quite =
necessary, and a power of 2.2 is close enough.

It also uses a contrasting text colour for the first column in =
list-colors-display, which serves as a good demonstration of how the =
predicate works for the standard named colours.


--Apple-Mail=_7AF097D7-D9EE-4CBA-891D-80A035FB968B
Content-Disposition: attachment;
	filename=0001-Use-a-single-light-dark-colour-predicate.patch
Content-Type: application/octet-stream;
	x-unix-mode=0644;
	name="0001-Use-a-single-light-dark-colour-predicate.patch"
Content-Transfer-Encoding: quoted-printable

=46rom=20f328bda216f06dd2daff6098c6d60e128da2ef67=20Mon=20Sep=2017=20=
00:00:00=202001=0AFrom:=20=3D?UTF-8?q?Mattias=3D20Engdeg=3DC3=3DA5rd?=3D=20=
<mattiase@HIDDEN>=0ADate:=20Sun,=2031=20May=202020=2021:12:46=20+0200=0A=
Subject:=20[PATCH]=20Use=20a=20single=20light/dark=20colour=20predicate=0A=
=0AAdd=20a=20single=20predicate,=20color-dark-p,=20for=20deciding=20=
whether=20a=20colour=0Ais=20more=20readable=20against=20black=20or=20=
white.=20=20Previously=20this=20was=20done=20in=0Adifferent=20ways=20in=20=
several=20places,=20and=20with=20worse=20results.=20=20(Bug#41544)=0A=0A=
*=20lisp/color.el=20(color-name-to-rgb):=20Use=20color-component-max=20=
instead=0Aof=20the=20error-prone=20method=20of=20(color-values=20=
"#ffffffffffff"),=20which=0Awould=20give=20unexpected=20values=20or=20=
outright=20fail=20if=20called=20without=0Aan=20initialised=20display=20=
(as=20in=20batch=20mode).=0A*=20lisp/facemenu.el=20(list-colors-print):=20=
Use=20readable-foreground-color.=0A(color-dark-p,=20=
color-component-max):=20New=20functions.=0A*=20lisp/term/pc-win.el:=20=
Update=20comment.=0A*=20lisp/term/rxvt.el=20(rxvt-set-background-mode):=0A=
*=20lisp/term/w32console.el=20(terminal-init-w32console):=0A*=20=
lisp/term/xterm.el=20(xterm-maybe-set-dark-background-mode):=0A*=20=
lisp/faces.el=20(readable-foreground-color):=0A*=20lisp/frame.el=20=
(frame-set-background-mode):=20Use=20color-dark-p.=0A*=20=
lisp/textmodes/css-mode.el=20(css--contrasty-color):=20Remove.=0A=
(css--fontify-region):=20Use=20color-dark-p.=0A---=0A=20lisp/color.el=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20|=20=204=20+---=0A=20=
lisp/facemenu.el=20=20=20=20=20=20=20=20=20=20=20|=2011=20+++++------=0A=20=
lisp/faces.el=20=20=20=20=20=20=20=20=20=20=20=20=20=20|=2036=20=
+++++++++++++++++++++++++++---------=0A=20lisp/frame.el=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20|=2010=20+++-------=0A=20lisp/term/pc-win.el=20=20=
=20=20=20=20=20=20|=20=208=20+++-----=0A=20lisp/term/rxvt.el=20=20=20=20=20=
=20=20=20=20=20|=2012=20+++++-------=0A=20lisp/term/w32console.el=20=20=20=
=20|=20=205=20++---=0A=20lisp/term/xterm.el=20=20=20=20=20=20=20=20=20|=20=
=205=20++---=0A=20lisp/textmodes/css-mode.el=20|=2014=20++------------=0A=
=209=20files=20changed,=2050=20insertions(+),=2055=20deletions(-)=0A=0A=
diff=20--git=20a/lisp/color.el=20b/lisp/color.el=0Aindex=20=
560631ae66..2385874028=20100644=0A---=20a/lisp/color.el=0A+++=20=
b/lisp/color.el=0A@@=20-50,9=20+50,7=20@@=20color-name-to-rgb=0A=20=
Optional=20argument=20FRAME=20specifies=20the=20frame=20where=20the=20=
color=20is=20to=20be=0A=20displayed.=20=20If=20FRAME=20is=20omitted=20or=20=
nil,=20use=20the=20selected=20frame.=0A=20If=20FRAME=20cannot=20display=20=
COLOR,=20return=20nil."=0A-=20=20;;=20`colors-values'=20maximum=20value=20=
is=20either=2065535=20or=2065280=20depending=20on=20the=0A-=20=20;;=20=
display=20system.=20=20So=20we=20use=20a=20white=20conversion=20to=20get=20=
the=20max=20value.=0A-=20=20(let=20((valmax=20(float=20(car=20=
(color-values=20"#ffffffffffff")))))=0A+=20=20(let=20((valmax=20(float=20=
(color-component-max=20frame))))=0A=20=20=20=20=20(mapcar=20(lambda=20=
(x)=20(/=20x=20valmax))=20(color-values=20color=20frame))))=0A=20=0A=20=
(defun=20color-rgb-to-hex=20=20(red=20green=20blue=20&optional=20=
digits-per-component)=0Adiff=20--git=20a/lisp/facemenu.el=20=
b/lisp/facemenu.el=0Aindex=20b10d874b21..419b76101b=20100644=0A---=20=
a/lisp/facemenu.el=0A+++=20b/lisp/facemenu.el=0A@@=20-621,12=20+621,11=20=
@@=20list-colors-print=0A=20=09=09=09=09=09=09=20(downcase=20b))))))=0A=20=
=09(setq=20color=20(list=20color)))=0A=20=20=20=20=20=20=20(let*=20=
((opoint=20(point))=0A-=09=20=20=20=20=20(color-values=20(color-values=20=
(car=20color)))=0A-=09=20=20=20=20=20(light-p=20(>=3D=20(apply=20'max=20=
color-values)=0A-=09=09=09=20=20(*=20(car=20(color-values=20"white"))=20=
.5))))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20(fg=20=
(readable-foreground-color=20(car=20color))))=0A=20=09(insert=20(car=20=
color))=0A=20=09(indent-to=2022)=0A-=09(put-text-property=20opoint=20=
(point)=20'face=20`(:background=20,(car=20color)))=0A+=09=
(put-text-property=20opoint=20(point)=20'face=20`(:background=20,(car=20=
color)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20:foreground=20,fg))=0A=20=09(put-text-property=0A=20=09=20=
(prog1=20(point)=0A=20=09=20=20=20(insert=20"=20")=0A@@=20-639,7=20=
+638,7=20@@=20list-colors-print=0A=20=09(insert=20(propertize=0A=20=09=09=
=20(apply=20'format=20"#%02x%02x%02x"=0A=20=09=09=09(mapcar=20(lambda=20=
(c)=20(ash=20c=20-8))=0A-=09=09=09=09color-values))=0A+=09=09=09=09=
(color-values=20(car=20color))))=0A=20=09=09=20'mouse-face=20'highlight=0A=
=20=09=09=20'help-echo=0A=20=09=09=20(let=20((hsv=20(apply=20=
'color-rgb-to-hsv=0A@@=20-651,7=20+650,7=20@@=20list-colors-print=0A=20=09=
=20=20=20opoint=20(point)=0A=20=09=20=20=20'follow-link=20t=0A=20=09=20=20=
=20'mouse-face=20(list=20:background=20(car=20color)=0A-=09=09=09=20=20=20=
=20=20:foreground=20(if=20light-p=20"black"=20"white"))=0A+=09=09=09=20=20=
=20=20=20:foreground=20fg)=0A=20=09=20=20=20'color-name=20(car=20color)=0A=
=20=09=20=20=20'action=20callback-fn)))=0A=20=20=20=20=20=20=20(insert=20=
"\n"))=0Adiff=20--git=20a/lisp/faces.el=20b/lisp/faces.el=0Aindex=20=
e707f6f4b6..5958427946=20100644=0A---=20a/lisp/faces.el=0A+++=20=
b/lisp/faces.el=0A@@=20-1786,15=20+1786,24=20@@=20=
defined-colors-with-face-attributes=0A=20=0A=20(defun=20=
readable-foreground-color=20(color)=0A=20=20=20"Return=20a=20readable=20=
foreground=20color=20for=20background=20COLOR."=0A-=20=20(let*=20((rgb=20=
=20=20(color-values=20color))=0A-=09=20(max=20=20=20(apply=20#'max=20=
rgb))=0A-=09=20(black=20(car=20(color-values=20"black")))=0A-=09=20=
(white=20(car=20(color-values=20"white"))))=0A-=20=20=20=20;;=20Select=20=
black=20or=20white=20depending=20on=20which=20one=20is=20less=20similar=20=
to=0A-=20=20=20=20;;=20the=20brightest=20component.=0A-=20=20=20=20(if=20=
(>=20(abs=20(-=20max=20black))=20(abs=20(-=20max=20white)))=0A-=09=
"black"=0A-=20=20=20=20=20=20"white")))=0A+=20=20(if=20(color-dark-p=20=
(color-name-to-rgb=20color))=20"white"=20"black"))=0A+=0A+(defun=20=
color-dark-p=20(rgb)=0A+=20=20"Whether=20RGB=20is=20more=20readable=20=
against=20white=20than=20black.=0A+RGB=20is=20a=203-element=20list=20(R=20=
G=20B),=20each=20component=20in=20the=20range=20[0,1]."=0A+=20=20(let*=20=
((sr=20(nth=200=20rgb))=0A+=20=20=20=20=20=20=20=20=20(sg=20(nth=201=20=
rgb))=0A+=20=20=20=20=20=20=20=20=20(sb=20(nth=202=20rgb))=0A+=20=20=20=20=
=20=20=20=20=20;;=20Use=20the=20power=202.2=20as=20an=20approximation=20=
to=20sRGB=20gamma;=0A+=20=20=20=20=20=20=20=20=20;;=20it=20should=20be=20=
good=20enough=20for=20the=20purpose=20of=20this=20function.=0A+=20=20=20=20=
=20=20=20=20=20(r=20(expt=20sr=202.2))=0A+=20=20=20=20=20=20=20=20=20(g=20=
(expt=20sg=202.2))=0A+=20=20=20=20=20=20=20=20=20(b=20(expt=20sb=20=
2.2)))=0A+=20=20=20=20(unless=20(<=3D=200=20(min=20r=20g=20b)=20(max=20r=20=
g=20b)=201)=0A+=20=20=20=20=20=20(error=20"RGB=20components=20%S=20not=20=
in=20[0,1]"=20rgb))=0A+=20=20=20=20;;=20The=20cut-off=20value=20was=20=
determined=20experimentally;=20see=20bug#41544.=0A+=20=20=20=20(<=20(+=20=
(*=20r=200.299)=20(*=20g=200.587)=20(*=20b=200.114))=0A+=20=20=20=20=20=20=
=20(eval-when-compile=20(expt=200.6=202.2)))))=0A=20=0A=20=
(declare-function=20xw-color-defined-p=20"xfns.c"=20(color=20&optional=20=
frame))=0A=20=0A@@=20-1840,6=20+1849,15=20@@=20color-values=0A=20=20=20=20=
(t=0A=20=20=20=20=20(tty-color-values=20color=20frame))))=0A=20=0A=
+(defun=20color-component-max=20(&optional=20frame)=0A+=20=20"The=20=
highest=20value=20of=20a=20color=20component=20on=20FRAME.=0A+If=20FRAME=20=
is=20omitted=20or=20nil,=20use=20the=20selected=20frame."=0A+=20=20;;=20=
Right=20now,=20NS=20frames=20are=20the=20only=20ones=20having=20a=20=
different=20maximum=0A+=20=20;;=20colour=20component=20value.=0A+=20=20=
(if=20(eq=20(framep-on-display=20frame)=20'ns)=0A+=20=20=20=20=20=20=
#xff00=0A+=20=20=20=20#xffff))=0A+=0A=20(defalias=20'x-color-values=20=
'color-values)=0A=20=0A=20(declare-function=20xw-display-color-p=20=
"xfns.c"=20(&optional=20terminal))=0Adiff=20--git=20a/lisp/frame.el=20=
b/lisp/frame.el=0Aindex=206c2f774709..fed46f333d=20100644=0A---=20=
a/lisp/frame.el=0A+++=20b/lisp/frame.el=0A@@=20-1181,13=20+1181,9=20@@=20=
frame-set-background-mode=0A=20=09=09=20=20=20non-default-bg-mode)=0A=20=09=
=09=20=20((not=20(color-values=20bg-color=20frame))=0A=20=09=09=20=20=20=
default-bg-mode)=0A-=09=09=20=20((>=3D=20(apply=20'+=20(color-values=20=
bg-color=20frame))=0A-=09=09=20=20=20=20=20=20=20;;=20Just=20looking=20=
at=20the=20screen,=20colors=20whose=0A-=09=09=20=20=20=20=20=20=20;;=20=
values=20add=20up=20to=20.6=20of=20the=20white=20total=0A-=09=09=20=20=20=
=20=20=20=20;;=20still=20look=20dark=20to=20me.=0A-=09=09=20=20=20=20=20=20=
=20(*=20(apply=20'+=20(color-values=20"white"=20frame))=20.6))=0A-=09=09=20=
=20=20'light)=0A-=09=09=20=20(t=20'dark)))=0A+=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20((color-dark-p=20(color-name-to-rgb=20=
bg-color=20frame))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20'dark)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(t=20=
'light)))=0A=20=09=20=20=20(display-type=0A=20=09=20=20=20=20(cond=20=
((null=20(window-system=20frame))=0A=20=09=09=20=20=20(if=20=
(tty-display-color-p=20frame)=20'color=20'mono))=0Adiff=20--git=20=
a/lisp/term/pc-win.el=20b/lisp/term/pc-win.el=0Aindex=20=
76a48a86c7..16eb660f00=20100644=0A---=20a/lisp/term/pc-win.el=0A+++=20=
b/lisp/term/pc-win.el=0A@@=20-54,11=20+54,9=20@@=0A=20;;=20=
DJGPP-compiled=20Emacs=20on=20the=20same=20PC.=20=20The=20names=20of=20X=20=
colors=20used=20to=0A=20;;=20define=20the=20pixel=20values=20are=20shown=20=
as=20comments=20to=20each=20color=20below.=0A=20;;;=0A-;;=20If=20you=20=
want=20to=20change=20the=20RGB=20values,=20keep=20in=20mind=20that=20=
various=20pieces=0A-;;=20of=20Emacs=20think=20that=20a=20color=20whose=20=
RGB=20values=20add=20up=20to=20less=20than=200.6=20of=0A-;;=20the=20=
values=20for=20WHITE=20(i.e.=20less=20than=20117963)=20are=20``dark'',=20=
otherwise=20the=0A-;;=20color=20is=20``light'';=20see=20=
`frame-set-background-mode'=20in=20lisp/faces.el=20for=0A-;;=20an=20=
example.=0A+;;=20If=20you=20want=20to=20change=20the=20RGB=20values,=20=
consider=20the=20heuristics=20in=0A+;;=20`color-dark-p'=20which=20is=20=
used=20to=20select=20a=20suitably=20contrasting=0A+;;=20foreground=20or=20=
background=20colour.=0A=20(defvar=20msdos-color-values=0A=20=20=20=
'(("black"=20=20=20=20=20=20=20=20=20=200=20=20=20=20=200=20=20=20=20=20=
0=20=20=20=20=200)=0A=20=20=20=20=20("blue"=20=20=20=20=20=20=20=20=20=20=
=201=20=20=20=20=200=20=20=20=20=200=2052480)=20;=20MediumBlue=0Adiff=20=
--git=20a/lisp/term/rxvt.el=20b/lisp/term/rxvt.el=0Aindex=20=
31e3d6ede4..ebcb13db77=20100644=0A---=20a/lisp/term/rxvt.el=0A+++=20=
b/lisp/term/rxvt.el=0A@@=20-206,13=20+206,11=20@@=20=
rxvt-set-background-mode=0A=20=20=20=20=20=20=20;;=20The=20next=20line=20=
assumes=20that=20rxvt-standard-colors=20are=20ordered=0A=20=20=20=20=20=20=
=20;;=20by=20the=20color=20index=20in=20the=20ascending=20order!=0A=20=20=
=20=20=20=20=20(setq=20rgb=20(car=20(cddr=20(nth=20bg=20=
rxvt-standard-colors))))=0A-=20=20=20=20=20=20;;=20See=20the=20=
commentary=20in=20frame-set-background-mode=20about=20the=0A-=20=20=20=20=
=20=20;;=20computation=20below.=0A-=20=20=20=20=20=20(if=20(<=20(apply=20=
'+=20rgb)=0A-=09=20=20=20=20=20;;=20The=20following=20line=20assumes=20=
that=20white=20is=20the=2015th=0A-=09=20=20=20=20=20;;=20color=20in=20=
rxvt-standard-colors.=0A-=09=20=20=20=20=20(*=20(apply=20'+=20(car=20=
(cddr=20(nth=2015=20rxvt-standard-colors))))=200.6))=0A-=09=20=20=
(set-terminal-parameter=20nil=20'background-mode=20'dark)))))=0A+=20=20=20=
=20=20=20;;=20The=20following=20line=20assumes=20that=20white=20is=20the=20=
15th=0A+=20=20=20=20=20=20;;=20color=20in=20rxvt-standard-colors.=0A+=20=20=
=20=20=20=20(let=20((comp-max=20(caddr=20(nth=2015=20=
rxvt-standard-colors))))=0A+=20=20=20=20=20=20=20=20(when=20=
(color-dark-p=20(mapcar=20(lambda=20(c)=20(/=20c=20comp-max))=20rgb))=0A=
+=09=20=20(set-terminal-parameter=20nil=20'background-mode=20'dark))))))=0A=
=20=0A=20(provide=20'term/rxvt)=0A=20=0Adiff=20--git=20=
a/lisp/term/w32console.el=20b/lisp/term/w32console.el=0Aindex=20=
36e9d896c7..b249a4e602=20100644=0A---=20a/lisp/term/w32console.el=0A+++=20=
b/lisp/term/w32console.el=0A@@=20-86,9=20+86,8=20@@=20=
terminal-init-w32console=0A=20=20=20=20=20(setq=20r=20(nth=202=20descr)=0A=
=20=09=20=20g=20(nth=203=20descr)=0A=20=09=20=20b=20(nth=204=20descr))=0A=
-=20=20=20=20(if=20(<=20(+=20r=20g=20b)=20(*=20.6=20(+=2065535=2065535=20=
65535)))=0A-=09(setq=20bg-mode=20'dark)=0A-=20=20=20=20=20=20(setq=20=
bg-mode=20'light))=0A+=20=20=20=20(setq=20bg-mode=20(if=20(color-dark-p=20=
(list=20(/=20r=2065535)=20(/=20g=2065535)=20(/=20b=2065535)))=0A+=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20'dark=20=
'light))=0A=20=20=20=20=20(set-terminal-parameter=20nil=20=
'background-mode=20bg-mode))=0A=20=20=20(tty-set-up-initial-frame-faces)=0A=
=20=20=20(run-hooks=20'terminal-init-w32-hook))=0Adiff=20--git=20=
a/lisp/term/xterm.el=20b/lisp/term/xterm.el=0Aindex=20=
1a727e3933..bf9bcae526=20100644=0A---=20a/lisp/term/xterm.el=0A+++=20=
b/lisp/term/xterm.el=0A@@=20-1120,9=20+1120,8=20@@=20=
xterm-register-default-colors=0A=20=20=20=20=20(clear-face-cache)))=0A=20=
=0A=20(defun=20xterm-maybe-set-dark-background-mode=20(redc=20greenc=20=
bluec)=0A-=20=20;;=20Use=20the=20heuristic=20in=20=
`frame-set-background-mode'=20to=20decide=20if=20a=0A-=20=20;;=20frame=20=
is=20dark.=0A-=20=20(when=20(<=20(+=20redc=20greenc=20bluec)=20(*=20.6=20=
(+=2065535=2065535=2065535)))=0A+=20=20(when=20(color-dark-p=20(mapcar=20=
(lambda=20(c)=20(/=20c=2065535.0))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(list=20redc=20=
greenc=20bluec)))=0A=20=20=20=20=20(set-terminal-parameter=20nil=20=
'background-mode=20'dark)=0A=20=20=20=20=20t))=0A=20=0Adiff=20--git=20=
a/lisp/textmodes/css-mode.el=20b/lisp/textmodes/css-mode.el=0Aindex=20=
0035c5e7b0..2cd99787e8=20100644=0A---=20a/lisp/textmodes/css-mode.el=0A=
+++=20b/lisp/textmodes/css-mode.el=0A@@=20-1149,17=20+1149,6=20@@=20=
css--compute-color=0A=20=20=20=20;;=20Evaluate=20to=20the=20color=20if=20=
the=20name=20is=20found.=0A=20=20=20=20((css--named-color=20start-point=20=
match))))=0A=20=0A-(defun=20css--contrasty-color=20(name)=0A-=20=20=
"Return=20a=20color=20that=20contrasts=20with=20NAME.=0A-NAME=20is=20of=20=
any=20form=20accepted=20by=20`color-distance'.=0A-The=20returned=20color=20=
will=20be=20usable=20by=20Emacs=20and=20will=20contrast=0A-with=20NAME;=20=
in=20particular=20so=20that=20if=20NAME=20is=20used=20as=20a=20=
background=0A-color,=20the=20returned=20color=20can=20be=20used=20as=20=
the=20foreground=20and=20still=0A-be=20readable."=0A-=20=20;;=20See=20=
bug#25525=20for=20a=20discussion=20of=20this.=0A-=20=20(if=20(>=20=
(color-distance=20name=20"black")=20292485)=0A-=20=20=20=20=20=20"black"=20=
"white"))=0A-=0A=20(defcustom=20css-fontify-colors=20t=0A=20=20=20=
"Whether=20CSS=20colors=20should=20be=20fontified=20using=20the=20color=20=
as=20the=20background.=0A=20When=20non-`nil',=20a=20text=20representing=20=
CSS=20color=20will=20be=20fontified=0A@@=20-1199,7=20+1188,8=20@@=20=
css--fontify-region=0A=20=09=09=20=20=20=20(add-text-properties=0A=20=09=09=
=20=20=20=20=20start=20(point)=0A=20=09=09=20=20=20=20=20(list=20'face=20=
(list=20:background=20color=0A-=09=09=09=09=20=20=20=20=20=20=20=
:foreground=20(css--contrasty-color=20color)=0A+=09=09=09=09=20=20=20=20=20=
=20=20:foreground=20(readable-foreground-color=0A+=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20color)=0A=20=09=09=
=09=09=20=20=20=20=20=20=20:box=20'(:line-width=20-1))))))))))))=0A=20=20=
=20=20=20extended-region))=0A=20=0A--=20=0A2.21.1=20(Apple=20Git-122.3)=0A=
=0A=

--Apple-Mail=_7AF097D7-D9EE-4CBA-891D-80A035FB968B--




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

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


Received: (at 41544) by debbugs.gnu.org; 3 Jun 2020 15:59:37 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jun 03 11:59:36 2020
Received: from localhost ([127.0.0.1]:44448 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jgVnk-0001PA-Kl
	for submit <at> debbugs.gnu.org; Wed, 03 Jun 2020 11:59:36 -0400
Received: from eggs.gnu.org ([209.51.188.92]:59498)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1jgVnf-0001Oq-N5
 for 41544 <at> debbugs.gnu.org; Wed, 03 Jun 2020 11:59:35 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:43880)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <eliz@HIDDEN>)
 id 1jgVnZ-0008RW-Q8; Wed, 03 Jun 2020 11:59:25 -0400
Received: from [176.228.60.248] (port=4347 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1jgVnY-00035W-W6; Wed, 03 Jun 2020 11:59:25 -0400
Date: Wed, 03 Jun 2020 18:59:11 +0300
Message-Id: <83367ccf8w.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Mattias =?utf-8?Q?Engdeg=C3=A5rd?= <mattiase@HIDDEN>
In-Reply-To: <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN> (message from
 Mattias =?utf-8?Q?Engdeg=C3=A5rd?= on Wed, 3 Jun 2020 17:01:46 +0200)
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN> <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN> <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.1 (--)
X-Debbugs-Envelope-To: 41544
Cc: tom@HIDDEN, simon@HIDDEN, 41544 <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.1 (---)

> From: Mattias Engdegård <mattiase@HIDDEN>
> Date: Wed, 3 Jun 2020 17:01:46 +0200
> Cc: tom@HIDDEN, simon@HIDDEN, 41544 <at> debbugs.gnu.org
> 
> 3 juni 2020 kl. 16.24 skrev Eli Zaretskii <eliz@HIDDEN>:
> 
> > Not sure I understand completely: does this patch make the function
> > symmetric?
> 
> Yes, the patch both improves the accuracy and makes the function symmetric.

Then I think we should install it.




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

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


Received: (at 41544) by debbugs.gnu.org; 3 Jun 2020 15:02:17 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jun 03 11:02:17 2020
Received: from localhost ([127.0.0.1]:44374 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jgUu3-0008Sq-Lu
	for submit <at> debbugs.gnu.org; Wed, 03 Jun 2020 11:02:17 -0400
Received: from mail1447c50.megamailservers.eu ([91.136.14.47]:35958
 helo=mail265c50.megamailservers.eu)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mattiase@HIDDEN>) id 1jgUtw-0008SG-Rz
 for 41544 <at> debbugs.gnu.org; Wed, 03 Jun 2020 11:02:01 -0400
X-Authenticated-User: mattiase@HIDDEN
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu;
 s=maildub; t=1591196510;
 bh=qWCEGsTS1wd5iS8aIuJ/v7ZVHNt4zb35pXMNUYxgCic=;
 h=Subject:From:In-Reply-To:Date:Cc:References:To:From;
 b=JGjguN63LS38L6wWczRnxU5Bwgg8wZm0bhvvbyhjuRqtGN/0j9GXSk8n/9Y3Zpfe5
 HEkbi6ed2wr579CVpaPSC9Seony3IJdigs7f9qRKyLGscVFMqc85gEQ2oiMnz8OxT2
 DiW+G6DpfSpwM+jo8CkaBflYhYKMplNHbVox4yR0=
Feedback-ID: mattiase@HIDDEN
Received: from stanniol.lan (c-4e4ae655.032-75-73746f71.bbcust.telenor.se
 [85.230.74.78]) (authenticated bits=0)
 by mail265c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 053F1kFD029457; 
 Wed, 3 Jun 2020 15:01:48 +0000
Content-Type: text/plain;
	charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.14\))
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>
In-Reply-To: <83blm0cjlz.fsf@HIDDEN>
Date: Wed, 3 Jun 2020 17:01:46 +0200
Content-Transfer-Encoding: 7bit
Message-Id: <DFEE560C-C8A7-4B8E-B9D1-D2DC37C1034A@HIDDEN>
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN> <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
 <83blm0cjlz.fsf@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
X-Mailer: Apple Mail (2.3445.104.14)
X-CTCH-RefID: str=0001.0A782F25.5ED7BAD3.0039:SCFSTAT68638221, ss=1, re=-4.000,
 recu=0.000, reip=0.000, cl=1, cld=1, fgs=0
X-CTCH-VOD: Unknown
X-CTCH-Spam: Unknown
X-CTCH-Score: -4.000
X-CTCH-Rules: 
X-CTCH-Flags: 0
X-CTCH-ScoreCust: 0.000
X-CSC: 0
X-CHA: v=2.3 cv=D5w51cZj c=1 sm=1 tr=0 a=klNLuyVZdLUgl+K5Uafb2A==:117
 a=klNLuyVZdLUgl+K5Uafb2A==:17 a=kj9zAlcOel0A:10 a=M51BFTxLslgA:10
 a=mDV3o1hIAAAA:8 a=3qhpsr4axi-On4-2KVYA:9 a=CjuIK1q_8ugA:10
 a=ncZ9vwaUYPMA:10 a=_FVE-zBwftR9WsbkzFJk:22
X-Spam-Score: 0.4 (/)
X-Debbugs-Envelope-To: 41544
Cc: tom@HIDDEN, simon@HIDDEN, 41544 <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.0 (/)

3 juni 2020 kl. 16.24 skrev Eli Zaretskii <eliz@HIDDEN>:

> Not sure I understand completely: does this patch make the function
> symmetric?

Yes, the patch both improves the accuracy and makes the function symmetric.





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

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


Received: (at 41544) by debbugs.gnu.org; 3 Jun 2020 14:25:22 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jun 03 10:25:22 2020
Received: from localhost ([127.0.0.1]:44304 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jgUKX-0007WS-OT
	for submit <at> debbugs.gnu.org; Wed, 03 Jun 2020 10:25:21 -0400
Received: from eggs.gnu.org ([209.51.188.92]:47660)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1jgUKW-0007WE-88
 for 41544 <at> debbugs.gnu.org; Wed, 03 Jun 2020 10:25:20 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:42299)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <eliz@HIDDEN>)
 id 1jgUKQ-00037i-5L; Wed, 03 Jun 2020 10:25:14 -0400
Received: from [176.228.60.248] (port=2586 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1jgUKO-0004wq-LX; Wed, 03 Jun 2020 10:25:13 -0400
Date: Wed, 03 Jun 2020 17:24:56 +0300
Message-Id: <83blm0cjlz.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Mattias =?utf-8?Q?Engdeg=C3=A5rd?= <mattiase@HIDDEN>
In-Reply-To: <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN> (message from
 Mattias =?utf-8?Q?Engdeg=C3=A5rd?= on Tue, 2 Jun 2020 22:41:03 +0200)
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN> <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.1 (--)
X-Debbugs-Envelope-To: 41544
Cc: tom@HIDDEN, simon@HIDDEN, 41544 <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.1 (---)

> From: Mattias Engdegård <mattiase@HIDDEN>
> Date: Tue, 2 Jun 2020 22:41:03 +0200
> Cc: tom@HIDDEN, simon@HIDDEN, 41544 <at> debbugs.gnu.org
> 
> > I'd prefer to fix only the symmetry bug (which AFAIU happens because
> > we use bit shifts on signed integers), without introducing any other
> > effects on the function's behavior and return values.  AFAIU, such a
> > fix should not require any changes outside of the function itself.
> 
> Very well, it is obviously an improvement. The reason for the current asymmetry was actually that the algorithm discarded the low bits; what about fixing that as well?

Sure, let's make it as accurate as the return value allows.

> The improved accuracy amounts to less than 1 % of difference in the return value; no other code needs changing, and we get the symmetry for free. Proposed patch attached.

Not sure I understand completely: does this patch make the function
symmetric?  If so, what additional improvements did you have in mind
when you mentioned more fixing above?

Thanks.




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

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


Received: (at 41544) by debbugs.gnu.org; 2 Jun 2020 20:41:13 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jun 02 16:41:13 2020
Received: from localhost ([127.0.0.1]:41069 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jgDii-0003Vv-Oi
	for submit <at> debbugs.gnu.org; Tue, 02 Jun 2020 16:41:12 -0400
Received: from mail176c50.megamailservers.eu ([91.136.10.186]:59738
 helo=mail37c50.megamailservers.eu)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mattiase@HIDDEN>) id 1jgDig-0003Vl-7v
 for 41544 <at> debbugs.gnu.org; Tue, 02 Jun 2020 16:41:11 -0400
X-Authenticated-User: mattiase@HIDDEN
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu;
 s=maildub; t=1591130467;
 bh=65fBZE1X9H5Z6AttrJGQrkXW74UtqfGVeugwwgZ3pZI=;
 h=From:Subject:Date:In-Reply-To:Cc:To:References:From;
 b=mmMiqm4hQr/KuDysapK1snlIrhNVfXM3iv2ntHvgTPj9oPKwRqpEIrhNWO58hQAFR
 9Tlm3KuD8H54pG6NIz5Vri4r0alRgMLHjVi5BAORbkux8gosmnX7dCojfo+lpjED6g
 ZKdYSYyY9rElagC0x6rIvs3qwIalgkzAOMtgvW84=
Feedback-ID: mattiase@HIDDEN
Received: from stanniol.lan (c-4e4ae655.032-75-73746f71.bbcust.telenor.se
 [85.230.74.78]) (authenticated bits=0)
 by mail37c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 052Kf3bL029641; 
 Tue, 2 Jun 2020 20:41:05 +0000
From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>
Message-Id: <B671DFD8-FE47-4AE5-9F55-DD0652BB2F2F@HIDDEN>
Content-Type: multipart/mixed;
 boundary="Apple-Mail=_9A3622FA-6DF5-4FB7-9BFE-40A69D391DCB"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.14\))
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
Date: Tue, 2 Jun 2020 22:41:03 +0200
In-Reply-To: <83y2p5cumz.fsf@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
 <83y2p5cumz.fsf@HIDDEN>
X-Mailer: Apple Mail (2.3445.104.14)
X-CTCH-RefID: str=0001.0A782F27.5ED6B909.0035:SCFSTAT68638221, ss=1, re=-4.000,
 recu=0.000, reip=0.000, cl=1, cld=1, fgs=0
X-CTCH-VOD: Unknown
X-CTCH-Spam: Unknown
X-CTCH-Score: -4.000
X-CTCH-Rules: 
X-CTCH-Flags: 0
X-CTCH-ScoreCust: 0.000
X-CSC: 0
X-CHA: v=2.3 cv=bJNo382Z c=1 sm=1 tr=0 a=klNLuyVZdLUgl+K5Uafb2A==:117
 a=klNLuyVZdLUgl+K5Uafb2A==:17 a=M51BFTxLslgA:10 a=mDV3o1hIAAAA:8
 a=bM8LWKgTAXqvqXeV2bUA:9 a=CjuIK1q_8ugA:10 a=p9XNr_QT056JWQCrFTgA:9
 a=B2y7HmGcmWMA:10 a=_FVE-zBwftR9WsbkzFJk:22
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 41544
Cc: tom@HIDDEN, simon@HIDDEN, 41544 <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.0 (/)


--Apple-Mail=_9A3622FA-6DF5-4FB7-9BFE-40A69D391DCB
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

2 juni 2020 kl. 18.14 skrev Eli Zaretskii <eliz@HIDDEN>:

> I'd prefer to fix only the symmetry bug (which AFAIU happens because
> we use bit shifts on signed integers), without introducing any other
> effects on the function's behavior and return values.  AFAIU, such a
> fix should not require any changes outside of the function itself.

Very well, it is obviously an improvement. The reason for the current =
asymmetry was actually that the algorithm discarded the low bits; what =
about fixing that as well? The improved accuracy amounts to less than 1 =
% of difference in the return value; no other code needs changing, and =
we get the symmetry for free. Proposed patch attached.


--Apple-Mail=_9A3622FA-6DF5-4FB7-9BFE-40A69D391DCB
Content-Disposition: attachment;
	filename=0001-Make-color-distance-symmetric-and-more-accurate.patch
Content-Type: application/octet-stream;
	x-unix-mode=0644;
	name="0001-Make-color-distance-symmetric-and-more-accurate.patch"
Content-Transfer-Encoding: quoted-printable

=46rom=20b40a56f8be6add33f7de634f0966887622063e43=20Mon=20Sep=2017=20=
00:00:00=202001=0AFrom:=20=3D?UTF-8?q?Mattias=3D20Engdeg=3DC3=3DA5rd?=3D=20=
<mattiase@HIDDEN>=0ADate:=20Tue,=202=20Jun=202020=2022:31:14=20+0200=0A=
Subject:=20[PATCH]=20Make=20color-distance=20symmetric=20and=20more=20=
accurate=0A=0A*=20src/xfaces.c=20(color_distance):=20Don't=20throw=20=
away=20the=20low=208=20bits=20of=0Athe=20colours,=20and=20make=20the=20=
function=20symmetric=20(bug41544)=0A(Fcolor_distance):=20Add=20caution=20=
about=20this=20not=20being=20a=20true=20metric.=0A*=20=
test/src/xfaces-tests.el:=20New=20file.=0A---=0A=20src/xfaces.c=20=20=20=20=
=20=20=20=20=20=20=20=20=20|=2024=20+++++++++++++-----------=0A=20=
test/src/xfaces-tests.el=20|=2027=20+++++++++++++++++++++++++++=0A=202=20=
files=20changed,=2040=20insertions(+),=2011=20deletions(-)=0A=20create=20=
mode=20100644=20test/src/xfaces-tests.el=0A=0Adiff=20--git=20=
a/src/xfaces.c=20b/src/xfaces.c=0Aindex=207d7aff95c1..cf155288bd=20=
100644=0A---=20a/src/xfaces.c=0A+++=20b/src/xfaces.c=0A@@=20-4356,15=20=
+4356,15=20@@=20color_distance=20(Emacs_Color=20*x,=20Emacs_Color=20*y)=0A=
=20=0A=20=20=20=20=20=20See=20<https://www.compuphase.com/cmetric.htm>=20=
for=20more=20info.=20=20*/=0A=20=0A-=20=20long=20r=20=3D=20(x->red=20=20=20=
-=20y->red)=20=20=20>>=208;=0A-=20=20long=20g=20=3D=20(x->green=20-=20=
y->green)=20>>=208;=0A-=20=20long=20b=20=3D=20(x->blue=20=20-=20y->blue)=20=
=20>>=208;=0A-=20=20long=20r_mean=20=3D=20(x->red=20+=20y->red)=20>>=20=
9;=0A-=0A-=20=20return=0A-=20=20=20=20(((512=20+=20r_mean)=20*=20r=20*=20=
r)=20>>=208)=0A-=20=20=20=20+=204=20*=20g=20*=20g=0A-=20=20=20=20+=20=
(((767=20-=20r_mean)=20*=20b=20*=20b)=20>>=208);=0A+=20=20long=20long=20=
r=20=3D=20x->red=20=20=20-=20y->red;=0A+=20=20long=20long=20g=20=3D=20=
x->green=20-=20y->green;=0A+=20=20long=20long=20b=20=3D=20x->blue=20=20-=20=
y->blue;=0A+=20=20long=20long=20r_mean=20=3D=20(x->red=20+=20y->red)=20=
>>=201;=0A+=0A+=20=20return=20(((((2=20*=2065536=20+=20r_mean)=20*=20r=20=
*=20r)=20>>=2016)=0A+=20=20=20=20=20=20=20=20=20=20=20+=204=20*=20g=20*=20=
g=0A+=20=20=20=20=20=20=20=20=20=20=20+=20(((2=20*=2065536=20+=2065535=20=
-=20r_mean)=20*=20b=20*=20b)=20>>=2016))=0A+=20=20=20=20=20=20=20=20=20=20=
>>=2016);=0A=20}=0A=20=0A=20=0A@@=20-4374,7=20+4374,9=20@@=20DEFUN=20=
("color-distance",=20Fcolor_distance,=20Scolor_distance,=202,=204,=200,=0A=
=20or=20lists=20of=20the=20form=20(RED=20GREEN=20BLUE),=20each=20in=20=
the=20range=200=20to=2065535=20inclusive.=0A=20If=20FRAME=20is=20=
unspecified=20or=20nil,=20the=20current=20frame=20is=20used.=0A=20If=20=
METRIC=20is=20specified,=20it=20should=20be=20a=20function=20that=20=
accepts=0A-two=20lists=20of=20the=20form=20(RED=20GREEN=20BLUE)=20=
aforementioned.=20*/)=0A+two=20lists=20of=20the=20form=20(RED=20GREEN=20=
BLUE)=20aforementioned.=0A+Despite=20the=20name,=20this=20is=20not=20a=20=
true=20distance=20metric=20as=20it=20does=20not=20satisfy=0A+the=20=
triangle=20inequality.=20=20*/)=0A=20=20=20(Lisp_Object=20color1,=20=
Lisp_Object=20color2,=20Lisp_Object=20frame,=0A=20=20=20=20Lisp_Object=20=
metric)=0A=20{=0A@@=20-4931,7=20+4933,7=20@@=20DEFUN=20=
("face-attributes-as-vector",=20Fface_attributes_as_vector,=0A=20=0A=20=
/*=20If=20the=20distance=20(as=20returned=20by=20color_distance)=20=
between=20two=20colors=20is=0A=20=20=20=20less=20than=20this,=20then=20=
they=20are=20considered=20the=20same,=20for=20determining=0A-=20=20=20=
whether=20a=20color=20is=20supported=20or=20not.=20=20The=20range=20of=20=
values=20is=200-65535.=20=20*/=0A+=20=20=20whether=20a=20color=20is=20=
supported=20or=20not.=20=20*/=0A=20=0A=20#define=20=
TTY_SAME_COLOR_THRESHOLD=20=2010000=0A=20=0Adiff=20--git=20=
a/test/src/xfaces-tests.el=20b/test/src/xfaces-tests.el=0Anew=20file=20=
mode=20100644=0Aindex=200000000000..f08a87a518=0A---=20/dev/null=0A+++=20=
b/test/src/xfaces-tests.el=0A@@=20-0,0=20+1,27=20@@=0A+;;;=20=
xfaces-tests.el=20---=20tests=20for=20xfaces.c=20=20=20=20=20=20=20=20=20=
=20=20-*-=20lexical-binding:=20t=20-*-=0A+=0A+;;=20Copyright=20(C)=20=
2020=20Free=20Software=20Foundation,=20Inc.=0A+=0A+;;=20This=20file=20is=20=
part=20of=20GNU=20Emacs.=0A+=0A+;;=20GNU=20Emacs=20is=20free=20software:=20=
you=20can=20redistribute=20it=20and/or=20modify=0A+;;=20it=20under=20the=20=
terms=20of=20the=20GNU=20General=20Public=20License=20as=20published=20=
by=0A+;;=20the=20Free=20Software=20Foundation,=20either=20version=203=20=
of=20the=20License,=20or=0A+;;=20(at=20your=20option)=20any=20later=20=
version.=0A+=0A+;;=20GNU=20Emacs=20is=20distributed=20in=20the=20hope=20=
that=20it=20will=20be=20useful,=0A+;;=20but=20WITHOUT=20ANY=20WARRANTY;=20=
without=20even=20the=20implied=20warranty=20of=0A+;;=20MERCHANTABILITY=20=
or=20FITNESS=20FOR=20A=20PARTICULAR=20PURPOSE.=20=20See=20the=0A+;;=20=
GNU=20General=20Public=20License=20for=20more=20details.=0A+=0A+;;=20You=20=
should=20have=20received=20a=20copy=20of=20the=20GNU=20General=20Public=20=
License=0A+;;=20along=20with=20GNU=20Emacs.=20=20If=20not,=20see=20=
<https://www.gnu.org/licenses/>.=0A+=0A+(require=20'ert)=0A+=0A=
+(ert-deftest=20xfaces-color-distance=20()=0A+=20=20;;=20Check=20=
symmetry=20(bug#51455).=0A+=20=20(should=20(equal=20(color-distance=20=
"#222222"=20"#ffffff")=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20(color-distance=20"#ffffff"=20"#222222"))))=0A+=0A+(provide=20=
'xfaces-tests)=0A--=20=0A2.21.1=20(Apple=20Git-122.3)=0A=0A=

--Apple-Mail=_9A3622FA-6DF5-4FB7-9BFE-40A69D391DCB--




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

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


Received: (at 41544) by debbugs.gnu.org; 2 Jun 2020 16:15:04 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jun 02 12:15:04 2020
Received: from localhost ([127.0.0.1]:40728 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jg9Z9-0001Ch-Pz
	for submit <at> debbugs.gnu.org; Tue, 02 Jun 2020 12:15:04 -0400
Received: from eggs.gnu.org ([209.51.188.92]:53902)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1jg9Z8-0001Bu-4t
 for 41544 <at> debbugs.gnu.org; Tue, 02 Jun 2020 12:15:02 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:47539)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <eliz@HIDDEN>)
 id 1jg9Z2-0005Z8-A0; Tue, 02 Jun 2020 12:14:56 -0400
Received: from [176.228.60.248] (port=4300 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1jg9Ys-0006Sn-UG; Tue, 02 Jun 2020 12:14:55 -0400
Date: Tue, 02 Jun 2020 19:14:28 +0300
Message-Id: <83y2p5cumz.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Mattias =?utf-8?Q?Engdeg=C3=A5rd?= <mattiase@HIDDEN>
In-Reply-To: <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN> (message from
 Mattias =?utf-8?Q?Engdeg=C3=A5rd?= on Tue, 2 Jun 2020 17:27:46 +0200)
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN> <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.1 (--)
X-Debbugs-Envelope-To: 41544
Cc: tom@HIDDEN, simon@HIDDEN, 41544 <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.1 (---)

> From: Mattias Engdegård <mattiase@HIDDEN>
> Date: Tue, 2 Jun 2020 17:27:46 +0200
> Cc: tom@HIDDEN, simon@HIDDEN, 41544 <at> debbugs.gnu.org
> 
> Let's start with the color-distance changes, out of respect for the bug reporter if nothing else.
> 
> It is not possible to change a function without changing it. Either we fix it or we don't. The reported bug was about broken symmetry, which is rather embarrassing; as written previously, the first analysis uncovered deeper issues worth fixing, such as loss of precision and (especially) the nonlinearity that causes triangle inequality violation.
> 
> The proposed fixes to color-distance, I hope you agree, are straightforward, reasonable and address all these points. Callers have been updated with carefully recomputed comparison constants; I detailed how they were obtained in a previous reply, and test have all been satisfactory.

I'd prefer to fix only the symmetry bug (which AFAIU happens because
we use bit shifts on signed integers), without introducing any other
effects on the function's behavior and return values.  AFAIU, such a
fix should not require any changes outside of the function itself.

OK?




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

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


Received: (at 41544) by debbugs.gnu.org; 2 Jun 2020 15:27:55 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jun 02 11:27:55 2020
Received: from localhost ([127.0.0.1]:40618 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jg8pW-0008Ms-TT
	for submit <at> debbugs.gnu.org; Tue, 02 Jun 2020 11:27:55 -0400
Received: from mail171c50.megamailservers.eu ([91.136.10.181]:54736
 helo=mail92c50.megamailservers.eu)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mattiase@HIDDEN>) id 1jg8pU-0008Me-57
 for 41544 <at> debbugs.gnu.org; Tue, 02 Jun 2020 11:27:54 -0400
X-Authenticated-User: mattiase@HIDDEN
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu;
 s=maildub; t=1591111670;
 bh=EiRxBbGhp6jfAwN+XKHGCHyTCvyBKXYNBE+Pu6v3iZ0=;
 h=Subject:From:In-Reply-To:Date:Cc:References:To:From;
 b=UcSvF0UUWQSxPwrqTwzs/BoIGlAD8nblBpPKhR9z5MuFm88I9BceOjdU8J9jdRCMq
 aotBJrMNAsSJVWdLS7yWm+uDfpXbra0BiXFQe/ilcUbSkYOxH0q1hJ6ZitjXfkYNy4
 cJyRz6Z18FeZ8kj50/9/Fgd8D9U6JnlpU/dbLUHQ=
Feedback-ID: mattiase@HIDDEN
Received: from stanniol.lan (c-4e4ae655.032-75-73746f71.bbcust.telenor.se
 [85.230.74.78]) (authenticated bits=0)
 by mail92c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 052FRlL5027557; 
 Tue, 2 Jun 2020 15:27:48 +0000
Content-Type: text/plain;
	charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.14\))
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>
In-Reply-To: <83mu5mel4o.fsf@HIDDEN>
Date: Tue, 2 Jun 2020 17:27:46 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <77F1DDD3-A69F-40ED-902D-74986D5E6596@HIDDEN>
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
 <83mu5mel4o.fsf@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
X-Mailer: Apple Mail (2.3445.104.14)
X-CTCH-RefID: str=0001.0A782F27.5ED66F9C.006E:SCFSTAT68638221, ss=1, re=-4.000,
 recu=0.000, reip=0.000, cl=1, cld=1, fgs=0
X-CTCH-VOD: Unknown
X-CTCH-Spam: Unknown
X-CTCH-Score: -4.000
X-CTCH-Rules: 
X-CTCH-Flags: 0
X-CTCH-ScoreCust: 0.000
X-CSC: 0
X-CHA: v=2.3 cv=aY8fYigt c=1 sm=1 tr=0 a=klNLuyVZdLUgl+K5Uafb2A==:117
 a=klNLuyVZdLUgl+K5Uafb2A==:17 a=kj9zAlcOel0A:10 a=M51BFTxLslgA:10
 a=mDV3o1hIAAAA:8 a=cU5vsblOPORyMJlAhFAA:9 a=CjuIK1q_8ugA:10
 a=_FVE-zBwftR9WsbkzFJk:22
X-Spam-Score: 1.4 (+)
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:  1 juni 2020 kl. 19.44 skrev Eli Zaretskii <eliz@HIDDEN>:
 >> I'm just looking at the changes. I see a change in how colors are >>
 converted
 to RGB triplets. I see a change in what colors are >> considered dark and
 light, with a new function which decides tha [...] 
 Content analysis details:   (1.4 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.0 URIBL_BLOCKED          ADMINISTRATOR NOTICE: The query to URIBL was
 blocked.  See
 http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block
 for more information. [URIs: gnu.org]
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 1.0 SPF_SOFTFAIL           SPF: sender does not match SPF record (softfail)
 0.4 KHOP_HELO_FCRDNS       Relay HELO differs from its IP's reverse DNS
X-Debbugs-Envelope-To: 41544
Cc: tom@HIDDEN, simon@HIDDEN, 41544 <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.0 (/)

1 juni 2020 kl. 19.44 skrev Eli Zaretskii <eliz@HIDDEN>:

>> I'm just looking at the changes.  I see a change in how colors are
>> converted to RGB triplets.  I see a change in what colors are
>> considered dark and light, with a new function which decides that =
that
>> is being used for frame background mode and in several lisp/term/
>> files, including 16-color terminals.  I'm asking why do we want to
>> make all those changes, which modify very basic aspects of our color
>> support on many terminals.
>=20
> And then, of course, there are the changes in color-distance itself,
> which change the values it returns.  Again, why such significant
> changes to fix an otherwise insignificant bug?

It is difficult to give precise answers to vague complaints. Take one =
thing at a time: as I wrote, there are two different patches addressing =
two almost completely different issues. Let's start with the =
color-distance changes, out of respect for the bug reporter if nothing =
else.

It is not possible to change a function without changing it. Either we =
fix it or we don't. The reported bug was about broken symmetry, which is =
rather embarrassing; as written previously, the first analysis uncovered =
deeper issues worth fixing, such as loss of precision and (especially) =
the nonlinearity that causes triangle inequality violation.

The proposed fixes to color-distance, I hope you agree, are =
straightforward, reasonable and address all these points. Callers have =
been updated with carefully recomputed comparison constants; I detailed =
how they were obtained in a previous reply, and test have all been =
satisfactory.





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

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


Received: (at 41544) by debbugs.gnu.org; 2 Jun 2020 15:08:56 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jun 02 11:08:56 2020
Received: from localhost ([127.0.0.1]:40608 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jg8XA-0007rr-AE
	for submit <at> debbugs.gnu.org; Tue, 02 Jun 2020 11:08:56 -0400
Received: from mail72c50.megamailservers.eu ([91.136.10.82]:52188
 helo=mail92c50.megamailservers.eu)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mattiase@HIDDEN>) id 1jg8X8-0007rg-19
 for 41544 <at> debbugs.gnu.org; Tue, 02 Jun 2020 11:08:55 -0400
X-Authenticated-User: mattiase@HIDDEN
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu;
 s=maildub; t=1591110531;
 bh=MIA2Ed32TuY1chjkz5llieGREe7djImuoIaKeSndBY8=;
 h=Subject:From:In-Reply-To:Date:Cc:References:To:From;
 b=OVRdgBLo1DeY6FOUhyRb0qW3Jd4cXOkp17P6Uu6qzA2dAVDyNr5eZwDVpZI4IqMm8
 ZnG8GTruTwudwhWs8GnEQoh33xT52t2ln83bFhlai3d8cxXGSZGNOu1Tu7t4JRfwpr
 M9rg2Te97gDpFNQJU0NWrvgLOAYq5stK8sQdaseY=
Feedback-ID: mattiase@HIDDEN
Received: from stanniol.lan (c-4e4ae655.032-75-73746f71.bbcust.telenor.se
 [85.230.74.78]) (authenticated bits=0)
 by mail92c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 052F8lDD031069; 
 Tue, 2 Jun 2020 15:08:49 +0000
Content-Type: text/plain;
	charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.14\))
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>
In-Reply-To: <877dwqbmc6.fsf@HIDDEN>
Date: Tue, 2 Jun 2020 17:08:47 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <E801A168-E8AD-4A1F-84FF-3BBA6D34BD03@HIDDEN>
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <877dwqbmc6.fsf@HIDDEN>
To: "Basil L. Contovounesios" <contovob@HIDDEN>
X-Mailer: Apple Mail (2.3445.104.14)
X-CTCH-RefID: str=0001.0A782F28.5ED66B31.0058:SCFSTAT68638221, ss=1, re=-4.000,
 recu=0.000, reip=0.000, cl=1, cld=1, fgs=0
X-CTCH-VOD: Unknown
X-CTCH-Spam: Unknown
X-CTCH-Score: -4.000
X-CTCH-Rules: 
X-CTCH-Flags: 0
X-CTCH-ScoreCust: 0.000
X-CSC: 0
X-CHA: v=2.3 cv=aY8fYigt c=1 sm=1 tr=0 a=klNLuyVZdLUgl+K5Uafb2A==:117
 a=klNLuyVZdLUgl+K5Uafb2A==:17 a=kj9zAlcOel0A:10 a=M51BFTxLslgA:10
 a=ki0sEvHv-SN8jT7Vzy0A:9 a=CjuIK1q_8ugA:10
X-Spam-Score: 1.4 (+)
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: 1 juni 2020 kl. 21.46 skrev Basil L. Contovounesios
 <contovob@HIDDEN>:
 > Does the list of 7 places already include net/shr-color.el? No, and thanks
 for bringing it to my attention! That code appears considerably more
 sophisticated
 than the others, and its task (in shr-color-visible) is somewhat different
 (not just a decision betwee [...] 
 Content analysis details:   (1.4 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.0 URIBL_BLOCKED          ADMINISTRATOR NOTICE: The query to URIBL was
 blocked.  See
 http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block
 for more information. [URIs: megamailservers.eu]
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 1.0 SPF_SOFTFAIL           SPF: sender does not match SPF record (softfail)
 0.4 KHOP_HELO_FCRDNS       Relay HELO differs from its IP's reverse DNS
X-Debbugs-Envelope-To: 41544
Cc: Tom Tromey <tom@HIDDEN>, Simon Pugnet <simon@HIDDEN>,
 41544 <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.0 (/)

1 juni 2020 kl. 21.46 skrev Basil L. Contovounesios <contovob@HIDDEN>:

> Does the list of 7 places already include net/shr-color.el?

No, and thanks for bringing it to my attention! That code appears =
considerably more sophisticated than the others, and its task (in =
shr-color-visible) is somewhat different (not just a decision between =
black and white as contrasting colour). It's probably better to leave it =
alone for now.






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

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


Received: (at 41544) by debbugs.gnu.org; 1 Jun 2020 19:46:58 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jun 01 15:46:58 2020
Received: from localhost ([127.0.0.1]:37053 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jfqOg-0005y0-AX
	for submit <at> debbugs.gnu.org; Mon, 01 Jun 2020 15:46:58 -0400
Received: from mail-wr1-f44.google.com ([209.85.221.44]:37482)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <contovob@HIDDEN>) id 1jfqOf-0005xo-9C
 for 41544 <at> debbugs.gnu.org; Mon, 01 Jun 2020 15:46:57 -0400
Received: by mail-wr1-f44.google.com with SMTP id x13so1042616wrv.4
 for <41544 <at> debbugs.gnu.org>; Mon, 01 Jun 2020 12:46:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=tcd-ie.20150623.gappssmtp.com; s=20150623;
 h=from:to:cc:subject:references:date:in-reply-to:message-id
 :user-agent:mime-version:content-transfer-encoding;
 bh=feDuKHc53Hvro98HSL1jGCp4YbpNH135AqOpRbWBN7Q=;
 b=yDYoeTqxS2aT8c9sOMRaUOa5wJRCrZw0hMyUEriYjjKJBjsMuWRVvyQbMzG7cKtyk2
 wAQ81D5epWKyDLrmBAvjYQ0A6xvTmZVA/mn6c3fI03ENzlWkMo0GrjHbyY0S3EiN3uO3
 QkM4jPcis/qBZNhRTOuWlM5bfToU3G0EzKy4TNGrJWc+/FekKS061Uo7qKJRaWmCbM9j
 mf2O+Qeu+wN+qZ3IlFeZylDWHBlMwouIZwQ2CZ/yfOWGsF/l2YeYKltJNLa3FdzMGINO
 xm3zOCAcllBCzX3tKMAhxLm1GU1oTii3naHZiIAmJwJ73SPbcnOb+Zip5ClCMmVA9cUg
 wSuw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to
 :message-id:user-agent:mime-version:content-transfer-encoding;
 bh=feDuKHc53Hvro98HSL1jGCp4YbpNH135AqOpRbWBN7Q=;
 b=YyS9tj7HLKrCT6T+sJZgN5XUnmqYUGF6hArUzzosF4NrBwsHdFXG959BnfbodyaJ3P
 snDUSEgcpnCFbXxfYrgT2CkdTRgefJGRHFwOjQ7rBTIRIWkvUyC5FtJMfMpK6KTu9w7R
 j2GpL0PRmBhdjiT6O1+NZ3vQAH64OfUp0ZEPi/+J3pgl5+Plt9BkHPvh9Pa3gGfJH8SW
 t4RH+icowVDqXyX6ampqXBt55J7CU9ztLp/odQJqd6w5N6qiragkV+sKLC/i69EsLaVU
 RHZvGgqiUQsZU0jlfXHivU48UtZBrLYxIs6VWAmq6/KuZpTrLWkU+uRrW8Gf+U6Mvi1V
 tXKw==
X-Gm-Message-State: AOAM530R2Of2haQX7nlmtJYV+3bsf70YMNck6mBjmvFHVIQwfuyHDpfA
 mLbj7tuCD46b0LdxhkQaV5zmYQ==
X-Google-Smtp-Source: ABdhPJzgAJr0SR1VA6ZQiJ7FQJfzUqMBnvnUHMehOCkw+7An0qkSYH35ranW9Zpgf2zhh6tFkUmadA==
X-Received: by 2002:a05:6000:1003:: with SMTP id
 a3mr8576969wrx.111.1591040811211; 
 Mon, 01 Jun 2020 12:46:51 -0700 (PDT)
Received: from localhost ([2a02:8084:20e2:c380:1f68:7ff5:120d:64e])
 by smtp.gmail.com with ESMTPSA id 138sm511500wma.23.2020.06.01.12.46.50
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 01 Jun 2020 12:46:50 -0700 (PDT)
From: "Basil L. Contovounesios" <contovob@HIDDEN>
To: Mattias =?utf-8?Q?Engdeg=C3=A5rd?= <mattiase@HIDDEN>
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN>
 <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN>
Date: Mon, 01 Jun 2020 20:46:49 +0100
In-Reply-To: <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> ("Mattias
 =?utf-8?Q?Engdeg=C3=A5rd=22's?= message of "Sun, 31 May 2020 22:46:07
 +0200")
Message-ID: <877dwqbmc6.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 41544
Cc: Tom Tromey <tom@HIDDEN>, Simon Pugnet <simon@HIDDEN>,
 41544 <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: -1.0 (-)

Mattias Engdeg=C3=A5rd <mattiase@HIDDEN> writes:

> Emacs does this sort of is-this-colour-dark computation in at least 7
> different places, with different algorithms:
>
> * max(r,g,b) < 0.5
> * r+g+b < 0.5*3
> * color-distance(c, "black") < 292485

Does the list of 7 places already include net/shr-color.el?

--=20
Basil




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

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


Received: (at 41544) by debbugs.gnu.org; 1 Jun 2020 17:44:54 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jun 01 13:44:54 2020
Received: from localhost ([127.0.0.1]:36947 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jfoUY-0002yA-7q
	for submit <at> debbugs.gnu.org; Mon, 01 Jun 2020 13:44:54 -0400
Received: from eggs.gnu.org ([209.51.188.92]:55000)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1jfoUW-0002xx-8R
 for 41544 <at> debbugs.gnu.org; Mon, 01 Jun 2020 13:44:53 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:53202)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <eliz@HIDDEN>)
 id 1jfoUP-0004Gf-Sw; Mon, 01 Jun 2020 13:44:45 -0400
Received: from [176.228.60.248] (port=1400 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1jfoUO-0005NT-ND; Mon, 01 Jun 2020 13:44:45 -0400
Date: Mon, 01 Jun 2020 20:44:39 +0300
Message-Id: <83mu5mel4o.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: mattiase@HIDDEN
In-Reply-To: <83o8q2elja.fsf@HIDDEN> (message from Eli Zaretskii on Mon, 01
 Jun 2020 20:35:53 +0300)
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> <83o8q2elja.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 41544
Cc: tom@HIDDEN, simon@HIDDEN, 41544 <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 (---)

> Date: Mon, 01 Jun 2020 20:35:53 +0300
> From: Eli Zaretskii <eliz@HIDDEN>
> Cc: tom@HIDDEN, simon@HIDDEN, 41544 <at> debbugs.gnu.org
> 
> I'm just looking at the changes.  I see a change in how colors are
> converted to RGB triplets.  I see a change in what colors are
> considered dark and light, with a new function which decides that that
> is being used for frame background mode and in several lisp/term/
> files, including 16-color terminals.  I'm asking why do we want to
> make all those changes, which modify very basic aspects of our color
> support on many terminals.

And then, of course, there are the changes in color-distance itself,
which change the values it returns.  Again, why such significant
changes to fix an otherwise insignificant bug?




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

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


Received: (at 41544) by debbugs.gnu.org; 1 Jun 2020 17:36:09 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jun 01 13:36:09 2020
Received: from localhost ([127.0.0.1]:36943 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jfoM5-0002lk-A1
	for submit <at> debbugs.gnu.org; Mon, 01 Jun 2020 13:36:09 -0400
Received: from eggs.gnu.org ([209.51.188.92]:53562)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1jfoM1-0002lC-Dy
 for 41544 <at> debbugs.gnu.org; Mon, 01 Jun 2020 13:36:07 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:53071)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <eliz@HIDDEN>)
 id 1jfoLv-0002IP-4A; Mon, 01 Jun 2020 13:35:59 -0400
Received: from [176.228.60.248] (port=4829 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1jfoLu-0004lN-5S; Mon, 01 Jun 2020 13:35:58 -0400
Date: Mon, 01 Jun 2020 20:35:53 +0300
Message-Id: <83o8q2elja.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Mattias =?utf-8?Q?Engdeg=C3=A5rd?= <mattiase@HIDDEN>
In-Reply-To: <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN> (message from
 Mattias =?utf-8?Q?Engdeg=C3=A5rd?= on Mon, 1 Jun 2020 19:24:45 +0200)
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
 <6272275C-560C-4437-90F1-2A8294D27019@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: 41544
Cc: tom@HIDDEN, simon@HIDDEN, 41544 <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: Mattias Engdegård <mattiase@HIDDEN>
> Date: Mon, 1 Jun 2020 19:24:45 +0200
> Cc: tom@HIDDEN, simon@HIDDEN, 41544 <at> debbugs.gnu.org
> 
> > I'm worried because the way our automatic color mapping on
> > color-challenged TTYs works took some time to get right, and it worked
> > well for years.  If we want to risk rocking that particular boat som
> > profoundly, we had better had a very good reason, preferably several
> > good reasons.
> 
> Not quite sure what you are talking about here. You previously asked about the exact value of TTY_SAME_COLOR_THRESHOLD. Were you unsatisfied with my answer, and if so, in what respect?

I'm just looking at the changes.  I see a change in how colors are
converted to RGB triplets.  I see a change in what colors are
considered dark and light, with a new function which decides that that
is being used for frame background mode and in several lisp/term/
files, including 16-color terminals.  I'm asking why do we want to
make all those changes, which modify very basic aspects of our color
support on many terminals.




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

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


Received: (at 41544) by debbugs.gnu.org; 1 Jun 2020 17:25:02 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jun 01 13:25:02 2020
Received: from localhost ([127.0.0.1]:36926 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jfoBH-0002Tf-0g
	for submit <at> debbugs.gnu.org; Mon, 01 Jun 2020 13:25:02 -0400
Received: from mail1450c50.megamailservers.eu ([91.136.14.50]:47058
 helo=mail265c50.megamailservers.eu)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mattiase@HIDDEN>) id 1jfoBE-0002TR-Cc
 for 41544 <at> debbugs.gnu.org; Mon, 01 Jun 2020 13:24:57 -0400
X-Authenticated-User: mattiase@HIDDEN
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu;
 s=maildub; t=1591032289;
 bh=wCRDcnNqgat74Gf4ebJyCwelsaWYz0d9DTHDtfdIcPE=;
 h=Subject:From:In-Reply-To:Date:Cc:References:To:From;
 b=A1UvYsdVGy/iDEMACVMe8cmPMsF2vvoqY0kfbLUDdghMmlXVPsyq/oIcUdk/oiT5z
 jH1xn2tcL1rzb0vKsHntfE1PNwu10pRHagUCd7FrXhfM+Pz8x9imvLVBcfl3jFsvNH
 VQFe0YkaAfMhiZjec5DxmzDrMtAH912lC3l33oyQ=
Feedback-ID: mattiase@HIDDEN
Received: from stanniol.lan (c-4e4ae655.032-75-73746f71.bbcust.telenor.se
 [85.230.74.78]) (authenticated bits=0)
 by mail265c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 051HOkwQ002093; 
 Mon, 1 Jun 2020 17:24:47 +0000
Content-Type: text/plain;
	charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.14\))
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>
In-Reply-To: <83tuzueogo.fsf@HIDDEN>
Date: Mon, 1 Jun 2020 19:24:45 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <6272275C-560C-4437-90F1-2A8294D27019@HIDDEN>
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> <83tuzueogo.fsf@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
X-Mailer: Apple Mail (2.3445.104.14)
X-CTCH-RefID: str=0001.0A782F26.5ED53987.006A:SCFSTAT68638221, ss=1, re=-4.000,
 recu=0.000, reip=0.000, cl=1, cld=1, fgs=0
X-CTCH-VOD: Unknown
X-CTCH-Spam: Unknown
X-CTCH-Score: -4.000
X-CTCH-Rules: 
X-CTCH-Flags: 0
X-CTCH-ScoreCust: 0.000
X-CSC: 0
X-CHA: v=2.3 cv=D5w51cZj c=1 sm=1 tr=0 a=klNLuyVZdLUgl+K5Uafb2A==:117
 a=klNLuyVZdLUgl+K5Uafb2A==:17 a=kj9zAlcOel0A:10 a=M51BFTxLslgA:10
 a=mDV3o1hIAAAA:8 a=HwH1CxdJoGffx6xDYTMA:9 a=CjuIK1q_8ugA:10
 a=_FVE-zBwftR9WsbkzFJk:22
X-Spam-Score: 1.4 (+)
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:  1 juni 2020 kl. 18.32 skrev Eli Zaretskii <eliz@HIDDEN>:
 > Please remind me why do we want to make such deep and wide changes in >
 our color system? Is that just because we have a minor bug in >
 color-distance?
 Wouldn't it be better to just fix that one bug [...] 
 Content analysis details:   (1.4 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.0 URIBL_BLOCKED          ADMINISTRATOR NOTICE: The query to URIBL was
 blocked.  See
 http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block
 for more information. [URIs: gnu.org]
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 1.0 SPF_SOFTFAIL           SPF: sender does not match SPF record (softfail)
 0.4 KHOP_HELO_FCRDNS       Relay HELO differs from its IP's reverse DNS
X-Debbugs-Envelope-To: 41544
Cc: tom@HIDDEN, simon@HIDDEN, 41544 <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: -1.0 (-)

1 juni 2020 kl. 18.32 skrev Eli Zaretskii <eliz@HIDDEN>:

> Please remind me why do we want to make such deep and wide changes in
> our color system?  Is that just because we have a minor bug in
> color-distance?  Wouldn't it be better to just fix that one bug?

These changes are neither deep nor wide. Perhaps the confusion arose =
from remeding two almost entirely independent issues in the same =
discussion: the flaws in color-distance, taken care of by the first =
patch, and the contrasting colour computation, which was the topic of =
the message and patch you replied to.

Sorry about conflating the two -- I should have opened a separate bug =
for the colour contrast mess. Their only point of intersection was, in =
hindsight, rather coincidental (css-mode).

> I'm worried because the way our automatic color mapping on
> color-challenged TTYs works took some time to get right, and it worked
> well for years.  If we want to risk rocking that particular boat som
> profoundly, we had better had a very good reason, preferably several
> good reasons.

Not quite sure what you are talking about here. You previously asked =
about the exact value of TTY_SAME_COLOR_THRESHOLD. Were you unsatisfied =
with my answer, and if so, in what respect?





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

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


Received: (at 41544) by debbugs.gnu.org; 1 Jun 2020 16:32:48 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jun 01 12:32:48 2020
Received: from localhost ([127.0.0.1]:36848 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jfnMl-00017L-S4
	for submit <at> debbugs.gnu.org; Mon, 01 Jun 2020 12:32:48 -0400
Received: from eggs.gnu.org ([209.51.188.92]:45480)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1jfnMk-000178-Dy
 for 41544 <at> debbugs.gnu.org; Mon, 01 Jun 2020 12:32:46 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:52109)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <eliz@HIDDEN>)
 id 1jfnMd-0006C0-Ri; Mon, 01 Jun 2020 12:32:40 -0400
Received: from [176.228.60.248] (port=4654 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1jfnMc-00066W-Qn; Mon, 01 Jun 2020 12:32:39 -0400
Date: Mon, 01 Jun 2020 19:32:39 +0300
Message-Id: <83tuzueogo.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Mattias =?utf-8?Q?Engdeg=C3=A5rd?= <mattiase@HIDDEN>
In-Reply-To: <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN> (message from
 Mattias =?utf-8?Q?Engdeg=C3=A5rd?= on Sun, 31 May 2020 22:46:07 +0200)
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
 <9902865C-01B4-4E50-A433-DBC8B8311234@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: 41544
Cc: tom@HIDDEN, simon@HIDDEN, 41544 <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: Mattias Engdegård <mattiase@HIDDEN>
> Date: Sun, 31 May 2020 22:46:07 +0200
> Cc: Simon Pugnet <simon@HIDDEN>, 41544 <at> debbugs.gnu.org,
>         Eli Zaretskii <eliz@HIDDEN>
> 
> Proposed patch attached. I found css-mode no worse than before (a tad better, if anything). Perhaps we need to decompress to linear components after all, but at least now there is a single place to do it.
> 
> (Should list-colors-display use color-dark-p for the text in its left column, by the way? Or is there a point in not doing so?)

Please remind me why do we want to make such deep and wide changes in
our color system?  Is that just because we have a minor bug in
color-distance?  Wouldn't it be better to just fix that one bug?

I'm worried because the way our automatic color mapping on
color-challenged TTYs works took some time to get right, and it worked
well for years.  If we want to risk rocking that particular boat som
profoundly, we had better had a very good reason, preferably several
good reasons.

Thanks.




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

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


Received: (at 41544) by debbugs.gnu.org; 31 May 2020 20:46:16 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun May 31 16:46:16 2020
Received: from localhost ([127.0.0.1]:33954 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jfUqW-0007O4-4S
	for submit <at> debbugs.gnu.org; Sun, 31 May 2020 16:46:16 -0400
Received: from mail208c50.megamailservers.eu ([91.136.10.218]:53996
 helo=mail194c50.megamailservers.eu)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mattiase@HIDDEN>) id 1jfUqT-0007Nu-7y
 for 41544 <at> debbugs.gnu.org; Sun, 31 May 2020 16:46:14 -0400
X-Authenticated-User: mattiase@HIDDEN
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu;
 s=maildub; t=1590957970;
 bh=ooMLS9DDFzKSGSxXjp/3+EGdBk0U2wGJBMbfN6qNNf4=;
 h=From:Subject:Date:In-Reply-To:Cc:To:References:From;
 b=B6Jpy68SQ0/A2qu5YuKnv9cfKYOVqmXrHaeexbMwRBuycmNPfjobDFwdrWoo3S5et
 g+3WOZt165TbM3XdcOAmM/zCMy44t2mV91V0cRALVHj58l7OqraQTnK6ryzcacWZS4
 fDa69uucErSHwjjrepvON9EOl2FQznlvLEwMhQbE=
Feedback-ID: mattiase@HIDDEN
Received: from stanniol.lan (c-4e4ae655.032-75-73746f71.bbcust.telenor.se
 [85.230.74.78]) (authenticated bits=0)
 by mail194c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 04VKk7hn017708; 
 Sun, 31 May 2020 20:46:09 +0000
From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>
Message-Id: <9902865C-01B4-4E50-A433-DBC8B8311234@HIDDEN>
Content-Type: multipart/mixed;
 boundary="Apple-Mail=_7FF6E8CE-41E3-44BB-A837-E0A212C5FA1B"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.14\))
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
Date: Sun, 31 May 2020 22:46:07 +0200
In-Reply-To: <87r1v2aat3.fsf@HIDDEN>
To: Tom Tromey <tom@HIDDEN>
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <87r1v2aat3.fsf@HIDDEN>
X-Mailer: Apple Mail (2.3445.104.14)
X-CTCH-RefID: str=0001.0A782F1C.5ED41749.000C:SCFSTAT68638221, ss=1, re=-4.000,
 recu=0.000, reip=0.000, cl=1, cld=1, fgs=0
X-CTCH-VOD: Unknown
X-CTCH-Spam: Unknown
X-CTCH-Score: -4.000
X-CTCH-Rules: 
X-CTCH-Flags: 0
X-CTCH-ScoreCust: 0.000
X-CSC: 0
X-CHA: v=2.3 cv=KsozJleN c=1 sm=1 tr=0 a=klNLuyVZdLUgl+K5Uafb2A==:117
 a=klNLuyVZdLUgl+K5Uafb2A==:17 a=M51BFTxLslgA:10 a=zstS-IiYAAAA:8
 a=yhKnspnhLiaNJBSypWMA:9 a=CjuIK1q_8ugA:10 a=LUiTdrM7ar1z_bhPKtoA:9
 a=B2y7HmGcmWMA:10 a=tclcd6dtLQvEqt9_mmAA:9 a=4G6NA9xxw8l3yy4pmD5M:22
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 41544
Cc: Eli Zaretskii <eliz@HIDDEN>, Simon Pugnet <simon@HIDDEN>,
 41544 <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.0 (/)


--Apple-Mail=_7FF6E8CE-41E3-44BB-A837-E0A212C5FA1B
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

29 maj 2020 kl. 19.52 skrev Tom Tromey <tom@HIDDEN>:

> However, my main concern is just whether it still picks reasonably
> contrasting colors when editing CSS.  If it does, then that's good
> enough for me.

Thank you for the kind words. I couldn't leave well enough alone, of =
course. Emacs does this sort of is-this-colour-dark computation in at =
least 7 different places, with different algorithms:

* max(r,g,b) < 0.5
* r+g+b < 0.5*3
* color-distance(c, "black") < 292485

They aren't really satisfactory: for example, saturated blue (#0000ff) =
is quite clearly 'dark', yet the first algorithm considers it 'light'. =
Colour distance isn't quite right either -- the implemented formula is =
intended to measure distances between colours, not brightness. For =
example, it considers #ff0000 to be closer than #0000ff to black, but =
the red is clearly brighter.

I tentatively went with your suggested 0.299r + 0.587g + 0.114g, with a =
cut-off value of 0.58 to make saturated blue and red 'dark' and green =
'light'. This is not a correct luma calculation since there is no gamma =
correction, but it might do for this purpose.

Proposed patch attached. I found css-mode no worse than before (a tad =
better, if anything). Perhaps we need to decompress to linear components =
after all, but at least now there is a single place to do it.

(Should list-colors-display use color-dark-p for the text in its left =
column, by the way? Or is there a point in not doing so?)


--Apple-Mail=_7FF6E8CE-41E3-44BB-A837-E0A212C5FA1B
Content-Disposition: attachment;
	filename=0001-Use-a-single-light-dark-colour-predicate.patch
Content-Type: application/octet-stream;
	x-unix-mode=0644;
	name="0001-Use-a-single-light-dark-colour-predicate.patch"
Content-Transfer-Encoding: quoted-printable

=46rom=205d5ef884c47695a39c22d931c4bc44e6a812d7b4=20Mon=20Sep=2017=20=
00:00:00=202001=0AFrom:=20=3D?UTF-8?q?Mattias=3D20Engdeg=3DC3=3DA5rd?=3D=20=
<mattiase@HIDDEN>=0ADate:=20Sun,=2031=20May=202020=2021:12:46=20+0200=0A=
Subject:=20[PATCH]=20Use=20a=20single=20light/dark=20colour=20predicate=0A=
=0AAdd=20a=20single=20predicate,=20color-dark-p,=20for=20deciding=20=
whether=20a=20colour=0Ais=20more=20readable=20against=20black=20or=20=
white.=20=20Previously=20this=20was=20done=20in=0Adifferent=20ways=20in=20=
several=20places,=20and=20with=20worse=20results.=20=20(Bug#41544)=0A=0A=
*=20lisp/color.el=20(color-name-to-rgb):=20Use=20color-component-max=20=
instead=0Aof=20the=20error-prone=20method=20of=20(color-values=20=
"#ffffffffffff"),=20which=0Awould=20give=20unexpected=20values=20or=20=
outright=20fail=20if=20called=20without=0Aan=20initialised=20display=20=
(as=20in=20batch=20mode).=0A*=20lisp/facemenu.el=20(list-colors-print):=20=
Use=20readable-foreground-color.=0A(color-dark-p,=20=
color-component-max):=20New=20functions.=0A*=20lisp/term/pc-win.el:=20=
Update=20comment.=0A*=20lisp/term/rxvt.el=20(rxvt-set-background-mode):=0A=
*=20lisp/term/w32console.el=20(terminal-init-w32console):=0A*=20=
lisp/term/xterm.el=20(xterm-maybe-set-dark-background-mode):=0A*=20=
lisp/faces.el=20(readable-foreground-color):=0A*=20lisp/frame.el=20=
(frame-set-background-mode):=20Use=20color-dark-p.=0A*=20=
lisp/textmodes/css-mode.el=20(css--contrasty-color):=20Remove.=0A=
(css--fontify-region):=20Use=20color-dark-p.=0A---=0A=20lisp/color.el=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20|=20=204=20+---=0A=20=
lisp/facemenu.el=20=20=20=20=20=20=20=20=20=20=20|=20=208=20+++-----=0A=20=
lisp/faces.el=20=20=20=20=20=20=20=20=20=20=20=20=20=20|=2034=20=
+++++++++++++++++++++++++---------=0A=20lisp/frame.el=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20|=2010=20+++-------=0A=20lisp/term/pc-win.el=20=20=20=
=20=20=20=20=20|=20=208=20+++-----=0A=20lisp/term/rxvt.el=20=20=20=20=20=20=
=20=20=20=20|=2012=20+++++-------=0A=20lisp/term/w32console.el=20=20=20=20=
|=20=205=20++---=0A=20lisp/term/xterm.el=20=20=20=20=20=20=20=20=20|=20=20=
5=20++---=0A=20lisp/textmodes/css-mode.el=20|=2014=20++------------=0A=20=
9=20files=20changed,=2046=20insertions(+),=2054=20deletions(-)=0A=0Adiff=20=
--git=20a/lisp/color.el=20b/lisp/color.el=0Aindex=20=
560631ae66..2385874028=20100644=0A---=20a/lisp/color.el=0A+++=20=
b/lisp/color.el=0A@@=20-50,9=20+50,7=20@@=20color-name-to-rgb=0A=20=
Optional=20argument=20FRAME=20specifies=20the=20frame=20where=20the=20=
color=20is=20to=20be=0A=20displayed.=20=20If=20FRAME=20is=20omitted=20or=20=
nil,=20use=20the=20selected=20frame.=0A=20If=20FRAME=20cannot=20display=20=
COLOR,=20return=20nil."=0A-=20=20;;=20`colors-values'=20maximum=20value=20=
is=20either=2065535=20or=2065280=20depending=20on=20the=0A-=20=20;;=20=
display=20system.=20=20So=20we=20use=20a=20white=20conversion=20to=20get=20=
the=20max=20value.=0A-=20=20(let=20((valmax=20(float=20(car=20=
(color-values=20"#ffffffffffff")))))=0A+=20=20(let=20((valmax=20(float=20=
(color-component-max=20frame))))=0A=20=20=20=20=20(mapcar=20(lambda=20=
(x)=20(/=20x=20valmax))=20(color-values=20color=20frame))))=0A=20=0A=20=
(defun=20color-rgb-to-hex=20=20(red=20green=20blue=20&optional=20=
digits-per-component)=0Adiff=20--git=20a/lisp/facemenu.el=20=
b/lisp/facemenu.el=0Aindex=20b10d874b21..119a2ba790=20100644=0A---=20=
a/lisp/facemenu.el=0A+++=20b/lisp/facemenu.el=0A@@=20-621,9=20+621,7=20=
@@=20list-colors-print=0A=20=09=09=09=09=09=09=20(downcase=20b))))))=0A=20=
=09(setq=20color=20(list=20color)))=0A=20=20=20=20=20=20=20(let*=20=
((opoint=20(point))=0A-=09=20=20=20=20=20(color-values=20(color-values=20=
(car=20color)))=0A-=09=20=20=20=20=20(light-p=20(>=3D=20(apply=20'max=20=
color-values)=0A-=09=09=09=20=20(*=20(car=20(color-values=20"white"))=20=
.5))))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20(fg=20=
(readable-foreground-color=20(car=20color))))=0A=20=09(insert=20(car=20=
color))=0A=20=09(indent-to=2022)=0A=20=09(put-text-property=20opoint=20=
(point)=20'face=20`(:background=20,(car=20color)))=0A@@=20-639,7=20=
+637,7=20@@=20list-colors-print=0A=20=09(insert=20(propertize=0A=20=09=09=
=20(apply=20'format=20"#%02x%02x%02x"=0A=20=09=09=09(mapcar=20(lambda=20=
(c)=20(ash=20c=20-8))=0A-=09=09=09=09color-values))=0A+=09=09=09=09=
(color-values=20(car=20color))))=0A=20=09=09=20'mouse-face=20'highlight=0A=
=20=09=09=20'help-echo=0A=20=09=09=20(let=20((hsv=20(apply=20=
'color-rgb-to-hsv=0A@@=20-651,7=20+649,7=20@@=20list-colors-print=0A=20=09=
=20=20=20opoint=20(point)=0A=20=09=20=20=20'follow-link=20t=0A=20=09=20=20=
=20'mouse-face=20(list=20:background=20(car=20color)=0A-=09=09=09=20=20=20=
=20=20:foreground=20(if=20light-p=20"black"=20"white"))=0A+=09=09=09=20=20=
=20=20=20:foreground=20fg)=0A=20=09=20=20=20'color-name=20(car=20color)=0A=
=20=09=20=20=20'action=20callback-fn)))=0A=20=20=20=20=20=20=20(insert=20=
"\n"))=0Adiff=20--git=20a/lisp/faces.el=20b/lisp/faces.el=0Aindex=20=
e707f6f4b6..2b9bcb9bcf=20100644=0A---=20a/lisp/faces.el=0A+++=20=
b/lisp/faces.el=0A@@=20-1786,15=20+1786,22=20@@=20=
defined-colors-with-face-attributes=0A=20=0A=20(defun=20=
readable-foreground-color=20(color)=0A=20=20=20"Return=20a=20readable=20=
foreground=20color=20for=20background=20COLOR."=0A-=20=20(let*=20((rgb=20=
=20=20(color-values=20color))=0A-=09=20(max=20=20=20(apply=20#'max=20=
rgb))=0A-=09=20(black=20(car=20(color-values=20"black")))=0A-=09=20=
(white=20(car=20(color-values=20"white"))))=0A-=20=20=20=20;;=20Select=20=
black=20or=20white=20depending=20on=20which=20one=20is=20less=20similar=20=
to=0A-=20=20=20=20;;=20the=20brightest=20component.=0A-=20=20=20=20(if=20=
(>=20(abs=20(-=20max=20black))=20(abs=20(-=20max=20white)))=0A-=09=
"black"=0A-=20=20=20=20=20=20"white")))=0A+=20=20(if=20(color-dark-p=20=
(color-name-to-rgb=20color))=20"white"=20"black"))=0A+=0A+(defun=20=
color-dark-p=20(rgb)=0A+=20=20"Whether=20RGB=20is=20more=20readable=20=
against=20white=20than=20black.=0A+RGB=20is=20a=203-element=20list=20(R=20=
G=20B),=20each=20component=20in=20the=20range=20[0,1]."=0A+=20=20(let=20=
((r=20(nth=200=20rgb))=0A+=20=20=20=20=20=20=20=20(g=20(nth=201=20rgb))=0A=
+=20=20=20=20=20=20=20=20(b=20(nth=202=20rgb)))=0A+=20=20=20=20(unless=20=
(<=3D=200=20(min=20r=20g=20b)=20(max=20r=20g=20b)=201)=0A+=20=20=20=20=20=
=20(error=20"RGB=20component=20not=20in=20[0,1]"))=0A+=20=20=20=20;;=20=
Simple=20heuristic=20--=20correct=20luma=20requires=20gamma=20=
correction,=0A+=20=20=20=20;;=20which=20is=20overkill=20for=20this=20=
purpose.=0A+=20=20=20=20;;=20The=20cut-off=20value=20was=20designed=20to=20=
make=20saturated=20green=20'light',=0A+=20=20=20=20;;=20but=20saturated=20=
red=20and=20blue=20'dark'.=0A+=20=20=20=20(<=20(+=20(*=20r=200.299)=20(*=20=
g=200.587)=20(*=20b=200.114))=0A+=20=20=20=20=20=20=200.58)))=0A=20=0A=20=
(declare-function=20xw-color-defined-p=20"xfns.c"=20(color=20&optional=20=
frame))=0A=20=0A@@=20-1840,6=20+1847,15=20@@=20color-values=0A=20=20=20=20=
(t=0A=20=20=20=20=20(tty-color-values=20color=20frame))))=0A=20=0A=
+(defun=20color-component-max=20(&optional=20frame)=0A+=20=20"The=20=
highest=20value=20of=20a=20color=20component=20on=20FRAME.=0A+If=20FRAME=20=
is=20omitted=20or=20nil,=20use=20the=20selected=20frame."=0A+=20=20;;=20=
Right=20now,=20NS=20frames=20are=20the=20only=20ones=20having=20a=20=
different=20maximum=0A+=20=20;;=20colour=20component=20value.=0A+=20=20=
(if=20(eq=20(framep-on-display=20frame)=20'ns)=0A+=20=20=20=20=20=20=
#xff00=0A+=20=20=20=20#xffff))=0A+=0A=20(defalias=20'x-color-values=20=
'color-values)=0A=20=0A=20(declare-function=20xw-display-color-p=20=
"xfns.c"=20(&optional=20terminal))=0Adiff=20--git=20a/lisp/frame.el=20=
b/lisp/frame.el=0Aindex=206c2f774709..fed46f333d=20100644=0A---=20=
a/lisp/frame.el=0A+++=20b/lisp/frame.el=0A@@=20-1181,13=20+1181,9=20@@=20=
frame-set-background-mode=0A=20=09=09=20=20=20non-default-bg-mode)=0A=20=09=
=09=20=20((not=20(color-values=20bg-color=20frame))=0A=20=09=09=20=20=20=
default-bg-mode)=0A-=09=09=20=20((>=3D=20(apply=20'+=20(color-values=20=
bg-color=20frame))=0A-=09=09=20=20=20=20=20=20=20;;=20Just=20looking=20=
at=20the=20screen,=20colors=20whose=0A-=09=09=20=20=20=20=20=20=20;;=20=
values=20add=20up=20to=20.6=20of=20the=20white=20total=0A-=09=09=20=20=20=
=20=20=20=20;;=20still=20look=20dark=20to=20me.=0A-=09=09=20=20=20=20=20=20=
=20(*=20(apply=20'+=20(color-values=20"white"=20frame))=20.6))=0A-=09=09=20=
=20=20'light)=0A-=09=09=20=20(t=20'dark)))=0A+=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20((color-dark-p=20(color-name-to-rgb=20=
bg-color=20frame))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20'dark)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(t=20=
'light)))=0A=20=09=20=20=20(display-type=0A=20=09=20=20=20=20(cond=20=
((null=20(window-system=20frame))=0A=20=09=09=20=20=20(if=20=
(tty-display-color-p=20frame)=20'color=20'mono))=0Adiff=20--git=20=
a/lisp/term/pc-win.el=20b/lisp/term/pc-win.el=0Aindex=20=
76a48a86c7..16eb660f00=20100644=0A---=20a/lisp/term/pc-win.el=0A+++=20=
b/lisp/term/pc-win.el=0A@@=20-54,11=20+54,9=20@@=0A=20;;=20=
DJGPP-compiled=20Emacs=20on=20the=20same=20PC.=20=20The=20names=20of=20X=20=
colors=20used=20to=0A=20;;=20define=20the=20pixel=20values=20are=20shown=20=
as=20comments=20to=20each=20color=20below.=0A=20;;;=0A-;;=20If=20you=20=
want=20to=20change=20the=20RGB=20values,=20keep=20in=20mind=20that=20=
various=20pieces=0A-;;=20of=20Emacs=20think=20that=20a=20color=20whose=20=
RGB=20values=20add=20up=20to=20less=20than=200.6=20of=0A-;;=20the=20=
values=20for=20WHITE=20(i.e.=20less=20than=20117963)=20are=20``dark'',=20=
otherwise=20the=0A-;;=20color=20is=20``light'';=20see=20=
`frame-set-background-mode'=20in=20lisp/faces.el=20for=0A-;;=20an=20=
example.=0A+;;=20If=20you=20want=20to=20change=20the=20RGB=20values,=20=
consider=20the=20heuristics=20in=0A+;;=20`color-dark-p'=20which=20is=20=
used=20to=20select=20a=20suitably=20contrasting=0A+;;=20foreground=20or=20=
background=20colour.=0A=20(defvar=20msdos-color-values=0A=20=20=20=
'(("black"=20=20=20=20=20=20=20=20=20=200=20=20=20=20=200=20=20=20=20=20=
0=20=20=20=20=200)=0A=20=20=20=20=20("blue"=20=20=20=20=20=20=20=20=20=20=
=201=20=20=20=20=200=20=20=20=20=200=2052480)=20;=20MediumBlue=0Adiff=20=
--git=20a/lisp/term/rxvt.el=20b/lisp/term/rxvt.el=0Aindex=20=
31e3d6ede4..ebcb13db77=20100644=0A---=20a/lisp/term/rxvt.el=0A+++=20=
b/lisp/term/rxvt.el=0A@@=20-206,13=20+206,11=20@@=20=
rxvt-set-background-mode=0A=20=20=20=20=20=20=20;;=20The=20next=20line=20=
assumes=20that=20rxvt-standard-colors=20are=20ordered=0A=20=20=20=20=20=20=
=20;;=20by=20the=20color=20index=20in=20the=20ascending=20order!=0A=20=20=
=20=20=20=20=20(setq=20rgb=20(car=20(cddr=20(nth=20bg=20=
rxvt-standard-colors))))=0A-=20=20=20=20=20=20;;=20See=20the=20=
commentary=20in=20frame-set-background-mode=20about=20the=0A-=20=20=20=20=
=20=20;;=20computation=20below.=0A-=20=20=20=20=20=20(if=20(<=20(apply=20=
'+=20rgb)=0A-=09=20=20=20=20=20;;=20The=20following=20line=20assumes=20=
that=20white=20is=20the=2015th=0A-=09=20=20=20=20=20;;=20color=20in=20=
rxvt-standard-colors.=0A-=09=20=20=20=20=20(*=20(apply=20'+=20(car=20=
(cddr=20(nth=2015=20rxvt-standard-colors))))=200.6))=0A-=09=20=20=
(set-terminal-parameter=20nil=20'background-mode=20'dark)))))=0A+=20=20=20=
=20=20=20;;=20The=20following=20line=20assumes=20that=20white=20is=20the=20=
15th=0A+=20=20=20=20=20=20;;=20color=20in=20rxvt-standard-colors.=0A+=20=20=
=20=20=20=20(let=20((comp-max=20(caddr=20(nth=2015=20=
rxvt-standard-colors))))=0A+=20=20=20=20=20=20=20=20(when=20=
(color-dark-p=20(mapcar=20(lambda=20(c)=20(/=20c=20comp-max))=20rgb))=0A=
+=09=20=20(set-terminal-parameter=20nil=20'background-mode=20'dark))))))=0A=
=20=0A=20(provide=20'term/rxvt)=0A=20=0Adiff=20--git=20=
a/lisp/term/w32console.el=20b/lisp/term/w32console.el=0Aindex=20=
36e9d896c7..b249a4e602=20100644=0A---=20a/lisp/term/w32console.el=0A+++=20=
b/lisp/term/w32console.el=0A@@=20-86,9=20+86,8=20@@=20=
terminal-init-w32console=0A=20=20=20=20=20(setq=20r=20(nth=202=20descr)=0A=
=20=09=20=20g=20(nth=203=20descr)=0A=20=09=20=20b=20(nth=204=20descr))=0A=
-=20=20=20=20(if=20(<=20(+=20r=20g=20b)=20(*=20.6=20(+=2065535=2065535=20=
65535)))=0A-=09(setq=20bg-mode=20'dark)=0A-=20=20=20=20=20=20(setq=20=
bg-mode=20'light))=0A+=20=20=20=20(setq=20bg-mode=20(if=20(color-dark-p=20=
(list=20(/=20r=2065535)=20(/=20g=2065535)=20(/=20b=2065535)))=0A+=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20'dark=20=
'light))=0A=20=20=20=20=20(set-terminal-parameter=20nil=20=
'background-mode=20bg-mode))=0A=20=20=20(tty-set-up-initial-frame-faces)=0A=
=20=20=20(run-hooks=20'terminal-init-w32-hook))=0Adiff=20--git=20=
a/lisp/term/xterm.el=20b/lisp/term/xterm.el=0Aindex=20=
1a727e3933..bf9bcae526=20100644=0A---=20a/lisp/term/xterm.el=0A+++=20=
b/lisp/term/xterm.el=0A@@=20-1120,9=20+1120,8=20@@=20=
xterm-register-default-colors=0A=20=20=20=20=20(clear-face-cache)))=0A=20=
=0A=20(defun=20xterm-maybe-set-dark-background-mode=20(redc=20greenc=20=
bluec)=0A-=20=20;;=20Use=20the=20heuristic=20in=20=
`frame-set-background-mode'=20to=20decide=20if=20a=0A-=20=20;;=20frame=20=
is=20dark.=0A-=20=20(when=20(<=20(+=20redc=20greenc=20bluec)=20(*=20.6=20=
(+=2065535=2065535=2065535)))=0A+=20=20(when=20(color-dark-p=20(mapcar=20=
(lambda=20(c)=20(/=20c=2065535.0))=0A+=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(list=20redc=20=
greenc=20bluec)))=0A=20=20=20=20=20(set-terminal-parameter=20nil=20=
'background-mode=20'dark)=0A=20=20=20=20=20t))=0A=20=0Adiff=20--git=20=
a/lisp/textmodes/css-mode.el=20b/lisp/textmodes/css-mode.el=0Aindex=20=
eda739a397..2cd99787e8=20100644=0A---=20a/lisp/textmodes/css-mode.el=0A=
+++=20b/lisp/textmodes/css-mode.el=0A@@=20-1149,17=20+1149,6=20@@=20=
css--compute-color=0A=20=20=20=20;;=20Evaluate=20to=20the=20color=20if=20=
the=20name=20is=20found.=0A=20=20=20=20((css--named-color=20start-point=20=
match))))=0A=20=0A-(defun=20css--contrasty-color=20(name)=0A-=20=20=
"Return=20a=20color=20that=20contrasts=20with=20NAME.=0A-NAME=20is=20of=20=
any=20form=20accepted=20by=20`color-distance'.=0A-The=20returned=20color=20=
will=20be=20usable=20by=20Emacs=20and=20will=20contrast=0A-with=20NAME;=20=
in=20particular=20so=20that=20if=20NAME=20is=20used=20as=20a=20=
background=0A-color,=20the=20returned=20color=20can=20be=20used=20as=20=
the=20foreground=20and=20still=0A-be=20readable."=0A-=20=20;;=20See=20=
bug#25525=20and=20bug#41544=20for=20a=20discussion=20of=20this.=0A-=20=20=
(if=20(>=20(color-distance=20name=20"black")=20138500)=0A-=20=20=20=20=20=
=20"black"=20"white"))=0A-=0A=20(defcustom=20css-fontify-colors=20t=0A=20=
=20=20"Whether=20CSS=20colors=20should=20be=20fontified=20using=20the=20=
color=20as=20the=20background.=0A=20When=20non-`nil',=20a=20text=20=
representing=20CSS=20color=20will=20be=20fontified=0A@@=20-1199,7=20=
+1188,8=20@@=20css--fontify-region=0A=20=09=09=20=20=20=20=
(add-text-properties=0A=20=09=09=20=20=20=20=20start=20(point)=0A=20=09=09=
=20=20=20=20=20(list=20'face=20(list=20:background=20color=0A-=09=09=09=09=
=20=20=20=20=20=20=20:foreground=20(css--contrasty-color=20color)=0A+=09=09=
=09=09=20=20=20=20=20=20=20:foreground=20(readable-foreground-color=0A+=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20color)=0A=20=09=09=09=09=20=20=20=20=20=20=20:box=20'(:line-width=20=
-1))))))))))))=0A=20=20=20=20=20extended-region))=0A=20=0A--=20=0A2.21.1=20=
(Apple=20Git-122.3)=0A=0A=

--Apple-Mail=_7FF6E8CE-41E3-44BB-A837-E0A212C5FA1B
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
	charset=us-ascii




--Apple-Mail=_7FF6E8CE-41E3-44BB-A837-E0A212C5FA1B--




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

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


Received: (at 41544) by debbugs.gnu.org; 29 May 2020 17:52:14 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri May 29 13:52:13 2020
Received: from localhost ([127.0.0.1]:56174 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jejAz-0002BU-Mf
	for submit <at> debbugs.gnu.org; Fri, 29 May 2020 13:52:13 -0400
Received: from gateway31.websitewelcome.com ([192.185.143.47]:49310)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <tom@HIDDEN>) id 1jejAx-0002BM-Lj
 for 41544 <at> debbugs.gnu.org; Fri, 29 May 2020 13:52:12 -0400
Received: from cm11.websitewelcome.com (cm11.websitewelcome.com [100.42.49.5])
 by gateway31.websitewelcome.com (Postfix) with ESMTP id E924C8B24
 for <41544 <at> debbugs.gnu.org>; Fri, 29 May 2020 12:52:10 -0500 (CDT)
Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with SMTP
 id ejAwji4G3Sl8qejAwjxJcZ; Fri, 29 May 2020 12:52:10 -0500
X-Authority-Reason: nr=8
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; 
 s=default;
 h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date:
 References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding:
 Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:
 Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:
 List-Subscribe:List-Post:List-Owner:List-Archive;
 bh=2+/rdbBHYCebM5YSAUsg/EWrBF3LOO92jaxFrFE8f90=; b=dpkkbiunmgP46ms1jDa9SMQrOe
 mtQsfTmLcoM/RTWQo6brDvS+3FjC4oLh3+oDHxIYEEEAbabxAMl5NvkJa6SX0Kmz9vb7IijIIAz7E
 9dag0/4jyNRr7weS1dpj3/Bbg;
Received: from 174-16-104-48.hlrn.qwest.net ([174.16.104.48]:49074
 helo=murgatroyd)
 by box5379.bluehost.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
 (Exim 4.92) (envelope-from <tom@HIDDEN>)
 id 1jejAw-000ru1-D5; Fri, 29 May 2020 11:52:10 -0600
From: Tom Tromey <tom@HIDDEN>
To: Mattias =?utf-8?Q?Engdeg=C3=A5rd?= <mattiase@HIDDEN>
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN>
X-Attribution: Tom
Date: Fri, 29 May 2020 11:52:08 -0600
In-Reply-To: <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> ("Mattias
 =?utf-8?Q?Engdeg=C3=A5rd=22's?= message of "Fri, 29 May 2020 17:17:41
 +0200")
Message-ID: <87r1v2aat3.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-AntiAbuse: This header was added to track abuse,
 please include it with any abuse report
X-AntiAbuse: Primary Hostname - box5379.bluehost.com
X-AntiAbuse: Original Domain - debbugs.gnu.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - tromey.com
X-BWhitelist: no
X-Source-IP: 174.16.104.48
X-Source-L: No
X-Exim-ID: 1jejAw-000ru1-D5
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-Source-Sender: 174-16-104-48.hlrn.qwest.net (murgatroyd)
 [174.16.104.48]:49074
X-Source-Auth: tom+tromey.com
X-Email-Count: 3
X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20=
X-Local-Domain: yes
X-Spam-Score: 0.7 (/)
X-Debbugs-Envelope-To: 41544
Cc: Tom Tromey <tom@HIDDEN>, Simon Pugnet <simon@HIDDEN>,
 41544 <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.3 (/)

Mattias> Try the attached patch. A couple of constants used for
Mattias> comparison were recomputed, but since they mostly appeared to
Mattias> have been picked out of thin air, I didn't bother attempting a
Mattias> very precise translation.

Thank you for doing this.

I wasn't sure whether Emacs would accept a patch changing the return
value in this way.

However, my main concern is just whether it still picks reasonably
contrasting colors when editing CSS.  If it does, then that's good
enough for me.

thanks,
Tom




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

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


Received: (at 41544) by debbugs.gnu.org; 29 May 2020 17:28:58 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri May 29 13:28:58 2020
Received: from localhost ([127.0.0.1]:56101 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jeioU-0001Z4-82
	for submit <at> debbugs.gnu.org; Fri, 29 May 2020 13:28:58 -0400
Received: from mail1454c50.megamailservers.eu ([91.136.14.54]:44246
 helo=mail266c50.megamailservers.eu)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mattiase@HIDDEN>) id 1jeioR-0001Ym-U0
 for 41544 <at> debbugs.gnu.org; Fri, 29 May 2020 13:28:56 -0400
X-Authenticated-User: mattiase@HIDDEN
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu;
 s=maildub; t=1590773328;
 bh=t34qr4VfLJe8hwaTHC9A99DXmRZmQkEj1u7Ng2eo2Io=;
 h=Subject:From:In-Reply-To:Date:Cc:References:To:From;
 b=GDO9Rt9R2iuT953isbHi4pTh1rvJCQWHQc9hRiXdjcuGbavE5gXn7u/Fw0aYaBAaC
 Ic+o+Jwd0WnzS+j/HmAYDup3GCOgjLv/msA5Q08FwJR4xA59/z4BT7KSWFfWbcIGPj
 aHt27/H4tWcR0dHdFTHl1jiVINzxnLOFbSZ8dq08=
Feedback-ID: mattiase@HIDDEN
Received: from stanniol.lan (c-4e4ae655.032-75-73746f71.bbcust.telenor.se
 [85.230.74.78]) (authenticated bits=0)
 by mail266c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 04THSiV4015235; 
 Fri, 29 May 2020 17:28:46 +0000
Content-Type: text/plain;
	charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.14\))
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>
In-Reply-To: <83pnamn47h.fsf@HIDDEN>
Date: Fri, 29 May 2020 19:28:44 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <94FCD141-F201-49D1-BDAD-9FFA46D48D6D@HIDDEN>
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> <83pnamn47h.fsf@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
X-Mailer: Apple Mail (2.3445.104.14)
X-CTCH-RefID: str=0001.0A782F28.5ED14602.001D:SCFSTAT68638221, ss=1, re=-4.000,
 recu=0.000, reip=0.000, cl=1, cld=1, fgs=0
X-CTCH-VOD: Unknown
X-CTCH-Spam: Unknown
X-CTCH-Score: -4.000
X-CTCH-Rules: 
X-CTCH-Flags: 0
X-CTCH-ScoreCust: 0.000
X-CSC: 0
X-CHA: v=2.3 cv=A5MSwJeG c=1 sm=1 tr=0 a=klNLuyVZdLUgl+K5Uafb2A==:117
 a=klNLuyVZdLUgl+K5Uafb2A==:17 a=kj9zAlcOel0A:10 a=M51BFTxLslgA:10
 a=mDV3o1hIAAAA:8 a=cUxbU7hPt0qoel6uMsQA:9 a=CjuIK1q_8ugA:10
 a=_FVE-zBwftR9WsbkzFJk:22
X-Spam-Score: 1.4 (+)
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:  29 maj 2020 kl. 17.36 skrev Eli Zaretskii <eliz@HIDDEN>:
 > Did you try what this does to tty-color-approximate and friends, > especially
 when the terminal supports only 8 or 16 colors? If not, > please do, we must
 ensure there are no regressions there. 
 Content analysis details:   (1.4 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.0 URIBL_BLOCKED          ADMINISTRATOR NOTICE: The query to URIBL was
 blocked.  See
 http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block
 for more information. [URIs: megamailservers.eu]
 1.0 SPF_SOFTFAIL           SPF: sender does not match SPF record (softfail)
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 0.4 KHOP_HELO_FCRDNS       Relay HELO differs from its IP's reverse DNS
X-Debbugs-Envelope-To: 41544
Cc: tom@HIDDEN, simon@HIDDEN, 41544 <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.0 (/)

29 maj 2020 kl. 17.36 skrev Eli Zaretskii <eliz@HIDDEN>:

> Did you try what this does to tty-color-approximate and friends,
> especially when the terminal supports only 8 or 16 colors?  If not,
> please do, we must ensure there are no regressions there.

tty-color-approximate uses its own metric (square of the unweighted =
Euclidian RGB distance).
To test the TTY_SAME_COLOR_THRESHOLD, I tried =
display-supports-face-attributes-p, and it seems to behave in the same =
way. All tested with TERM=3Dxterm-color, which gives the standard 8 =
colours.

The translated constants were obtained by generating many random RGB =
triples and computing distances between all pairs, then finding the =
value of NEWCONST which minimises the number of cases where

  old-colour-dist(c1,c2) < OLDCONST

and

  new-colour-dist(c1,c2) < NEWCONST

differ in truth value. The computation was also run on the rgb.txt list =
instead of random colours as an extra check.





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

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


Received: (at 41544) by debbugs.gnu.org; 29 May 2020 15:36:33 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri May 29 11:36:33 2020
Received: from localhost ([127.0.0.1]:55848 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jeh3h-0006p0-Cj
	for submit <at> debbugs.gnu.org; Fri, 29 May 2020 11:36:33 -0400
Received: from eggs.gnu.org ([209.51.188.92]:41332)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1jeh3f-0006ol-BL
 for 41544 <at> debbugs.gnu.org; Fri, 29 May 2020 11:36:31 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:41261)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <eliz@HIDDEN>)
 id 1jeh3Z-0005nw-Lr; Fri, 29 May 2020 11:36:25 -0400
Received: from [176.228.60.248] (port=2302 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1jeh3Y-0003po-53; Fri, 29 May 2020 11:36:24 -0400
Date: Fri, 29 May 2020 18:36:18 +0300
Message-Id: <83pnamn47h.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Mattias =?utf-8?Q?Engdeg=C3=A5rd?= <mattiase@HIDDEN>
In-Reply-To: <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN> (message from
 Mattias =?utf-8?Q?Engdeg=C3=A5rd?= on Fri, 29 May 2020 17:17:41 +0200)
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
 <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@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: 41544
Cc: tom@HIDDEN, simon@HIDDEN, 41544 <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: Mattias Engdegård <mattiase@HIDDEN>
> Date: Fri, 29 May 2020 17:17:41 +0200
> Cc: Tom Tromey <tom@HIDDEN>, 41544 <at> debbugs.gnu.org
> 
>  /* If the distance (as returned by color_distance) between two colors is
>     less than this, then they are considered the same, for determining
> -   whether a color is supported or not.  The range of values is 0-65535.  */
> +   whether a color is supported or not.  */
>  
> -#define TTY_SAME_COLOR_THRESHOLD  10000
> +#define TTY_SAME_COLOR_THRESHOLD  25000

Did you try what this does to tty-color-approximate and friends,
especially when the terminal supports only 8 or 16 colors?  If not,
please do, we must ensure there are no regressions there.

Thanks.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#41544; Package emacs. Full text available.
Added tag(s) patch. Request was from Mattias Engdegård <mattiase@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

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


Received: (at 41544) by debbugs.gnu.org; 29 May 2020 15:17:49 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri May 29 11:17:49 2020
Received: from localhost ([127.0.0.1]:55815 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jeglZ-0004AZ-Cu
	for submit <at> debbugs.gnu.org; Fri, 29 May 2020 11:17:49 -0400
Received: from mail237c50.megamailservers.eu ([91.136.10.247]:59656
 helo=mail56c50.megamailservers.eu)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mattiase@HIDDEN>)
 id 1jeglX-0004AK-04; Fri, 29 May 2020 11:17:47 -0400
X-Authenticated-User: mattiase@HIDDEN
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu;
 s=maildub; t=1590765465;
 bh=6AGewmx6FJbCD16+LEByyLmfff9r5+BfFD/QIb88nqs=;
 h=Subject:From:In-Reply-To:Date:Cc:References:To:From;
 b=qkBXcIij+X4b8i0nNpHJOwpjAUrtVGHm6SYyMEU5KU7Xd/KQKN6VwUf1p+DyhiFKp
 pGMYxjLkhCTRKqSvjXqKuAQjwGpYu9FXbqDNYKwFbxk952KXLru+jMpuzLDVzerSAI
 JZUyHDsqXeHyVbLYsM0Ri4UOJ+8sHcbIGW1yKk1E=
Feedback-ID: mattiase@HIDDEN
Received: from stanniol.lan (c-4e4ae655.032-75-73746f71.bbcust.telenor.se
 [85.230.74.78]) (authenticated bits=0)
 by mail56c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 04TFHfUm028844; 
 Fri, 29 May 2020 15:17:43 +0000
Content-Type: multipart/mixed;
 boundary="Apple-Mail=_67070B8E-0C26-4D1D-B8AF-7A37D74DD869"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.14\))
Subject: Re: bug#41544: 26.3; Possible incorrect results from color-distance
From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>
In-Reply-To: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
Date: Fri, 29 May 2020 17:17:41 +0200
Message-Id: <DBC83DAA-B758-45D7-8AB8-708C9C5C6A77@HIDDEN>
References: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
To: Simon Pugnet <simon@HIDDEN>
X-Mailer: Apple Mail (2.3445.104.14)
X-CTCH-RefID: str=0001.0A782F1C.5ED12751.006D:SCFSTAT68638221, ss=1, re=-4.000,
 recu=0.000, reip=0.000, cl=1, cld=1, fgs=0
X-CTCH-VOD: Unknown
X-CTCH-Spam: Unknown
X-CTCH-Score: -4.000
X-CTCH-Rules: 
X-CTCH-Flags: 0
X-CTCH-ScoreCust: 0.000
X-CSC: 0
X-CHA: v=2.3 cv=UqsdyN4B c=1 sm=1 tr=0 a=klNLuyVZdLUgl+K5Uafb2A==:117
 a=klNLuyVZdLUgl+K5Uafb2A==:17 a=M51BFTxLslgA:10 a=L-gs6BjLIPZIF3TP3vUA:9
 a=CjuIK1q_8ugA:10 a=fNRX9wVF-h2nzrGUox4A:9 a=B2y7HmGcmWMA:10
X-Spam-Score: 1.4 (+)
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:  tags 41544 patch stop Try the attached patch. A couple of
 constants used for comparison were recomputed, but since they mostly appeared
 to have been picked out of thin air, I didn't bother attempting a very precise
 transla [...] 
 Content analysis details:   (1.4 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.0 URIBL_BLOCKED          ADMINISTRATOR NOTICE: The query to URIBL was
 blocked.  See
 http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block
 for more information. [URIs: megamailservers.eu]
 1.0 SPF_SOFTFAIL           SPF: sender does not match SPF record (softfail)
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 0.4 KHOP_HELO_FCRDNS       Relay HELO differs from its IP's reverse DNS
X-Debbugs-Envelope-To: 41544
Cc: Tom Tromey <tom@HIDDEN>, 41544 <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.0 (/)


--Apple-Mail=_67070B8E-0C26-4D1D-B8AF-7A37D74DD869
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

tags 41544 patch
stop

Try the attached patch. A couple of constants used for comparison were =
recomputed, but since they mostly appeared to have been picked out of =
thin air, I didn't bother attempting a very precise translation.


--Apple-Mail=_67070B8E-0C26-4D1D-B8AF-7A37D74DD869
Content-Disposition: attachment;
	filename=0001-Make-color-distance-into-a-proper-distance-metric-bu.patch
Content-Type: application/octet-stream;
	x-unix-mode=0644;
	name="0001-Make-color-distance-into-a-proper-distance-metric-bu.patch"
Content-Transfer-Encoding: quoted-printable

=46rom=20f0eab8ad402baf8c4c790e685e84f3f89b1d6ecd=20Mon=20Sep=2017=20=
00:00:00=202001=0AFrom:=20=3D?UTF-8?q?Mattias=3D20Engdeg=3DC3=3DA5rd?=3D=20=
<mattiase@HIDDEN>=0ADate:=20Fri,=2029=20May=202020=2017:07:59=20+0200=0A=
Subject:=20[PATCH]=20Make=20color-distance=20into=20a=20proper=20=
distance=20metric=20(bug#41544)=0A=0AThe=20previous=20function=20=
discarded=20bits=20in=20the=20arguments,=20was=20not=0Asymmetric,=20and=20=
did=20not=20obey=20the=20triangle=20equality;=20the=20return=20value=0A=
was=20quadratic=20in=20the=20perceived=20colour=20distance=20instead=20=
of=20linear.=0A=0AReported=20by=20Simon=20Pugnet.=0A=0A*=20src/xfaces.c=20=
(color_distance):=20Use=20all=2016=20bits=20per=20channel=20and=0Aadd=20=
the=20missing=20square=20root=20operation.=0A(TTY_SAME_COLOR_THRESHOLD,=20=
syms_of_xfaces):=0A*=20lisp/textmodes/css-mode.el=20=
(css--contrasty-color):=0AUpdate=20colour=20distance=20constants=20to=20=
values=20appropriate=20for=20the=20new=0Afunction.=0A---=0A=20etc/NEWS=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20|=20=206=20++++++=0A=
=20lisp/textmodes/css-mode.el=20|=20=204=20++--=0A=20src/xfaces.c=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20|=2022=20+++++++++++-----------=0A=20=
3=20files=20changed,=2019=20insertions(+),=2013=20deletions(-)=0A=0Adiff=20=
--git=20a/etc/NEWS=20b/etc/NEWS=0Aindex=2064cf0abbdb..d8470223e5=20=
100644=0A---=20a/etc/NEWS=0A+++=20b/etc/NEWS=0A@@=20-489,6=20+489,12=20=
@@=20Use=20macro=20'with-current-buffer-window'=20with=20action=20alist=20=
entry=20'body-function'.=0A=20**=20Some=20libraries=20obsolete=20since=20=
Emacs=2023=20have=20been=20removed:=0A=20'ledit.el',=20'lmenu.el',=20=
'lucid.el=20and=20'old-whitespace.el'.=0A=20=0A+---=0A+**=20The=20=
'color-distance'=20function=20is=20now=20a=20proper=20distance=20metric.=0A=
+It=20was=20previously=20not=20symmetric,=20nor=20did=20it=20obey=20the=20=
triangle=20equality.=0A+The=20default=20value=20of=20the=20=
'face-near-same-color-threshold'=20variable=20has=0A+been=20updated=20to=20=
a=20number=20that=20roughly=20corresponds=20to=20the=20same=20distance.=0A=
+=0A=20=0C=0A=20*=20Lisp=20Changes=20in=20Emacs=2028.1=0A=20=0Adiff=20=
--git=20a/lisp/textmodes/css-mode.el=20b/lisp/textmodes/css-mode.el=0A=
index=200035c5e7b0..eda739a397=20100644=0A---=20=
a/lisp/textmodes/css-mode.el=0A+++=20b/lisp/textmodes/css-mode.el=0A@@=20=
-1156,8=20+1156,8=20@@=20css--contrasty-color=0A=20with=20NAME;=20in=20=
particular=20so=20that=20if=20NAME=20is=20used=20as=20a=20background=0A=20=
color,=20the=20returned=20color=20can=20be=20used=20as=20the=20=
foreground=20and=20still=0A=20be=20readable."=0A-=20=20;;=20See=20=
bug#25525=20for=20a=20discussion=20of=20this.=0A-=20=20(if=20(>=20=
(color-distance=20name=20"black")=20292485)=0A+=20=20;;=20See=20=
bug#25525=20and=20bug#41544=20for=20a=20discussion=20of=20this.=0A+=20=20=
(if=20(>=20(color-distance=20name=20"black")=20138500)=0A=20=20=20=20=20=20=
=20"black"=20"white"))=0A=20=0A=20(defcustom=20css-fontify-colors=20t=0A=
diff=20--git=20a/src/xfaces.c=20b/src/xfaces.c=0Aindex=20=
7d7aff95c1..e828c12f09=20100644=0A---=20a/src/xfaces.c=0A+++=20=
b/src/xfaces.c=0A@@=20-218,6=20+218,7=20@@=20Copyright=20(C)=20=
1993-1994,=201998-2020=20Free=20Software=20Foundation,=20Inc.=0A=20=
#include=20<config.h>=0A=20#include=20<stdlib.h>=0A=20#include=20=
"sysstdio.h"=0A+#include=20<math.h>=0A=20#include=20<sys/types.h>=0A=20=
#include=20<sys/stat.h>=0A=20=0A@@=20-4356,15=20+4357,14=20@@=20=
color_distance=20(Emacs_Color=20*x,=20Emacs_Color=20*y)=0A=20=0A=20=20=20=
=20=20=20See=20<https://www.compuphase.com/cmetric.htm>=20for=20more=20=
info.=20=20*/=0A=20=0A-=20=20long=20r=20=3D=20(x->red=20=20=20-=20=
y->red)=20=20=20>>=208;=0A-=20=20long=20g=20=3D=20(x->green=20-=20=
y->green)=20>>=208;=0A-=20=20long=20b=20=3D=20(x->blue=20=20-=20y->blue)=20=
=20>>=208;=0A-=20=20long=20r_mean=20=3D=20(x->red=20+=20y->red)=20>>=20=
9;=0A+=20=20long=20long=20r=20=3D=20x->red=20=20=20-=20y->red;=0A+=20=20=
long=20long=20g=20=3D=20x->green=20-=20y->green;=0A+=20=20long=20long=20=
b=20=3D=20x->blue=20=20-=20y->blue;=0A+=20=20long=20long=20r_mean=20=3D=20=
(x->red=20+=20y->red)=20>>=201;=0A=20=0A-=20=20return=0A-=20=20=20=20=
(((512=20+=20r_mean)=20*=20r=20*=20r)=20>>=208)=0A-=20=20=20=20+=204=20*=20=
g=20*=20g=0A-=20=20=20=20+=20(((767=20-=20r_mean)=20*=20b=20*=20b)=20>>=20=
8);=0A+=20=20return=20(int)=20sqrt=20((((2=20*=2065536=20+=20r_mean)=20*=20=
r=20*=20r)=20>>=2016)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20+=204=20*=20g=20*=20g=0A+=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20+=20(((2=20*=2065536=20+=2065535=20-=20=
r_mean)=20*=20b=20*=20b)=20>>=2016));=0A=20}=0A=20=0A=20=0A@@=20-4931,9=20=
+4931,9=20@@=20DEFUN=20("face-attributes-as-vector",=20=
Fface_attributes_as_vector,=0A=20=0A=20/*=20If=20the=20distance=20(as=20=
returned=20by=20color_distance)=20between=20two=20colors=20is=0A=20=20=20=
=20less=20than=20this,=20then=20they=20are=20considered=20the=20same,=20=
for=20determining=0A-=20=20=20whether=20a=20color=20is=20supported=20or=20=
not.=20=20The=20range=20of=20values=20is=200-65535.=20=20*/=0A+=20=20=20=
whether=20a=20color=20is=20supported=20or=20not.=20=20*/=0A=20=0A=
-#define=20TTY_SAME_COLOR_THRESHOLD=20=2010000=0A+#define=20=
TTY_SAME_COLOR_THRESHOLD=20=2025000=0A=20=0A=20#ifdef=20=
HAVE_WINDOW_SYSTEM=0A=20=0A@@=20-7008,7=20+7008,7=20@@=20syms_of_xfaces=20=
(void)=0A=20=0A=20Lisp=20programs=20that=20change=20the=20value=20of=20=
this=20variable=20should=20also=0A=20clear=20the=20face=20cache,=20see=20=
`clear-face-cache'.=20=20*/);=0A-=20=20face_near_same_color_threshold=20=
=3D=2030000;=0A+=20=20face_near_same_color_threshold=20=3D=2044300;=0A=20=
=0A=20#ifdef=20HAVE_WINDOW_SYSTEM=0A=20=20=20defsubr=20=
(&Sbitmap_spec_p);=0A--=20=0A2.21.1=20(Apple=20Git-122.3)=0A=0A=

--Apple-Mail=_67070B8E-0C26-4D1D-B8AF-7A37D74DD869--




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

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


Received: (at 41544) by debbugs.gnu.org; 28 May 2020 17:32:01 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu May 28 13:32:01 2020
Received: from localhost ([127.0.0.1]:52960 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jeMNq-00071a-Aj
	for submit <at> debbugs.gnu.org; Thu, 28 May 2020 13:32:01 -0400
Received: from mail223c50.megamailservers.eu ([91.136.10.233]:40682
 helo=mail33c50.megamailservers.eu)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mattiase@HIDDEN>) id 1jeMNo-00071S-VJ
 for 41544 <at> debbugs.gnu.org; Thu, 28 May 2020 13:31:57 -0400
X-Authenticated-User: mattiase@HIDDEN
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu;
 s=maildub; t=1590687114;
 bh=Yasi4sRb1zKngiAa7lQrTx2do4QJcOubwplCyGiejhk=;
 h=From:Subject:Date:Cc:To:From;
 b=VP62f5XJ/YhUfdjMe1z3bBLUnfQRYAaxhM5N1mgqMBYXRhU+0QK1d+ggG8gja0GbN
 p2rOWpYCBS1qY0A4iu6ex4KTJbZ51rxlMMPEhowhchQuSIFMw3h7yQ1qMKhJgi99gu
 yUMtFZSAiZIfzD7Tmr89vQypaKzTogSZbdhWoiqM=
Feedback-ID: mattiase@HIDDEN
Received: from stanniol.lan (c-4e4ae655.032-75-73746f71.bbcust.telenor.se
 [85.230.74.78]) (authenticated bits=0)
 by mail33c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 04SHVp2O000373; 
 Thu, 28 May 2020 17:31:53 +0000
From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= <mattiase@HIDDEN>
Content-Type: text/plain;
	charset=us-ascii
Content-Transfer-Encoding: quoted-printable
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.14\))
Subject: bug#41544: 26.3; Possible incorrect results from color-distance
Message-Id: <5C4A633D-8222-4439-BE37-9B8674F1DA6D@HIDDEN>
Date: Thu, 28 May 2020 19:31:51 +0200
To: Simon Pugnet <simon@HIDDEN>
X-Mailer: Apple Mail (2.3445.104.14)
X-CTCH-RefID: str=0001.0A782F17.5ECFF520.003D:SCFSTAT68638221, ss=1, re=-4.000,
 recu=0.000, reip=0.000, cl=1, cld=1, fgs=0
X-CTCH-VOD: Unknown
X-CTCH-Spam: Unknown
X-CTCH-Score: -4.000
X-CTCH-Rules: 
X-CTCH-Flags: 0
X-CTCH-ScoreCust: 0.000
X-CSC: 0
X-CHA: v=2.3 cv=eaJDgIMH c=1 sm=1 tr=0 a=klNLuyVZdLUgl+K5Uafb2A==:117
 a=klNLuyVZdLUgl+K5Uafb2A==:17 a=kj9zAlcOel0A:10 a=M51BFTxLslgA:10
 a=XxNu1oolT2MRe3TBGnIA:9 a=CjuIK1q_8ugA:10
X-Spam-Score: 1.4 (+)
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:  [CC:ing Tom Tromey, who used colour-distance in css-mode]
 Ah, where to begin. Clearly a distance metric ought to be symmetric; as you
 note, this is easily fixed by replacing the shift by division, which has
 the extra benefit of not relying on the implementat [...] 
 Content analysis details:   (1.4 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 0.0 URIBL_BLOCKED          ADMINISTRATOR NOTICE: The query to URIBL was
 blocked.  See
 http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block
 for more information. [URIs: megamailservers.eu]
 1.0 SPF_SOFTFAIL           SPF: sender does not match SPF record (softfail)
 0.4 KHOP_HELO_FCRDNS       Relay HELO differs from its IP's reverse DNS
X-Debbugs-Envelope-To: 41544
Cc: Tom Tromey <tom@HIDDEN>, 41544 <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: -1.0 (-)

[CC:ing Tom Tromey, who used colour-distance in css-mode]

Ah, where to begin. Clearly a distance metric ought to be symmetric; as =
you note, this is easily fixed by replacing the shift by division, which =
has the extra benefit of not relying on the implementation-defined =
behaviour when right-shifting negative values in C. The extra cost is =
negligible.

Looking at it a bit closer, it seems a waste to use full 16 bit colour =
channels only to shift out 8 of them before getting started. I presume =
this was done partly in order to follow the Riedersma metric more =
closely, and partly to stay within 32 bit numbers (I note that the code =
uses the C 'long' type, which is almost always a mistake). Using 64-bit =
arithmetic costs us next to nothing today, and this solves several =
problems.

But a darker cloud is on the horizon. Since the Emacs implementation =
omits the square root of the result, it no longer satisfies the triangle =
inequality, which is even more fundamental for distance metrics than =
symmetry. It is good enough for comparison of distances, but they can no =
longer be added, since it's not a true metric.

In fact, it seems that users of color_distance are confused as well: a =
comment says

  /* If the distance (as returned by color_distance) between two colors =
is
     less than this, then they are considered the same, for determining
     whether a color is supported or not.  The range of values is =
0-65535.  */

  #define TTY_SAME_COLOR_THRESHOLD  10000

which is a lie, since color_distance can return values well above 65535.
Some uses are very questionable, given that it's the square of a metric:

      int delta_delta
	=3D (color_distance (&fg_std_color, &bg_std_color)
	   - color_distance (&fg_tty_color, &bg_tty_color));
      if (delta_delta > TTY_SAME_COLOR_THRESHOLD
	  || delta_delta < -TTY_SAME_COLOR_THRESHOLD)

So what to do? Best would be to do the arithmetic on the entire channel =
values and take the square root at the end; the cost is nothing to worry =
about on hardware less than 30 years old. Some constants used for =
comparison would need to be adjusted: the above-mentioned =
TTY_SAME_COLOR_THRESHOLD (10000), face-near-same-threshold (30000), and =
a number in css--contrasty-color (292485).  At least the last should =
probably use the luma norm originally proposed instead (see bug#25525); =
the use of colour-distance here cannot be right.






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

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


Received: (at submit) by debbugs.gnu.org; 26 May 2020 16:33:53 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue May 26 12:33:53 2020
Received: from localhost ([127.0.0.1]:46285 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jdcWW-00074o-7o
	for submit <at> debbugs.gnu.org; Tue, 26 May 2020 12:33:53 -0400
Received: from lists.gnu.org ([209.51.188.17]:56180)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <simon.pugnet@HIDDEN>) id 1jdcSB-0006xQ-Vo
 for submit <at> debbugs.gnu.org; Tue, 26 May 2020 12:29:24 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:55560)
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <simon.pugnet@HIDDEN>)
 id 1jdcSB-0003Ri-OL
 for bug-gnu-emacs@HIDDEN; Tue, 26 May 2020 12:29:23 -0400
Received: from mail-ed1-x52e.google.com ([2a00:1450:4864:20::52e]:41656)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <simon.pugnet@HIDDEN>)
 id 1jdcSA-0002AM-OF
 for bug-gnu-emacs@HIDDEN; Tue, 26 May 2020 12:29:23 -0400
Received: by mail-ed1-x52e.google.com with SMTP id g9so18157508edr.8
 for <bug-gnu-emacs@HIDDEN>; Tue, 26 May 2020 09:29:21 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=sender:user-agent:from:to:subject:date:message-id:mime-version;
 bh=Ygv0y36F2M0o2eiv0rVcXfxE2lsx9jISFI1OTaZl6Js=;
 b=BTsOnbiozsnmsJU5tNQOjCJHLK4LJ8Peew+OsCBHIVSo3HUlVcWmJJebPXEMsCpjHF
 YSdaOT67FEJuTpx+ZpUaIambA9X72CHkHkKzbyAuvSVjSySGXWml/HgD+dOEZht6qMN6
 WQZW1gP+soFOWjtxedCE8Tl1lubaRWCGsqq6dOBF2w5UjAtkrikI2xjO6WUojikVpKh5
 dmRQv9kSYmZGeByxCvBzk1sA0FqWAlIk4vA2jklGa+L2nIUKGAjIwqMN+1dyZ4sx7+tL
 VJWT5tMbBzyTBokMOj483oNgrD8NvPuLepLcOrD84OjsEFqzBB8YvaxtrcxAW5DJYJwv
 iH3w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:sender:user-agent:from:to:subject:date
 :message-id:mime-version;
 bh=Ygv0y36F2M0o2eiv0rVcXfxE2lsx9jISFI1OTaZl6Js=;
 b=oZWzz9pjjLRnehcYNiFkFfNQV+SKM/jwTbByYVUQe/oAq9PbylRFHOHMdPpvTVgjtR
 juWCBfBWWwNLG0ngyquQ4/+lHgSqtlC0vyoxl5mLLz92u7+xbhFE5udWf3zr8tNTMLbx
 NRdCiOw1FsbgDl9LLUT1zQBH7JmrqFmVTa1Uw1f3fRu2QWv41B2ZHlLKiHVyWVQEP+gx
 OyH8uB6eB4V3Yqx5Mdqh8laLFEGAuJZ462f2vt9/KTKX7eB+MG4GhX0C3hjASrYwZsnP
 lhlJot4V/bDyG285Mv06FnbdEBaC+rqsy9j8ynYKsZsYb3JZhd10+6mVNyZpXE/xcZXl
 D1ag==
X-Gm-Message-State: AOAM530tteDcmRNDjUs8Cg/8y/pI8iMXQk8HGy8e0gtEv6iS8ZXYOIA0
 kc0lr7oUHDfi8x96o5kehhL3Nh3w
X-Google-Smtp-Source: ABdhPJx7pm/cfc3tF/8VIw/OQaqWZCn8+FVGpOwf7cvXL1Z3Fr641hmKgFaYVNXmEuXn9buuLNmymQ==
X-Received: by 2002:a05:6402:2058:: with SMTP id
 bc24mr21034906edb.134.1590510559854; 
 Tue, 26 May 2020 09:29:19 -0700 (PDT)
Received: from karnak (25-56.dsl.iskon.hr. [89.164.25.56])
 by smtp.gmail.com with ESMTPSA id a3sm303413edv.70.2020.05.26.09.29.18
 for <bug-gnu-emacs@HIDDEN>
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 26 May 2020 09:29:18 -0700 (PDT)
User-agent: mu4e 1.2.0; emacs 26.3
From: Simon Pugnet <simon@HIDDEN>
To: bug-gnu-emacs@HIDDEN
Subject: 26.3; Possible incorrect results from color-distance
Date: Tue, 26 May 2020 17:29:16 +0100
Message-ID: <874ks2vew3.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=-=-=";
 micalg=pgp-sha256; protocol="application/pgp-signature"
Received-SPF: pass client-ip=2a00:1450:4864:20::52e;
 envelope-from=simon.pugnet@HIDDEN; helo=mail-ed1-x52e.google.com
X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache.
 That's all we know.
X-Spam_score_int: -16
X-Spam_score: -1.7
X-Spam_bar: -
X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.001,
 FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249,
 RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001,
 URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN
X-Spam_action: no action
X-Spam-Score: 1.2 (+)
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:  Hello, I have noticed some potentially incorrect behaviour
 from the `color-distance` elisp function. As an example, take the following
 elisp: - (list (color-distance '(0 0 0) '(65535 65535 65535)) (color-distance
 '(65535 65535 65535) '(0 0 0)) (color-distance '(1 2 3) '(4 5 6))
 (color-distance '(4 5 [...] 
 Content analysis details:   (1.2 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.0 URIBL_BLOCKED          ADMINISTRATOR NOTICE: The query to URIBL was
 blocked.  See
 http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block
 for more information. [URIs: x.org]
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 0.2 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level
 mail domains are different
 1.0 SPF_SOFTFAIL           SPF: sender does not match SPF record (softfail)
 0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
 provider (simon.pugnet[at]gmail.com)
 -2.3 RCVD_IN_DNSWL_MED      RBL: Sender listed at https://www.dnswl.org/,
 medium trust [209.51.188.17 listed in list.dnswl.org]
 0.0 RCVD_IN_MSPIKE_H4      RBL: Very Good reputation (+4)
 [209.51.188.17 listed in wl.mailspike.net]
 0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
 0.2 FREEMAIL_FORGED_FROMDOMAIN 2nd level domains in From and
 EnvelopeFrom freemail headers are different
 2.0 SPOOFED_FREEMAIL       No description available.
X-Debbugs-Envelope-To: submit
X-Mailman-Approved-At: Tue, 26 May 2020 12:33:51 -0400
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: -1.8 (-)

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

Hello,

I have noticed some potentially incorrect behaviour from the
`color-distance` elisp function.

As an example, take the following elisp: -
(list
 (color-distance '(0 0 0) '(65535 65535 65535))
 (color-distance '(65535 65535 65535) '(0 0 0))
 (color-distance '(1 2 3) '(4 5 6))
 (color-distance '(4 5 6) '(1 2 3)))

Result: (589568 584970 8 0)

Here, I would expect the first two elements to have the same=20
result as
well as the third and fourth. This is because conceptually the=20
distance
between colour (1 2 3) and (4 5 6) is the same as the distance=20
between
(4 5 6) and (1 2 3), etc.

The problem comes from the `color_distance()` C function. In this
function, values are calculated via bit shifts to perform integer
divisions of 256 (>>8) and 512 (>>9). Take for example the 3rd and=20
4th
items above (red channel): -
1 - 4 =3D -3
4 - 1 =3D 3
but: -
(1 - 4) >> 8 =3D -1
(4 - 1) >> 8 =3D 0

Therefore for negative values, there is a difference of 1 every=20
time the
bit shift is performed, which is what leads to the discrepancy=20
mentioned
above.

Modifying the function to remove these discrepancies causes the=20
results
above to become (584970 584970 0 0) which appear to be more=20
sensible.

My apologies in advance if this is in fact the correct behaviour=20
of this
function.

Kind regards,

=2D-
Simon Pugnet
https://www.polaris64.net/

=2D--

In GNU Emacs 26.3 (build 2, x86_64-pc-linux-gnu, GTK+ Version=20
3.24.14)
 of 2020-03-26, modified by Debian built on lcy01-amd64-020
Windowing system distributor 'The X.Org Foundation', version=20
11.0.12008000
System Description:	Ubuntu 20.04 LTS

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Mark set
(589568 584970 8 0)
You can run the command =E2=80=98eval-print-last-sexp=E2=80=99 with C-j
Mark activated
kill-line: End of buffer
Making completion list...
You can run the command =E2=80=98kill-region=E2=80=99 with C-w

Configured using:
 'configure --build x86_64-linux-gnu --prefix=3D/usr
 --sharedstatedir=3D/var/lib --libexecdir=3D/usr/lib
 --localstatedir=3D/var/lib --infodir=3D/usr/share/info
 --mandir=3D/usr/share/man --enable-libsystemd --with-pop=3Dyes
 --enable-locallisppath=3D/etc/emacs:/usr/local/share/emacs/26.3/site-lisp:=
/usr/local/share/emacs/site-lisp:/usr/share/emacs/26.3/site-lisp:/usr/share=
/emacs/site-lisp
 --with-sound=3Dalsa --without-gconf --with-mailutils --build
 x86_64-linux-gnu --prefix=3D/usr --sharedstatedir=3D/var/lib
 --libexecdir=3D/usr/lib --localstatedir=3D/var/lib
 --infodir=3D/usr/share/info --mandir=3D/usr/share/man=20
 --enable-libsystemd
 --with-pop=3Dyes
 --enable-locallisppath=3D/etc/emacs:/usr/local/share/emacs/26.3/site-lisp:=
/usr/local/share/emacs/site-lisp:/usr/share/emacs/26.3/site-lisp:/usr/share=
/emacs/site-lisp
 --with-sound=3Dalsa --without-gconf --with-mailutils --with-x=3Dyes
 --with-x-toolkit=3Dgtk3 --with-toolkit-scroll-bars 'CFLAGS=3D-g -O2
 -fdebug-prefix-map=3D/build/emacs-mEZBk7/emacs-26.3+1=3D.=20
 -fstack-protector-strong
 -Wformat -Werror=3Dformat-security -Wall' 'CPPFLAGS=3D-Wdate-time
 -D_FORTIFY_SOURCE=3D2' 'LDFLAGS=3D-Wl,-Bsymbolic-functions=20
 -Wl,-z,relro''

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS=20
GLIB
NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT=20
ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM THREADS LIBSYSTEMD LCMS2

Important settings:
  value of $LANG: en_GB.UTF-8
  value of $XMODIFIERS: @im=3Dnone
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

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

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message rmc puny seq byte-opt gv
bytecomp byte-compile cconv cl-loaddefs cl-lib dired=20
dired-loaddefs
format-spec rfc822 mml easymenu mml-sec password-cache epa derived=20
epg
epg-config gnus-util rmail rmail-loaddefs mm-decode mm-bodies=20
mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail=20
rfc2047
rfc2045 ietf-drums mm-util mail-prsvr mail-utils elec-pair=20
time-date
mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel term/x-win x-win term/common-win x-dnd=20
tool-bar
dnd fontset image regexp-opt fringe tabulated-list replace=20
newcomment
text-mode elisp-mode lisp-mode prog-mode register page menu-bar
rfn-eshadow isearch timer select scroll-bar mouse jit-lock=20
font-lock
syntax facemenu font-core term/tty-colors frame cl-generic cham=20
georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese eucjp-ms cp51932 hebrew greek romanian slovak czech=20
european
ethiopic indian cyrillic chinese composite charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray=20
minibuffer
cl-preloaded nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote threads dbusbind
inotify lcms2 dynamic-setting system-font-setting=20
font-render-setting
move-toolbar gtk x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 95338 8459)
 (symbols 48 20386 1)
 (miscs 40 50 168)
 (strings 32 28445 1160)
 (string-bytes 1 747812)
 (vectors 16 13900)
 (vector-slots 8 500980 11290)
 (floats 8 51 264)
 (intervals 56 301 25)
 (buffers 992 12))

--=-=-=
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEO/eF3hYsAMj7Tab9uhNZqCwLPvkFAl7NQ9wACgkQuhNZqCwL
PvnI3g//fDYKiUcyxn3W/fHed3y3cjPc1HkkB/0o5pnwfe+zK2W7Ldp2Q/xZwpE3
P2mPXDMIUzxP8XgIUR/IgyMWJytTKE68ifUuy9WT8iRPjoNSq7U7JtbM/1xUUzlJ
3735l1X4MPcrX2MwV27oqVb52a2UZLVlL5+9GYu1Wr5UeTTx9Mzm5RmcI009dtp5
C8QkP4/uls+U/hEsk0tNKocMROMzDX3K3J7tFe4KlIkIktjU8A9Fc0cmCfOnKsR3
SjHeyKhfRnFAmarrrAXhTduFN3lCfBh2HK+MpeoZ5ba4f+RQpjRPmuBdwWeuGMtQ
Oy0Bhx4Q3iMyd1zezDy2p3ax/qyhyiHgWk9EPo7T5T0ILEvpA3XuPRyStux4gEX8
Fxcaf9r8va/n++if4hY/oJmATMmWNfjFM1p3gPM4CMDUPdd1tORqvDvUdKFeCs/7
dYYQ0keUuGDNyBkqvxrZT1dpvrGky2pg+YSOy2tVNdDQjC3x1N8kXMDn3LMlAmp+
ZEXzdMqrHyodIzLf3eIaejqmnNb/wWmpOcD9O1StQGS81AvFL89qc0cqPqEAUScl
FG9Ot3EF5tAKap/TxScgLdSpJjEDrh7zvWAXMRsikXSCsVPgybXM0Ju1INLXWveR
cEn6kKpc574TqroYYqnse6rmrAamh+ev3xGg9ukvw+kYFCSou/4=
=HoyA
-----END PGP SIGNATURE-----
--=-=-=--




Acknowledgement sent to Simon Pugnet <simon@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#41544; 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: Fri, 21 Aug 2020 11:45:01 UTC

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