Subject: Re: bug#4033: 23.1; list-colors-display is misleading

From: Juri Linkov <[email-masked]>
Date: Thu, 06 Aug 2009 00:35:43 +0300

> What about something like this:
>
> (defun rgb-color-format-for-display ()
>   (let ((ncolors  (display-color-cells (selected-frame)))
>         (exp      0))
>     (while (> (lsh ncolors (- exp)) 1) (setq exp  (1+ exp)))
>     (setq exp  (/ exp 12))
>     (format "#%%0%dx%%0%dx%%0%dx" exp exp exp)))
>
> For 16777216 colors, that gives #%02x%02x%02x, which seems right.
>
> In `list-colors-print', we would then do this:
>
> (insert (apply 'format (rgb-color-format-for-display)
>                (mapcar (lambda (c) (lsh c -8))
>                          (color-values (car color)))))
>
> IOW, replace the hard-coded "#%02x%02x%02x" with (rgb-color-format-for-display).
>
> But I guess Jason and Eli are saying that that wouldn't work or wouldn't be
> appropriate. It's still not clear to me.

I don't understand what is the reason to unnecessarily complicate this.
In your original report you said that one user had some confusion with
hex formats.  Is this user using a system supporting more than 8 bits
per component?

-- 
Juri Linkov
http://www.jurta.org/emacs/