Diff for /rpl/rpliconv/rpliconv.c between versions 1.2 and 1.4

version 1.2, 2010/04/21 13:45:42 version 1.4, 2010/05/24 16:29: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 107  main(int argc, char *argv[]) Line 108  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 277  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 288  main(int argc, char *argv[])
                 return(-1);                  return(-1);
             }              }
   
             if (fread(&(fichier_source[d_LONGUEUR * (i - 1)]),              fflush(stdin);
                     sizeof(unsigned char), d_LONGUEUR, stdin) < d_LONGUEUR)  
               for(j = 0; (j < d_LONGUEUR) && (drapeau == 0); j++)
             {              {
                 break;                  if ((fichier_source[(d_LONGUEUR * (i - 1)) + j] = getc(stdin))
                           == (unsigned char) EOF)
                   {
                       fichier_source[(d_LONGUEUR * (i - 1)) + j] = 0;
                       drapeau = 1;
                   }
             }              }
         }          }
     }      }

Removed from v.1.2  
changed lines
  Added in v.1.4


CVSweb interface <joel.bertrand@systella.fr>