Diff for /rpl/src/gestion_pile.c between versions 1.12 and 1.39

version 1.12, 2010/06/24 10:10:41 version 1.39, 2012/04/13 14:12:49
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.0.17    RPL/2 (R) version 4.1.8
   Copyright (C) 1989-2010 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 20 Line 20
 */  */
   
   
 #include "rpl.conv.h"  #include "rpl-conv.h"
   
   
 /*  /*
Line 258  affichage_pile(struct_processus *s_etat_ Line 258  affichage_pile(struct_processus *s_etat_
     registre = (*s_etat_processus).autorisation_conversion_chaine;      registre = (*s_etat_processus).autorisation_conversion_chaine;
     (*s_etat_processus).autorisation_conversion_chaine = 'N';      (*s_etat_processus).autorisation_conversion_chaine = 'N';
   
       routine_recursive = 1;
     ecriture_pile(s_etat_processus, stdout, l_element_courant, niveau_courant);      ecriture_pile(s_etat_processus, stdout, l_element_courant, niveau_courant);
       routine_recursive = 0;
   
     (*s_etat_processus).autorisation_conversion_chaine = registre;      (*s_etat_processus).autorisation_conversion_chaine = registre;
     return;      return;
Line 266  affichage_pile(struct_processus *s_etat_ Line 268  affichage_pile(struct_processus *s_etat_
   
 void  void
 ecriture_pile(struct_processus *s_etat_processus, file *flux,  ecriture_pile(struct_processus *s_etat_processus, file *flux,
         struct_liste_chainee *l_element_courant, unsigned long niveau_courant)          struct_liste_chainee *l, unsigned long niveau_courant)
 {  {
     unsigned char               *chaine;      unsigned char               *chaine;
     unsigned char               *registre;      unsigned char               *registre;
     unsigned char               tampon[32 + 1];      unsigned char               tampon[32 + 1];
   
       // Évite le warning : argument l_element_courant might be clobbered by
       // longjmp or vfork
       volatile struct_liste_chainee   *l_element_courant;
   
       l_element_courant = l;
   
     if (l_element_courant != NULL)      if (l_element_courant != NULL)
     {      {
         if (setjmp(contexte) == 0)          if (setjmp(contexte_ecriture) == 0)
         {          {
             (*s_etat_processus).var_volatile_recursivite = -1;              (*s_etat_processus).var_volatile_recursivite = -1;
             ecriture_pile(s_etat_processus, flux,              ecriture_pile(s_etat_processus, flux,
Line 364  ecriture_pile(struct_processus *s_etat_p Line 372  ecriture_pile(struct_processus *s_etat_p
   
 void  void
 impression_pile(struct_processus *s_etat_processus,  impression_pile(struct_processus *s_etat_processus,
         struct_liste_chainee *l_element_courant, unsigned char methode,          struct_liste_chainee *l, unsigned char methode,
         unsigned long niveau_courant)          unsigned long niveau_courant)
 {  {
     struct_objet                s_objet;      struct_objet                s_objet;
Line 373  impression_pile(struct_processus *s_etat Line 381  impression_pile(struct_processus *s_etat
     unsigned char               *registre;      unsigned char               *registre;
     unsigned char               tampon[32 + 1];      unsigned char               tampon[32 + 1];
   
       // Évite le warning : argument l_element_courant might be clobbered by
       // longjmp or vfork
       volatile struct_liste_chainee   *l_element_courant;
   
       l_element_courant = l;
   
     if (l_element_courant != NULL)      if (l_element_courant != NULL)
     {      {
         if (setjmp(contexte) == 0)          if (setjmp(contexte_impression) == 0)
         {          {
             (*s_etat_processus).var_volatile_recursivite = -1;              (*s_etat_processus).var_volatile_recursivite = -1;
             impression_pile(s_etat_processus, (*l_element_courant).suivant,              impression_pile(s_etat_processus, (*l_element_courant).suivant,

Removed from v.1.12  
changed lines
  Added in v.1.39


CVSweb interface <joel.bertrand@systella.fr>