> 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]> =