Diff for /rpl/src/instructions_c1.c between versions 1.1 and 1.14

version 1.1, 2010/01/26 15:22:45 version 1.14, 2010/08/06 15:32:59
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.0.9    RPL/2 (R) version 4.0.18
   Copyright (C) 1989-2010 Dr. BERTRAND Joël    Copyright (C) 1989-2010 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 670  instruction_ceil(struct_processus *s_eta Line 670  instruction_ceil(struct_processus *s_eta
 void  void
 instruction_case(struct_processus *s_etat_processus)  instruction_case(struct_processus *s_etat_processus)
 {  {
       struct_liste_pile_systeme   *l_element_courant;
   
     struct_objet                *s_objet;      struct_objet                *s_objet;
   
     (*s_etat_processus).erreur_execution = d_ex;      (*s_etat_processus).erreur_execution = d_ex;
Line 712  instruction_case(struct_processus *s_eta Line 714  instruction_case(struct_processus *s_eta
         return;          return;
     }      }
   
     if ((*(*s_etat_processus).l_base_pile_systeme).clause == 'S')      l_element_courant = (*s_etat_processus).l_base_pile_systeme;
   
       while(l_element_courant != NULL)
     {      {
           if (((*l_element_courant).clause == 'S') ||
               ((*l_element_courant).clause == 'C') ||
               ((*l_element_courant).clause == 'K'))
           {
               break;
           }
   
           l_element_courant = (*l_element_courant).suivant;
       }
   
       if (l_element_courant == NULL)
       {
           (*s_etat_processus).erreur_systeme = d_es_pile_vide;
           return;
       }
   
       if ((*l_element_courant).clause == 'S')
       {
         /*          /*
          * Première apparition de l'instruction CASE dans la structure de test.           * Première apparition de l'instruction CASE dans la structure de test.
          */           */
Line 726  instruction_case(struct_processus *s_eta Line 747  instruction_case(struct_processus *s_eta
             return;              return;
         }          }
   
         (*(*s_etat_processus).l_base_pile_systeme).objet_de_test = s_objet;          (*l_element_courant).objet_de_test = s_objet;
         (*(*s_etat_processus).l_base_pile_systeme).clause = 'K';          (*l_element_courant).clause = 'K';
     }      }
   
     if ((s_objet = copie_objet(s_etat_processus,      if ((s_objet = copie_objet(s_etat_processus,
             (*(*s_etat_processus).l_base_pile_systeme)              (*l_element_courant).objet_de_test, 'P')) == NULL)
             .objet_de_test, 'P')) == NULL)  
     {      {
         (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;          (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
         return;          return;
Line 744  instruction_case(struct_processus *s_eta Line 764  instruction_case(struct_processus *s_eta
         return;          return;
     }      }
   
       /*
        * Empilement sur la pile système ne servant qu'à la bonne exécution
        * des reprises sur erreur
        */
   
       empilement_pile_systeme(s_etat_processus);
   
       if ((*s_etat_processus).erreur_systeme != d_es)
       {
           return;
       }
   
       (*(*s_etat_processus).l_base_pile_systeme).clause =
               (*l_element_courant).clause;
       (*(*s_etat_processus).l_base_pile_systeme).type_cloture = 'K';
     return;      return;
 }  }
   

Removed from v.1.1  
changed lines
  Added in v.1.14


CVSweb interface <joel.bertrand@systella.fr>