--- rpl/src/gestion_pile_systeme.c 2013/03/23 17:57:39 1.58 +++ rpl/src/gestion_pile_systeme.c 2019/02/03 14:40:33 1.85 @@ -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.31 + Copyright (C) 1989-2019 Dr. BERTRAND Joël This file is part of RPL/2. @@ -149,6 +149,8 @@ empilement_pile_systeme(struct_processus = (*s_etat_processus).creation_variables_partagees; (*(*s_etat_processus).l_base_pile_systeme).evaluation_expression = d_faux; + (*(*s_etat_processus).l_base_pile_systeme).debug_programme = + (*s_etat_processus).debug_programme; (*s_etat_processus).erreur_systeme = d_es; (*s_etat_processus).creation_variables_statiques = d_faux; @@ -492,8 +494,8 @@ 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') { @@ -513,27 +515,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; + } } } } @@ -617,12 +625,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