Официальный форум СВД Встраиваемые Системы
18 Апрель, 2024, 21:58:27 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
 
 
 Сайт СВД ВС  Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: ncurses  (Прочитано 1887 раз)
e-jinn
Пользователь

Сообщений: 32

Gravatar


« : 22 Январь, 2014, 10:49:04 »

Добрый день!

Я уже писал об этой проблеме в соседней ветке. Проблема не решена и всплыла снова.
Система - QNX 6.5.
Я пытался собрать в QNX 6.5 ncurses-5.9 из исходников отсюда ftp.gnu.org/pub/gnu/ncurses/. То, что получилось в результате, работает (примеры) совершенно криво - отсутствуют цвета, съедается часть текста, выводится не в то место и т.п.
Параметры сборки самые простые:
Код:
./configure --without-ada
make
Смысл данных действий следующий: в установленной по умолчанию в QNX 6.5 версии ncurses  отсутствует поддержка русских символов (а также в panel, menu, form). Они считаются "непечатными" и на экран не выводятся (точнее, выводятся, когда отсутствует проверка символа на isprint. Например, строки с русскими символами - выводятся, отдельные символы - нет. Создать меню, панель или форму с русскими буквами - нельзя).
Чтобы исправить эту ситуацию в исходниках всего-то нужно в паре мест убрать эту проверку -isprint(). Что я и хочу сделать.  
Но собрать нормально работающую библиотеку из доступных исходников не получается. Естественно я пытаюсь собрать библиотеку без всяких исправлений.

Может кто-нибудь подскажет, как сборка делается правильно?
Или поделится собираемыми под QNX 6.5 исходниками ncurses?
« Последнее редактирование: 22 Январь, 2014, 21:21:37 от e-jinn » Записан
Игорь Рондарев
Сотрудник СВД ВС
Опытный пользователь

Сообщений: 282

Сотрудник СВД ВС


WWW
« Ответ #1 : 22 Январь, 2014, 17:11:31 »

Добрый день!

Пришлите, пожалуйста, фрагмент кода (или его аналог), при выполнении которого у Вас возникают проблемы с выводом русских символов/строк, а также созданием элементов управления.
Записан

e-jinn
Пользователь

Сообщений: 32

Gravatar


« Ответ #2 : 22 Январь, 2014, 20:54:05 »

Добрый день!
Пришлите, пожалуйста, фрагмент кода (или его аналог), при выполнении которого у Вас возникают проблемы с выводом русских символов/строк, а также созданием элементов управления.
Самый простейший пример:
Код:
#include <curses.h>
#include <menu.h>
#include <stdlib.h>

#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
#define CTRLD 4

char *choices[] = {
         "Choice 1",//"Пункт 1",
         "Choice 2",
         "Пункт 3",//"Choice 3"
         "Choice 4",//"Пункт 4",
         "Exit "//Выход",
};

int main()
{
    ITEM **my_items;
    int c;
    MENU *my_menu;
    int n_choices, i;

    initscr();
    cbreak();
    noecho();
    keypad(stdscr, TRUE);

    n_choices = ARRAY_SIZE(choices);
    my_items = (ITEM **)calloc(n_choices + 1, sizeof(ITEM *));

    for(i = 0; i < n_choices; ++i)
        my_items[i] = new_item(choices[i], NULL );
    my_items[n_choices] = (ITEM *)NULL;

    my_menu = new_menu((ITEM **)my_items);
    mvprintw(LINES - 2, 0, "%s", "F1 для выхода из программы");
    post_menu(my_menu);
    refresh();

    while((c = getch()) != KEY_F(1))
    {   switch(c)
   { case KEY_DOWN:
       menu_driver(my_menu, REQ_DOWN_ITEM);
break;
case KEY_UP:
menu_driver(my_menu, REQ_UP_ITEM);
break;
}
}

    for(i = 0; i < n_choices; ++i)
free_item(my_items[i]);
    free_menu(my_menu);
    endwin();
}
Отображаются только те строки меню, которые стоят ДО русских. В этом легко убедиться комментируя/раскомментируя строки на русском.
Аналогично обстоит дело с формами (здесь исходник длиннее, поэтому добавляю его вложением).
 
« Последнее редактирование: 22 Январь, 2014, 20:57:12 от e-jinn » Записан
e-jinn
Пользователь

Сообщений: 32

Gravatar


« Ответ #3 : 28 Январь, 2014, 20:07:24 »

Проблема решена.
ncurses FAQ:
Цитировать
How do I run the test-programs?
You must first install the terminfo data (i.e., "make install.data").
После этого ncurses собирается более-менее нормально (есть отдельные ошибки).
Тему можно закрыть.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP © 2002-2024 СВД Встраиваемые Системы.
При использовании материалов сайта ссылка на forum.kpda.ru обязательна.

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines | © Aiwan. Kolobok smiles | Sitemap
Valid XHTML 1.0! Valid CSS!
Сайт СВД ВС

В последний раз google посещал эту страницу 17 Декабрь, 2022, 03:57:14