On 7/20/22 12:55, Stephan Mühlstrasser via curl-library wrote:
Am 20.07.2022 um 12:29 schrieb Patrick Monnerat via curl-library:
This is true: libcurl internally only works on ASCII-based character
sets.
However the OS400 platform interface still implements EBCDIC wrappers
to the API that are completely independent of the late
CURL_DOES_CONVERSION code.
This approach is less-error prone for libcurl's code as it
concentrates code conversion efforts to a single place. In addition,
it offers (on the OS400) at runtime the choice among using several
EBCDIC variants and to mix them.
Thanks, I was not aware of this wrapper. It looks like it is quite
OS400-specific,
Yes, it is specific and uses IBM proprietary API for conversions.
In addition, you must have a C compiler that you can put in ASCII mode
(a mode in which source literal strings and characters generate ASCII
data).
OS400 uses CCSIDs (integer coded character set identifiers) to identify
encodings. I don't think they exist or are important in z/OS.
so making this work on z/OS would require probably some effort.
When I ported libcurl to OS400, I did these efforts! I studied the
ability to use CURL_DOES_CONVERSION but this was not satisfactory.
OS400 has a limited C ASCII support (QADRT API libraries) that are used
by libcurl. Unsupported C/system API are provided by the libcurl
implementation. If you don't have such a support library in z/OS, you
will probably have to write some additional internal ASCII wrappers for
C/system API.
See https://github.com/curl/curl/blob/master/packages/OS400/README.OS400
for more details. If you don't know IBM i, you might also need
https://www.ibm.com/docs/en/i/7.1?topic=programming
Patrick
--
Unsubscribe: https://lists.haxx.se/listinfo/curl-library
Etiquette: https://curl.se/mail/etiquette.html