Invoke the ESQL/C filter
The esql command can automatically call the filter, esqlmf, to process non-ASCII characters.
- The ESQLMF environment variable indicates
whether esql automatically calls the filter.
When you set ESQLMF to
1
, esql automatically calls esqlmf after the preprocessor and before the C compiler. - The CC8BITLEVEL environment variable indicates
the non-ASCII characters in the source file that esqlmf filters.
Set CC8BITLEVEL to indicate the ability of your C compiler to process non-ASCII characters.
CC8BITLEVEL | The esqlmf action |
---|---|
0 | Converts all non-ASCII characters, in literal strings and comments, to octal constants. |
1 | Converts non-ASCII characters in literal strings, but not in comments, to octal constants. |
2 | Converts non-ASCII characters in literal strings to octal constants to ensure that all the bytes in the non-ASCII characters have the eighth bit set. |
3 | Does not invoke esqlmf. |
1
.0
, 1
,
or 2
, the processor performs
the following steps:- Converts the embedded-language statements (source.ec) to C-language source code (source.c) with the preprocessor
- Filters non-ASCII characters in the preprocessed
file (source.c) with the filter, esqlmf (if the ESQLMF environment variable is
1
)Before esqlmf begins filtering, it creates a copy of the C source file (source.c) that has the .c_ file extension (source.c_).
- Compiles the filtered C source file (source.c) with the C compiler to create an object file (source.o)
- Links the object file with the libraries and your own libraries to create an executable program
When you set CC8BITLEVEL to 3
,
the processor
omits step 2 in the preceding
list.
If you do not set CC8BITLEVEL, then esql converts non-ASCII characters in literal strings and comments. You can modify the value of CC8BITLEVEL to reflect the capabilities of your C compiler.