Diff for /rpl/src/rpl.c between versions 1.117 and 1.123

version 1.117, 2012/09/15 12:57:09 version 1.123, 2012/10/17 14:27:06
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.10    RPL/2 (R) version 4.1.11
   Copyright (C) 1989-2012 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 80  rplinit(int argc, char *argv[], char *en Line 80  rplinit(int argc, char *argv[], char *en
   
     struct_processus                    *s_etat_processus;      struct_processus                    *s_etat_processus;
   
       struct_liste_variables_statiques    *l_element_statique_courant;
       struct_liste_variables_statiques    *l_element_statique_suivant;
   
     struct_table_variables_partagees    s_variables_partagees;      struct_table_variables_partagees    s_variables_partagees;
   
     struct sigaction                    action;      struct sigaction                    action;
Line 299  rplinit(int argc, char *argv[], char *en Line 302  rplinit(int argc, char *argv[], char *en
     insertion_thread(s_etat_processus, d_vrai);      insertion_thread(s_etat_processus, d_vrai);
     creation_queue_signaux(s_etat_processus);      creation_queue_signaux(s_etat_processus);
   
 #   ifndef OS2      if (d_forced_locale == 0)
     localisation_courante(s_etat_processus);  
 #   else  
     if ((*s_etat_processus).erreur_systeme != d_es)  
     {      {
         if (((*s_etat_processus).localisation = malloc((strlen(d_locale) + 1) *          localisation_courante(s_etat_processus);
                 sizeof(unsigned char))) == NULL)      }
       else
       {
           if ((*s_etat_processus).erreur_systeme != d_es)
         {          {
             if ((*s_etat_processus).langue == 'F')              if (((*s_etat_processus).localisation = malloc((strlen(d_locale)
             {                      + 1) * sizeof(unsigned char))) == NULL)
                 uprintf("+++Système : Mémoire insuffisante\n");  
             }  
             else  
             {              {
                 uprintf("+++System : Not enough memory\n");                  if ((*s_etat_processus).langue == 'F')
                   {
                       uprintf("+++Système : Mémoire insuffisante\n");
                   }
                   else
                   {
                       uprintf("+++System : Not enough memory\n");
                   }
   
                   return(EXIT_FAILURE);
             }              }
   
             return(EXIT_FAILURE);              strcpy((*s_etat_processus).localisation, d_locale);
         }          }
   
         strcpy((*s_etat_processus).localisation, d_locale);  
     }      }
 #   endif  
   
     (*s_etat_processus).erreur_systeme = d_es;      (*s_etat_processus).erreur_systeme = d_es;
   
Line 411  rplinit(int argc, char *argv[], char *en Line 417  rplinit(int argc, char *argv[], char *en
         }          }
 #   endif  #   endif
   
       if (lancement_thread_signaux(s_etat_processus) != d_absence_erreur)
       {
           erreur = d_es_signal;
   
           if ((*s_etat_processus).langue == 'F')
           {
               printf("+++Système : Initialisation des signaux POSIX "
                       "impossible\n");
           }
           else
           {
               printf("+++System : Initialization of POSIX signals failed\n");
           }
   
           return(EXIT_FAILURE);
       }
   
     action.sa_handler = interruption1;      action.sa_handler = interruption1;
     action.sa_flags = 0;      action.sa_flags = 0;
   
Line 1969  rplinit(int argc, char *argv[], char *en Line 1992  rplinit(int argc, char *argv[], char *en
             (*s_etat_processus).l_liste_variables_par_niveau = NULL;              (*s_etat_processus).l_liste_variables_par_niveau = NULL;
             (*s_etat_processus).gel_liste_variables = d_faux;              (*s_etat_processus).gel_liste_variables = d_faux;
             (*s_etat_processus).pointeur_variable_courante = NULL;              (*s_etat_processus).pointeur_variable_courante = NULL;
             (*s_etat_processus).s_liste_variables_statiques = NULL;              (*s_etat_processus).pointeur_variable_statique_courante = NULL;
             (*s_etat_processus).nombre_variables_statiques = 0;              (*s_etat_processus).l_liste_variables_statiques = NULL;
             (*s_etat_processus).nombre_variables_statiques_allouees = 0;  
             (*s_etat_processus).niveau_courant = 0;              (*s_etat_processus).niveau_courant = 0;
             (*s_etat_processus).niveau_initial = 0;              (*s_etat_processus).niveau_initial = 0;
             (*s_etat_processus).creation_variables_statiques = d_faux;              (*s_etat_processus).creation_variables_statiques = d_faux;
             (*s_etat_processus).creation_variables_partagees = d_faux;              (*s_etat_processus).creation_variables_partagees = d_faux;
             (*s_etat_processus).position_variable_statique_courante = 0;  
   
             (*s_etat_processus).s_bibliotheques = NULL;              (*s_etat_processus).s_bibliotheques = NULL;
             (*s_etat_processus).s_instructions_externes = NULL;              (*s_etat_processus).s_instructions_externes = NULL;
Line 3347  rplinit(int argc, char *argv[], char *en Line 3368  rplinit(int argc, char *argv[], char *en
                             (*s_etat_processus).s_arbre_variables, d_vrai);                              (*s_etat_processus).s_arbre_variables, d_vrai);
                     free((*s_etat_processus).pointeurs_caracteres_variables);                      free((*s_etat_processus).pointeurs_caracteres_variables);
   
                     for(i = 0; i < (*s_etat_processus)                      l_element_statique_courant = (*s_etat_processus)
                             .nombre_variables_statiques; i++)                              .l_liste_variables_statiques;
   
                       while(l_element_statique_courant != NULL)
                     {                      {
                         liberation(s_etat_processus, (*s_etat_processus)                          l_element_statique_suivant =
                                 .s_liste_variables_statiques[i].objet);                              (*l_element_statique_courant).suivant;
                         free((*s_etat_processus)                          free(l_element_statique_courant);
                                 .s_liste_variables_statiques[i].nom);                          l_element_statique_courant = l_element_statique_suivant;
                     }                      }
   
                     free((*s_etat_processus).s_liste_variables_statiques);  
   
                     for(i = 0; i < (*((*s_etat_processus)                      for(i = 0; i < (*((*s_etat_processus)
                             .s_liste_variables_partagees)).nombre_variables;                              .s_liste_variables_partagees)).nombre_variables;
                             i++)                              i++)
Line 3748  rplinit(int argc, char *argv[], char *en Line 3769  rplinit(int argc, char *argv[], char *en
     }      }
   
     free(arg_exec);      free(arg_exec);
       arret_thread_signaux(s_etat_processus);
     free(s_etat_processus);      free(s_etat_processus);
   
 #   ifdef DEBUG_MEMOIRE  #   ifdef DEBUG_MEMOIRE

Removed from v.1.117  
changed lines
  Added in v.1.123


CVSweb interface <joel.bertrand@systella.fr>