--- rpl/src/formateur.c 2018/12/21 10:56:13 1.90 +++ rpl/src/formateur.c 2018/12/21 13:36:37 1.91 @@ -3309,7 +3309,132 @@ formateur(struct_processus *s_etat_proce } else if ((*s_objet).type == REC) { - uprintf("À faire\n"); + chaine = (unsigned char *) malloc(4 * sizeof(unsigned char)); + + if (chaine == NULL) + { + (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; + return(NULL); + } + + strcpy(chaine, "|[ "); + offset = ((integer8) strlen(chaine)) + offset_initial; + + // L'objet se compose de deux tables à une dimension de + // mêmes tailles. + + chaine_sauvegarde = chaine; + + if ((chaine_formatee = formateur(s_etat_processus, (long) offset, + (*((struct_record *) (*s_objet).objet)).noms)) == NULL) + { + (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; + return(NULL); + } + + if ((chaine = (unsigned char *) malloc((strlen(chaine_formatee) + + strlen(chaine_sauvegarde) + 1) + * sizeof(unsigned char))) == NULL) + { + (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; + return(NULL); + } + + sprintf(chaine, "%s%s", chaine_sauvegarde, chaine_formatee); + free(chaine_sauvegarde); + free(chaine_formatee); + + if (test_cfsf(s_etat_processus, 45) == d_vrai) + { + chaine_sauvegarde = chaine; + + if ((chaine = (unsigned char *) malloc( + (strlen(chaine_sauvegarde) + 2) * sizeof(unsigned char))) + == NULL) + { + (*s_etat_processus).erreur_systeme = + d_es_allocation_memoire; + return(NULL); + } + + strcpy(chaine, chaine_sauvegarde); + free(chaine_sauvegarde); + strcat(chaine, "\n"); + + chaine_sauvegarde = chaine; + + chaine = (unsigned char *) malloc( + (strlen(chaine_sauvegarde) + 1 + ((size_t) offset)) + * sizeof(unsigned char)); + + if (chaine == NULL) + { + (*s_etat_processus).erreur_systeme = + d_es_allocation_memoire; + return(NULL); + } + + strcpy(chaine, chaine_sauvegarde); + free(chaine_sauvegarde); + ptre = &(chaine[strlen(chaine)]); + + for(k = 0; k < offset; k++, *(ptre++) = ' '); + + (*ptre) = d_code_fin_chaine; + } + else + { + chaine_sauvegarde = chaine; + + if ((chaine = (unsigned char *) malloc( + (strlen(chaine_sauvegarde) + 2) + * sizeof(unsigned char))) == NULL) + { + (*s_etat_processus).erreur_systeme = + d_es_allocation_memoire; + return(NULL); + } + + strcpy(chaine, chaine_sauvegarde); + free(chaine_sauvegarde); + strcat(chaine, " "); + } + + chaine_sauvegarde = chaine; + + if ((chaine_formatee = formateur(s_etat_processus, (long) offset, + (*((struct_record *) (*s_objet).objet)).donnees)) == NULL) + { + (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; + return(NULL); + } + + if ((chaine = (unsigned char *) malloc((strlen(chaine_formatee) + + strlen(chaine_sauvegarde) + 1) + * sizeof(unsigned char))) == NULL) + { + (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; + return(NULL); + } + + sprintf(chaine, "%s%s", chaine_sauvegarde, chaine_formatee); + free(chaine_sauvegarde); + free(chaine_formatee); + + chaine_sauvegarde = chaine; + chaine = (unsigned char *) malloc((strlen(chaine_sauvegarde) + 4) + * sizeof(unsigned char)); + + if (chaine == NULL) + { + (*s_etat_processus).erreur_systeme = + d_es_allocation_memoire; + return(NULL); + } + + strcpy(chaine, chaine_sauvegarde); + free(chaine_sauvegarde); + strcat(chaine, " ]|"); } else if ((*s_objet).type == NON) {