--- rpl/src/gestion_pile_systeme.c 2013/03/20 17:11:44 1.56 +++ rpl/src/gestion_pile_systeme.c 2015/11/26 11:44:32 1.75 @@ -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.24 + Copyright (C) 1989-2015 Dr. BERTRAND Joël This file is part of RPL/2. @@ -492,11 +492,10 @@ trace(struct_processus *s_etat_processus } } - fprintf(flux, " Level = %d\n", - (*l_element_courant).niveau_courant); + fprintf(flux, " Level = %lld\n", + (long long int) (*l_element_courant).niveau_courant); - if (((*l_element_courant).retour_definition == 'Y') || - ((*l_element_courant).origine_routine_evaluation == 'Y')) + if ((*l_element_courant).retour_definition == 'Y') { fprintf(flux, " Return = yes\n"); @@ -514,27 +513,33 @@ trace(struct_processus *s_etat_processus for(j = 0; j < nb_variables; j++) { - if (((*(tableau[j].objet)).type == RPN) || - ((*(tableau[j].objet)).type == ALG)) + if (tableau[j].objet != NULL) { - l_element_expression = (*(tableau[j].objet)).objet; - - while(l_element_expression != NULL) + // Variable ni partagée ni statique + if (((*(tableau[j].objet)).type == RPN) || + ((*(tableau[j].objet)).type == ALG)) { - if (l_element_expression == (*l_element_courant) - .pointeur_objet_retour) + l_element_expression = + (*(tableau[j].objet)).objet; + + while(l_element_expression != NULL) { - candidat = j; - break; - } + if (l_element_expression == + (*l_element_courant) + .pointeur_objet_retour) + { + candidat = j; + break; + } - l_element_expression = - (*l_element_expression).suivant; - } + l_element_expression = + (*l_element_expression).suivant; + } - if (candidat != -1) - { - break; + if (candidat != -1) + { + break; + } } } } @@ -618,12 +623,16 @@ trace(struct_processus *s_etat_processus "unknown definition\n"); } } - else + else if ((*l_element_courant).niveau_courant == 0) { fprintf(flux, "\n"); fprintf(flux, " = RPL/2 " "initialization\n"); } + else + { + fprintf(flux, "\n"); + } } } else @@ -631,7 +640,8 @@ trace(struct_processus *s_etat_processus fprintf(flux, " Return = no\n"); } - if ((*l_element_courant).indice_boucle != NULL) + if (((*l_element_courant).indice_boucle != NULL) && + ((*l_element_courant).type_cloture != 'A')) { tampon = formateur(s_etat_processus, 24, (*l_element_courant).indice_boucle);