API ncurses ? y-a-t-il compatibilité avec les différents types de terminaux ?
C'est une sur-couche de ncurses, qui utilise cette dernière pour consulter les bases de données terminfo, mais fait soi-même la recomposition des séquences d'échappement en touches. En prime, ça fait aussi la recomposition de séquences d'octets en Unicode dans tous les encodages supportés par l'iconv du système, ce qui était le but principal de l'opération.
Mais je préfère ne pas trop en parler pour le moment, on m'accuse déjà beaucoup de produire du vaporware :)
DINH Viêt Hoà wrote in message <etPan.41b5d54a.1a2ac879.7442@utopia>:
API ncurses ?
y-a-t-il compatibilité avec les différents types de terminaux ?
C'est une sur-couche de ncurses, qui utilise cette dernière pour consulter
les bases de données terminfo, mais fait soi-même la recomposition des
séquences d'échappement en touches. En prime, ça fait aussi la recomposition
de séquences d'octets en Unicode dans tous les encodages supportés par
l'iconv du système, ce qui était le but principal de l'opération.
Mais je préfère ne pas trop en parler pour le moment, on m'accuse déjà
beaucoup de produire du vaporware :)
API ncurses ? y-a-t-il compatibilité avec les différents types de terminaux ?
C'est une sur-couche de ncurses, qui utilise cette dernière pour consulter les bases de données terminfo, mais fait soi-même la recomposition des séquences d'échappement en touches. En prime, ça fait aussi la recomposition de séquences d'octets en Unicode dans tous les encodages supportés par l'iconv du système, ce qui était le but principal de l'opération.
Mais je préfère ne pas trop en parler pour le moment, on m'accuse déjà beaucoup de produire du vaporware :)
Nicolas George
Stephane Chazelas wrote in message :
Ca doit etre quelquechose comme, on peut passer le keypad en mode normal (<Up> envoie le code qui dit au terminal de faire monter le curseur) soit en mode numeric, soit on laisse l'application decider quoi faire avec.
En mode normal et en mode icanon, on peut bouger le curseur et entrer du texte localement (sans que le terminal envoie quoi que ce soit a l'application) et tout est envoyé d'un coup a l'application sur frappe de entree.
Le mode "application" du keypad ne fait du sens que quand on n'est pas en icanon, je suppose.
J'ai beau retourner cette réponse dans ma tête, je ne vois pas ce qu'elle explique. Ce dont il est question, il me semble, c'est l'envoi de Esc O plutôt que Esc [ comme préfixe des touches fléchées. Or ce changement est coplètement indépendant du mode du terminal : en mode canonique ou pas, les touches fléchées peuvent envoyer l'une ou l'autre séquence.
Bref : pourquoi cet effort d'avoir une séquence d'échappement qui change le codage des touches ?
Stephane Chazelas wrote in message
<slrncrb0c8.4ji.stephane.chazelas@spam.is.invalid>:
Ca doit etre quelquechose comme, on peut passer le keypad en
mode normal (<Up> envoie le code qui dit au terminal de faire
monter le curseur) soit en mode numeric, soit on laisse
l'application decider quoi faire avec.
En mode normal et en mode icanon, on peut bouger le curseur et
entrer du texte localement (sans que le terminal envoie quoi que
ce soit a l'application) et tout est envoyé d'un coup a
l'application sur frappe de entree.
Le mode "application" du keypad ne fait du sens que quand on
n'est pas en icanon, je suppose.
J'ai beau retourner cette réponse dans ma tête, je ne vois pas ce qu'elle
explique. Ce dont il est question, il me semble, c'est l'envoi de Esc O
plutôt que Esc [ comme préfixe des touches fléchées. Or ce changement est
coplètement indépendant du mode du terminal : en mode canonique ou pas, les
touches fléchées peuvent envoyer l'une ou l'autre séquence.
Bref : pourquoi cet effort d'avoir une séquence d'échappement qui change le
codage des touches ?
Ca doit etre quelquechose comme, on peut passer le keypad en mode normal (<Up> envoie le code qui dit au terminal de faire monter le curseur) soit en mode numeric, soit on laisse l'application decider quoi faire avec.
En mode normal et en mode icanon, on peut bouger le curseur et entrer du texte localement (sans que le terminal envoie quoi que ce soit a l'application) et tout est envoyé d'un coup a l'application sur frappe de entree.
Le mode "application" du keypad ne fait du sens que quand on n'est pas en icanon, je suppose.
J'ai beau retourner cette réponse dans ma tête, je ne vois pas ce qu'elle explique. Ce dont il est question, il me semble, c'est l'envoi de Esc O plutôt que Esc [ comme préfixe des touches fléchées. Or ce changement est coplètement indépendant du mode du terminal : en mode canonique ou pas, les touches fléchées peuvent envoyer l'une ou l'autre séquence.
Bref : pourquoi cet effort d'avoir une séquence d'échappement qui change le codage des touches ?
Jean-Marc Bourguet
Nicolas George <nicolas$ writes:
Bref : pourquoi cet effort d'avoir une séquence d'échappement qui change le codage des touches ?
Permettre de passer d'un mode ou la sequence est interpretee par l'OS a un autre ou elle l'est par l'application. Il faut naturellement un OS qui soit prevu pour (ce qui n'est pas le cas d'Unix).
A+
-- Jean-Marc Site de usenet-fr: http://www.usenet-fr.news.eu.org
Nicolas George <nicolas$george@salle-s.org> writes:
Bref : pourquoi cet effort d'avoir une séquence d'échappement qui
change le codage des touches ?
Permettre de passer d'un mode ou la sequence est interpretee par l'OS
a un autre ou elle l'est par l'application. Il faut naturellement un
OS qui soit prevu pour (ce qui n'est pas le cas d'Unix).
A+
--
Jean-Marc
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Bref : pourquoi cet effort d'avoir une séquence d'échappement qui change le codage des touches ?
Permettre de passer d'un mode ou la sequence est interpretee par l'OS a un autre ou elle l'est par l'application. Il faut naturellement un OS qui soit prevu pour (ce qui n'est pas le cas d'Unix).
A+
-- Jean-Marc Site de usenet-fr: http://www.usenet-fr.news.eu.org
Stephane Chazelas
2004-12-8, 13:17(+00), Nicolas George: [...]
Bref : pourquoi cet effort d'avoir une séquence d'échappement qui change le codage des touches ?
Mon explication n'etait pas tres satisfaisante, d'autant qu'en mode icanon, un backspace par exemple effacera les sequences de positionnement de curseur et pas seulement le texte entré.
La raison doit etre plutot historique.
application mode: sequence envoyees a l'application qui n'ont pas de signification pour le terminal
numeric mode: 1 2 3 4...
normal mode: (avec echo et -echoctl) fait bouger le curseur (mais sont envoyee a l'application quand meme, meme si ca ne doit pas etre le but). En gros la touche <Up> envoie cuu1, le code qui fait monter le curseur d'1 ligne, et comme ca peut etre ^Y, c'est pas bon, parce que, si on veut l'interpreter comme la touche <Up>, on peut le confondre avec <Ctrl-Y>
Les applications passent en application mode, parce qu'elles veulent savoir quelle touche a ete frappee. Elles peuvent rester en mode normal pour que le terminal fasse le boulot de bouger le curseur a leur place sur frappe de ces touches (pas tres utile cela dit).
Par exemple, pour vt220, cud1 est ^J (n), je ne sais pas si la frappe de <Down> envoie ^J en normal mode, mais si c'est le cas, je comprends la necessité d'un application mode pour que les applications fassent la difference entre <Enter> et <Down>.
Maintenant, ce n'est peut-etre pas la bonne explication non plus.
-- Stephane
2004-12-8, 13:17(+00), Nicolas George:
[...]
Bref : pourquoi cet effort d'avoir une séquence d'échappement qui change le
codage des touches ?
Mon explication n'etait pas tres satisfaisante, d'autant qu'en
mode icanon, un backspace par exemple effacera les sequences de
positionnement de curseur et pas seulement le texte entré.
La raison doit etre plutot historique.
application mode:
sequence envoyees a l'application qui n'ont pas de
signification pour le terminal
numeric mode:
1 2 3 4...
normal mode:
(avec echo et -echoctl) fait bouger le curseur (mais sont
envoyee a l'application quand meme, meme si ca ne doit pas
etre le but). En gros la touche <Up> envoie cuu1, le code qui
fait monter le curseur d'1 ligne, et comme ca peut etre ^Y,
c'est pas bon, parce que, si on veut l'interpreter comme la
touche <Up>, on peut le confondre avec <Ctrl-Y>
Les applications passent en application mode, parce qu'elles
veulent savoir quelle touche a ete frappee. Elles peuvent rester
en mode normal pour que le terminal fasse le boulot de bouger le
curseur a leur place sur frappe de ces touches (pas tres utile
cela dit).
Par exemple, pour vt220, cud1 est ^J (n), je ne sais pas si la
frappe de <Down> envoie ^J en normal mode, mais si c'est le cas,
je comprends la necessité d'un application mode pour que les
applications fassent la difference entre <Enter> et <Down>.
Maintenant, ce n'est peut-etre pas la bonne explication non
plus.
Bref : pourquoi cet effort d'avoir une séquence d'échappement qui change le codage des touches ?
Mon explication n'etait pas tres satisfaisante, d'autant qu'en mode icanon, un backspace par exemple effacera les sequences de positionnement de curseur et pas seulement le texte entré.
La raison doit etre plutot historique.
application mode: sequence envoyees a l'application qui n'ont pas de signification pour le terminal
numeric mode: 1 2 3 4...
normal mode: (avec echo et -echoctl) fait bouger le curseur (mais sont envoyee a l'application quand meme, meme si ca ne doit pas etre le but). En gros la touche <Up> envoie cuu1, le code qui fait monter le curseur d'1 ligne, et comme ca peut etre ^Y, c'est pas bon, parce que, si on veut l'interpreter comme la touche <Up>, on peut le confondre avec <Ctrl-Y>
Les applications passent en application mode, parce qu'elles veulent savoir quelle touche a ete frappee. Elles peuvent rester en mode normal pour que le terminal fasse le boulot de bouger le curseur a leur place sur frappe de ces touches (pas tres utile cela dit).
Par exemple, pour vt220, cud1 est ^J (n), je ne sais pas si la frappe de <Down> envoie ^J en normal mode, mais si c'est le cas, je comprends la necessité d'un application mode pour que les applications fassent la difference entre <Enter> et <Down>.
Maintenant, ce n'est peut-etre pas la bonne explication non plus.
-- Stephane
Laurent Wacrenier
DINH Viêt Hoà écrit:
combinaison TERM séquence xterm X11 xterm ESC [ F
Cela dépend du paramétrage de xterm. Selon que "vt220 keyboard" est mis ou pas (dans le menu de gauche), il envoie
ESC [ F ou ESC [ 4 ~
Enfin, cette option dépend d'un tas de ressouces (sunKeyboard, sunFunctionKeys, scoFunctionKeys, hpFunctionKeys) Le comportement peut être différent si elles sont activées ou non.
C'est indépendant de $TERM.
DINH Viêt Hoà <dinh.viet.hoa@free.fr> écrit:
combinaison TERM séquence
xterm X11 xterm ESC [ F
Cela dépend du paramétrage de xterm. Selon que "vt220 keyboard" est
mis ou pas (dans le menu de gauche), il envoie
ESC [ F ou ESC [ 4 ~
Enfin, cette option dépend d'un tas de ressouces
(sunKeyboard, sunFunctionKeys, scoFunctionKeys, hpFunctionKeys)
Le comportement peut être différent si elles sont activées ou non.
Cela dépend du paramétrage de xterm. Selon que "vt220 keyboard" est mis ou pas (dans le menu de gauche), il envoie
ESC [ F ou ESC [ 4 ~
Enfin, cette option dépend d'un tas de ressouces (sunKeyboard, sunFunctionKeys, scoFunctionKeys, hpFunctionKeys) Le comportement peut être différent si elles sont activées ou non.