Diff for /rpl/src/instructions_e1.c between versions 1.7 and 1.21

version 1.7, 2010/04/21 13:45:47 version 1.21, 2011/06/21 07:45:24
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.0.15    RPL/2 (R) version 4.1.0.prerelease.1
   Copyright (C) 1989-2010 Dr. BERTRAND Joël    Copyright (C) 1989-2011 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 185  instruction_eval(struct_processus *s_eta Line 185  instruction_eval(struct_processus *s_eta
 void  void
 instruction_end(struct_processus *s_etat_processus)  instruction_end(struct_processus *s_etat_processus)
 {  {
     struct_objet                    *s_objet;  
   
     logical1                        condition;      logical1                        condition;
   
       struct_liste_pile_systeme       *l_element_courant;
   
       struct_objet                    *s_objet;
   
     (*s_etat_processus).erreur_execution = d_ex;      (*s_etat_processus).erreur_execution = d_ex;
           
     if ((*s_etat_processus).affichage_arguments == 'Y')      if ((*s_etat_processus).affichage_arguments == 'Y')
Line 366  instruction_end(struct_processus *s_etat Line 368  instruction_end(struct_processus *s_etat
     }      }
     else if ((*(*s_etat_processus).l_base_pile_systeme).type_cloture == 'C')      else if ((*(*s_etat_processus).l_base_pile_systeme).type_cloture == 'C')
     {      {
         if ((*(*s_etat_processus).l_base_pile_systeme).clause != 'Q')          depilement_pile_systeme(s_etat_processus);
   
           if ((*s_etat_processus).erreur_systeme != d_es)
         {          {
             depilement_pile_systeme(s_etat_processus);              return;
           }
       }
       else if ((*(*s_etat_processus).l_base_pile_systeme).type_cloture == 'K')
       {
           l_element_courant = (*(*s_etat_processus).l_base_pile_systeme).suivant;
   
             if ((*s_etat_processus).erreur_systeme != d_es)          while(l_element_courant != NULL)
           {
               switch((*l_element_courant).clause)
             {              {
                 return;                  case 'K' :
                   case 'Q' :
                   case 'C' :
                   {
                       if ((*l_element_courant).clause == 'Q')
                       {
                           (*l_element_courant).clause = 'C';
                       }
                       else
                       {
                           (*l_element_courant).clause = (*(*s_etat_processus)
                                   .l_base_pile_systeme).clause;
                       }
   
                       l_element_courant = NULL;
                       break;
                   }
   
                   default :
                   {
                       l_element_courant = (*l_element_courant).suivant;
                       break;
                   }
             }              }
         }          }
         else  
           depilement_pile_systeme(s_etat_processus);
   
           if ((*s_etat_processus).erreur_systeme != d_es)
         {          {
             (*(*s_etat_processus).l_base_pile_systeme).clause = 'C';              return;
         }          }
     }      }
     else       else 

Removed from v.1.7  
changed lines
  Added in v.1.21


CVSweb interface <joel.bertrand@systella.fr>