--- rpl/src/sequenceur.c 2013/03/21 11:30:31 1.69 +++ rpl/src/sequenceur.c 2014/04/25 07:37:35 1.80 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.1.13 - Copyright (C) 1989-2013 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.18 + Copyright (C) 1989-2014 Dr. BERTRAND Joël This file is part of RPL/2. @@ -64,7 +64,6 @@ sequenceur(struct_processus *s_etat_proc unsigned char *message; unsigned char *registre; unsigned char *tampon; - unsigned char tampon_retour; unsigned char *t_ligne; Keymap ancien_keymap; @@ -80,12 +79,12 @@ sequenceur(struct_processus *s_etat_proc { if ((*s_etat_processus).langue == 'F') { - printf("[%d] Exécution récursive de niveau %lu\n", + printf("[%d] Exécution récursive de niveau %lld\n", (int) getpid(), (*s_etat_processus).niveau_recursivite); } else { - printf("[%d] %lu level recursive execution\n", + printf("[%d] %lld level recursive execution\n", (int) getpid(), (*s_etat_processus).niveau_recursivite); } } @@ -93,7 +92,7 @@ sequenceur(struct_processus *s_etat_proc { if ((*s_etat_processus).langue == 'F') { - printf("[%d] Exécution\n", (int) getpid()); + printf("[%d] Exécution\n", (int) getpid()); } else { @@ -334,8 +333,15 @@ sequenceur(struct_processus *s_etat_proc } else { - tampon_retour = (*(*s_etat_processus) - .l_base_pile_systeme).retour_definition; + position_courante = + (*s_etat_processus).position_courante; + empilement_pile_systeme(s_etat_processus); + + if ((*s_etat_processus).erreur_systeme != d_es) + { + return(d_erreur); + } + (*(*s_etat_processus).l_base_pile_systeme) .retour_definition = 'Y'; @@ -349,24 +355,25 @@ sequenceur(struct_processus *s_etat_proc if ((*s_etat_processus).langue == 'F') { - printf("+++Erreur : Défaut d'argument\n"); + printf("+++Erreur : Défaut d'argument\n"); } else { printf("+++Error : Too few arguments\n"); } - (*(*s_etat_processus).l_base_pile_systeme) - .retour_definition = tampon_retour; + depilement_pile_systeme(s_etat_processus); + + if ((*s_etat_processus).erreur_systeme != d_es) + { + return(d_erreur); + } fflush(stdout); } else if (evaluation(s_etat_processus, s_objet, 'I') == d_erreur) { - (*(*s_etat_processus).l_base_pile_systeme) - .retour_definition = tampon_retour; - if ((*s_etat_processus).erreur_systeme != d_es) { if (test_cfsf(s_etat_processus, 51) == d_faux) @@ -452,8 +459,8 @@ sequenceur(struct_processus *s_etat_proc liberation(s_etat_processus, s_objet); } - (*(*s_etat_processus).l_base_pile_systeme) - .retour_definition = tampon_retour; + (*s_etat_processus).position_courante = + position_courante; } } else if ((*s_etat_processus).invalidation_message_erreur @@ -593,7 +600,7 @@ sequenceur(struct_processus *s_etat_proc else { printf("[%d] Pushing %s as %d type shared " - "variable \n", (int) getpid(), + "variable\n", (int) getpid(), (*s_etat_processus) .instruction_courante, (*(*(*s_etat_processus) @@ -993,7 +1000,7 @@ sequenceur(struct_processus *s_etat_proc { if (strncmp(getenv("LANG"), "fr", 2) == 0) { - printf("[%d] Arrêt\n", (int) getpid()); + printf("[%d] Arrêt\n", (int) getpid()); } else {