|
From: <and...@us...> - 2006-04-20 20:06:37
|
Revision: 1316 Author: andreradke Date: 2006-04-20 13:06:19 -0700 (Thu, 20 Apr 2006) ViewCVS: http://svn.sourceforge.net/frontierkernel/?rev=1316&view=rev Log Message: ----------- Fix byte-swapping for RGB values on Intel Macs and in the Win32 version. Modified Paths: -------------- Frontier/trunk/Common/source/langhash.c Frontier/trunk/Common/source/langpack.c Modified: Frontier/trunk/Common/source/langhash.c =================================================================== --- Frontier/trunk/Common/source/langhash.c 2006-04-20 08:42:08 UTC (rev 1315) +++ Frontier/trunk/Common/source/langhash.c 2006-04-20 20:06:19 UTC (rev 1316) @@ -2924,6 +2924,8 @@ 2002-11-11 AR: Added assert to make sure the C compiler chose the proper byte alignment for the tydisktablerecord struct. If it did not, we would end up corrupting any database files we saved. + + 2006-04-20 sethdill & aradke: convert rgb values to native byte order */ boolean fl; @@ -3122,6 +3124,25 @@ break; } + case rgbvaluetype: { /* 2006-04-20 sethdill & aradke */ + diskrgb **rgbdisk; + RGBColor rgb; + + if (!hashunpackbinary (hstrings, (Handle *) &rgbdisk, ixstrings)) + goto L1; + + diskrgbtorgb (*rgbdisk, &rgb); + + disposehandle ((Handle) rgbdisk); + + if (!newheapvalue (&rgb, sizeof (rgb), rgbvaluetype, &val)) + goto L1; + + exemptfromtmpstack (&val); + + break; + } + #if noextended case doublevaluetype: { @@ -3159,7 +3180,6 @@ case stringvaluetype: case passwordvaluetype: case patternvaluetype: - case rgbvaluetype: #ifndef oplanglists case listvaluetype: case recordvaluetype: Modified: Frontier/trunk/Common/source/langpack.c =================================================================== --- Frontier/trunk/Common/source/langpack.c 2006-04-20 08:42:08 UTC (rev 1315) +++ Frontier/trunk/Common/source/langpack.c 2006-04-20 20:06:19 UTC (rev 1316) @@ -105,6 +105,8 @@ 4/8/93 dmb: save/restore hdlpackedvalue to allow reentrancy needed for code values 5.0.2b10 dmb: don't disable langerror when getting an address path. + + 2006-04-20 sethdill & aradke: convert rgb values from native byte order to big-endian */ register boolean fl; @@ -213,6 +215,16 @@ break; } + case rgbvaluetype: { /* 2006-04-20 sethdill & aradke */ + diskrgb rgbdiskk; + + rgbtodiskrgb (*val.data.rgbvalue, &rgbdiskk); + + fl = langpackdata (sizeof (rgbdiskk), &rgbdiskk, hpackedvalue); + + break; + } + #if noextended case doublevaluetype: { @@ -239,7 +251,6 @@ case passwordvaluetype: case patternvaluetype: case objspecvaluetype: - case rgbvaluetype: #ifndef version5orgreater case filespecvaluetype: case aliasvaluetype: @@ -494,6 +505,8 @@ 4/8/93 dmb: save/restore hdlpackedvalue to allow reentrancy needed for code values 5.0.2b3 dmb: unpacking addresses, if stringtoaddress fails, set valuetype to string + + 2006-04-20 sethdill & aradke: convert rgb values to native byte order */ tyvaluerecord v; @@ -622,6 +635,25 @@ break; } + case rgbvaluetype: { /* 2006-04-20 sethdill & aradke */ + RGBColor rgb; + diskrgb rgbdisk; + + fl = langunpackdata (sizeof (rgbdisk), &rgbdisk, h, &ixunpack); + + if (fl) { + + diskrgbtorgb (&rgbdisk, &rgb); + + fl = newheapvalue (&rgb, sizeof (rgb), rgbvaluetype, &v); + + if (fl) + exemptfromtmpstack (&v); + } + + break; + } + #if noextended case doublevaluetype: { @@ -655,7 +687,6 @@ case stringvaluetype: case passwordvaluetype: case patternvaluetype: - case rgbvaluetype: case binaryvaluetype: #ifndef version5orgreater case objspecvaluetype: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |