Diff for /rpl/src/rpl.c between versions 1.3 and 1.12

version 1.3, 2010/01/31 19:45:10 version 1.12, 2010/03/06 18:29:07
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.0.10    RPL/2 (R) version 4.0.12
   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 31 Line 31
 */  */
   
 int  int
 rplinit(int argc, char *argv[], unsigned char ***resultats)  rplinit(int argc, char *argv[], unsigned char ***resultats, char *rpl_home)
 {  {
 #   include                             "copyright.conv.h"  #   include                             "copyright.conv.h"
 #   include                             "licence.conv.h"  #   include                             "licence.conv.h"
Line 126  rplinit(int argc, char *argv[], unsigned Line 126  rplinit(int argc, char *argv[], unsigned
     (*s_etat_processus).erreur_systeme = d_es;      (*s_etat_processus).erreur_systeme = d_es;
     (*s_etat_processus).erreur_execution = d_ex;      (*s_etat_processus).erreur_execution = d_ex;
   
       (*s_etat_processus).rpl_home = rpl_home;
   
     insertion_thread(s_etat_processus, d_vrai);      insertion_thread(s_etat_processus, d_vrai);
   
     pthread_mutexattr_init(&attributs_mutex);      pthread_mutexattr_init(&attributs_mutex);
Line 247  rplinit(int argc, char *argv[], unsigned Line 249  rplinit(int argc, char *argv[], unsigned
     // Initialisation d'une pile de signal pour récupérer les      // Initialisation d'une pile de signal pour récupérer les
     // débordement de pile      // débordement de pile
   
   #   ifndef Cygwin
     if (((*s_etat_processus).pile_signal.ss_sp =      if (((*s_etat_processus).pile_signal.ss_sp =
             malloc((*s_etat_processus).pile_signal.ss_size =              malloc((*s_etat_processus).pile_signal.ss_size =
             SIGSTKSZ)) == NULL)              SIGSTKSZ)) == NULL)
Line 283  rplinit(int argc, char *argv[], unsigned Line 286  rplinit(int argc, char *argv[], unsigned
   
         return(EXIT_FAILURE);          return(EXIT_FAILURE);
     }      }
   #   endif
   
     action.sa_sigaction = interruption1;      action.sa_sigaction = interruption1;
     action.sa_flags = SA_ONSTACK | SA_SIGINFO;      action.sa_flags = SA_ONSTACK | SA_SIGINFO;
Line 1566  rplinit(int argc, char *argv[], unsigned Line 1570  rplinit(int argc, char *argv[], unsigned
                     &existence, &ouverture, &unite_fichier);                      &existence, &ouverture, &unite_fichier);
         }          }
   
         (*s_etat_processus).recherche_types_speciaux = 'N';  
   
         if (((existence == d_faux) || (erreur_fichier != d_absence_erreur)) &&          if (((existence == d_faux) || (erreur_fichier != d_absence_erreur)) &&
                 (option_S == d_faux))                  (option_S == d_faux))
         {          {
Line 1644  rplinit(int argc, char *argv[], unsigned Line 1646  rplinit(int argc, char *argv[], unsigned
             (*s_etat_processus).test_instruction = 'N';              (*s_etat_processus).test_instruction = 'N';
             (*s_etat_processus).nombre_arguments = 0;              (*s_etat_processus).nombre_arguments = 0;
             (*s_etat_processus).affichage_arguments = 'N';              (*s_etat_processus).affichage_arguments = 'N';
               (*s_etat_processus).autorisation_conversion_chaine = 'Y';
             (*s_etat_processus).autorisation_evaluation_nom = 'Y';              (*s_etat_processus).autorisation_evaluation_nom = 'Y';
             (*s_etat_processus).autorisation_empilement_programme = 'N';              (*s_etat_processus).autorisation_empilement_programme = 'N';
             (*s_etat_processus).requete_arret = 'N';              (*s_etat_processus).requete_arret = 'N';
               (*s_etat_processus).evaluation_forcee = 'N';
   
             (*s_etat_processus).constante_symbolique = 'N';              (*s_etat_processus).constante_symbolique = 'N';
             (*s_etat_processus).traitement_symbolique = 'N';              (*s_etat_processus).traitement_symbolique = 'N';
Line 3186  rplinit(int argc, char *argv[], unsigned Line 3190  rplinit(int argc, char *argv[], unsigned
                         fclose((*((struct_descripteur_fichier *)                          fclose((*((struct_descripteur_fichier *)
                                 (*((struct_liste_chainee *)                                  (*((struct_liste_chainee *)
                                 l_element_courant)).donnee))                                  l_element_courant)).donnee))
                                 .descripteur);                                  .descripteur_c);
   
                           if ((*((struct_descripteur_fichier *)
                                   (*((struct_liste_chainee *)
                                   l_element_courant)).donnee)).type != 'C')
                           {
                               sqlite3_close((*((struct_descripteur_fichier *)
                                       (*((struct_liste_chainee *)
                                       l_element_courant)).donnee))
                                       .descripteur_sqlite);
                           }
   
                         if ((*((struct_descripteur_fichier *)                          if ((*((struct_descripteur_fichier *)
                                 (*((struct_liste_chainee *)                                  (*((struct_liste_chainee *)
Line 3320  rplinit(int argc, char *argv[], unsigned Line 3334  rplinit(int argc, char *argv[], unsigned
         }          }
     }      }
   
   #   ifndef Cygwin
     free((*s_etat_processus).pile_signal.ss_sp);      free((*s_etat_processus).pile_signal.ss_sp);
   #   endif
   
     closelog();      closelog();
   
     pthread_mutex_destroy(&((*s_etat_processus).protection_liste_mutexes));      pthread_mutex_destroy(&((*s_etat_processus).protection_liste_mutexes));
Line 3341  rplinit(int argc, char *argv[], unsigned Line 3358  rplinit(int argc, char *argv[], unsigned
     sem_destroy(&semaphore_gestionnaires_signaux);      sem_destroy(&semaphore_gestionnaires_signaux);
     sem_destroy(&semaphore_gestionnaires_signaux_atomique);      sem_destroy(&semaphore_gestionnaires_signaux_atomique);
   
   #   ifdef DEBUG_MEMOIRE
       debug_memoire_verification(s_etat_processus);
   #   endif
   
     return((erreur == d_os) ? EXIT_SUCCESS : EXIT_FAILURE);      return((erreur == d_os) ? EXIT_SUCCESS : EXIT_FAILURE);
 }  }
   

Removed from v.1.3  
changed lines
  Added in v.1.12


CVSweb interface <joel.bertrand@systella.fr>