Diff for /rpl/src/instructions_i3.c between versions 1.30 and 1.31

version 1.30, 2011/11/26 10:01:29 version 1.31, 2011/12/05 17:45:00
Line 188  instruction_inquire(struct_processus *s_ Line 188  instruction_inquire(struct_processus *s_
                 return;                  return;
             }              }
   
             /*  
              * La fin du fichier renvoyée ne correspond pas à la fin physique  
              * du fichier mais à un défaut d'enregistrement.  
              */  
   
             if ((dfichier = descripteur_fichier(s_etat_processus,              if ((dfichier = descripteur_fichier(s_etat_processus,
                     (struct_fichier *) (*s_objet_argument_2).objet)) == NULL)                      (struct_fichier *) (*s_objet_argument_2).objet)) ==
                       NULL)
             {              {
                 return;                  return;
             }              }
Line 206  instruction_inquire(struct_processus *s_ Line 202  instruction_inquire(struct_processus *s_
   
                 free(requete);                  free(requete);
   
                 (*s_etat_processus).erreur_execution = d_ex_erreur_type_fichier;                  (*s_etat_processus).erreur_execution =
                           d_ex_erreur_type_fichier;
                 return;                  return;
             }              }
   
             if ((position_courante = ftell((*dfichier).descripteur_c)) == -1)              if ((*((struct_fichier *) (*s_objet_argument_2).objet)).binaire
                       != 'F')
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;                  /*
                 return;                   * La fin du fichier renvoyée ne correspond pas à la fin
             }                   * physique du fichier mais à un défaut d'enregistrement.
                    */
   
                   if ((position_courante = ftell((*dfichier).descripteur_c))
                           == -1)
                   {
                       (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;
                       return;
                   }
   
             fin_fichier = d_vrai;                  fin_fichier = d_vrai;
   
             while(feof((*dfichier).descripteur_c) == 0)                  while(feof((*dfichier).descripteur_c) == 0)
             {  
                 if (fread(&caractere, sizeof(unsigned char), (size_t) 1,  
                         (*dfichier).descripteur_c) > 0)  
                 {                  {
                     if (caractere == '{')                      if (fread(&caractere, sizeof(unsigned char), (size_t) 1,
                               (*dfichier).descripteur_c) > 0)
                     {                      {
                         fin_fichier = d_faux;                          if (caractere == '{')
                         break;                          {
                               fin_fichier = d_faux;
                               break;
                           }
                     }                      }
                 }                  }
             }  
   
             if (fseek((*dfichier).descripteur_c, position_courante, SEEK_SET)                  if (fseek((*dfichier).descripteur_c, position_courante,
                     != 0)                          SEEK_SET) != 0)
                   {
                       (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;
                       return;
                   }
               }
               else
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;                  // Fichier de type FLOW
                 return;                  if (feof((*dfichier).descripteur_c) == 0)
                   {
                       fin_fichier = d_faux;
                   }
                   else
                   {
                       fin_fichier = d_vrai;
                   }
             }              }
   
             if (fin_fichier == d_faux)              if (fin_fichier == d_faux)

Removed from v.1.30  
changed lines
  Added in v.1.31


CVSweb interface <joel.bertrand@systella.fr>