--- rpl/src/rpl.c 2011/11/30 20:50:22 1.105 +++ rpl/src/rpl.c 2012/01/25 16:38:30 1.109 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.1.5 - Copyright (C) 1989-2011 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.6 + Copyright (C) 1989-2012 Dr. BERTRAND Joël This file is part of RPL/2. @@ -345,11 +345,11 @@ rplinit(int argc, char *argv[], char *en if ((*s_etat_processus).langue == 'F') { - printf("+++Copyright (C) 1989 à 2010, 2011 BERTRAND Joël\n"); + printf("+++Copyright (C) 1989 à 2011, 2012 BERTRAND Joël\n"); } else { - printf("+++Copyright (C) 1989 to 2010, 2011 BERTRAND Joel\n"); + printf("+++Copyright (C) 1989 to 2011, 2012 BERTRAND Joel\n"); } if (getenv("HOME") != NULL) @@ -483,6 +483,43 @@ rplinit(int argc, char *argv[], char *en return(EXIT_FAILURE); } + if (sigaction(SIGALRM, &action, NULL) != 0) + { + 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); + } + + signal_test = SIGTEST; + kill(getpid(), SIGALRM); + + if (signal_test != SIGALRM) + { + 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 = interruption2; action.sa_flags = 0; @@ -1995,6 +2032,7 @@ rplinit(int argc, char *argv[], char *en (*s_etat_processus).arbre_instructions = NULL; (*s_etat_processus).tid_processus_pere = pthread_self(); + (*s_etat_processus).tid= pthread_self(); (*s_etat_processus).pid_processus_pere = getpid(); (*s_etat_processus).processus_detache = d_vrai; (*s_etat_processus).var_volatile_processus_pere = -1; @@ -2506,6 +2544,11 @@ rplinit(int argc, char *argv[], char *en home, ds_fichier_historique); using_history(); + + // Pour pouvoir utiliser le keymap avant le premier + // appel à readline(). + rl_initialize(); + erreur_historique = read_history( (*s_etat_processus).nom_fichier_historique);