Какая разница в ключевом выходе между положением активных данных и положением активного представления, определенным отдельно в ECMA-48 в 4.2.5 и 4.2.6?
Я пытался переместить курсор в другую координату вконсоль с Escape-последовательностями, определенными в ECMA-48.
И я столкнулся с двумя реализациями, которые делают одно и то же, но на самом деле говорят что-то другое в определениях.
В соответствии с определениями:
CUP
CUP вызывает перемещение активной позиции презентации в компоненте презентации ...
HVP
HVP вызывает перемещение активной позиции данных вкомпонент данных ...
При тестировании с кодом C:
CUP:
printf("Hello");
printf("\x1b" "[" "%d" ";" "%d" "H", 5, 5);
printf("World");
HVP:
printf("Hello");
printf("\x1b" "[" "%d" ";" "%d" "f", 5, 5);
printf("World");
Онидают те же результаты.
Итак, в чем разница, которую стандарт пытается сделать, определив эти два термина?
РЕДАКТИРОВАТЬ:
Согласно 6.1.5,
В единомНа устройстве, независимо от того, имеет ли оно только компонент представления или компонент представления и компонент данных, нет никакой разницы между активной позицией данных и активной позицией представления.
И на стр. 16 (6.1.5),в первом параграфе:
Из-за возможных различий между последовательностью символов и траекторией символов, как в некоторых двунаправленных средах, координаты активной позиции данных в компоненте данных и активной позиции представления вКомпонент презентации может отличаться.
Объясните позицию активного представления и позицию активных данных в двунаправленной среде на практическом примере.
И какой следуетЯ использую для перемещения по консоли?
[NB: Не упоминайте использовать ncurses в вашей рекомендации.Но любая рекомендация по внедрению ECMA-48 приветствуется]