Manfred Marten - 2009-01-29

I'm using 'GT.M V5.2-001 Linux x86' on Fedora Core 4 and doing, for example,

GTM>S XSTR="Dätwiler" W XSTR?1"Dä".E

gives this error:
%GTM-E-PATLIT, Illegal character or unbalanced quotes for pattern literal
        S XSTR="Dätwiler" W XSTR?1"Dä".E

the problem is the "ä" (a umlaut) in the pattern '?1"Dä".E'. This works in MSM V4.4.1 (RC-1) (matches, but '?1U1L.E' doesn't (as a side note), which works in GT.M V5.2-001, including all other umlaut too. And in Caché V5.x).

so, what can I do to make '?1"Dä".E' etc working? UTF-8 is not really an option, because all characters (global data coming from / to an MSM-DB) are already stored well in the GT.M-DB using default "M-mode".

[I have pinned down the problem in the GT.M source of V5.3-003 to:
   if (!gtm_utf8_mode)
      if (!IS_ASCII(curchar))
and /sr_port/mdef.h:
   #define ASCII_MAX  (unsigned char)0x7F
   #define IS_ASCII(X) ((uint4)(X) <= ASCII_MAX)
and asking me, if the solution could be as easy as implementing "ASCII_MAX_FOR_PATTERN" / "IS_ASCII_FOR_PATTERN()"?!?]

kind regards
M. Marten