Ada_Ru форум

Обсуждение языка Ада

[ada_ru] Ada2012 Unicode NCURSES под Windows.

Оставить новое сообщение

Сообщения

Sergey Dukov
[ada_ru] Ada2012 Unicode NCURSES под Windows.
2018-03-04 08:53:55
Предлагаю пакет (Binding) Ada2012 Unicode NCURSES под Windows.
Исходники и пояснения в проекте http://www.rtsdd.ru/Ada2012 Unicode NCURSES.aspx.
Сергей Дюков.



[Non-text portions of this message have been removed]
Иван Леваше
[ada_ru] Re: Ada2012 Unicode NCURSES под Windows.
2018-03-05 09:03:47
Здравствуйте, Сергей!

> Предлагаю пакет (Binding) Ada2012 Unicode NCURSES под Windows.
>
> Исходники и пояснения в проекте http://www.rtsdd.ru/Ada2012_Unicode_NCURSES.aspx.

Интересно.

На ум ещё приходят PDCurses, который вроде бы как лучше для Windows (но 
это не точно), а также Linenoise NG и winlibs/wineditline с интерфейсом, 
аналогичным readline. Оригинальный readline работает поверх ncurses, 
насчёт этих не знаю. В идеале они, наверное, должны дружить (в смысле, 
реализации API ncurses и API readline) на всех платформах, если 
подобрать комбинацию.

Или в ncurses уже есть функционал, аналогичный readline?

Если появляется контрольный пакет из кроссплатформенных юникодных 
реализаций ncurses+readline, я на своём сайте «Всё о Паскале» могу 
наконец начинать ссылаться со страниц, посвящённых процедурам модуля 
Crt, на страницы, посвящённые такому заменителю.

С уважением,
Левашев Иван,
Барнаул

-- 
If you want to get to the top, you have to start at the bottom
Sergey Dukov
[ada_ru] Re: Ada2012 Unicode NCURSES под Windows.
2018-03-05 10:59:44
Здравствуйте, Иван!
 Пакет AdaCursesW -- это привязка (binding) к WIDEC-варианту покуроченной библиотеки ncurses-6.0.
Необходимость модификации связана с невозможностью в Windows установить в Locale  кодовую страницу
UTF-8. В проекте http://www.rtsdd.ru/gnat gpl 2017 building up mingw64.aspx
http://www.rtsdd.ru/gnat gpl 2017 building up mingw64.aspx есть пакет AdaCurses, который является
простым переносом пакета Ada95 дистрибутива ncurses-6.0 (создан правильный .gpr файл, а все
остальные исходники остались неизменными). Пакет AdaCursesW -- UNICODE-вариант пакета AdaCurses, а
потому именно ncurses.
 Теперь насчет пакета readline, -- он просто завит от ncurses, и в нём та же проблема с кодовой
страницей UTF-8. Но в readline есть и другая проблема. Для синхронизации обработчиков событий в
readline используется механизм "select" для регулярных файлов, каналов (pipe), входных и выходных
потоков терминала, а в Windows  этот механизм доступен только для сетевых сокетов. Поэтому при
применении пакета readline нужно моделировать этот механизм, а это большая заморока.
 С уважением и наилучшими пожеланиями,
 Сергей Дюков.
 Волжский.
 



[Non-text portions of this message have been removed]
Иван Леваше
[ada_ru] Re: Ada2012 Unicode NCURSES под Windows.
2018-03-05 11:38:45
Здравствуйте, Сергей!

>Пакет AdaCursesW -- UNICODE-вариант пакета AdaCurses, а потому именно 
ncurses.

У PDCurses программный интерфейс совместим, поэтому если не получается с 
одним, можно до некоторой степени заменить другим.

> PDCurses is a public domain curses programming library for DOS,
> OS/2, Windows, X11 and SDL2. While development of the original
> curses library halted in the mid-1990s, the development of ncurses
> and PDCurses continued. PDCurses implements most of the functions
> available in the original X/Open and System V R4 curses.

То есть, сам ncurses — не оригинален в своём API. И AdaCursesW можно 
перебазировать.

То есть, поддержка Windows в PDCurses началась гораздо раньше. Юникод 
там есть. Может быть, там всё не так плохо, как в ncurses.

> Теперь насчет пакета readline, -- он просто завит от ncurses, и в нём
> та же проблема с кодовой страницей UTF-8.

Дело не в конкретном пакете, а в API, которое реализуют и другие 
указанные пакеты по тому же принципу взаимозаменяемости. Я смутно 
припоминаю, что WinEditLine я успешно использовал, но не уверен, была ли 
это Ада.

WinEditLine работает с консолью Windows напрямую.

Меня смущает, не могут ли быть конфликты, если использовать сразу две 
библиотеки без согласования их друг с другом. Когда на позиксе одно 
через другое, то они согласованы. А когда на Windows обе лезут в общую 
консоль… вот смущает этот момент. Может быть, Linenoise NG через 
PDCurses пустить или какой-то аналогичный хитрый вариант подружить одно 
с другим.


С уважением,
Левашев Иван,
Барнаул

-- 
If you want to get to the top, you have to start at the bottom
Sergey Dukov
[ada_ru] Re: Ada2012 Unicode NCURSES под Windows.
2018-03-05 12:28:49
Здравствуйте, Иван!
 И ncurses и readline это posix пакеты скомпилированные под MINGW, и работают почти так же как в
Linux или Cygwin, с этим всё в порядке. Проблема в том, что они используют сишные функции для
преобразования char* в wchar t* и наоборот, а правила преобразования берутся из локали, а потому
под Windows char* -- это всё что угодно, только не UTF-8.
 На сомом деле, библиотеку AdaCursesW перенести на другие платформы гораздо проще, чем приспособить
её под Windows.
 С уважением и наилучшими пожеланиями, Сергей Дюков.
 Волжский.
 



[Non-text portions of this message have been removed]
Новое сообщение:
Страницы: 1

Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти