Diff for /rpl/src/formateur.c between versions 1.88 and 1.96

version 1.88, 2017/08/03 17:17:43 version 1.96, 2020/01/10 11:15:42
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.28    RPL/2 (R) version 4.1.32
   Copyright (C) 1989-2017 Dr. BERTRAND Joël    Copyright (C) 1989-2020 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
   
Line 3307  formateur(struct_processus *s_etat_proce Line 3307  formateur(struct_processus *s_etat_proce
             strcat(chaine, " ]");              strcat(chaine, " ]");
         }          }
     }      }
       else if ((*s_objet).type == REC)
       {
           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)      else if ((*s_objet).type == NON)
     {      {
         if ((chaine = malloc((strlen("System object") + 1)          if ((chaine = malloc((strlen("System object") + 1)

Removed from v.1.88  
changed lines
  Added in v.1.96


CVSweb interface <joel.bertrand@systella.fr>