Diff for /rpl/src/gestion_variables.c between versions 1.4 and 1.20.2.1

version 1.4, 2010/03/04 10:17:49 version 1.20.2.1, 2011/04/11 13:02:16
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.0.12    RPL/2 (R) version 4.0.22
   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 45  creation_variable(struct_processus *s_et Line 45  creation_variable(struct_processus *s_et
         unsigned char autorisation_creation_variable_statique,          unsigned char autorisation_creation_variable_statique,
         unsigned char autorisation_creation_variable_partagee)          unsigned char autorisation_creation_variable_partagee)
 {  {
       logical1                presence;
   
     long                    i;      long                    i;
   
     struct_variable         *s_nouvelle_base;      struct_variable         *s_nouvelle_base;
Line 214  creation_variable(struct_processus *s_et Line 216  creation_variable(struct_processus *s_et
             }              }
         }          }
   
         (*s_etat_processus).s_liste_variables[i + 1] = (*s_variable);          if ((*s_variable).niveau > 1)
           {
               // Cas d'une variable locale
               (*s_etat_processus).s_liste_variables[i + 1] = (*s_variable);
           }
           else
           {
               // Cas d'une variable globale
               presence = d_faux;
   
               for(; i >= 0; i--)
               {
                   if ((strcmp((*s_variable).nom,
                           (*s_etat_processus).s_liste_variables[i].nom) == 0)
                           && ((*s_etat_processus).s_liste_variables[i].niveau
                           != 0))
                   {
                       (*s_etat_processus).s_liste_variables[i + 1] =
                               (*s_etat_processus).s_liste_variables[i];
                   }
                   else
                   {
                       presence = d_vrai;
                       break;
                   }
               }
   
               if (presence == d_faux)
               {
                   (*s_etat_processus).s_liste_variables[0] = (*s_variable);
               }
               else
               {
                   (*s_etat_processus).s_liste_variables[i + 1] = (*s_variable);
               }
           }
     }      }
   
     return(d_absence_erreur);      return(d_absence_erreur);

Removed from v.1.4  
changed lines
  Added in v.1.20.2.1


CVSweb interface <joel.bertrand@systella.fr>