Subject: Re: bug#5683: 23.1.93; list-colors-display doesn't show all colors

From: Markus Prepens <[email-masked]>
Date: Fri, 12 Mar 2010 23:17:56 +0100

A few days ago I found a misbehavior related to the list-color-display 
command. I have made further investigations and finally figured out, 
that the problem is caused by the build process, I have used (by accident).

When I run the build commands as descibed in nextstep/INSTALL everything 
works fine:

   ./configure --with-ns
   make
   make install

And this is the command sequence which builds a Emacs.app with the 
described problem:

   ./configure --with-ns
   sudo make
   sudo make install

Markus

On 06/03/2010 23:07, Markus Prepens wrote:
> When I evaluate (defvar my-x-colors (ns-list-colors)) the complete color
> list is put to my-x-colors.
>
> I think your impression is right: The code is correct, but the calling
> order during startup might be the problem. Maybe this is a hint:
>
> Step 1: Startup Emacs with the -Q switch
> Step 2: Enter M-: (setq x-colors (ns-list-colors))
> Step 3: Enter M-x list-colors-display and the complete list of all
> colors appears in the *Colors* buffer.
>
> Without step 1 and 2 the *Colors* buffer shows only 37 colors.
>
> I make further investigations, what is going on.
>
> Any hints are welcome ...
>
> Markus
>
> On 06/03/2010 10:01, Eli Zaretskii wrote:
>> [Please don't drop [email-masked] from the list of addressees,
>> so that the history of this bug is archived on the bug tracker, and
>> also so others could chime in to this discussion.]
>>
>>> Date: Fri, 05 Mar 2010 22:57:19 +0100
>>> From: Markus Prepens<[email-masked]>
>>>
>>> Function defined-colors seems to cause the trouble. I stepped down the
>>> code to xw-defined-colors in file ns-win.el. It uses the list x-colors.
>>> It contains only 42 colors.
>>>
>>> x-colors is initialized with the return value of ns-list-colors:
>>>
>>> (defvar x-colors (ns-list-colors)
>>>
>>> What I am wondering about is that ns-list-colors returns a correct list
>>> of 794 colors.
>>>
>>> What is wrong with the assignment of (ns-list-colors) to x-colors?
>>
>> Nothing's wrong. I suspect that some code modifies x-colors after it
>> is assigned. Can you see if evaluating the following form
>>
>> (defvar my-x-colors (ns-list-colors))
>>
>> puts the full 794-color list in my-x-colors? (To evaluate the
>> expression, put the cursor immediately after the right parenthesis and
>> type "C-x C-e".)
>