Diff for /rpl/src/gestion_variables.c between versions 1.28 and 1.29

version 1.28, 2011/06/08 13:35:15 version 1.29, 2011/06/09 14:48:36
Line 632  recherche_variable(struct_processus *s_e Line 632  recherche_variable(struct_processus *s_e
 }  }
   
   
   logical1
   recherche_variable_globale(struct_processus *s_etat_processus,
           unsigned char *nom)
   {
       logical1            presence_variable;
   
       presence_variable = recherche_variable(s_etat_processus, nom);
   
       if (presence_variable == d_vrai)
       {
           switch((*(*s_etat_processus).pointeur_variable_courante).niveau)
           {
               case 0:
               {
                   // Nous sommes en présence d'une définition et non d'une
                   // variable.
   
                   presence_variable = d_faux;
                   break;
               }
   
               case 1:
               {
                   break;
               }
   
               default:
               {
                   if ((*(*(*(*s_etat_processus).pointeur_feuille_courante)
                           .precedent).variable).niveau == 1)
                   {
                       (*s_etat_processus).pointeur_feuille_courante =
                               (*(*s_etat_processus).pointeur_feuille_courante)
                               .precedent;
                       (*s_etat_processus).pointeur_variable_courante =
                               (*(*s_etat_processus).pointeur_feuille_courante)
                               .variable;
                   }
                   else if ((*(*(*(*(*s_etat_processus).pointeur_feuille_courante)
                           .precedent).precedent).variable).niveau == 1)
                   {
                       (*s_etat_processus).pointeur_feuille_courante =
                               (*(*(*s_etat_processus).pointeur_feuille_courante)
                               .precedent).precedent;
                       (*s_etat_processus).pointeur_variable_courante =
                               (*(*s_etat_processus).pointeur_feuille_courante)
                               .variable;
                   }
                   else
                   {
                       presence_variable = d_faux;
                   }
   
                   break;
               }
           }
       }
   
       if (presence_variable == d_vrai)
       {
           if ((*(*s_etat_processus).pointeur_variable_courante).objet == NULL)
           {
               // La variable n'est pas globale, elle est partagée.
               presence_variable = d_faux;
               (*s_etat_processus).erreur_execution = d_ex_variable_partagee;
           }
       }
   
       return(presence_variable);
   }
   
   
 /*  /*
 ================================================================================  ================================================================================
   Procédure de retrait d'une variable de la base    Procédure de retrait d'une variable de la base

Removed from v.1.28  
changed lines
  Added in v.1.29


CVSweb interface <joel.bertrand@systella.fr>