> I've attached a patch, which fixes at least the blue-part.
> The fix results in:
> rgba (FF00,FF00,FFFF,FFFF)
> I don't know, why the red and green-part isn't correctly, too.

Then you'd better have a look at your patch. It is quite incorrect.
I didn't say that it is nontrivial without reason.

> Anyone here, who commits the patch into CVS, please?

Don't. It's wrong.

>  #define DOSHIFT(val, shift)  \
> -     (((shift) >= 0) ? (val) << (shift) : (val) >> -(shift))
> +     (((shift) >= 0) ? (val) << (shift) | (val) : (val) >> -(shift))

To correctly fix the problem, you also need to know the significant bits
before and after the expansion.

This is nothing you fix with a patch to doshift.

To catch all cases you need a loop, which is why I am worrying about
performance.

CU, ANdy

-- 
= Andreas Beck                    |  Email :  <[EMAIL PROTECTED]>        =

Reply via email to