--- rpl/src/transliteration.c 2012/01/17 14:44:13 1.49 +++ rpl/src/transliteration.c 2013/02/23 15:02:20 1.62 @@ -1,6 +1,6 @@ /* ================================================================================ - RPL/2 (R) version 4.1.6 + RPL/2 (R) version 4.1.12 Copyright (C) 1989-2012 Dr. BERTRAND Joël This file is part of RPL/2. @@ -90,6 +90,20 @@ reencodage(struct_processus *s_etat_proc if ((transcodage = iconv_open(codage_sortie, codage_entree)) == (iconv_t) -1) { + // On affiche une erreur ici car la fonction d'affichage + // de l'erreur utilise la macro printf() donc une + // opération de translitération qui échouera elle aussi. + // Le positionnement de l'erreur permet de sortir du programme. + + if ((*s_etat_processus).langue == 'F') + { + fprintf(stderr, "+++Erreur : Erreur de transcodage\n"); + } + else + { + fprintf(stderr, "+++Error : Transcodage error\n"); + } + (*s_etat_processus).erreur_execution = d_ex_erreur_transcodage; return(NULL); } @@ -127,6 +141,20 @@ reencodage(struct_processus *s_etat_proc free(buffer_sortie); free(chaine_sortie); + // On affiche une erreur ici car la fonction d'affichage + // de l'erreur utilise la macro printf() donc une + // opération de translitération qui échouera elle aussi. + // Le positionnement de l'erreur permet de sortir du programme. + + if ((*s_etat_processus).langue == 'F') + { + fprintf(stderr, "+++Erreur : Erreur de transcodage\n"); + } + else + { + fprintf(stderr, "+++Error : Transcodage error\n"); + } + (*s_etat_processus).erreur_execution = d_ex_erreur_transcodage; return(NULL); } @@ -181,8 +209,6 @@ localisation_courante(struct_processus * pid_t pid; - struct sigaction action_passee; - unsigned char *tampon; unsigned long longueur_lecture; @@ -554,18 +580,6 @@ localisation_courante(struct_processus * strcpy((*s_etat_processus).localisation, d_locale); } - if (sigaction(SIGINT, &action_passee, NULL) != 0) - { - for(i = 0; i < nombre_arguments; i++) - { - free(arguments[i]); - } - - free(arguments); - (*s_etat_processus).erreur_systeme = d_es_signal; - return; - } - for(i = 0; i < nombre_arguments; i++) { free(arguments[i]);