--- rpl/src/instructions_r4.c 2012/06/19 10:14:56 1.57 +++ rpl/src/instructions_r4.c 2012/06/21 16:07:25 1.58 @@ -2071,7 +2071,7 @@ printf("L=%d\n", longueur_enregistrement return; } - if ((tampon_lecture = malloc((longueur_enregistrement + 1) + if ((tampon_lecture = malloc((longueur_enregistrement) * sizeof(unsigned char))) == NULL) { (*s_etat_processus).erreur_systeme = @@ -2081,7 +2081,7 @@ printf("L=%d\n", longueur_enregistrement longueur_effective = fread(tampon_lecture, (size_t) sizeof(unsigned char), - (size_t) longueur_enregistrement, + (size_t) longueur_enregistrement - 1, (*descripteur).descripteur_c); if ((s_objet_resultat = allocation(s_etat_processus, LST)) @@ -2111,52 +2111,14 @@ printf("L=%d\n", longueur_enregistrement return; } - longueur_enregistrement = 1; - - for(i = 0; i < longueur_effective; i++) + if ((((*(*((struct_liste_chainee *) (*s_objet_resultat).objet)) + .donnee)).objet = analyse_flux(s_etat_processus, + tampon_lecture, longueur_enregistrement - 1)) == NULL) { - if (isprint(tampon_lecture[i]) != 0) - { - longueur_enregistrement += 4; - } - else - { - longueur_enregistrement++; - } - } - - if ((tampon = malloc(longueur_enregistrement * - sizeof(unsigned char))) == NULL) - { - (*s_etat_processus).erreur_systeme = - d_es_allocation_memoire; return; } - ptr = tampon; - - for(i = 0; i < longueur_effective; i++) - { - if (isprint(tampon_lecture[i]) != 0) - { - (*ptr) = tampon_lecture[i]; - ptr++; - } - else - { - (*ptr) = '\\'; - ptr++; - (*ptr) = 'x'; - ptr++; - sprintf(ptr, "%02X", tampon_lecture[i]); - ptr += 2; - } - } - - (*ptr) = d_code_fin_chaine; free(tampon_lecture); - ((*(*((struct_liste_chainee *) (*s_objet_resultat).objet)) - .donnee)).objet = tampon; if (empilement(s_etat_processus, &((*s_etat_processus).l_base_pile),