FLAM Issue Tracker - CLE/P
View Issue Details
0000945CLE/P2. CLPpublic2018-09-17 18:222018-09-18 18:36
Falk Reichbott 
Falk Reichbott 
normalfeaturehave not tried
resolvedfixed 
GeneralGeneralGeneral
1.2 
1.31.3 
0000945: Support escape sequences for dia critical characters in EBCDIC in CLP strings
If the CLP string not in local character set encoded, then error can occur. To be indepentant of code pages an escaping of dia-critical character in EBCDIC must be supported.
No tags attached.
related to 0000877assigned Falk Reichbott Support CCSID and endianess for CLP structure 
related to 0000876resolved Falk Reichbott Support CCSID for command and property strings 
Issue History
2018-09-17 18:22Falk ReichbottNew Issue
2018-09-17 18:22Falk ReichbottStatusnew => assigned
2018-09-17 18:22Falk ReichbottAssigned To => Falk Reichbott
2018-09-17 18:22Falk ReichbottRelationship addedrelated to 0000877
2018-09-17 18:23Falk ReichbottTarget Version1.2 => 1.3
2018-09-17 18:23Falk ReichbottRelationship addedrelated to 0000876
2018-09-18 18:36Falk ReichbottNote Added: 0001193
2018-09-18 18:36Falk ReichbottStatusassigned => resolved
2018-09-18 18:36Falk ReichbottFixed in Version => 1.3
2018-09-18 18:36Falk ReichbottResolutionopen => fixed

Notes
(0001193)
Falk Reichbott   
2018-09-18 18:36   
To be independent of the environment escaping of the CLP strings is
possible for the critical punctuation characters on EBCDIC systems.
See list below:

------------------------------------------------------------------------
   ! = &EXC; - Exclamation mark
   $ = &DLR; - Dollar sign
   # = &HSH; - Hashtag (number sign)
   @ = &ATS; - At sign
   [ = &SBO; - Square bracket open
   \\ = &BSL; - Backslash
   ] = &SBC; - Square bracket close
   ^ = &CRT; - Caret (circumflex)
   ` = &GRV; - Grave accent
   { = &CBO; - Curly bracket open
   | = &VBR; - Vertical bar
   } = &CBC; - Curly bracket close
   ~ = &TLD; - Tilde
------------------------------------------------------------------------

A escape sequence starts with the ampersand (&) followed be 3 character
and is terminated with semicolon (;). If such a sequence in the string
required then the ampersand must be typed twice (&&). To mark a part or
the of whole string in a certain CCSID the syntax below can be used:

------------------------------------------------------------------------
   &nnnnnn<.....>
------------------------------------------------------------------------

Such a replacement sequence starts also with an ampersand (&) followed
by 1 to 6 digits (nnnnnn) and a open angle brace (<). Till to the
corresponding close angle brace (>) the whole string is converted form
the provided CCSID (nnnnnn) to the local character set used to interpret
the command. If the CCSID not supported (unknown) 1047 is assumed. To
determine the corresponding close angel brace (>) the opens and closes
are counted and if the start level achieved the corresponding close is
used. To exclude '>' or '<' from counting it must be typed twice. A
CCSID based conversion can only be defined on one level. A recursive/
hierarchical handling is not supported.

The partial CCSID conversion are mainly useful for application
programming interfaces. At compile time the CCSID for literals must be
defined. This CCSID could be differ from the system CCSID (local
character set) of variable parameter. In such a case a application can
mark the literal part in the CCSID used for literals at compile time,
and the variable part could be conform to the CCSID defined over the
LANG variable. See the C example below:

------------------------------------------------------------------------
   snprintf(acCmd,sizeof(acCmd),"&1047<get.file='>%s&1047<'>",pcFilename);
------------------------------------------------------------------------

C-Code are normally in 1047 and if no literal conversion defined then
the literals also in 1047. The file name is a parameter in local
character set. In Cobol the default code page for literals is 1140.