all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Drew Adams <drew.adams@oracle.com>
To: Eli Zaretskii <eliz@gnu.org>, Drew Adams <drew.adams@oracle.com>
Cc: michael_heerdegen@web.de, 25890@debbugs.gnu.org, rasmus@gmx.us
Subject: bug#25890: `color-values` gives wrong value
Date: Sat, 4 Mar 2017 12:40:12 -0800 (PST)	[thread overview]
Message-ID: <0fe39107-cf5e-4a55-b640-f14dcc1e122d@default> (raw)
In-Reply-To: <<83lgslja4t.fsf@gnu.org>>

> > > It should instead produce the most-significant digits.
> >
> > Why?
> 
> Because that's how colors are interpreted on X,

I think you misunderstand `hexrgb-int-to-hex'.  It does
no color interpretation at all.

It simply converts a decimal integer to a string of hex
digits of a given length.  If the prescribed length is
too short for the number then the returned string clearly
cannot represent the number accurately - as is documented.

The fact that too few digits cannot represent the number
is irrespective of whether those too few digits are MSB
or LSB.

It's up to code calling the function to DTRT wrt the
number of digits it passes, just as it is up to the
caller of `hexrgb-hex-to-int' to pass a hex string that
does not represent an integer larger than what Emacs
can handle.

Here, for instance, is how `hexrgb-increment-hex' checks
inputs to `hexrgb-int-to-hex' before it calls it:

 (<= (length (format (concat \"%X\") INT)) NB-DIGITS)

The doc makes all of this pretty clear, I think.

> which is where Emacs takes its ideas of how to
> process these specs.

Emacs interprets color specs.  hexrgb does not.

> See, for example, this man page:
> https://linux.die.net/man/3/xparsecolor
> (Emacs on X uses XParseColor internally in the
> implementation of color-values.)

I see nothing on that page that conflicts with the hexrgb code.
In particular, this quote describes the hexrgb behavior too:

  "the string ''#3a7'' is the same as ''#3000a0007000''

Same color represented by both patterns.

You use `hexrgb-int-to-hex' on each color component separately,
and the maximum integer input is 65535 - as documented.

(hexrgb-int-to-hex (hexrgb-hex-to-int "7000") 4 ) ==> "7000"
(hexrgb-int-to-hex (hexrgb-hex-to-int "7")    1 ) ==> "7"

It is Emacs, not hexrgb, that interprets such a hex value
as a color component.  And Emacs (correctly) interprets
the component "7" in "#3a7" the same as it interprets the
component "7000" in "#3000a0007000" - same color.

> If you do it differently, sooner or later the results will
> clash with what Emacs does, and yield subtly wrong values.

hexrgb does not "do it" at all.  hexrgb does not conflict
with anything shown on the page you cited.

> I will now bail out of this discussion.  I have nothing more
> to say about this issue.  If you don't want to change
> hexrgb.el, that's your prerogative.

I've been clear that I would LOVE to fix a bug, if you can
please point to one.  Show some code that uses hexrgb and
produces an incorrect result, for example.





       reply	other threads:[~2017-03-04 20:40 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <<<<<<87zih7n2yt.fsf@pank.eu>
     [not found] ` <<<<<<83r32jpr8b.fsf@gnu.org>
     [not found]   ` <<<<<<87bmtnryqr.fsf@drachen>
     [not found]     ` <<<<<<87d1e2tzt5.fsf@pank.eu>
     [not found]       ` <<<<<<8337eypb5l.fsf@gnu.org>
     [not found]         ` <<<<<<87vartx4qd.fsf@drachen>
     [not found]           ` <<<<<<56bad9de-8111-4962-a9e9-2dbf0084e004@default>
     [not found]             ` <<<<<<83wpc6la28.fsf@gnu.org>
     [not found]               ` <<<<<2cfd6280-34de-4751-b35f-ec7d47a16595@default>
     [not found]                 ` <<<<<83pohyky8i.fsf@gnu.org>
     [not found]                   ` <<<<d73ecee8-1b1d-4739-b2b8-e3eb9ecc3ce0@default>
     [not found]                     ` <<<<83o9xikvop.fsf@gnu.org>
     [not found]                       ` <<<1b96dc61-19bb-486b-a408-c3b3c15e113b@default>
     [not found]                         ` <<<83lgsll9ey.fsf@gnu.org>
     [not found]                           ` <<59441882-425e-4962-8760-70c505d991dd@default>
     [not found]                             ` <<83lgslja4t.fsf@gnu.org>
2017-03-04 20:40                               ` Drew Adams [this message]
     [not found] <<<<<87zih7n2yt.fsf@pank.eu>
     [not found] ` <<<<<83r32jpr8b.fsf@gnu.org>
     [not found]   ` <<<<<87bmtnryqr.fsf@drachen>
     [not found]     ` <<<<<87d1e2tzt5.fsf@pank.eu>
     [not found]       ` <<<<<8337eypb5l.fsf@gnu.org>
     [not found]         ` <<<<<87vartx4qd.fsf@drachen>
     [not found]           ` <<<<<56bad9de-8111-4962-a9e9-2dbf0084e004@default>
     [not found]             ` <<<<<83wpc6la28.fsf@gnu.org>
     [not found]               ` <<<<2cfd6280-34de-4751-b35f-ec7d47a16595@default>
     [not found]                 ` <<<<83pohyky8i.fsf@gnu.org>
     [not found]                   ` <<<d73ecee8-1b1d-4739-b2b8-e3eb9ecc3ce0@default>
     [not found]                     ` <<<83o9xikvop.fsf@gnu.org>
     [not found]                       ` <<1b96dc61-19bb-486b-a408-c3b3c15e113b@default>
     [not found]                         ` <<83lgsll9ey.fsf@gnu.org>
2017-03-04 15:38                           ` bug#25890: `color-values` gives wrong value Drew Adams
2017-03-04 16:10                             ` Eli Zaretskii
     [not found] <<<<87zih7n2yt.fsf@pank.eu>
     [not found] ` <<<<83r32jpr8b.fsf@gnu.org>
     [not found]   ` <<<<87bmtnryqr.fsf@drachen>
     [not found]     ` <<<<87d1e2tzt5.fsf@pank.eu>
     [not found]       ` <<<<8337eypb5l.fsf@gnu.org>
     [not found]         ` <<<<87vartx4qd.fsf@drachen>
     [not found]           ` <<<<56bad9de-8111-4962-a9e9-2dbf0084e004@default>
     [not found]             ` <<<<83wpc6la28.fsf@gnu.org>
     [not found]               ` <<<2cfd6280-34de-4751-b35f-ec7d47a16595@default>
     [not found]                 ` <<<83pohyky8i.fsf@gnu.org>
     [not found]                   ` <<d73ecee8-1b1d-4739-b2b8-e3eb9ecc3ce0@default>
     [not found]                     ` <<83o9xikvop.fsf@gnu.org>
2017-03-03 21:18                       ` Drew Adams
2017-03-04  8:43                         ` Eli Zaretskii
     [not found] <<<87zih7n2yt.fsf@pank.eu>
     [not found] ` <<<83r32jpr8b.fsf@gnu.org>
     [not found]   ` <<<87bmtnryqr.fsf@drachen>
     [not found]     ` <<<87d1e2tzt5.fsf@pank.eu>
     [not found]       ` <<<8337eypb5l.fsf@gnu.org>
     [not found]         ` <<<87vartx4qd.fsf@drachen>
     [not found]           ` <<<56bad9de-8111-4962-a9e9-2dbf0084e004@default>
     [not found]             ` <<<83wpc6la28.fsf@gnu.org>
     [not found]               ` <<2cfd6280-34de-4751-b35f-ec7d47a16595@default>
     [not found]                 ` <<83pohyky8i.fsf@gnu.org>
2017-03-03 19:20                   ` Drew Adams
2017-03-03 19:27                     ` Eli Zaretskii
     [not found] <<87zih7n2yt.fsf@pank.eu>
     [not found] ` <<83r32jpr8b.fsf@gnu.org>
     [not found]   ` <<87bmtnryqr.fsf@drachen>
     [not found]     ` <<87d1e2tzt5.fsf@pank.eu>
     [not found]       ` <<8337eypb5l.fsf@gnu.org>
     [not found]         ` <<87vartx4qd.fsf@drachen>
     [not found]           ` <<56bad9de-8111-4962-a9e9-2dbf0084e004@default>
     [not found]             ` <<83wpc6la28.fsf@gnu.org>
2017-03-03 15:49               ` Drew Adams
2017-03-03 18:32                 ` Eli Zaretskii
2017-02-27 14:05 bug#25890: 26.0.50; " Rasmus
2017-02-27 15:51 ` Eli Zaretskii
2017-02-27 17:09   ` bug#25890: " Rasmus
2017-02-27 23:36   ` bug#25890: 26.0.50; " Michael Heerdegen
2017-02-28  9:44     ` bug#25890: " Rasmus
2017-02-28 15:50       ` Eli Zaretskii
2017-02-28 23:42         ` Michael Heerdegen
2017-02-28 23:54           ` Drew Adams
2017-03-03 14:16             ` Eli Zaretskii
2017-03-01  3:43           ` Eli Zaretskii
2017-03-01  9:55         ` Rasmus
2017-03-03 14:08           ` Eli Zaretskii
2017-03-04 14:24             ` Simen Heggestøyl
2017-03-04 14:38               ` Eli Zaretskii
2017-03-04 15:44                 ` Lars Ingebrigtsen
2017-03-04 16:15                   ` Eli Zaretskii
2017-03-10  5:23 ` mail
2017-03-10  7:28   ` Eli Zaretskii
2017-03-10  8:13     ` mail
2017-03-10  8:33       ` mail
2017-03-10  9:28         ` Eli Zaretskii
2017-03-11 10:06           ` mail
2017-03-10  9:25       ` Eli Zaretskii
2017-03-10 11:07         ` Lars Ingebrigtsen
2017-03-10 13:32           ` Eli Zaretskii
2017-03-11 10:08             ` mail

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0fe39107-cf5e-4a55-b640-f14dcc1e122d@default \
    --to=drew.adams@oracle.com \
    --cc=25890@debbugs.gnu.org \
    --cc=eliz@gnu.org \
    --cc=michael_heerdegen@web.de \
    --cc=rasmus@gmx.us \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.