Diff for /rpl/rpliconv/rpliconv.c between versions 1.1.1.1 and 1.6

version 1.1.1.1, 2010/01/26 15:22:46 version 1.6, 2010/06/20 17:06:27
Line 58  reencodage(unsigned char *chaine_entree, Line 58  reencodage(unsigned char *chaine_entree,
     do      do
     {      {
         longueur_sortie = d_LONGUEUR;          longueur_sortie = d_LONGUEUR;
           longueur_entree = strlen(buffer_entree);
         pointeur = buffer_sortie;          pointeur = buffer_sortie;
   
         if ((ios = iconv(transcodage, (char **) &buffer_entree,          if ((ios = iconv(transcodage, (char **) &buffer_entree,
                 &longueur_entree, (char **) &pointeur, &longueur_sortie))                  &longueur_entree, (char **) &pointeur, &longueur_sortie))
                 == (size_t) -1)                  == (size_t) -1)
         {          {
             // On autorise les erreurs EINVAL et EILSEQ              // On autorise les erreurs EINVAL et E2BIG
             if (errno == EILSEQ)              if (errno == EILSEQ)
             {              {
                 perror("iconv");                  perror("iconv");
Line 97  main(int argc, char *argv[]) Line 98  main(int argc, char *argv[])
 {  {
     file                    *f_source;      file                    *f_source;
   
       int                     caractere;
     int                     ios;      int                     ios;
   
     unsigned char           *encodage_destination;      unsigned char           *encodage_destination;
Line 107  main(int argc, char *argv[]) Line 109  main(int argc, char *argv[])
     unsigned char           *fichier_source;      unsigned char           *fichier_source;
     unsigned char           *fichier_destination;      unsigned char           *fichier_destination;
   
       unsigned long           drapeau;
     unsigned long           i;      unsigned long           i;
       unsigned long           j;
     unsigned long           nombre_caracteres;      unsigned long           nombre_caracteres;
   
     nom_fichier_source = NULL;      nom_fichier_source = NULL;
Line 274  main(int argc, char *argv[]) Line 278  main(int argc, char *argv[])
         // Lecture depuis stdin          // Lecture depuis stdin
   
         fichier_source = NULL;          fichier_source = NULL;
           drapeau = 0;
   
         for(i = 1;; i++)          for(i = 1; drapeau == 0; i++)
         {          {
             if ((fichier_source = realloc(fichier_source,              if ((fichier_source = realloc(fichier_source,
                     ((d_LONGUEUR * i) + 1) * sizeof(unsigned char))) == NULL)                      ((d_LONGUEUR * i) + 1) * sizeof(unsigned char))) == NULL)
Line 284  main(int argc, char *argv[]) Line 289  main(int argc, char *argv[])
                 return(-1);                  return(-1);
             }              }
   
             if (fread(&(fichier_source[d_LONGUEUR * (i - 1)]),              for(j = 0; (j < d_LONGUEUR) && (drapeau == 0); j++)
                     sizeof(unsigned char), d_LONGUEUR, stdin) < d_LONGUEUR)  
             {              {
                 break;                  if ((caractere = getc(stdin)) == EOF)
                   {
                       fichier_source[(d_LONGUEUR * (i - 1)) + j] = 0;
                       drapeau = 1;
                   }
                   else
                   {
                       fichier_source[(d_LONGUEUR * (i - 1)) + j] =
                               (unsigned char) caractere;
                   }
             }              }
         }          }
     }      }

Removed from v.1.1.1.1  
changed lines
  Added in v.1.6


CVSweb interface <joel.bertrand@systella.fr>