Diff for /rpl/src/formateur_fichiers.c between versions 1.64 and 1.68

version 1.64, 2013/03/22 12:04:59 version 1.68, 2013/04/01 15:29:34
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.13    RPL/2 (R) version 4.1.14
   Copyright (C) 1989-2013 Dr. BERTRAND Joël    Copyright (C) 1989-2013 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
Line 19 Line 19
 ================================================================================  ================================================================================
 */  */
   
   
 #define DEBUG_ERREURS  #define DEBUG_ERREURS
 #include "rpl-conv.h"  #include "rpl-conv.h"
   
Line 4078  formateur_fichier(struct_processus *s_et Line 4079  formateur_fichier(struct_processus *s_et
                 memcpy(&(chaine[longueur_totale]), tampon, 1);                  memcpy(&(chaine[longueur_totale]), tampon, 1);
                 longueur_totale += 1;                  longueur_totale += 1;
             }              }
             else if (longueur_totale < (((integer8) 1) << 16))              else
             {              {
                 longueur_totale++;                  longueur_totale++;
   
                 for(i = 0; i < 7; i++)                  // i = { 0 (16 bits) 2 (32 bits) 6 (64 bits) }
   
                   i = 0;
   
                   for(;;)
                 {                  {
                     if ((longueur_totale < (((integer8) 1) << (8 * (i + 2))))                      if ((longueur_totale < (((integer8) 1) << (8 * (i + 2))))
                             || (i == 6))                              || (i == 6))
Line 4106  formateur_fichier(struct_processus *s_et Line 4111  formateur_fichier(struct_processus *s_et
                                 | ((i + 1) << 1));                                  | ((i + 1) << 1));
                         break;                          break;
                     }                      }
   
                       switch(i)
                       {
                           case 0 :
                           {
                               i = 2;
                               break;
                           }
   
                           case 2 :
                           {
                               i = 6;
                               break;
                           }
                       }
                 }                  }
   
                 if ((chaine = realloc(chaine, (((size_t) longueur_totale) + 3)                  // i = 0 => +3 (16 bits)
                   // i = 2 => +5 (32 bits)
                   // i = 6 => +9 (64 bits)
   
                   if ((chaine = realloc(chaine, (((size_t) longueur_totale)
                           + ((i == 0) ? 3 : ((i == 2) ? 5 : 9)))
                         * sizeof(unsigned char))) == NULL)                          * sizeof(unsigned char))) == NULL)
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =
Line 4119  formateur_fichier(struct_processus *s_et Line 4144  formateur_fichier(struct_processus *s_et
                 memcpy(&(chaine[longueur_totale]), tampon, 3);                  memcpy(&(chaine[longueur_totale]), tampon, 3);
                 longueur_totale += 3;                  longueur_totale += 3;
             }              }
             else if (longueur_totale < (((integer8) 1) << 32))  
             {  
             }  
   
             __zone();              __zone();
             (*longueur_effective) = longueur_totale;              (*longueur_effective) = longueur_totale;
Line 5275  lecture_fichier_non_formate(struct_proce Line 5297  lecture_fichier_non_formate(struct_proce
                             switch(deplacement)                              switch(deplacement)
                             {                              {
                                 case 1:                                  case 1:
                                     i1 |= (integer1) (i1 <<                                      i1 = (integer1) octets[0];
                                             (8 * ((((signed) deplacement) - 1)  
                                             - i)));  
                                 break;                                  break;
   
                                 case 2:                                  case 2:
                                     i2 |= (integer2) (i2 <<                                      i2 |= (integer2) (((integer8) octets[i]) <<
                                             (8 * ((((signed) deplacement) - 1)                                              (8 * ((((signed) deplacement) - 1)
                                             - i)));                                              - i)));
                                 break;                                  break;
   
                                 case 4:                                  case 4:
                                     i4 |= (integer4) (i4 <<                                      i4 |= (integer4) (((integer8) octets[i]) <<
                                             (8 * ((((signed) deplacement) - 1)                                              (8 * ((((signed) deplacement) - 1)
                                             - i)));                                              - i)));
                                 break;                                  break;
   
                                 case 8:                                  case 8:
                                     i8 |= (integer8) (i8 <<                                      i8 |= (integer8) (((integer8) octets[i]) <<
                                             (8 * ((((signed) deplacement) - 1)                                              (8 * ((((signed) deplacement) - 1)
                                             - i)));                                              - i)));
                                 break;                                  break;

Removed from v.1.64  
changed lines
  Added in v.1.68


CVSweb interface <joel.bertrand@systella.fr>