> >Running PalmOS40dr5-en-vz-wca16edbg.rom under Poser 3.1, with the VZ device
> >selected, I get this assertion when calling GetCharAttr().
> >
> >"TextTable.cpp, Line: 1871, Incorrect text table version".
> >
> >Is this someone's way of telling me to use the TxtCharIs macros?
Yes. Well, no. Actually it's a bug in the GetCharAttr() routine,
though it only shows up on debug ROMs - you'll still get back a
byte-indexed table of 16-bit attribute values, though this is only
useful on devices with simple (single-byte) character encodings.
>AFAICT, there's a low-memory global that both GetCharAttr and
>TxtCharAttr access. This low-memory global contains a pointer to one
>of three kinds of tables. TxtCharAttr is smart enough to know how to
>check which kind of table it is. GetCharAttr, however, assumes that
>it is only one kind of table. When it attempts to access that table
>in a fashion appropriate for the assumed format, it will display the
>error message you give when the table is in one of the other formats.
The problem is that (gosh darn it, yet another post-alpha
optimization bug) the character attribute table pointer has been
converted into a simple byte-indexed array pointer, without the
appropriate header required by the text table routines. The Text Mgr
routines all correctly check for and handle this situation, but the
moldy backwaters of the obsolete GetCharAttr code didn't get updated.
>Or so it seems. I'm no expert on this stuff. I just read source
>code. If I'm wrong, I'm sure Ken Krugler will dive in here and
>correct me (with one of his patented "1. 2. 3. ..." e-mails!).
After seeing NCR's patent on "Data entry devices", maybe I _should_
try to collect royalties on every numbered list.
-- 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/tech/support/forums/