version 1.103, 2020/04/06 14:24:00
|
version 1.110, 2025/04/15 10:17:54
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.1.32 |
RPL/2 (R) version 4.1.36 |
Copyright (C) 1989-2020 Dr. BERTRAND Joël |
Copyright (C) 1989-2025 Dr. BERTRAND Joël |
|
|
This file is part of RPL/2. |
This file is part of RPL/2. |
|
|
Line 1265 instruction_open(struct_processus *s_eta
|
Line 1265 instruction_open(struct_processus *s_eta
|
printf(" IMAXBEL, OPOST, ONLCR, OCRNL, ONOCR, ONLRET,\n"); |
printf(" IMAXBEL, OPOST, ONLCR, OCRNL, ONOCR, ONLRET,\n"); |
printf(" OFILL, HUPCL, CLOCAL, CRTSCTS, ISIG, ICANON,\n"); |
printf(" OFILL, HUPCL, CLOCAL, CRTSCTS, ISIG, ICANON,\n"); |
printf(" ECHO, ECHOE, ECHOK, ECHONL, NOFLSH, TOSTOP,\n"); |
printf(" ECHO, ECHOE, ECHOK, ECHONL, NOFLSH, TOSTOP,\n"); |
printf(" IEXTEN\n"); |
printf(" IEXTEN, RAW\n"); |
|
|
printf(" Address : { \"ADDRESS\" [ 127 0 0 1 ] }\n"); |
printf(" Address : { \"ADDRESS\" [ 127 0 0 1 ] }\n"); |
printf(" { \"HOST\" \"hostname\" }\n"); |
printf(" { \"HOST\" \"hostname\" }\n"); |
Line 4219 instruction_open(struct_processus *s_eta
|
Line 4219 instruction_open(struct_processus *s_eta
|
"CRTSCTS", |
"CRTSCTS", |
#endif |
#endif |
"ISIG", "ICANON", "ECHO", "ECHOE", "ECHOK", |
"ISIG", "ICANON", "ECHO", "ECHOE", "ECHOK", |
"ECHONL", "NOFLSH", "TOSTOP", "IEXTEN", NULL }; |
"ECHONL", "NOFLSH", "TOSTOP", "IEXTEN", |
|
|
|
"RAW", |
|
|
|
NULL }; |
tcflag_t fonctions_constantes[] = |
tcflag_t fonctions_constantes[] = |
{ /* c_iflag */ |
{ /* c_iflag */ |
1, IGNBRK, 1, BRKINT, 1, IGNPAR, 1, PARMRK, |
1, IGNBRK, 1, BRKINT, 1, IGNPAR, 1, PARMRK, |
Line 4240 instruction_open(struct_processus *s_eta
|
Line 4244 instruction_open(struct_processus *s_eta
|
#ifdef CRTSCTS |
#ifdef CRTSCTS |
3, CRTSCTS, |
3, CRTSCTS, |
#endif |
#endif |
/* c_lfkag */ |
/* c_lflag */ |
4, ISIG, 4, ICANON, 4, ECHO, 4, ECHOE, 4, ECHOK, |
4, ISIG, 4, ICANON, 4, ECHO, 4, ECHOE, 4, ECHOK, |
4, ECHONL, 4, NOFLSH, 4, TOSTOP, 4, IEXTEN }; |
4, ECHONL, 4, NOFLSH, 4, TOSTOP, 4, IEXTEN, |
|
|
|
/* RAW */ |
|
5, 0 }; |
unsigned int fonction_courante; |
unsigned int fonction_courante; |
|
|
// On vient de trouver quelque chose à interpréter. |
// On vient de trouver quelque chose à interpréter. |
Line 4292 instruction_open(struct_processus *s_eta
|
Line 4299 instruction_open(struct_processus *s_eta
|
[(fonction_courante * 2) + 1]; |
[(fonction_courante * 2) + 1]; |
break; |
break; |
} |
} |
|
|
|
case 5: |
|
{ |
|
// RAW ne peut être négatif |
|
break; |
|
} |
} |
} |
} |
} |
else |
else |
Line 4326 instruction_open(struct_processus *s_eta
|
Line 4339 instruction_open(struct_processus *s_eta
|
[(fonction_courante * 2) + 1]; |
[(fonction_courante * 2) + 1]; |
break; |
break; |
} |
} |
|
|
|
case 5: |
|
{ |
|
// no ignbrk |
|
tc.c_iflag &= ~(tcflag_t) IGNBRK; |
|
// no brkint |
|
tc.c_iflag &= ~(tcflag_t) BRKINT; |
|
// no ignpar |
|
tc.c_iflag &= ~(tcflag_t) IGNPAR; |
|
// no parmrk |
|
tc.c_iflag &= ~(tcflag_t) PARMRK; |
|
// no inpck |
|
tc.c_iflag &= ~(tcflag_t) INPCK; |
|
// no istrip |
|
tc.c_iflag &= ~(tcflag_t) ISTRIP; |
|
// no inlcr |
|
tc.c_iflag &= ~(tcflag_t) INLCR; |
|
// no icrnl |
|
tc.c_iflag &= ~(tcflag_t) ICRNL; |
|
// no ixon |
|
tc.c_iflag &= ~(tcflag_t) IXON; |
|
// no ixoff |
|
tc.c_iflag &= ~(tcflag_t) IXOFF; |
|
#ifdef IXANY |
|
// no ixany |
|
tc.c_iflag &= ~(tcflag_t) IXANY; |
|
#endif |
|
// no opost |
|
tc.c_oflag &= ~(tcflag_t) OPOST; |
|
// no isig |
|
tc.c_lflag &= ~(tcflag_t) ISIG; |
|
// no icanon |
|
tc.c_lflag &= ~(tcflag_t) ICANON; |
|
// no echo |
|
tc.c_lflag &= ~(tcflag_t) ECHO; |
|
// no echoe |
|
tc.c_lflag &= ~(tcflag_t) ECHOE; |
|
// no echok |
|
tc.c_lflag &= ~(tcflag_t) ECHOK; |
|
} |
} |
} |
} |
} |
|
|
break; |
// On sort si on a trouvé un paramètre |
|
// correct et donc différent de "NO RAW". |
|
|
|
if (!((negation == d_vrai) && |
|
(fonctions_constantes[fonction_courante * 2] |
|
== 5))) |
|
{ |
|
break; |
|
} |
} |
} |
} |
} |
|
|
if (fonctions[fonction_courante] == NULL) |
if (fonctions[fonction_courante] == NULL) |
{ |
{ |
|
// Paramètre inconnu |
free(parametre_courant_majuscule); |
free(parametre_courant_majuscule); |
liberation(s_etat_processus, s_objet_argument); |
liberation(s_etat_processus, s_objet_argument); |
liberation(s_etat_processus, s_objet_resultat); |
liberation(s_etat_processus, s_objet_resultat); |