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--
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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?
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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"?
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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 ECBwY4HpZnj816RvDOToBAgQIECAAAECBAgQIPB6AtPNcP97hnNjlRupk57/6BvZo/c/6WNR1lkE 8uf3In+ez8KmDgIECBAgQIAAgdcW8J7h136+TkeAAAECBAgQIECAAAEC3xCYboanF8SbfOW9s3OT dfFb3bQ+O/+o7qX1LI2f6/6HuNwc/mHi14H6Xt70E9+9x7fGdfE1rva7/Mm3tB2e99ffpZ243Khm n4ynn/k6Pnc+cVoCBAgQIECAAAECBJ4mML0Q7v+a9NPKsBEBAgQIECBAgAABAgQIEHiewHQz/PHR 7XKD2d2MZj77pD+Kz3zi6/r0E5d+2m48+br5rB+1WZ98c+NrXNbXfOmP4uv8bv3c2Nab2jpe+7Wg Op98dbyue3a/u/Htxp9dn/0IECBAgAABAgQIEFgt4GZ4NZ2FBAgQIECAAAECBAgQIHBVgU1uhtce Pjeio/W5IU18+qN1iR/FPWt+bj05X43PeNpn1f3bPrnB/W3gxf+lew/wix/b8QgQIECAAAECBAjc QWC6GX74r0nfAcoZCRAgQIAAAQIECBAgQOB1BKab4c9HHWevG87cqHb5M/+sc2e/pfXU+FGeZ53H PgQIECBAgAABAgQIELi6wGa/VunqEOonQIAAAQIECBAgQIAAgfsIvP+e4bxn8smfnrvXDWjynuXx dvVkvN4Mp9/Nn+Vcm9dxtk+ZnnvA/LmZG79XXOrIn+e99pGXAAECBAgQIECAwIUE3Axf6GEplQAB AgQIECBAgAABAgS2EZhuhh/+qjeWo4Sj+MyP8nTzWZ8b1MR145mv8elnXeLSZr72a3z6NX7pePbJ uvRP1+ZTp3OjWwvMfDde13Xxdf1R/dy45gY2dXTjma/x6Wdd4tJmvva7+MRpCRAgQIAAAQIECBD4 g4Cb4T+QGCBAgAABAgQIECBAgACBVxeYfq3Sv314+/S3WQfNzZSbqFlcgggcKuDP66H8NidAgAAB AgQIEDi3wHQzfNivVjo3jeoIECBAgAABAgQIECBA4FUF3v806XpqN8JVRJ/AeQX8eT3vs1EZAQIE CBAgQIDA4QLTzfAmH6J1+EkUQIAAAQIECBAgQIAAAQIEZgpML4bfZsYKI0CAAAECBAgQIECAAAEC LyEwvRj++SVO4hAECBAgQIAAAQIECBAgQGCmwPRiePpn3tf06bT5hNp5K0QRIECAwBkE/Pf7DE9B DQQIECBAgMCJBKYXwtOvV/JFgAABAgQIECBAgAABAgRuIzB9eNZPw9PmNnjlp9P+4+Nfftniz29/ H241JyD5Env2vKnztO2Dz/fhc/36/fFho++Py9VzuP+Xv/Exfa388/3PxRv+36M9NjzKrqnilE1G zy/zWZd+1msJECBAgAABAjcTmG6Gv7/ZmR2XAAECBAgQIECAAAECBG4uMN0MX+bTpHMjXG+Cu/Gl zzZ5k2/u+sRn/dx14ggQILBaIDe7ueldnchCAgQIECBAgMA9BaabYZ8mfc9n79QECBAgQIAAAQIE CBC4rcB0M9x/mnRuHHIDcVKmo29kj97/pI9FWQQInFEg/z2/yH/fz0ioJgIECBAgQOA1BNwMv8Zz dAoCBAgQIECAAAECBAgQWCAw3Qx/tyD+3dC8d/bdoN9NdvFb3bQ+O/+o7qX1LI3/He2yf81N0WhV PvW5xtVPgU5cHc+6ufOJH+VJXNqt4pMv9abf5c/80na2/6+f+lzz1/WjG7+589mn5s948qSfdqv4 5Kv7dPkTP7etebOuy9/F13WJG+Wp81mXfGlrXMa1BAgQIECAAAECDwlMN8OfH8pgMQECBAgQIECA AAECBAgQuJjAdDP88FduMLub0cxno/RH8ZlPfF2ffuLST9uNJ183n/WjNuuTb258jcv6mi/9UXyd 37yfm9HuRrTOJ66O134ttJvvxrPPKE+3Puu6+aXjybd1mxvD7oawzieujtd+rbOb78azzyhPtz7r uvm544lLvq5NvYlPv8bX+drv4uv40v7cepbmFU+AAAECBAgQIPBNgelmeLO/Jv3NHQwSIECAAAEC BAgQIECAAIGTCRz6e4ZzIzoyyQ1p4tMfrUv8KO5Z83PryflqfMbTPqvuD7mBzU1pNs542oynzXjW pZ/52o7ma3zy1vHaT94an/G03bo6/ux+bgxzQ5n9M54242kznnXpZ762o/kan7x1vPaTt8ZnPG23 ro7Xfre+xtV+rafOP7t/tnqefX77ESBAgAABAgSeLOA9w08Gtx0BAgQIECBAgAABAgQIHC/w/u8Z 3rm+vW44c6Pa5c/8zsf7LX32W1pPjR/l+W3Dvf6l3qDmprWO77V/8o72zXzi09Y6E1fHE3+2tt6A 5iaxju9d92jfzNc6ap2Jq+N13V79o/at5xk5ZL6u0ydAgAABAgQIEHhIYLoZfnsog8UECBAgQIAA AQIECBAgQOBiAtPN8Me25tyc5GYi/XbBNhN73YAm7zZVPp6lqyfj9WY4/W7+8YqaDN0Nam5Uu/k6 XvvNdquHk78myHjqzXz63Xzijm67P3/589jN1/Ha3/pcyV/zZjz1Zj79bj5xz25rPbXOtfUk79z1 S+OX5s255q4TR4AAAQIECBB4MQE3wy/2QB2HAAECBAgQIECAAAECBMYC798Mj9f/ElFvLEfLRvGZ H+Xp5rM+N6iJ68YzX+PTz7rEpc187df49Gv80vHsk3Xp797WG9S6YeYz3t20Jq6bz/pRW/Mkful4 XZf+2drc4HU3hZlP3Ymr4+l381k/amuexC8dr+vS37vt6sy+mU8/bTcezxq313j2qfnT7+rMOi0B AgQIECBAgMAvAtPNcP/XpCERIECAAAECBAgQIECAAIEXFJheCP/bh7dPf5t1NjcPs5gEESBwI4Gr /HfxKnXe6FvHUQkQIECAAIFjBaabYV8ECBAgQIAAAQIECBAgQOBWAsveM+y9aLf65nBYAgReSMB/ v1/oYToKAQIECBAgsIWAm+EtFOUgQIAAAQIECBAgQIAAgUsJTDfDvggQIEBgrYAb17Vy1hEgQIAA AQIEDhVwM3wov80JECBAgAABAgQIECBA4AiB6cXw2xEb25MAAQIECBAgQIAAAQIECBwlML0Y/nzU 5vYlQIAAAQIECBAgQIAAAQJHCEwvhqffNeyLAAECBAgQIECAAAECBAjcRmB6MexDtG7zuB2UAAEC BAgQIECAAAECBCYB7xn2fUCAAAECBAgQIECAAAECtxOYXgz/fLtTOzABAgQIECBAgAABAgQI3Fpg ejE8/eOLAAECBAgQIECAAAECBAjcRmB6IewDtG7zuB2UAAECBAgQIECAAAECBCaB6cXwTygIECBA gAABAgQIECBAgMCdBKYXw9/f6cDOSoAAAQIECBAgQIAAAQIEphfDbxgIECBAgAABAgQIECBAgMCd BKYXwz5N+k5P3FkJECBAgAABAgQIECBA4Jf3DE8viH0RIECAAAECBAgQIECAAIHbCLgZvs2jdlAC BAgQIECAAAECBAgQiMD0Yvi7dLQECBAgQIAAAQIECBAgQOAOAtOL4c93OKgzEiBAgAABAgQIECBA gACBCHi/cCS0BAgQIECAAAECBAgQIHAbAX9N+jaP2kEJECBAgAABAgQIECBAIALTi2G/ZzgaWgIE CBAgQIAAAQIECBC4hYD3DN/iMTskAQIECBAgQIAAAQIECPxeYHoxPP3jiwABAgQIECBAgAABAgQI 3EbAX5O+zaN2UAIECBAgQIAAAQIECBCIwPRi+GM6WgIECBAgQIAAAQIECBAgcAcBN8N3eMrOSIAA AQIECBAgQIAAAQJfCbgZ/opDhwABAgQIECBAgAABAgTuIODF8B2esjMSIECAAAECBAgQIECAwFcC 04vhz1+NvNf5+Ncv7zD+8o8vAgSOF3j1P4+vfr7jv4NUQIAAAQIECBC4tcD0YtgXAQIECBAgQIAA AQIECBC4lcCfvpx2/GnSuQ1++7QK5x8f//LLuj+//X3V+roo+TK+Vd7k0xI4tcDSP4+Jz6FW/jnO 8qe1qTP1p/+0AmxEgAABAgQIECDwygJuhl/56TobAQIECBAgQIAAAQIECHxTYLoZvsxXboTrTXA3 fpmDKXSdwK9/4+DDRn/jYF0RJ17V3ah24yc+itIIECBAgAABAgQIbC3gZnhrUfkIECBAgAABAgQI ECBA4PQC083wW1vlRW6Q6k1xex4TBK4ssNWfx6u99zb1bnX+K38PqJ0AAQIECBAgQGAzgWW/Wmmz bSUiQIAAAQIECBAgQIAAAQLHCcz7NOmZ9eW9uzPDP3Txj9701rzJl/H0a52Zr+OPxidv8qSffTKe ftoal/EuPvPDtr7XNv0s7N6DW+O6+MQlT/pdfMZrXMaTJ/0aV/tdfB2v+TKffLWf+IynvzQ+687W 5ua11pWb2YwnLuPpZz7j6XfzGa/xWaclQIAAAQIECBAgsKPAdDN8qQ/R2tFCagIECBAgQIAAAQIE CBC4icD77xmeiZAbzO7GMvNJl/4oPvOJr+vTT1z6aTOe9V2/xqefdu76Ln7peN0v69OO5hM3bOuN ZhbU8dpPXNpufu54F9flz83saF3Wr227/FuNr61rtC43romr/XoTm/k6XtfX+W5dN571db72s6+W AAECBAgQIECAwI4C083wzzvml5oAAQIECBAgQIAAAQIECJxOYLoZPuzXK+WGc6QyutEdrZ87P7ee Ub7UW+OWjtf1m/dzw7p54l8Tdvm78dy47lXP0rxdnUvHl+77aHx3A/to3ro++8wdr3H6BAgQIECA AAECBA4UmF4Ifzxwf1sTIECAAAECBAgQIECAAIGnC0w3wz89fddfN+xuSp9dT26Eu3oy/+y6brdf d+N6OwgHJkCAAAECBAgQIEBgb4HpZvj7vTeRnwABAgQIECBAgAABAgQInEng/U+TznsCn/xpr7mJ 7W5qnwWYOpbul3VH17+07tPG573Ec2+O58Yn7rQHL4Ud9OexVPH87pP/+/P8A9qRAAECBAgQIEDg CAGfJn2Euj0JECBAgAABAgQIECBA4FCBTT5NOjeguREdnWgUn/lRnrnzo3yZr/UvHU89WZf+0jbr az3Jk/n0d29zI9vdpGZ+bSFZvzR/ty7jqSf9mr8bz7q7tPXGuZ4783V8bX/rfGvrsI4AAQIECBAg QODWAm6Gb/34HZ4AAQIECBAgQIAAAQL3FJh+rdIPH94+/Tjr+N67N4tJEIGnCLz6n8dXP99Tvkls QoAAAQIECBAg0AlMN8Ofu0njBAgQIECAAAECBAgQIEDgFQWm9wzP//Jev/lWIgnsLfDqfx5f/Xx7 f3/IT4AAAQIECBAg8K7AdDP83bsRJgkQIECAAAECBAgQIECAwIsJTC+G317sTI5DgAABAgQIECBA gAABAgTeFfCe4Xd5TBIgQIAAAQIECBAgQIDAKwpML4anf3wRIECAAAECBAgQIECAAIHbCPhr0rd5 1A5KgAABAgQIECBAgAABAhGYPk16+l3Dh3z9x8f/+mXff3/7l1/a2k9RGU+/a5Onm996vNb17P23 Ps9W+apLl7d6devmxmWfLr6OJz77dvOJ0xIgQIAAAQIECBAg8DoCboZf51k6CQECBAgQIECAAAEC BAjMFDj0Znhmjb+Fne3mLvXkZvG3Qg/6l9SRug4q47dt59Yxqrub7/J38b8V5l8OEVj7XNauO+SQ 39h0bv1z476xxSmG9q5/7/ynQPxdEXc77++O7l8JECBAgMDTBKab4cP+mvTTTmkjAgQIECBAgAAB AgQIECDwO4HpZvjz7/r+lcDLCtSblvRf9sAvcrDubwBc5XhXr/8qzuokQIAAAQIECCwV8GuVloqJ J0CAAAECBAgQIECAAIHLCxz6nuF6Y1L7a3Vz49fl6+YzXvft8tS4rp+8XZ5uPuM1b81T42q/xidf jct4F5/5q7Y5V85d+88+V+qo+6aujCeujnfzic98bUd5to6v9dT+3HpGcZlfmz/nTp7017Zr65i7 bm5dyZdzpZ/1GU8/bY3LeI2vcbVf45Nnblvz1X6Xv8Zlvy4+86M2eZMn/azLePppa1zGa3yNq/0u 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 armhqAVlvo7rEyBwvED+fPrze/yzWFNBnt+atdYQ2ErAzfBWkvIQIECAAAECBAgQIECAwGUEvGf4 Mo9KoQQIECBAgAABAgQIECCwlcB0M+yvSW+lKQ8BAgQIECBAgAABAgQIXELAr1a6xGNSJAECBAgQ IECAAAECBAhsKTC9GPZFgAABAgQIECBAgAABAgRuJfDNT5PuPpUvMs/+9LfUs/e+2SfnTFv3TVwd T3ydr/3Epa3z6We+tqN9R/HJ3+Wp66/W3+p8yVPPX926uKxbGr90Xc2f9drXFqjfd3f9PojDWc+f +kbfjak/8emP1j1rPnXV/WqdXVzWLY1fuq7mz/q7tPG/u8NdnrdzEiDwuICb4ccNZSBAgAABAgQI ECBAgACBiwlMN8N/+MpPFLufMHbjf0g0GNgqz2Cb4fSojtH8cIOFAUv9R/WN5heW9/LhI69uPs+t Ai2Nn7s+cV3+zGtfUyDfb3n+R58ydaSuo+s5y/7V42pOo3q7+XruPI+l8VmXtls/dz5xWgIECBAg MAm4GfZ9QIAAAQIECBAgQIAAAQK3E5huht9ud+qFB64/4U6//oS69us2dT79Gqd/boE8/7NUebZ6 zuKiDgIE9hc4239/zlbP/k/g2B3y/8dwP/Y52J0AgfUCfrXSejsrCRAgQIAAAQIECBAgQOCiAt/8 NOm1Z8lPCOv6+hPDGlf7Nb7mWxpf1x/Vz7lSf+0fVdde++acNX/OnfHEZTz9zGc8/bQ1LuPadQKd Z/VPXMbTz64ZTz9tjct4F5/5UZu8XZ463/WzzyhP4tLW+Jo/cWm7+YwnLm3Nn/G5bfJ2ebr5jNd9 ap4aV/s1PvlqXMaXxmfdq7bVaalPF/+qXludq7onb+c5Nz5xyZP+KH/m57Y1b9Zl3/TTPhqf9V3+ 7KMlQIDA2QSmm+FvfojW2QpVDwECBAgQIECAAAECBAgQ2Epg1nuG8xO/bFp/8pf5Op74Op+4Op74 ru3iu/EuTx2v9XTz3fij+9e8tZ/8GU+96Z+17erMeer83PEuLg6ZT39pm7q6PJmvefeOr/tt3R+d q87nvKPxLi71j+YTt3Xb7VvHa7/WMZqv8V2/OiZuq/zJN7edW0/i5tY5iqvztV/rz3wdv3o/54pv zlPHaz9xaUfzieva7J88NS7zdXzv+LrfVv3UPTpXna/91NPlWzqefHPbufV0dWSfbj75u/ms1xIg QODsAtPN8M9nL1J9BAgQIECAAAECBAgQIEBgS4HpZnj465XyE8BsfNRPAmsdqWertsu/9Xm7fbpz 1Pit6+n2fXQ8dc7NU885d91ecV09OVedr/1RXUvjR/kenc+55ubp6u/Gl+afW8fauK7OLt/e9e+d vztXN753PXvn7851lfGzfX929eQ51vnaH7kvjR/l22u+qzMOc/ft8sxdv3Xc0vqz/9nOkbq0BAgQ mCswvRD+ODdYHAECBAgQIECAAAECBAgQeAWB6Wb4p1c4iDOcRyA/Ye5+Ypz581R870ryPPZ+Xl3+ q+jPrT9x1bX2c+5uvM6nv3f7rHritPd57pKf5zFP+ll/XvY+ne+fvYXlJ0DgrALTzfD3Zy1OXQQI ECBAgAABAgQIECBAYA+BWZ8mvcfG7+Uc/aT1vbVr5p6935oaX2FNnM9+ltR5lZ+U71Vv8u79vLLP 1t7Jq/5vCyz1WRqfXbNu7vNdGp99unbrfN0+Zx1/9PyPrn+2y971zs2fuGeff+v9co7uz+9ofut6 5CNAgMDWAj5NemtR+QgQIECAAAECBAgQIEDg9ALf/DTp/KQv1dd+/Qlh+jUu6zOfftqM13UZT9ze bfardWTfzKe/d1vrqP1aT/o1LnVmPv20XXzmu3WZ79qsq/m78S5PN75VnrX5s3+3fu549anrsk/a Lj7zdf3cftbX/N343LyJG+XJfOKXtll/tvprXenX82V8af01Pv3kyz7pZ37r8bn5RnF1vvZr/Znv 2hqffjy6dVcbz3lyvlp/5uv43H7W75U/dXT5M5860nbxmc+6pW3Wz83fxXfjS+tZG/9o/dk350g/ bc2ffhefdVoCBAicTcDN8NmeiHoIECBAgAABAgQIEPh/7d1bbhzHFQZgGUY2IMDPWkce9KYl6CWB d2ckXoIuoJ+0D0GXbcRi1CP8EHk0peqenpm+zEfAKVXVqVOnvuY45pRIEiBwcYHh1yr9/uT+zz8u vpMNCBAgQIDAlQXcWF0Z3HY3JeD1dVOP22EJ7FJguBn+ssuTORQBAgQIECBAgAABAgQIEGgIDDfD //56M/yfxrxhAgQIECBAgAABAgQIECCwO4HhZvjX3Z3KgQgQIECAAAECBAgQIECAwE8Ejv6e4bu/ fvvJElMECBAgQIAAAQIECBAgQGDbAr5neNvPT/UECBAgQIAAAQIECBAgcILA8MXw8I8PAgQIECBA gACBBQRevHjxZPjHB4E1CPh8XMNTUMO1BIYvhO+vtZl9CBAgQIAAAQIECBAgQIDAGgSG7xkefqL0 rI+8m3l3d3c0T52v/bqoztd+L77O770fn945xz6fXp6tzb979+5Ryc+fP3/U30qnniN1b/U8qV/7 TaD1Op76uk2e1rqe99T1ie/lrfW01tW4Xt6l5rde/1Ju9n0skM+j1ud95h+v+rGX9YlP/8fIbY+0 zpfxnO5c5695k7+2db+6rs5nfY3LeNrWusxfqs2+qS/9S+0nL4ElBdwML6lvbwIECBAgQIAAAQIE CBBYROAsN8OLVG7THwSmvnOXd/x+SGRglQK5AW7dEK+yaEV1BfI6bL1+63yv393wzAGturNN6q39 1rrEt+aTZ6m2V9/c+Zyrlydxe2lv7bxTn9u1Xg9bfQ7xSf1TfXvxyd+Ly3zie/XUuPSTJ+vreOa1 BAjMFxhuhmf/Nen5ZchAgAABAgQIECBAgAABAgSuJzDcDH+53nbL7OSdtcfu1SP9x1F6BAisUSA3 BHndtvpL117rG1tPzjM2fm1xvfp782s7j3ouI3Dq6+My1XzPutbPz7V6fZfb55/y+cB/n8/Xqb4J +LVKPhMIECBAgAABAgQIECBA4OYEdv09w3knK081/bzTlfFba9d6/t73wra+ZzbjeY69PK245Knr e+PJN7Wt+9T12beO6+9L4NTX46nr9qW3ndPk/39Scev51bjab61L3l7bypfxVv7M1/xz42ve2j9X /uQZm7+ec+/9qS41Pj5xTr8Vl/kan3HtzwVari3PqfE/390sgX0JuBne1/N0GgIECBAgQIAAAQIE CBAYITDcDP/w0XoHqQa23oGqcUv1U1/Ok36tJ/N1vPazfm3xqbNVV+pO3NraekNab0Qzn3Zu/cmT fdJPW/NnvBWf8bqu1U++zNf1mU9b57NOu2+BvJ57r9+xcdfSGltP4mpdvfPW+K30c67WuXOOGpd+ 5mvby5f4mif9rG/1W+szPnZ9K763b9alrftlPG1rfup48q2lTf21nvjV8an95Gntk3yZT3zG07bm p8b38mX+Wm3OVfdrnavGnaufOlr71vnar3X05mv83H726+XJ+cQfl+Jz3CWjU33cDEdOS4AAAQIE CBAgQIAAAQI3IzDcDN/X0+Yr6jq+1X7vPL35eu61xae+qXVl3dJtbj5zE5o2dWU+/Tqf8bFtzddb 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 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 --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--
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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--
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.)
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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= --=-=-=--
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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).
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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--
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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?
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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?
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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!
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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----- --=-=-=--
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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--
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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--
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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?
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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?
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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?
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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--
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.Mattias Engdegård <mattiase@HIDDEN>
to control <at> debbugs.gnu.org
.
Full text available.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--
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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.
bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.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----- --=-=-=--
Simon Pugnet <simon@HIDDEN>
:bug-gnu-emacs@HIDDEN
.
Full text available.bug-gnu-emacs@HIDDEN
:bug#41544
; Package emacs
.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.