>It is much more simple than that. Using any Txt* function in above
>configuration generates
>
>#APP
> ** Sorry; calling this function with these header files
>doesn't work yet.
>Life will be much better with 3.5 headers
>#NO_APP
I think John Marshall answered this issue.
> > If you want to support Russian text using a Cyrillic character
> > encoding, then you'd need to patch the IntlDispatch trap and write
> > your own versions of all of the Text Manager routines.
> >
>
>That is really important to me. There are two commercial Cyrillic
>localisation packages for 3.3. One of them patches Char* traps
>(GetCharSortValue, GetCharAttr and GetCharCaselessValue to be sure), another
>one patches IntlDispatch. Now I have to ask - does 3.3 emulate Char* by
>calling Txt* internally or other way round? In this case one of these
>packages is broken. If 3.3 is using independent routines for both, then both
>of them are actually broken :-) (O.K., it may be, that they directly replace
>system tables - is it possible? I mean, are they in RAM or ROM?)
>
>Both work with applicaitons I've tried - but most of them do not use Txt*
>functions. That leads me to believe, that Char* are implemented over Txt*
>actually.
In 3.3, the Latin Text Mgr directly uses the tables referenced by the
various GetCharXXX routines (doesn't go through trap calls). In
addition, the StrXXX routines do not call through to the Text Manager
routines.
So to completely implement a different character encoding on the 3.3
ROMs, you would need to patch the three GetCharXXX routines, as well
as a bunch of the StrXXX routines, and the IntlDispatch trap used to
dispatch to the Text Mgr routines. If it's just a 'simple' character
encoding such as Cyrillic (single-byte characters) then you'd only
need to replace the fonts, without patching the drawing and measuring
routines.
>More precise question. Assuming, I am on european Palm, is it valid:
>
>char *srcStr = "My Text Sample";
>Word srcSize = StrLen(srcStr);
>char dstStr[128];
>Word dstSize = 128;
>
>TxtTtransliterate (srcStr, srcSize, dstStr, dstSize, translitOpUpperCase);
>
>Or should I form srcStr to be of WChar?
Your example is valid. WChar is _only_ used for a single character,
as a variable or function parameter or field in a structure.
Characters in a string are a byte stream based on the device's
character encoding. For example, on a Latin-based device, the
character chrCapital_A_Tilde ('�') is 0x00C3 in a WChar variable, but
only occupies a single 0xC3 byte in a string.
-- 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.palm.com/devzone/mailinglists.html