Alexander Shiryaev писал(а):
Реализовал преобразование кодировки имён файлов и каталогов и переменных окружения в HostFiles через iconv:
Код:
MODULE LinIconv ["libc.so.6"]; (* Linux *)
IMPORT Libc := LinLibc;
CONST
NULL* = Libc.NULL;
TYPE
PtrVoid = Libc.PtrVoid;
PtrSTR* = Libc.PtrSTR;
PtrLSTR* = POINTER TO ARRAY [untagged] OF CHAR;
size_t* = Libc.size_t;
iconv_t* = PtrVoid;
PROCEDURE [ccall] iconv_open* (tocode, fromcode: PtrSTR): iconv_t;
PROCEDURE [ccall] iconv_close* (cd: iconv_t): INTEGER;
PROCEDURE [ccall] iconv* (cd: iconv_t; VAR [nil] inbuf: PtrSTR; VAR inbytesleft: size_t; VAR [nil] outbuf: PtrSTR; VAR outbytesleft: size_t): size_t;
PROCEDURE [ccall] iconv_encode* ["iconv"] (cd: iconv_t; VAR [nil] inbuf: PtrLSTR; VAR inbytesleft: size_t; VAR [nil] outbuf: PtrSTR; VAR outbytesleft: size_t): size_t;
PROCEDURE [ccall] iconv_decode* ["iconv"] (cd: iconv_t; VAR [nil] inbuf: PtrSTR; VAR inbytesleft: size_t; VAR [nil] outbuf: PtrLSTR; VAR outbytesleft: size_t): size_t;
END LinIconv.
...
...
Полностью HostFiles
для Linux.
Проверял в Ubuntu и в Fedora Core с кодировкой UTF-8 ("UTF8" тоже работает), в OpenBSD -- с KOI8-R.
Хочу поинтересоваться из каких заголовков были получены определения функций iconv_encode и iconv_decode? Я нигде не смог найти их определение.
Поиск по Гуглю по "iconv_encode" выдаёт лишь ссылки с упоминанием инициативы перевода BlackBox на Линукс.
https://www.google.ru/search?q=%22iconv_encode%22&hl=ru