--- rpl/src/rpl.c 2010/01/31 19:45:10 1.3 +++ rpl/src/rpl.c 2010/03/04 17:42:47 1.11 @@ -1,6 +1,6 @@ /* ================================================================================ - RPL/2 (R) version 4.0.10 + RPL/2 (R) version 4.0.12 Copyright (C) 1989-2010 Dr. BERTRAND Joël This file is part of RPL/2. @@ -31,7 +31,7 @@ */ 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 "licence.conv.h" @@ -126,6 +126,8 @@ rplinit(int argc, char *argv[], unsigned (*s_etat_processus).erreur_systeme = d_es; (*s_etat_processus).erreur_execution = d_ex; + (*s_etat_processus).rpl_home = rpl_home; + insertion_thread(s_etat_processus, d_vrai); pthread_mutexattr_init(&attributs_mutex); @@ -247,6 +249,7 @@ rplinit(int argc, char *argv[], unsigned // Initialisation d'une pile de signal pour récupérer les // débordement de pile +# ifndef Cygwin if (((*s_etat_processus).pile_signal.ss_sp = malloc((*s_etat_processus).pile_signal.ss_size = SIGSTKSZ)) == NULL) @@ -283,6 +286,7 @@ rplinit(int argc, char *argv[], unsigned return(EXIT_FAILURE); } +# endif action.sa_sigaction = interruption1; action.sa_flags = SA_ONSTACK | SA_SIGINFO; @@ -1566,8 +1570,6 @@ rplinit(int argc, char *argv[], unsigned &existence, &ouverture, &unite_fichier); } - (*s_etat_processus).recherche_types_speciaux = 'N'; - if (((existence == d_faux) || (erreur_fichier != d_absence_erreur)) && (option_S == d_faux)) { @@ -1644,9 +1646,11 @@ rplinit(int argc, char *argv[], unsigned (*s_etat_processus).test_instruction = 'N'; (*s_etat_processus).nombre_arguments = 0; (*s_etat_processus).affichage_arguments = 'N'; + (*s_etat_processus).autorisation_conversion_chaine = 'Y'; (*s_etat_processus).autorisation_evaluation_nom = 'Y'; (*s_etat_processus).autorisation_empilement_programme = 'N'; (*s_etat_processus).requete_arret = 'N'; + (*s_etat_processus).evaluation_forcee = 'N'; (*s_etat_processus).constante_symbolique = 'N'; (*s_etat_processus).traitement_symbolique = 'N'; @@ -3320,7 +3324,10 @@ rplinit(int argc, char *argv[], unsigned } } +# ifndef Cygwin free((*s_etat_processus).pile_signal.ss_sp); +# endif + closelog(); pthread_mutex_destroy(&((*s_etat_processus).protection_liste_mutexes)); @@ -3341,6 +3348,10 @@ rplinit(int argc, char *argv[], unsigned sem_destroy(&semaphore_gestionnaires_signaux); sem_destroy(&semaphore_gestionnaires_signaux_atomique); +# ifdef DEBUG_MEMOIRE + debug_memoire_verification(s_etat_processus); +# endif + return((erreur == d_os) ? EXIT_SUCCESS : EXIT_FAILURE); }