--- rpl/src/sequenceur.c 2011/06/21 07:45:28 1.34 +++ rpl/src/sequenceur.c 2012/01/25 16:38:30 1.49 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.1.0.prerelease.1 - Copyright (C) 1989-2011 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.6 + Copyright (C) 1989-2012 Dr. BERTRAND Joël This file is part of RPL/2. @@ -63,11 +63,12 @@ sequenceur(struct_processus *s_etat_proc unsigned char tampon_retour; unsigned char *t_ligne; - unsigned long i; - unsigned long j; unsigned long niveau; unsigned long position_courante; + Keymap ancien_keymap; + Keymap nouveau_keymap; + (*s_etat_processus).retour_routine_evaluation = 'N'; if ((*s_etat_processus).debug == d_vrai) @@ -109,9 +110,6 @@ sequenceur(struct_processus *s_etat_proc -------------------------------------------------------------------------------- */ - i = 0; - j = 0; - do { drapeau_appel_definition = d_faux; @@ -182,8 +180,19 @@ sequenceur(struct_processus *s_etat_proc flockfile(stdin); flockfile(stdout); + ancien_keymap = rl_get_keymap(); + nouveau_keymap = rl_copy_keymap(ancien_keymap); + rl_set_keymap(nouveau_keymap); + + rl_bind_key('\n', readline_analyse_syntaxique); + rl_bind_key('\r', readline_analyse_syntaxique); + rl_done = 0; + ligne = readline("RPL/2> "); + rl_set_keymap(ancien_keymap); + rl_free(nouveau_keymap); + funlockfile(stdin); funlockfile(stdout); @@ -809,8 +818,12 @@ sequenceur(struct_processus *s_etat_proc { if ((*s_etat_processus).l_base_pile == NULL) { - (*s_etat_processus).erreur_execution = - d_ex_manque_argument; + if ((*s_etat_processus).erreur_execution != + d_ex_nom_implicite) + { + (*s_etat_processus).erreur_execution = + d_ex_manque_argument; + } } else if ((*(*(*s_etat_processus).l_base_pile).donnee) .type == NOM) @@ -1394,7 +1407,8 @@ sequenceur(struct_processus *s_etat_proc if ((*s_etat_processus).var_volatile_processus_pere == 0) { - kill((*s_etat_processus).pid_processus_pere, SIGALRM); + envoi_signal_processus((*s_etat_processus).pid_processus_pere, + rpl_sigalrm); } else {