version 1.44, 2011/09/14 17:56:00
|
version 1.55, 2012/09/15 12:57:09
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.1.3 |
RPL/2 (R) version 4.1.10 |
Copyright (C) 1989-2011 Dr. BERTRAND Joël |
Copyright (C) 1989-2012 Dr. BERTRAND Joël |
|
|
This file is part of RPL/2. |
This file is part of RPL/2. |
|
|
Line 66 sequenceur(struct_processus *s_etat_proc
|
Line 66 sequenceur(struct_processus *s_etat_proc
|
unsigned long niveau; |
unsigned long niveau; |
unsigned long position_courante; |
unsigned long position_courante; |
|
|
|
Keymap ancien_keymap; |
|
Keymap nouveau_keymap; |
|
|
(*s_etat_processus).retour_routine_evaluation = 'N'; |
(*s_etat_processus).retour_routine_evaluation = 'N'; |
|
|
if ((*s_etat_processus).debug == d_vrai) |
if ((*s_etat_processus).debug == d_vrai) |
Line 177 sequenceur(struct_processus *s_etat_proc
|
Line 180 sequenceur(struct_processus *s_etat_proc
|
flockfile(stdin); |
flockfile(stdin); |
flockfile(stdout); |
flockfile(stdout); |
|
|
|
ancien_keymap = rl_get_keymap(); |
|
nouveau_keymap = rl_copy_keymap(ancien_keymap); |
|
rl_set_keymap(nouveau_keymap); |
|
|
|
rl_bind_key(NEWLINE, readline_analyse_syntaxique); |
|
rl_bind_key(RETURN, readline_analyse_syntaxique); |
|
rl_bind_key(CTRL('g'), readline_effacement); |
|
rl_done = 0; |
|
|
ligne = readline("RPL/2> "); |
ligne = readline("RPL/2> "); |
|
|
|
rl_set_keymap(ancien_keymap); |
|
rl_free(nouveau_keymap); |
|
|
funlockfile(stdin); |
funlockfile(stdin); |
funlockfile(stdout); |
funlockfile(stdout); |
|
|
Line 1216 sequenceur(struct_processus *s_etat_proc
|
Line 1231 sequenceur(struct_processus *s_etat_proc
|
(strcmp(instruction_majuscule, "FOR") == 0) || |
(strcmp(instruction_majuscule, "FOR") == 0) || |
(strcmp(instruction_majuscule, "START") == 0) || |
(strcmp(instruction_majuscule, "START") == 0) || |
(strcmp(instruction_majuscule, "SELECT") == 0) |
(strcmp(instruction_majuscule, "SELECT") == 0) |
|
|| |
|
(strcmp(instruction_majuscule, "CRITICAL") == 0) |
|| (strcmp(instruction_majuscule, "CASE") == 0) |
|| (strcmp(instruction_majuscule, "CASE") == 0) |
|| (strcmp(instruction_majuscule, "<<") == 0)) |
|| (strcmp(instruction_majuscule, "<<") == 0)) |
{ |
{ |
Line 1257 sequenceur(struct_processus *s_etat_proc
|
Line 1274 sequenceur(struct_processus *s_etat_proc
|
} |
} |
else |
else |
{ |
{ |
|
// Traitement spécifique pour la fin |
|
// d'une section critique |
|
|
|
if ((*s_etat_processus).l_base_pile_systeme |
|
== NULL) |
|
{ |
|
(*s_etat_processus).erreur_systeme = |
|
d_es_processus; |
|
return(d_erreur); |
|
} |
|
|
|
if ((*(*s_etat_processus).l_base_pile_systeme) |
|
.type_cloture == 'Q') |
|
{ |
|
if (pthread_mutex_unlock( |
|
&mutex_sections_critiques) != 0) |
|
{ |
|
(*s_etat_processus).erreur_systeme = |
|
d_es_processus; |
|
return(d_erreur); |
|
} |
|
|
|
(*s_etat_processus).sections_critiques--; |
|
} |
|
|
depilement_pile_systeme(s_etat_processus); |
depilement_pile_systeme(s_etat_processus); |
|
|
if ((*s_etat_processus).erreur_systeme != d_es) |
if ((*s_etat_processus).erreur_systeme != d_es) |
Line 1299 sequenceur(struct_processus *s_etat_proc
|
Line 1341 sequenceur(struct_processus *s_etat_proc
|
(strcmp(instruction_majuscule, "FOR") == 0) || |
(strcmp(instruction_majuscule, "FOR") == 0) || |
(strcmp(instruction_majuscule, "START") == 0) || |
(strcmp(instruction_majuscule, "START") == 0) || |
(strcmp(instruction_majuscule, "SELECT") == 0) |
(strcmp(instruction_majuscule, "SELECT") == 0) |
|
|| (strcmp(instruction_majuscule, "CRITICAL") == 0) |
|| (strcmp(instruction_majuscule, "CASE") == 0) |
|| (strcmp(instruction_majuscule, "CASE") == 0) |
|| (strcmp(instruction_majuscule, "<<") == 0)) |
|| (strcmp(instruction_majuscule, "<<") == 0)) |
{ |
{ |