OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Воскресенье, 15 Декабрь, 2019 15:22

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Module Characters
СообщениеДобавлено: Среда, 26 Март, 2014 13:34 

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1169
Откуда: Tel-Aviv
I'd like to continue topic about Unicode characters in BlackBox, started in "Coming soon: BlackBox Component Builder 1.7 CPC Edition": post p86643 and solution provided by user maliya, post p86899.

Here is translation of annotation in module below:
I.N.Goryachev 29.09.2006
Module support for Unicode by facilities of OS
Код:
(*
   И.Н.Горячев   29.09.2006
   Модуль поддержки юникода средствами ОС
*)
MODULE HostUnicode;

IMPORT
   SYSTEM, Kernel, WinApi;
   
TYPE
   KernelHook = POINTER TO RECORD (Kernel.UnicodeHook) END;

VAR
   khook : KernelHook;

PROCEDURE (h : KernelHook) IsCap (ch : CHAR) : BOOLEAN;
BEGIN
   RETURN WinApi.IsCharUpperW (ch) # 0
END IsCap;

PROCEDURE (h : KernelHook) Cap (ch : CHAR) : CHAR;
BEGIN
   RETURN SYSTEM.VAL(CHAR, WinApi.CharUpperW( SYSTEM.VAL(WinApi.PtrWSTR, ch )));
END Cap;

PROCEDURE (h : KernelHook) Low (ch : CHAR) : CHAR;
BEGIN
   RETURN SYSTEM.VAL(CHAR, WinApi.CharLowerW(SYSTEM.VAL(WinApi.PtrWSTR, ch)));
END Low;

PROCEDURE Install*;
BEGIN
   IF khook = NIL THEN NEW(khook) END;
   Kernel.SetUnicodeHook (khook)
END Install;

BEGIN
   Install
END HostUnicode.


Personally I prefer approach proposed by Goryachev because his solution is complete, platform- and language-independent.
The rest Oberon-specific code could remain in module Characters.

See commit https://bitbucket.org/oberoncore/bb16ce ... 39b6ebb2ce for details


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Module Characters
СообщениеДобавлено: Среда, 26 Март, 2014 15:13 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Роман М. писал(а):
Personally I prefer approach proposed by Goryachev because his solution is complete, platform- and language-independent.

It is a good solution, but it is platform-dependent.

Do you have an idea how to make it work on *nix?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Module Characters
СообщениеДобавлено: Среда, 26 Март, 2014 17:01 

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1169
Откуда: Tel-Aviv
Димыч писал(а):
Роман М. писал(а):
Personally I prefer approach proposed by Goryachev because his solution is complete, platform- and language-independent.

It is a good solution, but it is platform-dependent.

Do you have an idea how to make it work on *nix?
In same way other Host modules are implemented. You just have to implement HostUnicode with libraries like ICU. See Case Mappings


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Module Characters
СообщениеДобавлено: Среда, 26 Март, 2014 17:12 

Зарегистрирован: Суббота, 24 Август, 2013 08:57
Сообщения: 81
Characters is temporary, dirty solution which is obsolete when Goryachev solution is running. So why should we do more work in something which we throw away?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Module Characters
СообщениеДобавлено: Среда, 26 Март, 2014 17:38 

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1169
Откуда: Tel-Aviv
Zinn писал(а):
Characters is temporary, dirty solution which is obsolete when Goryachev solution is running. So why should we do more work in something which we throw away?
Well, I didn't know about that. When you plan to throw Characters away?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Module Characters
СообщениеДобавлено: Среда, 26 Март, 2014 19:57 

Зарегистрирован: Суббота, 24 Август, 2013 08:57
Сообщения: 81
Maybe I use the wrong words. I mean it is subject to change. First we need the solution to use Unicode inside the object file. This kind of change is very difficult. I won’t do it. I wait for someone else does this job. Before we have the right solution it makes no sense to do much more work in the wrong way. I mean this work in the wrong way will be throw away. Character does it aims – allow to translate Cyrillic characters – nothing more. The part Long & Short is temporary.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2019, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB