@ThomasDickey Я должен был потратить время на то, чтобы правильно просмотреть ваш сайт перед публикацией. Просто вау! Спасибо за весь код.

аетNcurses программа вurxvt сдавливает повторяющиеся символы в строках. Например я ожидаю"--------" но я получаю"-".

Я написал короткую программу, которая воспроизводит проблему. Код ниже.

Я проверил, что вывод является правильным при использованииXterm скорее, чемurxvt.

Это первый раз, когда я работаю с ncurses, однако, пример программы так же прост, как они приходят. Поэтому я не думаю, что проблема в том, как я использую ncurses. Это также подтверждается тем фактом, что xterm дает ожидаемые результаты.

Я использую urxvt на Arch Linux. Я также предоставляю соответствующую конфигурацию ниже. У меня установлен vanilla xterm без дополнительной настройки. У обоих был запущен Zsh.

Пример программы (С)
#include <curses.h>

int main(){
  initscr();
  printw("------\n");        // (1) 6 '-' chars          urxvt: "------"   xterm: "------"
  printw("-------\n");       // (2) 7 '-' chars          urxvt: "-"        xterm: "-------"
  printw("--------\n");      // (3) 8 '-' chars          urxvt: "-"        xterm: "--------"
  printw("0--------0\n");    // (4) 8 '-' between '0'    urxvt: "0-0"      xterm: "0--------0"
  printw("xxxxxxxx\n");      // (5) Replacing '-' with 'x' does not make a difference.
  printw("---- ----\n");     // (6) Two '-' sequences separated by ' ' display correctly.
  printw("12345678\n");      // (7) Strings with different characters display correctly.
  for(int i=0; i<8; i++) addch('-');    // (8) 8 '-' chars      urxvt: "-"   xterm: "--------" 
  addch('\n');
  for(char c='0'; c<'8'; c++) addch(c); // (9) Both display correctly
  addch('\n');
  refresh();
  getch();
  endwin();
  return 0;
}
Вывод xterm (правильный)
------
-------
--------
0--------0
xxxxxxxx
---- ----
12345678
--------
01234567
Выходные данные urxvt (неверно)
------
-
-
0-0
x
---- ----
12345678
-
01234567
наблюденияДо 6 повторяющихся символов отображаются правильно.7 и более повторяющихся символов отображаются как один символ.Эта проблема не возникает, если символы не повторяются, поэтому длина самой строки не является проблемой.Расположение повторяющейся подстроки не имеет значения. В (7) сжатая подстрока была зажата'0' символы на каждом конце.Проблема не в конкретном характере. Бывает с'-' также как и'x'.Проблема наблюдалась с использованием какprintw а такжеaddch функции. Соответствующие man-страницы утверждают, что эти функции перемещают курсор, поэтому нет необходимости явно перемещать курсор. Это, очевидно, имеет место, так как в противном случае проблема не будет ограничена повторяющимися символами, а также произойдет с xterm.Конфигурация urxvtrxvt-unicode v9.22$TERM являетсяxterm-256color

Ответы на вопрос(1)

Ваш ответ на вопрос