Join The Works program to have access to the most current content, and to be able to ask questions and get answers from Revelation staff and the Revelation community

At 04 FEB 2009 11:21:50PM Matthew Crozier wrote:

I'd like stop a Set_Property() converting a \F9\ character to its UTF8 equivalent - like it does for \FA\ (@STM).

Is there anywhere to set the minimum system delimiter that Presentation Server uses for a UTF8 application (OI 8.0.7)?

If not, then presumably I could use the SetMinimumDelimiter() function on startup? However, I get a "Function SetMinimumDelimiter does not exist in dynamic link library UTF8." when I try this. My UTF8.dll is version 8.0.6 according to the properties.

Any ideas?

Cheers, M@

[img]http://www.vernonsystems.com/images/logo_main_ani.gif[/img]


At 05 FEB 2009 04:57PM cpates@sprezzatura.com wrote:

Hi M@,

GetMinimumDelimiter() and SetMinimumDelimiter() appear to have been removed from UTF8.DLL sometime before OI7.2. No idea why, but in the early days the API to UTF8.DLL changed frequently and without attention to backwards compatibility, possiblly because it was still considered to be more of an an internal API

Anyhoo, they were replaced by the functions GetNoOfDelimiters() and SetNoOfDelimiters() which modify an internal variable that contains the number of characters counting back from Char 256 which should be treated as system delimiters.

By default it's set to 6 (Some time ago I changed it to 6 from 0 to make sure UTF8 worked as advertised out of the box)

  

   NoOfDelimiters   Chars treated as System Delimiters
   ==============   ==================================
          0           none
          1           0xFF
          2           0xFF, 0xFE
          3           0xFF, 0xFE, 0xFD
          4           0xFF, 0xFE, 0xFD, 0xFC
          5           0xFF, 0xFE, 0xFD, 0xFC, 0xFB
          6           0xFF, 0xFE, 0xFD, 0xFC, 0xFB, 0xFA

Be aware that the NoOfDelimiters maxs out at 8. If you try and set it to more than this it will be treated as 8, so you might just be in luck with your requirement.

The two functions are exported from UTF8.DLL which and are not prototyped in OI as far as I can tell so here's the prototypes for you:

   INT  STDCALL GetNoOfDelimiters( VOID )
   VOID STDCALL SetNoOfDelimiters( INT )

You can probably guess how how to call them :)

   delimCount=8
   call SetNoOfDelimiters( delimCount )
   delimCount=GetNoOfDelimiters()

cpates@sprezzatura.com

Battlestar Sprezzatura - BSG 77

Colonial leaders in all things RevSoft


At 08 FEB 2009 07:14PM Matthew Crozier wrote:

Great stuff!

Interesting - the only reason I knew about G/SetMinimumDelimiter() was because they're documented in the online help!

This should get me going - Thanks very much Carl :)

Cheers, M@

View this thread on the Works forum...

  • third_party_content/community/commentary/forums_works/fdf64cd469da520d852575540017f8c9.txt
  • Last modified: 2024/01/04 20:57
  • by 127.0.0.1