Горячий, чтобы установить возможность termcap 'bw' флаг? - PullRequest
1 голос
/ 10 июля 2019

Я изучаю библиотеку termcap.И я пытаюсь сделать редактор строк в терминале.У меня есть курсор, который может двигаться по линии.Все отлично работает с одной строкой.Но если моя строка больше ширины терминала, я не могу вернуть свой курсор со второй строки на первую, используя команду le (переместите курсор влево).Мне нужно установить флаг bw, чтобы сделать это.Функция tgetflag() только возвращает значение.Я думаю, что мне нужно установить этот флаг, используя tcsetsttr(), но не могу найти правильный флаг-макрос.Как установить флаг bw?

struct termios  stored_settings;
struct termios  new_settings;

tcgetattr(0, &stored_settings);
new_settings = stored_settings;
new_settings.c_lflag &= (~ICANON & ~ECHO);
new_settings.c_cc[VTIME] = 0;
new_settings.c_cc[VMIN] = 1;
tcsetattr(0, TCSANOW, &new_settings);

1 Ответ

0 голосов
/ 10 июля 2019

Как я могу установить флаг bw?

auto_left_margin (bw) - это одна из возможностей терминала , т.е. она указывает толькоcub1 перенос из столбца 0 в последний столбец .Вы не можете изменить это поведение терминала, вы можете только запросить его и соответствующим образом адаптировать вашу программу, например, расположив одну строку вверх и заканчивая другими возможностями.

...