Hi Tom,

Thanks a lot for taking the time to reply, I really appreciate it. The really strange thing is that on the S300 emlulator, simply calling TxtParamString seems to work. It's only the Glue version that crashes. So, based on that, and the information in your post, this is what I came up with:

Boolean sony_os_35_glue_bug (void) {
Err             error;
UInt32          result;
Boolean         answer = false;

error = FtrGet(sysFtrCreator, sysFtrNumOEMCompanyID, &result);
if ((error == 0) && (result == hwrOEMCompanyIDSony)) {
   error = FtrGet(sysFtrCreator, sysFtrNumROMVersion, &result);
   if ((result >= palmos_35) && (result < palmos_40))
        answer = true;
   }
return answer;
}

Then in my code, I just do this:

if (sony_os_35_glue_bug())
   p = TxtParamString(temp, sub[0], sub[1], sub[2], sub[3]);
else
   p = TxtGlueParamString(temp, sub[0], sub[1], sub[2], sub[3]);

This seems to work with all the ROMs I can find. Does it make sense and look OK to you? I'm going to ask the customer to test this version for me, and if it works OK for him, I'll go ahead and release it.

Actually all you need is to check if the OS version is less than 3.5, and if so, call the glue code, otherwise call the routine directly.


It turns out there's a bug in the glue code, where it uses the (Latin) glue version if the OS version is < 4.0, but the check should be < 3.5. That's why I thought you needed to handle the Sony/3.5 case specially, but you don't.

-- Ken
--
Ken Krugler
TransPac Software, Inc.
<http://www.transpac.com>
+1 530-470-9200

--
For information on using the Palm Developer Forums, or to unsubscribe, please 
see http://www.palmos.com/dev/support/forums/

Reply via email to