Diff for /rpl/src/formateur_fichiers.c between versions 1.60 and 1.61

version 1.60, 2013/03/19 12:46:32 version 1.61, 2013/03/20 17:11:43
Line 40 Line 40
   
 unsigned char *  unsigned char *
 formateur_fichier(struct_processus *s_etat_processus, struct_objet *s_objet,  formateur_fichier(struct_processus *s_etat_processus, struct_objet *s_objet,
         struct_objet *s_format, long longueur, long longueur_champ,          struct_objet *s_format, integer8 longueur, integer8 longueur_champ,
         unsigned char format_sortie, unsigned char type,          unsigned char format_sortie, unsigned char type,
         long *longueur_effective, long *recursivite, logical1 export_fichier)          integer8 *longueur_effective, integer8 *recursivite,
           logical1 export_fichier)
 {  {
     /*      /*
      * Traitement du format des fichiers formatés :       * Traitement du format des fichiers formatés :
Line 78  formateur_fichier(struct_processus *s_et Line 79  formateur_fichier(struct_processus *s_et
     logical1                    format_degenere;      logical1                    format_degenere;
     logical1                    presence_signe;      logical1                    presence_signe;
   
     unsigned long int           longueur_chaine_traitee;  
   
     struct_liste_chainee        *l_atome;      struct_liste_chainee        *l_atome;
     struct_liste_chainee        *l_element_courant;      struct_liste_chainee        *l_element_courant;
     struct_liste_chainee        *l_element_courant_format;      struct_liste_chainee        *l_element_courant_format;
Line 103  formateur_fichier(struct_processus *s_et Line 102  formateur_fichier(struct_processus *s_et
     unsigned char               tampon[64 + 1];      unsigned char               tampon[64 + 1];
     unsigned char               type_binaire;      unsigned char               type_binaire;
   
     unsigned long               i;      integer8                    i;
     unsigned long               j;      integer8                    j;
     unsigned long               nombre_arguments;      integer8                    nombre_arguments;
     unsigned long               nombre_arguments_fonction;      integer8                    nombre_arguments_fonction;
     unsigned long               nombre_colonnes;      integer8                    nombre_colonnes;
     unsigned long               nombre_elements;      integer8                    nombre_elements;
     unsigned long               nombre_lignes;      integer8                    nombre_lignes;
   
       integer8                    longueur_chaine_traitee;
     integer8                    longueur_fonction;      integer8                    longueur_fonction;
     integer8                    longueur_liste;      integer8                    longueur_liste;
     integer8                    longueur_reelle_chaine;      integer8                    longueur_reelle_chaine;
Line 928  formateur_fichier(struct_processus *s_et Line 928  formateur_fichier(struct_processus *s_et
                         ptrl = chaine_sauvegarde;                          ptrl = chaine_sauvegarde;
                         ptre = (unsigned char *) (*s_sous_objet).objet;                          ptre = (unsigned char *) (*s_sous_objet).objet;
   
                         for(ptrl++, i = strlen(chaine_sauvegarde) - 2; i > 0;                          for(ptrl++, i = ((integer8) strlen(chaine_sauvegarde))
                                 i--, *ptre++ = *ptrl++);                                  - 2; i > 0; i--, *ptre++ = *ptrl++);
   
                         (*ptre) = d_code_fin_chaine;                          (*ptre) = d_code_fin_chaine;
   
Line 1026  formateur_fichier(struct_processus *s_et Line 1026  formateur_fichier(struct_processus *s_et
                         strcpy(chaine, tampon);                          strcpy(chaine, tampon);
                         tampon[0] = 0;                          tampon[0] = 0;
   
                         for(i = 0; i < strlen(chaine); i++)                          for(i = 0; i < ((integer8) strlen(chaine)); i++)
                         {                          {
                             switch(chaine[i])                              switch(chaine[i])
                             {                              {
Line 1156  formateur_fichier(struct_processus *s_et Line 1156  formateur_fichier(struct_processus *s_et
                 if ((longueur_champ > 0) && (longueur_champ                  if ((longueur_champ > 0) && (longueur_champ
                         < (signed) strlen(tampon)))                          < (signed) strlen(tampon)))
                 {                  {
                     ptrl = &(tampon[strlen(tampon) - longueur_champ]);                      ptrl = &(tampon[((integer8) strlen(tampon))
                               - longueur_champ]);
                     ptre = tampon;                      ptre = tampon;
   
                     do                      do
Line 1228  formateur_fichier(struct_processus *s_et Line 1229  formateur_fichier(struct_processus *s_et
                         (*s_objet).objet, longueur_champ)                          (*s_objet).objet, longueur_champ)
                         - ((unsigned char *) (*s_objet).objet);                          - ((unsigned char *) (*s_objet).objet);
   
                 if ((chaine = malloc((longueur_reelle_chaine + 1) *                  if ((chaine = malloc((((size_t) longueur_reelle_chaine) + 1) *
                         sizeof(unsigned char))) == NULL)                          sizeof(unsigned char))) == NULL)
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =
Line 1237  formateur_fichier(struct_processus *s_et Line 1238  formateur_fichier(struct_processus *s_et
                 }                  }
   
                 strncpy(chaine, (unsigned char *) ((*s_objet).objet),                  strncpy(chaine, (unsigned char *) ((*s_objet).objet),
                         longueur_reelle_chaine);                          (size_t) longueur_reelle_chaine);
                 chaine[longueur_reelle_chaine] = d_code_fin_chaine;                  chaine[longueur_reelle_chaine] = d_code_fin_chaine;
             }              }
         }          }
Line 1588  formateur_fichier(struct_processus *s_et Line 1589  formateur_fichier(struct_processus *s_et
                         return(NULL);                          return(NULL);
                     }                      }
   
                     position_3 = strlen(format_chaine) - 1;                      position_3 = ((integer8) strlen(format_chaine)) - 1;
   
                     if (format_chaine[position_3] != ')')                      if (format_chaine[position_3] != ')')
                     {                      {
Line 1623  formateur_fichier(struct_processus *s_et Line 1624  formateur_fichier(struct_processus *s_et
   
                     if (format_degenere == d_faux)                      if (format_degenere == d_faux)
                     {                      {
                         if (sscanf(&(format_chaine[position_1]), "%ld",                          if (sscanf(&(format_chaine[position_1]), "%lld",
                                 &longueur) != 1)                                  &longueur) != 1)
                         {                          {
                             free(chaine);                              free(chaine);
Line 1641  formateur_fichier(struct_processus *s_et Line 1642  formateur_fichier(struct_processus *s_et
   
                     if (strcmp(&(format_chaine[position_2]), "*") != 0)                      if (strcmp(&(format_chaine[position_2]), "*") != 0)
                     {                      {
                         if (sscanf(&(format_chaine[position_2]), "%ld",                          if (sscanf(&(format_chaine[position_2]), "%lld",
                                 &longueur_champ) != 1)                                  &longueur_champ) != 1)
                         {                          {
                             free(chaine);                              free(chaine);
Line 1936  formateur_fichier(struct_processus *s_et Line 1937  formateur_fichier(struct_processus *s_et
                             return(NULL);                              return(NULL);
                         }                          }
   
                         position_3 = strlen(format_chaine);                          position_3 = (integer8) strlen(format_chaine);
                         format_chaine[--position_3] = d_code_fin_chaine;                          format_chaine[--position_3] = d_code_fin_chaine;
   
                         position_2 = position_1;                          position_2 = position_1;
Line 1960  formateur_fichier(struct_processus *s_et Line 1961  formateur_fichier(struct_processus *s_et
   
                         if (format_degenere == d_faux)                          if (format_degenere == d_faux)
                         {                          {
                             if (sscanf(&(format_chaine[position_1]), "%ld",                              if (sscanf(&(format_chaine[position_1]), "%lld",
                                     &longueur) != 1)                                      &longueur) != 1)
                             {                              {
                                 free(chaine);                                  free(chaine);
Line 1978  formateur_fichier(struct_processus *s_et Line 1979  formateur_fichier(struct_processus *s_et
   
                         if (strcmp(&(format_chaine[position_2]), "*") != 0)                          if (strcmp(&(format_chaine[position_2]), "*") != 0)
                         {                          {
                             if (sscanf(&(format_chaine[position_2]), "%ld",                              if (sscanf(&(format_chaine[position_2]), "%lld",
                                     &longueur_champ) != 1)                                      &longueur_champ) != 1)
                             {                              {
                                 free(chaine);                                  free(chaine);
Line 2874  formateur_fichier(struct_processus *s_et Line 2875  formateur_fichier(struct_processus *s_et
             return(NULL);              return(NULL);
         }          }
   
         (*longueur_effective) = strlen(chaine) + 1;          (*longueur_effective) = ((integer8) strlen(chaine)) + 1;
     }      }
     else      else
     {      {
Line 3087  formateur_fichier(struct_processus *s_et Line 3088  formateur_fichier(struct_processus *s_et
   
             (*longueur_effective) = longueur_champ + 1;              (*longueur_effective) = longueur_champ + 1;
   
             if ((chaine = malloc((*longueur_effective) * sizeof(unsigned char)))              if ((chaine = malloc(((size_t) (*longueur_effective))
                     == NULL)                      * sizeof(unsigned char))) == NULL)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;                  (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                 return(NULL);                  return(NULL);
             }              }
   
             chaine[0] = longueur_champ;              chaine[0] = (unsigned char) longueur_champ;
   
             for(i = 1; i <= (unsigned) (*longueur_effective); i++)              for(i = 1; i <= (*longueur_effective); i++)
             {              {
                 chaine[i] = ((*((logical8 *) (*s_objet).objet)) >>                  chaine[i] = ((*((logical8 *) (*s_objet).objet)) >>
                         (8 * (longueur_champ - i))) & 0xFF;                          (8 * (longueur_champ - i))) & 0xFF;
Line 3152  formateur_fichier(struct_processus *s_et Line 3153  formateur_fichier(struct_processus *s_et
                     return(NULL);                      return(NULL);
                 }                  }
   
                 if ((chaine = malloc(longueur_champ * sizeof(unsigned char)))                  if ((chaine = malloc(((size_t) longueur_champ)
                             == NULL)                          * sizeof(unsigned char))) == NULL)
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =
                             d_es_allocation_memoire;                              d_es_allocation_memoire;
                     return(NULL);                      return(NULL);
                 }                  }
   
                 memcpy(chaine, chaine_sauvegarde, longueur_champ);                  memcpy(chaine, chaine_sauvegarde, (size_t) longueur_champ);
                 longueur_chaine_traitee = longueur_champ;                  longueur_chaine_traitee = longueur_champ;
                 free(chaine_sauvegarde);                  free(chaine_sauvegarde);
             }              }
Line 3169  formateur_fichier(struct_processus *s_et Line 3170  formateur_fichier(struct_processus *s_et
   
             if (longueur_chaine_traitee < (1LL << 3))              if (longueur_chaine_traitee < (1LL << 3))
             {              {
                 if ((chaine = malloc((longueur_chaine_traitee + 1)                  if ((chaine = malloc((((size_t) longueur_chaine_traitee) + 1)
                         * sizeof(unsigned char))) == NULL)                          * sizeof(unsigned char))) == NULL)
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =
Line 3177  formateur_fichier(struct_processus *s_et Line 3178  formateur_fichier(struct_processus *s_et
                     return(NULL);                      return(NULL);
                 }                  }
   
                 chaine[0] = 0x80 | (longueur_chaine_traitee & 0x7);                  chaine[0] = (unsigned char) (0x80 |
                           (longueur_chaine_traitee & 0x7));
   
                 memcpy(chaine + 1, chaine_sauvegarde, longueur_chaine_traitee);                  memcpy(chaine + 1, chaine_sauvegarde,
                           (size_t) longueur_chaine_traitee);
                 longueur_totale = longueur_chaine_traitee + 1;                  longueur_totale = longueur_chaine_traitee + 1;
             }              }
             else if (longueur_chaine_traitee < (1LL << 8))              else if (longueur_chaine_traitee < (1LL << 8))
             {              {
                 if ((chaine = malloc((longueur_chaine_traitee + 2)                  if ((chaine = malloc((((size_t) longueur_chaine_traitee) + 2)
                         * sizeof(unsigned char))) == NULL)                          * sizeof(unsigned char))) == NULL)
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =
Line 3192  formateur_fichier(struct_processus *s_et Line 3195  formateur_fichier(struct_processus *s_et
                     return(NULL);                      return(NULL);
                 }                  }
   
                 chaine[0] = 0x88;                  chaine[0] = (unsigned char) 0x88;
                 chaine[1] = (unsigned char) (longueur_chaine_traitee & 0xFF);                  chaine[1] = (unsigned char) (longueur_chaine_traitee & 0xFF);
   
                 memcpy(chaine + 2, chaine_sauvegarde, longueur_chaine_traitee);                  memcpy(chaine + 2, chaine_sauvegarde,
                           (size_t) longueur_chaine_traitee);
                 longueur_totale = longueur_chaine_traitee + 2;                  longueur_totale = longueur_chaine_traitee + 2;
             }              }
             else if (longueur_chaine_traitee < (1LL << 16))              else if (longueur_chaine_traitee < (1LL << 16))
             {              {
                 if ((chaine = malloc((longueur_chaine_traitee + 3)                  if ((chaine = malloc((((size_t) longueur_chaine_traitee) + 3)
                         * sizeof(unsigned char))) == NULL)                          * sizeof(unsigned char))) == NULL)
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =
Line 3208  formateur_fichier(struct_processus *s_et Line 3212  formateur_fichier(struct_processus *s_et
                     return(NULL);                      return(NULL);
                 }                  }
   
                 chaine[0] = 0x89;                  chaine[0] = (unsigned char) 0x89;
                 chaine[1] = (unsigned char) ((longueur_chaine_traitee >> 8)                  chaine[1] = (unsigned char) ((longueur_chaine_traitee >> 8)
                         & 0xFF);                          & 0xFF);
                 chaine[2] = (unsigned char) (longueur_chaine_traitee & 0xFF);                  chaine[2] = (unsigned char) (longueur_chaine_traitee & 0xFF);
   
                 memcpy(chaine + 3, chaine_sauvegarde, longueur_chaine_traitee);                  memcpy(chaine + 3, chaine_sauvegarde,
                           (size_t) longueur_chaine_traitee);
                 longueur_totale = longueur_chaine_traitee + 3;                  longueur_totale = longueur_chaine_traitee + 3;
             }              }
             else if (longueur_chaine_traitee < (1LL << 32))              else if (longueur_chaine_traitee < (1LL << 32))
             {              {
                 if ((chaine = malloc((longueur_chaine_traitee + 5)                  if ((chaine = malloc((((size_t) longueur_chaine_traitee) + 5)
                         * sizeof(unsigned char))) == NULL)                          * sizeof(unsigned char))) == NULL)
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =
Line 3226  formateur_fichier(struct_processus *s_et Line 3231  formateur_fichier(struct_processus *s_et
                     return(NULL);                      return(NULL);
                 }                  }
   
                 chaine[0] = 0x8A;                  chaine[0] = (unsigned char) 0x8A;
                 chaine[1] = (unsigned char) ((longueur_chaine_traitee >> 24)                  chaine[1] = (unsigned char) ((longueur_chaine_traitee >> 24)
                         & 0xFF);                          & 0xFF);
                 chaine[2] = (unsigned char) ((longueur_chaine_traitee >> 16)                  chaine[2] = (unsigned char) ((longueur_chaine_traitee >> 16)
Line 3235  formateur_fichier(struct_processus *s_et Line 3240  formateur_fichier(struct_processus *s_et
                         & 0xFF);                          & 0xFF);
                 chaine[4] = (unsigned char) (longueur_chaine_traitee & 0xFF);                  chaine[4] = (unsigned char) (longueur_chaine_traitee & 0xFF);
   
                 memcpy(chaine + 5, chaine_sauvegarde, longueur_chaine_traitee);                  memcpy(chaine + 5, chaine_sauvegarde,
                           (size_t) longueur_chaine_traitee);
                 longueur_totale = longueur_chaine_traitee + 5;                  longueur_totale = longueur_chaine_traitee + 5;
             }              }
             else              else
             {              {
                 if ((chaine = malloc((longueur_chaine_traitee + 9)                  if ((chaine = malloc((((size_t) longueur_chaine_traitee) + 9)
                         * sizeof(unsigned char))) == NULL)                          * sizeof(unsigned char))) == NULL)
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =
Line 3248  formateur_fichier(struct_processus *s_et Line 3254  formateur_fichier(struct_processus *s_et
                     return(NULL);                      return(NULL);
                 }                  }
   
                 chaine[0] = 0x8B;                  chaine[0] = (unsigned char) 0x8B;
                 chaine[1] = (unsigned char) ((longueur_chaine_traitee >> 56)                  chaine[1] = (unsigned char) ((longueur_chaine_traitee >> 56)
                         & 0xFF);                          & 0xFF);
                 chaine[2] = (unsigned char) ((longueur_chaine_traitee >> 48)                  chaine[2] = (unsigned char) ((longueur_chaine_traitee >> 48)
Line 3265  formateur_fichier(struct_processus *s_et Line 3271  formateur_fichier(struct_processus *s_et
                         & 0xFF);                          & 0xFF);
                 chaine[8] = (unsigned char) (longueur_chaine_traitee & 0xFF);                  chaine[8] = (unsigned char) (longueur_chaine_traitee & 0xFF);
   
                 memcpy(chaine + 9, chaine_sauvegarde, longueur_chaine_traitee);                  memcpy(chaine + 9, chaine_sauvegarde,
                           (size_t) longueur_chaine_traitee);
                 longueur_totale = longueur_chaine_traitee + 9;                  longueur_totale = longueur_chaine_traitee + 9;
             }              }
   
Line 3349  formateur_fichier(struct_processus *s_et Line 3356  formateur_fichier(struct_processus *s_et
                 return(NULL);                  return(NULL);
             }              }
   
             longueur_fonction = strlen((*((struct_fonction *) (*s_objet).objet))              longueur_fonction = (integer8) strlen((*((struct_fonction *)
                     .nom_fonction);                      (*s_objet).objet)).nom_fonction);
   
             if (longueur_fonction < (1LL << 3))              if (longueur_fonction < (1LL << 3))
             {              {
                 if ((chaine = malloc((1 + longueur_fonction + 8)                  if ((chaine = malloc((1 + ((size_t) longueur_fonction) + 8)
                         * sizeof(unsigned char)))== NULL)                          * sizeof(unsigned char)))== NULL)
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =
Line 3362  formateur_fichier(struct_processus *s_et Line 3369  formateur_fichier(struct_processus *s_et
                     return(NULL);                      return(NULL);
                 }                  }
   
                 chaine[0] = 0xE0 | (longueur_fonction & 0x7);                  chaine[0] = (unsigned char) (0xE0 | (longueur_fonction & 0x7));
   
                 strcpy(chaine + 1, (*((struct_fonction *) (*s_objet).objet))                  strcpy(chaine + 1, (*((struct_fonction *) (*s_objet).objet))
                         .nom_fonction);                          .nom_fonction);
Line 3370  formateur_fichier(struct_processus *s_et Line 3377  formateur_fichier(struct_processus *s_et
             }              }
             else if (longueur_fonction < (1LL << 8))              else if (longueur_fonction < (1LL << 8))
             {              {
                 if ((chaine = malloc((2 + longueur_fonction + 8)                  if ((chaine = malloc((2 + ((size_t) longueur_fonction) + 8)
                         * sizeof(unsigned char)))== NULL)                          * sizeof(unsigned char)))== NULL)
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =
Line 3378  formateur_fichier(struct_processus *s_et Line 3385  formateur_fichier(struct_processus *s_et
                     return(NULL);                      return(NULL);
                 }                  }
   
                 chaine[0] = 0xE0 | 0x08;                  chaine[0] = (unsigned char) (0xE0 | 0x08);
                 chaine[1] = (unsigned char) (longueur_fonction & 0xFF);                  chaine[1] = (unsigned char) (longueur_fonction & 0xFF);
   
                 strcpy(chaine + 2, (*((struct_fonction *) (*s_objet).objet))                  strcpy(chaine + 2, (*((struct_fonction *) (*s_objet).objet))
Line 3387  formateur_fichier(struct_processus *s_et Line 3394  formateur_fichier(struct_processus *s_et
             }              }
             else if (longueur_fonction < (1LL << 16))              else if (longueur_fonction < (1LL << 16))
             {              {
                 if ((chaine = malloc((3 + longueur_fonction + 8)                  if ((chaine = malloc((3 + ((size_t) longueur_fonction) + 8)
                         * sizeof(unsigned char)))== NULL)                          * sizeof(unsigned char)))== NULL)
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =
Line 3395  formateur_fichier(struct_processus *s_et Line 3402  formateur_fichier(struct_processus *s_et
                     return(NULL);                      return(NULL);
                 }                  }
   
                 chaine[0] = 0xE0 | 0x09;                  chaine[0] = (unsigned char ) (0xE0 | 0x09);
                 chaine[1] = (unsigned char) ((longueur_fonction >> 8) & 0xFF);                  chaine[1] = (unsigned char) ((longueur_fonction >> 8) & 0xFF);
                 chaine[2] = (unsigned char) (longueur_fonction & 0xFF);                  chaine[2] = (unsigned char) (longueur_fonction & 0xFF);
   
Line 3405  formateur_fichier(struct_processus *s_et Line 3412  formateur_fichier(struct_processus *s_et
             }              }
             else if (longueur_fonction < (1LL << 32))              else if (longueur_fonction < (1LL << 32))
             {              {
                 if ((chaine = malloc((5 + longueur_fonction + 8)                  if ((chaine = malloc((5 + ((size_t) longueur_fonction) + 8)
                         * sizeof(unsigned char)))== NULL)                          * sizeof(unsigned char)))== NULL)
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =
Line 3413  formateur_fichier(struct_processus *s_et Line 3420  formateur_fichier(struct_processus *s_et
                     return(NULL);                      return(NULL);
                 }                  }
   
                 chaine[0] = 0xE0 | 0x0A;                  chaine[0] = (unsigned char) (0xE0 | 0x0A);
                 chaine[1] = (unsigned char) ((longueur_fonction >> 24) & 0xFF);                  chaine[1] = (unsigned char) ((longueur_fonction >> 24) & 0xFF);
                 chaine[2] = (unsigned char) ((longueur_fonction >> 16) & 0xFF);                  chaine[2] = (unsigned char) ((longueur_fonction >> 16) & 0xFF);
                 chaine[3] = (unsigned char) ((longueur_fonction >> 8) & 0xFF);                  chaine[3] = (unsigned char) ((longueur_fonction >> 8) & 0xFF);
Line 3425  formateur_fichier(struct_processus *s_et Line 3432  formateur_fichier(struct_processus *s_et
             }              }
             else              else
             {              {
                 if ((chaine = malloc((9 + longueur_fonction + 8)                  if ((chaine = malloc((9 + ((size_t) longueur_fonction) + 8)
                         * sizeof(unsigned char)))== NULL)                          * sizeof(unsigned char)))== NULL)
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =
Line 3433  formateur_fichier(struct_processus *s_et Line 3440  formateur_fichier(struct_processus *s_et
                     return(NULL);                      return(NULL);
                 }                  }
   
                 chaine[0] = 0xE0 | 0x0B;                  chaine[0] = (unsigned char) (0xE0 | 0x0B);
                 chaine[1] = (unsigned char) ((longueur_fonction >> 56) & 0xFF);                  chaine[1] = (unsigned char) ((longueur_fonction >> 56) & 0xFF);
                 chaine[2] = (unsigned char) ((longueur_fonction >> 48) & 0xFF);                  chaine[2] = (unsigned char) ((longueur_fonction >> 48) & 0xFF);
                 chaine[3] = (unsigned char) ((longueur_fonction >> 40) & 0xFF);                  chaine[3] = (unsigned char) ((longueur_fonction >> 40) & 0xFF);
Line 3506  formateur_fichier(struct_processus *s_et Line 3513  formateur_fichier(struct_processus *s_et
   
             if (longueur_liste < (1LL << 3))              if (longueur_liste < (1LL << 3))
             {              {
                 chaine[0] = type_binaire | (longueur_liste & 0x7);                  chaine[0] = (unsigned char) (type_binaire |
                           (longueur_liste & 0x7));
             }              }
             else if (longueur_liste < (1LL << 8))              else if (longueur_liste < (1LL << 8))
             {              {
                 chaine[0] = type_binaire | 0x08;                  chaine[0] = (unsigned char) (type_binaire | 0x08);
             }              }
             else if (longueur_liste < (1LL << 16))              else if (longueur_liste < (1LL << 16))
             {              {
                 chaine[0] = type_binaire | 0x09;                  chaine[0] = (unsigned char ) (type_binaire | 0x09);
             }              }
             else if (longueur_liste < (1LL << 32))              else if (longueur_liste < (1LL << 32))
             {              {
                 chaine[0] = type_binaire | 0x0A;                  chaine[0] = (unsigned char) (type_binaire | 0x0A);
             }              }
             else              else
             {              {
                 chaine[0] = type_binaire | 0x0B;                  chaine[0] = (unsigned char) (type_binaire | 0x0B);
             }              }
   
             longueur_totale = 1;              longueur_totale = 1;
Line 3535  formateur_fichier(struct_processus *s_et Line 3543  formateur_fichier(struct_processus *s_et
                     {                      {
                         longueur_totale += 1;                          longueur_totale += 1;
   
                         if ((chaine = realloc(chaine, longueur_totale *                          if ((chaine = realloc(chaine,
                                   ((size_t) longueur_totale) *
                                 sizeof(unsigned char))) == NULL)                                  sizeof(unsigned char))) == NULL)
                         {                          {
                             (*s_etat_processus).erreur_systeme =                              (*s_etat_processus).erreur_systeme =
Line 3552  formateur_fichier(struct_processus *s_et Line 3561  formateur_fichier(struct_processus *s_et
                     {                      {
                         longueur_totale += 2;                          longueur_totale += 2;
   
                         if ((chaine = realloc(chaine, longueur_totale *                          if ((chaine = realloc(chaine,
                                   ((size_t) longueur_totale) *
                                 sizeof(unsigned char))) == NULL)                                  sizeof(unsigned char))) == NULL)
                         {                          {
                             (*s_etat_processus).erreur_systeme =                              (*s_etat_processus).erreur_systeme =
Line 3571  formateur_fichier(struct_processus *s_et Line 3581  formateur_fichier(struct_processus *s_et
                     {                      {
                         longueur_totale += 4;                          longueur_totale += 4;
   
                         if ((chaine = realloc(chaine, longueur_totale *                          if ((chaine = realloc(chaine,
                                   ((size_t) longueur_totale) *
                                 sizeof(unsigned char))) == NULL)                                  sizeof(unsigned char))) == NULL)
                         {                          {
                             (*s_etat_processus).erreur_systeme =                              (*s_etat_processus).erreur_systeme =
Line 3594  formateur_fichier(struct_processus *s_et Line 3605  formateur_fichier(struct_processus *s_et
                     {                      {
                         longueur_totale += 8;                          longueur_totale += 8;
   
                         if ((chaine = realloc(chaine, longueur_totale *                          if ((chaine = realloc(chaine,
                                   ((size_t) longueur_totale) *
                                 sizeof(unsigned char))) == NULL)                                  sizeof(unsigned char))) == NULL)
                         {                          {
                             (*s_etat_processus).erreur_systeme =                              (*s_etat_processus).erreur_systeme =
Line 3666  formateur_fichier(struct_processus *s_et Line 3678  formateur_fichier(struct_processus *s_et
                         }                          }
                     }                      }
   
                     if ((chaine = realloc(chaine, (longueur_totale +                      if ((chaine = realloc(chaine, ((size_t) (longueur_totale +
                             (*longueur_effective)) * sizeof(unsigned char)))                              (*longueur_effective))) * sizeof(unsigned char)))
                             == NULL)                              == NULL)
                     {                      {
                         (*s_etat_processus).erreur_systeme =                          (*s_etat_processus).erreur_systeme =
Line 3676  formateur_fichier(struct_processus *s_et Line 3688  formateur_fichier(struct_processus *s_et
                     }                      }
   
                     memcpy(&(chaine[longueur_totale]), chaine_formatee,                      memcpy(&(chaine[longueur_totale]), chaine_formatee,
                             (*longueur_effective));                              (size_t) (*longueur_effective));
                     longueur_totale += (*longueur_effective);                      longueur_totale += (*longueur_effective);
                     free(chaine_formatee);                      free(chaine_formatee);
                 }                  }
Line 3753  formateur_fichier(struct_processus *s_et Line 3765  formateur_fichier(struct_processus *s_et
   
                     if (strcmp(&(format_chaine[position_1]), "(*)") != 0)                      if (strcmp(&(format_chaine[position_1]), "(*)") != 0)
                     {                      {
                         if (sscanf(&(format_chaine[position_1]), "%ld",                          if (sscanf(&(format_chaine[position_1]), "%lld",
                                 &longueur) != 1)                                  &longueur) != 1)
                         {                          {
                             free(chaine);                              free(chaine);
Line 3785  formateur_fichier(struct_processus *s_et Line 3797  formateur_fichier(struct_processus *s_et
                     }                      }
   
                     if ((chaine = realloc(chaine,                      if ((chaine = realloc(chaine,
                             (longueur_totale + (*longueur_effective))                              ((size_t) (longueur_totale + (*longueur_effective)))
                             * sizeof(unsigned char))) == NULL)                              * sizeof(unsigned char))) == NULL)
                     {                      {
                         (*s_etat_processus).erreur_systeme =                          (*s_etat_processus).erreur_systeme =
Line 3794  formateur_fichier(struct_processus *s_et Line 3806  formateur_fichier(struct_processus *s_et
                     }                      }
   
                     memcpy(&(chaine[longueur_totale]), chaine_formatee,                      memcpy(&(chaine[longueur_totale]), chaine_formatee,
                             (*longueur_effective));                              (size_t) (*longueur_effective));
                     longueur_totale += (*longueur_effective);                      longueur_totale += (*longueur_effective);
                     free(chaine_formatee);                      free(chaine_formatee);
                 }                  }
Line 3876  formateur_fichier(struct_processus *s_et Line 3888  formateur_fichier(struct_processus *s_et
                 return(NULL);                  return(NULL);
             }              }
   
             longueur_fonction = strlen((*((struct_nom *) (*s_objet).objet))              longueur_fonction = (integer8) strlen((*((struct_nom *)
                     .nom);                      (*s_objet).objet)).nom);
   
             if (longueur_fonction < (1LL << 3))              if (longueur_fonction < (1LL << 3))
             {              {
                 if ((chaine = malloc((1 + longueur_fonction + 1)                  if ((chaine = malloc((1 + ((size_t) longueur_fonction) + 1)
                         * sizeof(unsigned char)))== NULL)                          * sizeof(unsigned char)))== NULL)
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =
Line 3889  formateur_fichier(struct_processus *s_et Line 3901  formateur_fichier(struct_processus *s_et
                     return(NULL);                      return(NULL);
                 }                  }
   
                 chaine[0] = 0x50 | (longueur_fonction & 0x7);                  chaine[0] = (unsigned char) (0x50 | (longueur_fonction & 0x7));
   
                 strcpy(chaine + 1, (*((struct_nom *) (*s_objet).objet)).nom);                  strcpy(chaine + 1, (*((struct_nom *) (*s_objet).objet)).nom);
                 (*longueur_effective) = longueur_fonction + 2;                  (*longueur_effective) = longueur_fonction + 2;
             }              }
             else if (longueur_fonction < (1LL << 8))              else if (longueur_fonction < (1LL << 8))
             {              {
                 if ((chaine = malloc((2 + longueur_fonction + 1)                  if ((chaine = malloc((2 + ((size_t) longueur_fonction) + 1)
                         * sizeof(unsigned char)))== NULL)                          * sizeof(unsigned char)))== NULL)
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =
Line 3904  formateur_fichier(struct_processus *s_et Line 3916  formateur_fichier(struct_processus *s_et
                     return(NULL);                      return(NULL);
                 }                  }
   
                 chaine[0] = 0x50 | 0x08;                  chaine[0] = (unsigned char) (0x50 | 0x08);
                 chaine[1] = (unsigned char) (longueur_fonction & 0xFF);                  chaine[1] = (unsigned char) (longueur_fonction & 0xFF);
   
                 strcpy(chaine + 2, (*((struct_nom *) (*s_objet).objet)).nom);                  strcpy(chaine + 2, (*((struct_nom *) (*s_objet).objet)).nom);
Line 3912  formateur_fichier(struct_processus *s_et Line 3924  formateur_fichier(struct_processus *s_et
             }              }
             else if (longueur_fonction < (1LL << 16))              else if (longueur_fonction < (1LL << 16))
             {              {
                 if ((chaine = malloc((3 + longueur_fonction + 1)                  if ((chaine = malloc((3 + ((size_t) longueur_fonction) + 1)
                         * sizeof(unsigned char)))== NULL)                          * sizeof(unsigned char)))== NULL)
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =
Line 3920  formateur_fichier(struct_processus *s_et Line 3932  formateur_fichier(struct_processus *s_et
                     return(NULL);                      return(NULL);
                 }                  }
   
                 chaine[0] = 0x50 | 0x09;                  chaine[0] = (unsigned char) (0x50 | 0x09);
                 chaine[1] = (unsigned char) ((longueur_fonction >> 8) & 0xFF);                  chaine[1] = (unsigned char) ((longueur_fonction >> 8) & 0xFF);
                 chaine[2] = (unsigned char) (longueur_fonction & 0xFF);                  chaine[2] = (unsigned char) (longueur_fonction & 0xFF);
   
Line 3929  formateur_fichier(struct_processus *s_et Line 3941  formateur_fichier(struct_processus *s_et
             }              }
             else if (longueur_fonction < (1LL << 32))              else if (longueur_fonction < (1LL << 32))
             {              {
                 if ((chaine = malloc((5 + longueur_fonction + 1)                  if ((chaine = malloc((5 + ((size_t) longueur_fonction) + 1)
                         * sizeof(unsigned char)))== NULL)                          * sizeof(unsigned char)))== NULL)
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =
Line 3937  formateur_fichier(struct_processus *s_et Line 3949  formateur_fichier(struct_processus *s_et
                     return(NULL);                      return(NULL);
                 }                  }
   
                 chaine[0] = 0xE0 | 0x0A;                  chaine[0] = (unsigned char) (0xE0 | 0x0A);
                 chaine[1] = (unsigned char) ((longueur_fonction >> 24) & 0xFF);                  chaine[1] = (unsigned char) ((longueur_fonction >> 24) & 0xFF);
                 chaine[2] = (unsigned char) ((longueur_fonction >> 16) & 0xFF);                  chaine[2] = (unsigned char) ((longueur_fonction >> 16) & 0xFF);
                 chaine[3] = (unsigned char) ((longueur_fonction >> 8) & 0xFF);                  chaine[3] = (unsigned char) ((longueur_fonction >> 8) & 0xFF);
Line 3948  formateur_fichier(struct_processus *s_et Line 3960  formateur_fichier(struct_processus *s_et
             }              }
             else              else
             {              {
                 if ((chaine = malloc((9 + longueur_fonction + 1)                  if ((chaine = malloc((9 + ((size_t) longueur_fonction) + 1)
                         * sizeof(unsigned char)))== NULL)                          * sizeof(unsigned char)))== NULL)
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =
Line 3956  formateur_fichier(struct_processus *s_et Line 3968  formateur_fichier(struct_processus *s_et
                     return(NULL);                      return(NULL);
                 }                  }
   
                 chaine[0] = 0xE0 | 0x0B;                  chaine[0] = (unsigned char) (0xE0 | 0x0B);
                 chaine[1] = (unsigned char) ((longueur_fonction >> 56) & 0xFF);                  chaine[1] = (unsigned char) ((longueur_fonction >> 56) & 0xFF);
                 chaine[2] = (unsigned char) ((longueur_fonction >> 48) & 0xFF);                  chaine[2] = (unsigned char) ((longueur_fonction >> 48) & 0xFF);
                 chaine[3] = (unsigned char) ((longueur_fonction >> 40) & 0xFF);                  chaine[3] = (unsigned char) ((longueur_fonction >> 40) & 0xFF);
Line 4051  formateur_fichier(struct_processus *s_et Line 4063  formateur_fichier(struct_processus *s_et
   
             if (longueur_totale < (((integer8) 1) << 7))              if (longueur_totale < (((integer8) 1) << 7))
             {              {
                 tampon[0] = ((longueur_totale + 1) << 1) & 0xFF;                  tampon[0] = (unsigned char) (((longueur_totale + 1) << 1)
                           & 0xFF);
   
                 if ((chaine = realloc(chaine, (longueur_totale + 1)                  if ((chaine = realloc(chaine, (((size_t) longueur_totale) + 1)
                         * sizeof(unsigned char))) == NULL)                          * sizeof(unsigned char))) == NULL)
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =
Line 4075  formateur_fichier(struct_processus *s_et Line 4088  formateur_fichier(struct_processus *s_et
                             || (i == 6))                              || (i == 6))
                     {                      {
                         // LSB (4 bits de poids fort)                          // LSB (4 bits de poids fort)
                         tampon[0] = (longueur_totale & 0xF0)                          tampon[0] = (unsigned char) ((longueur_totale & 0xF0)
                                 | 0x1 /* longueur supérieure à 7 bits */                                  | 0x1 /* longueur supérieure à 7 bits */
                                 | ((i + 1) << 1);                                  | ((i + 1) << 1));
   
                         for(j = 0; j <= i; j++)                          for(j = 0; j <= i; j++)
                         {                          {
                             tampon[(i - j) + 1] =                              tampon[(i - j) + 1] = (unsigned char)
                                     (longueur_totale >> (8 * (j + 1)))                                      ((longueur_totale >> (8 * (j + 1)))
                                     & 0xFF;                                      & 0xFF);
                         }                          }
   
                         // LSB (4 bits de poids faible)                          // LSB (4 bits de poids faible)
                         tampon[i + 2] = ((longueur_totale & 0x0F) << 4)                          tampon[i + 2] = (unsigned char)
                                   (((longueur_totale & 0x0F) << 4)
                                 | 0x1 /* longueur supérieure à 7 bits */                                  | 0x1 /* longueur supérieure à 7 bits */
                                 | ((i + 1) << 1);                                  | ((i + 1) << 1));
                         break;                          break;
                     }                      }
                 }                  }
   
                 if ((chaine = realloc(chaine, (longueur_totale + 3)                  if ((chaine = realloc(chaine, (((size_t) longueur_totale) + 3)
                         * sizeof(unsigned char))) == NULL)                          * sizeof(unsigned char))) == NULL)
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =
Line 4143  formateur_fichier(struct_processus *s_et Line 4157  formateur_fichier(struct_processus *s_et
 unsigned char *  unsigned char *
 formateur_fichier_nombre(struct_processus *s_etat_processus,  formateur_fichier_nombre(struct_processus *s_etat_processus,
         void *valeur_numerique, unsigned char type,          void *valeur_numerique, unsigned char type,
         long longueur, long longueur_champ, unsigned char format)          integer8 longueur, integer8 longueur_champ, unsigned char format)
 {  {
     unsigned char               *chaine;      unsigned char               *chaine;
     unsigned char               *construction_chaine;      unsigned char               *construction_chaine;
Line 4283  formateur_fichier_nombre(struct_processu Line 4297  formateur_fichier_nombre(struct_processu
 unsigned char *  unsigned char *
 formateur_fichier_reel(struct_processus *s_etat_processus,  formateur_fichier_reel(struct_processus *s_etat_processus,
         void *valeur_numerique, unsigned char type,          void *valeur_numerique, unsigned char type,
         long longueur, long longueur_champ,          integer8 longueur, integer8 longueur_champ,
         unsigned char format_sortie)          unsigned char format_sortie)
 {  {
     real8                   mantisse;      real8                   mantisse;
Line 4328  formateur_fichier_reel(struct_processus Line 4342  formateur_fichier_reel(struct_processus
             exposant = 0;              exposant = 0;
         }          }
   
         mantisse = (*((real8 *) valeur_numerique)) / pow(10, exposant);          mantisse = (*((real8 *) valeur_numerique)) / pow(10, (double) exposant);
     }      }
     else      else
     {      {
Line 4336  formateur_fichier_reel(struct_processus Line 4350  formateur_fichier_reel(struct_processus
   
         if (tampon_entier > ((integer8) 0))          if (tampon_entier > ((integer8) 0))
         {          {
             exposant = (long) floor(log10(tampon_entier));              exposant = (long) floor(log10((double) tampon_entier));
         }          }
         else if (tampon_entier < ((integer8) 0))          else if (tampon_entier < ((integer8) 0))
         {          {
             exposant = (long) floor(log10(-tampon_entier));              exposant = (long) floor(log10((double) -tampon_entier));
         }          }
         else          else
         {          {
             exposant = 0;              exposant = 0;
         }          }
   
         mantisse = (*((integer8 *) valeur_numerique)) / pow(10, exposant);          mantisse = ((real8) (*((integer8 *) valeur_numerique))) /
                   pow(10, (double) exposant);
     }      }
   
     longueur_utile = longueur;      longueur_utile = longueur;
Line 4411  formateur_fichier_reel(struct_processus Line 4426  formateur_fichier_reel(struct_processus
   
         sprintf(format, "%%.%luf", longueur_utile);          sprintf(format, "%%.%luf", longueur_utile);
   
         sprintf(tampon, format, (mantisse * pow(10, exposant)));          sprintf(tampon, format, (mantisse * pow(10, (double) exposant)));
         strcpy(chaine, tampon);          strcpy(chaine, tampon);
     }      }
     else if (strcmp(mode, "ENG") == 0)      else if (strcmp(mode, "ENG") == 0)
Line 4434  formateur_fichier_reel(struct_processus Line 4449  formateur_fichier_reel(struct_processus
         longueur_utile -= correction;          longueur_utile -= correction;
         sprintf(format, "%%.%luf", longueur_utile);          sprintf(format, "%%.%luf", longueur_utile);
   
         sprintf(tampon, format, (mantisse * pow(10, correction)));          sprintf(tampon, format, (mantisse * pow(10, (double) correction)));
         strcpy(chaine, tampon);          strcpy(chaine, tampon);
         strcat(chaine, "E");          strcat(chaine, "E");
         sprintf(tampon, "%ld", (exposant - correction));          sprintf(tampon, "%ld", (exposant - correction));
Line 4510  formateur_fichier_reel(struct_processus Line 4525  formateur_fichier_reel(struct_processus
 unsigned char *  unsigned char *
 formateur_fichier_binaire_nombre(struct_processus *s_etat_processus,  formateur_fichier_binaire_nombre(struct_processus *s_etat_processus,
         void *valeur_numerique, unsigned char type_entree,          void *valeur_numerique, unsigned char type_entree,
         unsigned char type, long longueur, long *longueur_conversion)          unsigned char type, integer8 longueur, integer8 *longueur_conversion)
 {  {
     unsigned char               *chaine;      unsigned char               *chaine;
   
Line 4544  formateur_fichier_binaire_nombre(struct_ Line 4559  formateur_fichier_binaire_nombre(struct_
                     }                      }
   
                     (*longueur_conversion) = 2;                      (*longueur_conversion) = 2;
                     chaine[0] = 0x10;                      chaine[0] = (unsigned char) 0x10;
                     chaine[1] = (*((integer8 *) valeur_numerique)) & 0xFF;                      chaine[1] = (unsigned char) ((*((integer8 *)
                               valeur_numerique)) & 0xFF);
                     break;                      break;
                 }                  }
   
Line 4567  formateur_fichier_binaire_nombre(struct_ Line 4583  formateur_fichier_binaire_nombre(struct_
                     }                      }
   
                     (*longueur_conversion) = 3;                      (*longueur_conversion) = 3;
                     chaine[0] = 0x11;                      chaine[0] = (unsigned char) 0x11;
                     chaine[1] = ((*((integer8 *) valeur_numerique)) >> 8)                      chaine[1] = ((unsigned char) ((*((integer8 *)
                             & 0xFF;                              valeur_numerique)) >> 8) & 0xFF);
                     chaine[2] = (*((integer8 *) valeur_numerique)) & 0xFF;                      chaine[2] = (unsigned char) ((*((integer8 *)
                               valeur_numerique)) & 0xFF);
                     break;                      break;
                 }                  }
   
Line 4592  formateur_fichier_binaire_nombre(struct_ Line 4609  formateur_fichier_binaire_nombre(struct_
                     }                      }
   
                     (*longueur_conversion) = 5;                      (*longueur_conversion) = 5;
                     chaine[0] = 0x12;                      chaine[0] = (unsigned char) 0x12;
                     chaine[1] = ((*((integer8 *) valeur_numerique)) >> 24)                      chaine[1] = (unsigned char) (((*((integer8 *)
                             & 0xFF;                              valeur_numerique)) >> 24) & 0xFF);
                     chaine[2] = ((*((integer8 *) valeur_numerique)) >> 16)                      chaine[2] = (unsigned char) (((*((integer8 *)
                             & 0xFF;                              valeur_numerique)) >> 16) & 0xFF);
                     chaine[3] = ((*((integer8 *) valeur_numerique)) >> 8)                      chaine[3] = (unsigned char) (((*((integer8 *)
                             & 0xFF;                              valeur_numerique)) >> 8) & 0xFF);
                     chaine[4] = (*((integer8 *) valeur_numerique)) & 0xFF;                      chaine[4] = (unsigned char) ((*((integer8 *)
                               valeur_numerique)) & 0xFF);
                     break;                      break;
                 }                  }
   
Line 4613  formateur_fichier_binaire_nombre(struct_ Line 4631  formateur_fichier_binaire_nombre(struct_
                     }                      }
   
                     (*longueur_conversion) = 9;                      (*longueur_conversion) = 9;
                     chaine[0] = 0x13;                      chaine[0] = (unsigned char) 0x13;
                     chaine[1] = ((*((integer8 *) valeur_numerique)) >> 56)                      chaine[1] = (unsigned char) (((*((integer8 *)
                             & 0xFF;                              valeur_numerique)) >> 56) & 0xFF);
                     chaine[2] = ((*((integer8 *) valeur_numerique)) >> 48)                      chaine[2] = (unsigned char) (((*((integer8 *)
                             & 0xFF;                              valeur_numerique)) >> 48) & 0xFF);
                     chaine[3] = ((*((integer8 *) valeur_numerique)) >> 40)                      chaine[3] = (unsigned char) (((*((integer8 *)
                             & 0xFF;                              valeur_numerique)) >> 40) & 0xFF);
                     chaine[4] = ((*((integer8 *) valeur_numerique)) >> 32)                      chaine[4] = (unsigned char) (((*((integer8 *)
                             & 0xFF;                              valeur_numerique)) >> 32) & 0xFF);
                     chaine[5] = ((*((integer8 *) valeur_numerique)) >> 24)                      chaine[5] = (unsigned char) (((*((integer8 *)
                             & 0xFF;                              valeur_numerique)) >> 24) & 0xFF);
                     chaine[6] = ((*((integer8 *) valeur_numerique)) >> 16)                      chaine[6] = (unsigned char) (((*((integer8 *)
                             & 0xFF;                              valeur_numerique)) >> 16) & 0xFF);
                     chaine[7] = ((*((integer8 *) valeur_numerique)) >> 8)                      chaine[7] = (unsigned char) (((*((integer8 *)
                             & 0xFF;                              valeur_numerique)) >> 8) & 0xFF);
                     chaine[8] = (*((integer8 *) valeur_numerique)) & 0xFF;                      chaine[8] = (unsigned char) ((*((integer8 *)
                               valeur_numerique)) & 0xFF);
                     break;                      break;
                 }                  }
   
Line 4665  formateur_fichier_binaire_nombre(struct_ Line 4684  formateur_fichier_binaire_nombre(struct_
                     }                      }
                     else if (type_entree == 'I')                      else if (type_entree == 'I')
                     {                      {
                         valeur = (*((integer8 *) valeur_numerique));                          valeur = (real8) (*((integer8 *) valeur_numerique));
                     }                      }
                     else                      else
                     {                      {
Line 4702  formateur_fichier_binaire_nombre(struct_ Line 4721  formateur_fichier_binaire_nombre(struct_
   
                     eq4.r4 = (real4) valeur;                      eq4.r4 = (real4) valeur;
                     (*longueur_conversion) = 5;                      (*longueur_conversion) = 5;
                     chaine[0] = 0x14;                      chaine[0] = (unsigned char) 0x14;
                     chaine[1] = (eq4.i4 >> 24) & 0xFF;                      chaine[1] = (unsigned char) ((eq4.i4 >> 24) & 0xFF);
                     chaine[2] = (eq4.i4 >> 16) & 0xFF;                      chaine[2] = (unsigned char) ((eq4.i4 >> 16) & 0xFF);
                     chaine[3] = (eq4.i4 >> 8) & 0xFF;                      chaine[3] = (unsigned char) ((eq4.i4 >> 8) & 0xFF);
                     chaine[4] = eq4.i4 & 0xFF;                      chaine[4] = (unsigned char) (eq4.i4 & 0xFF);
                     break;                      break;
                 }                  }
   
Line 4727  formateur_fichier_binaire_nombre(struct_ Line 4746  formateur_fichier_binaire_nombre(struct_
   
                     if (type_entree == 'I')                      if (type_entree == 'I')
                     {                      {
                         eq8.r8 = (*((integer8 *) valeur_numerique));                          eq8.r8 = (real8) (*((integer8 *) valeur_numerique));
                     }                      }
                     else if (type_entree == 'R')                      else if (type_entree == 'R')
                     {                      {
Line 4741  formateur_fichier_binaire_nombre(struct_ Line 4760  formateur_fichier_binaire_nombre(struct_
                     }                      }
   
                     (*longueur_conversion) = 9;                      (*longueur_conversion) = 9;
                     chaine[0] = 0x15;                      chaine[0] = (unsigned char) (0x15);
                     chaine[1] = (eq8.i8 >> 56) & 0xFF;                      chaine[1] = (unsigned char) ((eq8.i8 >> 56) & 0xFF);
                     chaine[2] = (eq8.i8 >> 48) & 0xFF;                      chaine[2] = (unsigned char) ((eq8.i8 >> 48) & 0xFF);
                     chaine[3] = (eq8.i8 >> 40) & 0xFF;                      chaine[3] = (unsigned char) ((eq8.i8 >> 40) & 0xFF);
                     chaine[4] = (eq8.i8 >> 32) & 0xFF;                      chaine[4] = (unsigned char) ((eq8.i8 >> 32) & 0xFF);
                     chaine[5] = (eq8.i8 >> 24) & 0xFF;                      chaine[5] = (unsigned char) ((eq8.i8 >> 24) & 0xFF);
                     chaine[6] = (eq8.i8 >> 16) & 0xFF;                      chaine[6] = (unsigned char) ((eq8.i8 >> 16) & 0xFF);
                     chaine[7] = (eq8.i8 >> 8) & 0xFF;                      chaine[7] = (unsigned char) ((eq8.i8 >> 8) & 0xFF);
                     chaine[8] = eq8.i8 & 0xFF;                      chaine[8] = (unsigned char) (eq8.i8 & 0xFF);
                     break;                      break;
                 }                  }
   
Line 4773  formateur_fichier_binaire_nombre(struct_ Line 4792  formateur_fichier_binaire_nombre(struct_
                     unsigned char       *partie_reelle;                      unsigned char       *partie_reelle;
                     unsigned char       *partie_imaginaire;                      unsigned char       *partie_imaginaire;
   
                     long                limag;                      integer8            limag;
                     long                lreel;                      integer8            lreel;
   
                     real8               zero;                      real8               zero;
   
Line 4847  formateur_fichier_binaire_nombre(struct_ Line 4866  formateur_fichier_binaire_nombre(struct_
                         return(NULL);                          return(NULL);
                     }                      }
   
                     if ((chaine = malloc((lreel + limag - 1) *                      if ((chaine = malloc((((size_t) lreel) + ((size_t) limag)
                             sizeof(unsigned char))) == NULL)                              - 1) * sizeof(unsigned char))) == NULL)
                     {                      {
                         free(partie_reelle);                          free(partie_reelle);
                         free(partie_imaginaire);                          free(partie_imaginaire);
Line 4858  formateur_fichier_binaire_nombre(struct_ Line 4877  formateur_fichier_binaire_nombre(struct_
                         return(NULL);                          return(NULL);
                     }                      }
   
                     chaine[0] = 0x18;                      chaine[0] = (unsigned char) 0x18;
                     memcpy(chaine + 1, partie_reelle + 1, lreel - 1);                      memcpy(chaine + 1, partie_reelle + 1,
                     memcpy(chaine + lreel, partie_imaginaire + 1, limag - 1);                              ((size_t) lreel) - 1);
                       memcpy(chaine + lreel, partie_imaginaire + 1,
                               ((size_t) limag) - 1);
                     (*longueur_conversion) = lreel + limag - 1;                      (*longueur_conversion) = lreel + limag - 1;
   
                     free(partie_reelle);                      free(partie_reelle);
Line 4873  formateur_fichier_binaire_nombre(struct_ Line 4894  formateur_fichier_binaire_nombre(struct_
                     unsigned char       *partie_reelle;                      unsigned char       *partie_reelle;
                     unsigned char       *partie_imaginaire;                      unsigned char       *partie_imaginaire;
   
                     long                limag;                      integer8            limag;
                     long                lreel;                      integer8            lreel;
   
                     real8               zero;                      real8               zero;
   
                     if (type_entree == 'I')                      if (type_entree == 'I')
Line 4946  formateur_fichier_binaire_nombre(struct_ Line 4968  formateur_fichier_binaire_nombre(struct_
                         return(NULL);                          return(NULL);
                     }                      }
   
                     if ((chaine = malloc((lreel + limag - 1) *                      if ((chaine = malloc((((size_t) lreel) + ((size_t) limag)
                             sizeof(unsigned char))) == NULL)                              - 1) * sizeof(unsigned char))) == NULL)
                     {                      {
                         free(partie_reelle);                          free(partie_reelle);
                         free(partie_imaginaire);                          free(partie_imaginaire);
Line 4957  formateur_fichier_binaire_nombre(struct_ Line 4979  formateur_fichier_binaire_nombre(struct_
                         return(NULL);                          return(NULL);
                     }                      }
   
                     chaine[0] = 0x19;                      chaine[0] = (unsigned char) 0x19;
                     memcpy(chaine + 1, partie_reelle + 1, lreel - 1);                      memcpy(chaine + 1, partie_reelle + 1,
                     memcpy(chaine + lreel, partie_imaginaire + 1, limag - 1);                              ((size_t) lreel) - 1);
                       memcpy(chaine + lreel, partie_imaginaire + 1,
                               ((size_t) limag) - 1);
                     (*longueur_conversion) = lreel + limag - 1;                      (*longueur_conversion) = lreel + limag - 1;
   
                     free(partie_reelle);                      free(partie_reelle);
Line 5154  lecture_fichier_non_formate(struct_proce Line 5178  lecture_fichier_non_formate(struct_proce
             for(i = 0; i < (signed) deplacement; i++)              for(i = 0; i < (signed) deplacement; i++)
             {              {
                 (*((logical8 *) (*s_objet).objet)) |= ((logical8) octets[i])                  (*((logical8 *) (*s_objet).objet)) |= ((logical8) octets[i])
                         << (8 * ((deplacement - 1) - i));                          << (8 * ((((signed) deplacement) - 1) - i));
             }              }
   
             break;              break;
Line 5240  lecture_fichier_non_formate(struct_proce Line 5264  lecture_fichier_non_formate(struct_proce
                     {                      {
                         (*((integer8 *) (*s_objet).objet)) |=                          (*((integer8 *) (*s_objet).objet)) |=
                                 ((integer8) octets[i])                                  ((integer8) octets[i])
                                 << (8 * ((deplacement - 1) - i));                                  << (8 * ((((signed) deplacement) - 1) - i));
                     }                      }
   
                     break;                      break;
Line 5325  lecture_fichier_non_formate(struct_proce Line 5349  lecture_fichier_non_formate(struct_proce
                         for(i = 0; i < (signed) deplacement; i++)                          for(i = 0; i < (signed) deplacement; i++)
                         {                          {
                             eq4.i4 |= ((integer4) octets[i]) <<                              eq4.i4 |= ((integer4) octets[i]) <<
                                     (8 * ((deplacement - 1) - i));                                      (8 * ((((signed) deplacement) - 1) - i));
                         }                          }
   
                         (*((real8 *) (*s_objet).objet)) = (real8) eq4.r4;                          (*((real8 *) (*s_objet).objet)) = (real8) eq4.r4;
Line 5343  lecture_fichier_non_formate(struct_proce Line 5367  lecture_fichier_non_formate(struct_proce
                         for(i = 0; i < (signed) deplacement; i++)                          for(i = 0; i < (signed) deplacement; i++)
                         {                          {
                             eq8.i8 |= ((integer8) octets[i]) <<                              eq8.i8 |= ((integer8) octets[i]) <<
                                     (8 * ((deplacement - 1) - i));                                      (8 * ((((signed) deplacement) - 1) - i));
                         }                          }
   
                         (*((real8 *) (*s_objet).objet)) = (real8) eq8.r8;                          (*((real8 *) (*s_objet).objet)) = (real8) eq8.r8;
Line 5436  lecture_fichier_non_formate(struct_proce Line 5460  lecture_fichier_non_formate(struct_proce
                             for(i = 0; i < (signed) deplacement; i++)                              for(i = 0; i < (signed) deplacement; i++)
                             {                              {
                                 eq4.i4 |= ((integer4) octets[i]) <<                                  eq4.i4 |= ((integer4) octets[i]) <<
                                         (8 * ((deplacement - 1) - i));                                          (8 * ((((signed) deplacement) - 1)
                                           - i));
                             }                              }
   
                             if (j == 0)                              if (j == 0)
Line 5463  lecture_fichier_non_formate(struct_proce Line 5488  lecture_fichier_non_formate(struct_proce
                             for(i = 0; i < (signed) deplacement; i++)                              for(i = 0; i < (signed) deplacement; i++)
                             {                              {
                                 eq8.i8 |= ((integer8) octets[i]) <<                                  eq8.i8 |= ((integer8) octets[i]) <<
                                         (8 * ((deplacement - 1) - i));                                          (8 * ((((signed) deplacement) - 1)
                                           - i));
                             }                              }
   
                             if (j == 0)                              if (j == 0)
Line 5947  lecture_fichier_non_formate(struct_proce Line 5973  lecture_fichier_non_formate(struct_proce
   
             if (longueur_buffer < 0)              if (longueur_buffer < 0)
             {              {
                 if ((flux = malloc(longueur * sizeof(unsigned char))) == NULL)                  if ((flux = malloc(((size_t) longueur) * sizeof(unsigned char)))
                           == NULL)
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =
                             d_es_allocation_memoire;                              d_es_allocation_memoire;
Line 5955  lecture_fichier_non_formate(struct_proce Line 5982  lecture_fichier_non_formate(struct_proce
                 }                  }
   
                 if (fread(flux, (size_t) sizeof(unsigned char),                  if (fread(flux, (size_t) sizeof(unsigned char),
                         longueur, fichier) != (size_t) longueur)                          (size_t) longueur, fichier) != (size_t) longueur)
                 {                  {
                     if (feof(fichier))                      if (feof(fichier))
                     {                      {
Line 6200  lecture_fichier_non_formate(struct_proce Line 6227  lecture_fichier_non_formate(struct_proce
             }              }
   
             if (((*((struct_nom *) (*s_objet).objet)).nom =              if (((*((struct_nom *) (*s_objet).objet)).nom =
                     malloc((longueur + 1) * sizeof(unsigned char))) == NULL)                      malloc((((size_t) longueur) + 1) * sizeof(unsigned char)))
                       == NULL)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;                  (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                 return(NULL);                  return(NULL);
Line 6210  lecture_fichier_non_formate(struct_proce Line 6238  lecture_fichier_non_formate(struct_proce
             {              {
                 if (fread((unsigned char *) (*((struct_nom *) (*s_objet)                  if (fread((unsigned char *) (*((struct_nom *) (*s_objet)
                         .objet)).nom, (size_t) sizeof(unsigned char),                          .objet)).nom, (size_t) sizeof(unsigned char),
                         longueur, fichier) != (unsigned) longueur)                          (size_t) longueur, fichier) != (unsigned) longueur)
                 {                  {
                     if (feof(fichier))                      if (feof(fichier))
                     {                      {
Line 6460  lecture_fichier_non_formate(struct_proce Line 6488  lecture_fichier_non_formate(struct_proce
             }              }
   
             if (((*((struct_fonction *) (*s_objet).objet)).nom_fonction =              if (((*((struct_fonction *) (*s_objet).objet)).nom_fonction =
                     malloc((longueur + 1) * sizeof(unsigned char))) == NULL)                      malloc((((size_t) longueur) + 1) * sizeof(unsigned char)))
                       == NULL)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;                  (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                 return(NULL);                  return(NULL);
Line 6470  lecture_fichier_non_formate(struct_proce Line 6499  lecture_fichier_non_formate(struct_proce
             {              {
                 if (fread((unsigned char *) (*((struct_fonction *) (*s_objet)                  if (fread((unsigned char *) (*((struct_fonction *) (*s_objet)
                         .objet)).nom_fonction, (size_t) sizeof(unsigned char),                          .objet)).nom_fonction, (size_t) sizeof(unsigned char),
                         longueur, fichier) != (unsigned) longueur)                          (size_t) longueur, fichier) != (unsigned) longueur)
                 {                  {
                     if (feof(fichier))                      if (feof(fichier))
                     {                      {
Line 6565  lecture_fichier_non_formate(struct_proce Line 6594  lecture_fichier_non_formate(struct_proce
   
         if ((octets[0] & 0x01) != 0)          if ((octets[0] & 0x01) != 0)
         {          {
             deplacement = ((octets[0] & 0x0F) >> 1) + 1;              deplacement = (size_t) (((octets[0] & 0x0F) >> 1) + 1);
   
             if (fread(octets, (size_t) sizeof(unsigned char), deplacement,              if (fread(octets, (size_t) sizeof(unsigned char), deplacement,
                     fichier) != deplacement)                      fichier) != deplacement)

Removed from v.1.60  
changed lines
  Added in v.1.61


CVSweb interface <joel.bertrand@systella.fr>