2016-05-14 1 views
1

Я заметил, что с большинством функций ncurses, как в именах функций, так и в их аргументах, y предшествует x (getmaxyx(), getparyx(), getyx() и т. Д.), Но противоположное верно почти везде. И в языках программирования, и в математике в целом.Почему y перед x в ncurses функции и аргументы?

Почему это?

ответ

0

Это соответствует порядку, используемым для terminal description capability для перемещения курсора:

cursor_address   cup cm move to row #1 col- 
             umns #2 

Для терминалов, которые поддерживают курсор-адрес, то в принципе может иметь строку, столбец или COL, строки, а также другие варианты, такие как с помощью 1-based set of coordinates:

%i add 1 to first two parameters (for ANSI terminals) 

ANSI терминала использует строку, столбец упорядочение, как показано в этом fragment используется во многих терминалах:

ansi+cup, 
     cup=\E[%i%p1%d;%p2%dH, home=\E[H, 

То есть, cup является экранирующий символ, а затем [ и значения строк и столбцов (p1 и p2), разделенных ; и заканчивается H.

Почему именно этот заказ был выбран для стандарта, неясно (около 40 лет назад), но это, безусловно, повлияло на библиотеки, написанные для использования этих управляющих последовательностей.

Дальнейшее чтение: