[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: NetSniffer



On Fri, 31 May 2002, Ilya Anfimov wrote:

Сорри за тормоза с ответом..

> On Fri, May 31, 2002 at 04:55:27PM +0500, Vlad Harchev wrote:
> > On Fri, 31 May 2002, Ilya Anfimov wrote:
> >  Ну во-первых это не винда - API расширять произвольно не принято.
> 
>  А молча впихивать новые свойства в стандартные видимо уже вошло в привычку.

 А разве в стандарте написано, имена каких registry должны пониматься
iconv'ом?

> 
> > 
> >  А что должен выдавать этот API (что на входе, что на выходе) - какие
> > соображения?
> 
> 
>  Как один из вариантов:
>  На  входе  --  исходное  registry (строка, из списка вроде IANA,
> system/locale,  system/iconv,  Adobe,  X,   только   чуть   более
> официальные  названия.  попавшие  в  этот список регистрируются у
> разработчиков библиотеки), и точное  название  charset  из  этого
> registry,  выходное  registry.  Всего,  вероятно, можно придумать
> несколько десятков таких имён.
> 
> 
>  На выходе --  название  charset  в  выходном  registry,  процент
> соответствия, комментарии.
> 
>  Как ещё один из вариантов -- библиотека перекодировки, на выходе
> кроме   названия,   опционально   --   указатели   на   структуры
> перекодировки. Тогда логично будет добавить ещё API, с получением
> структуры работы с символами исходного charset как таковыми.
>  Впрочем, второе уже не факт, что будет минимальным для  создания
> полного   API   перекодировок   и   работы  с  разнонациональными
> символами.   Возможно,  что  это  надо   выносить   в   отдельные
> библиотеки. Собственно, одна из таких библиотек уже есть.
> 
>  Кроме  того, в такой API нужно будет изначально включить функции
> для  его  расширения   подключёнными   библиотеками   или   самой
> программой.  Через callbacks, я думаю.

 имхо все это слишком общо и в реальной жизни не пригодится практически
никому. Уж если расширять API - то лучше сделать портабельную библиотеку (не
то чтобы linux-specific, а даже не unix-specific) с единственной ф-ией - 

	iconv_ex_open(char* in,char* out) 

которая полазает по своим таблицам схожести и таблицам псевдонимов и вернет
iconv_t от системного iconv. Хотя еще можно впихнуть функциональность для
перечисления всех канонических имен чарсетов (чтобы перечислять их в менюшке
Вид-Кодировка). Ну и можно еще впихнуть информацию о том, какой чарсет
используют для данного языка на данной платформе для текста и для названий
файлов (типа для ru и текста: win => cp251, linux=>koi8-r, dos=> cp866) - это
нужно в редакторах например (сохранить как текст DOS) и при импорте/экспорте
из форматов, в которых текст хранится не в unicode и не в utf. Такие таблицы
(для какого языка в какой системе какая кодировка для текста) мне пришлось
ручками вставлять в код gnumeric'а и abiword'а когда я добавлял к ним i18n
support.

 По-любому, этому не место в glibc, а в какой-то универсальной библиотеке.

 Best regards,
  -Vlad


--
To UNSUBSCRIBE, email to debian-russian-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org



Reply to: