为什么在x之前的y是ncurses函数和参数?

时间:2016-05-14 02:55:02

标签: naming ncurses curses

我注意到,对于大多数ncurses函数,在函数名和它们的参数中,y都出现在x之前(getmaxyx(),getparyx(),getyx()等),但几乎所有地方都相反。其他。一般都是编程语言和数学。

为什么会这样?

1 个答案:

答案 0 :(得分:0)

匹配用于移动光标的terminal description capability的顺序:

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

对于支持光标地址的终端,原则上你可以有row,col或col,row以及其他变体,例如使用1-based set of coordinates

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

ANSI 终端使用row,col排序,如许多终端中使用的fragment所示:

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

也就是说,cup是转义字符,后跟 [以及行和列值( p1 p2 )由; 分隔,并由 H 终止。

为什么为标准选择特定顺序是模糊的(大约40年前),但它肯定会对使用这些转义序列编写的库产生影响。

进一步阅读: