Diff for /rpl/src/instructions_r4.c between versions 1.117 and 1.118

version 1.117, 2023/08/08 08:53:40 version 1.118, 2023/11/24 10:48:21
Line 2536  instruction_read(struct_processus *s_eta Line 2536  instruction_read(struct_processus *s_eta
                 }                  }
   
                 // Une donnée a été reçue.                  // Une donnée a été reçue.
                   // Attention : on peut TOUJOURS recevoir 0
                   // indiquant que la socket est close.
   
                 if (ios >= 0)                  if (ios >= 0)
                 {                  {
Line 2543  instruction_read(struct_processus *s_eta Line 2545  instruction_read(struct_processus *s_eta
                     position_initiale = 0;                      position_initiale = 0;
                     presence_indicateur = d_faux;                      presence_indicateur = d_faux;
   
                     do                      if (ios > 0)
                     {                      {
                         if (tampon_lecture[position_initiale] == '{')                          do
                         {                          {
                             presence_indicateur = d_vrai;                              if (tampon_lecture[position_initiale] == '{')
                             break;                              {
                         }                                  presence_indicateur = d_vrai;
                                   break;
                               }
   
                         position_initiale++;                              position_initiale++;
                     } while(position_initiale < longueur_effective);                          } while(position_initiale < longueur_effective);
                       }
                       else
                       {
                           presence_indicateur = d_vrai;
                       }
   
                     if (presence_indicateur == d_vrai)                      if (presence_indicateur == d_vrai)
                     {                      {
                         position_finale = position_initiale + 1;                          position_finale = position_initiale + 1;
                         presence_chaine = d_faux;                          presence_chaine = d_faux;
                         presence_indicateur = d_faux;                          presence_indicateur = d_faux;
                         niveau = 1;                          niveau = 0;
   
                         while(position_finale < longueur_effective)                          while(position_finale < longueur_effective)
                         {                          {
Line 2567  instruction_read(struct_processus *s_eta Line 2576  instruction_read(struct_processus *s_eta
   
                             if (caractere == '"')                              if (caractere == '"')
                             {                              {
                                 if (position_finale > 0)                                  if (tampon_lecture[position_finale - 1]
                                 {                                          != '\\')
                                     if (tampon_lecture[position_finale - 1]  
                                             != '\\')  
                                     {  
                                         presence_chaine = (presence_chaine ==  
                                                 d_vrai) ? d_faux : d_vrai;  
                                     }  
                                 }  
                                 else  
                                 {                                  {
                                     presence_chaine =                                      presence_chaine = (presence_chaine ==
                                             (presence_chaine == d_vrai)                                              d_vrai) ? d_faux : d_vrai;
                                             ? d_faux : d_vrai;  
                                 }                                  }
                             }                              }
                             else                              else
Line 2785  instruction_read(struct_processus *s_eta Line 2785  instruction_read(struct_processus *s_eta
                 }                  }
             } while(trame_complete == d_faux);              } while(trame_complete == d_faux);
   
             tampon_lecture[++position_finale] = d_code_fin_chaine;  
             tampon = (*s_etat_processus).instruction_courante;              tampon = (*s_etat_processus).instruction_courante;
             (*s_etat_processus).instruction_courante = tampon_lecture;              (*s_etat_processus).instruction_courante = tampon_lecture;
   
Line 3179  instruction_read(struct_processus *s_eta Line 3178  instruction_read(struct_processus *s_eta
                     return;                      return;
                 }                  }
   
                 if (ios <= 0)                  if (ios < 0)
                 {                  {
                     nanosleep(&attente, NULL);                      nanosleep(&attente, NULL);
                     INCR_GRANULARITE(attente.tv_nsec);                      INCR_GRANULARITE(attente.tv_nsec);
Line 3210  instruction_read(struct_processus *s_eta Line 3209  instruction_read(struct_processus *s_eta
                     position_initiale = 0;                      position_initiale = 0;
                     presence_indicateur = d_faux;                      presence_indicateur = d_faux;
                 }                  }
                 else if (ios > 0)                  else if (ios >= 0)
                 {                  {
                     // On retire une trame du buffer.                      // On retire une trame du buffer.
   

Removed from v.1.117  
changed lines
  Added in v.1.118


CVSweb interface <joel.bertrand@systella.fr>