Consultor Eletrônico



Kbase P106150: Error 133 compiling code that contains "\U" in OpenEdge 10 on Unix
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   7/7/2005
Status: Unverified

FACT(s) (Environment):

OpenEdge 10.0x
UNIX

SYMPTOM(s):

Error 133 when attempting to compile code

** Unmatched quote found in procedure. (133)

Code contains the statement "\U" or "\u"

Code compiles properly in Progress 9.1x

Code compiles properly on Windows

CHANGE:

Upgraded from Progress 9.1x to OpenEdge 10

CAUSE:

In OpenEdge 10, Progress now allows the embedding of UNICODE characters by using either ~U or ~u (i.e. ~U1234). Since the ~U was not needed in Progress 9.x (i.e. the "U" has no special meaning that would require the use of the tilde) the tilde was ignored at compilation time. In OpenEdge 10, the compile error happens because Progress tries to take the characters after the "~U"and make a UNICODE character out of them and this fails because no valid UNICODE character was present.

On UNIX platforms, the backslash (\) character acts as an escape character in the same way as tilde (~). Therefore when using \U, this is interpreted as the beginning of a UNICODE character in the same way as ~U, resulting in error 133.

FIX:

If \U is required in the code, then the backslash must be preceded by an escape character. For example:

~\u