Diff for /rpl/src/instructions_r4.c between versions 1.86 and 1.122

version 1.86, 2013/12/03 09:36:14 version 1.122, 2024/01/17 16:57:15
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.17    RPL/2 (R) version 4.1.36
   Copyright (C) 1989-2013 Dr. BERTRAND Joël    Copyright (C) 1989-2024 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
   
Line 869  instruction_read(struct_processus *s_eta Line 869  instruction_read(struct_processus *s_eta
   
     logical1                        device;      logical1                        device;
     logical1                        format_degenere;      logical1                        format_degenere;
       logical1                        format_oriente_ligne;
     logical1                        indicateur_48;      logical1                        indicateur_48;
     logical1                        presence_chaine;      logical1                        presence_chaine;
     logical1                        presence_indicateur;      logical1                        presence_indicateur;
Line 961  instruction_read(struct_processus *s_eta Line 962  instruction_read(struct_processus *s_eta
             printf("(read a record of a file)\n\n");              printf("(read a record of a file)\n\n");
         }          }
   
         printf("    1: %s, %s\n\n", d_FCH, d_SCK);          printf("    1: %s, %s\n", d_FCH, d_SCK);
           printf("->  1: %s\n\n", d_LST);
   
         printf("    2: %s, %s\n", d_INT, d_CHN);          printf("    2: %s, %s\n", d_INT, d_CHN);
         printf("    1: %s\n", d_FCH);          printf("    1: %s\n", d_FCH);
           printf("->  1: %s\n\n", d_LST);
         return;          return;
     }      }
     else if ((*s_etat_processus).test_instruction == 'Y')      else if ((*s_etat_processus).test_instruction == 'Y')
Line 1275  instruction_read(struct_processus *s_eta Line 1278  instruction_read(struct_processus *s_eta
                 indicateur_48 = test_cfsf(s_etat_processus, 48);                  indicateur_48 = test_cfsf(s_etat_processus, 48);
                 cf(s_etat_processus, 48);                  cf(s_etat_processus, 48);
   
                   (*s_etat_processus).type_en_cours = NON;
                 recherche_type(s_etat_processus);                  recherche_type(s_etat_processus);
                 free((*s_etat_processus).instruction_courante);                  free((*s_etat_processus).instruction_courante);
   
Line 1330  instruction_read(struct_processus *s_eta Line 1334  instruction_read(struct_processus *s_eta
                     return;                      return;
                 }                  }
   
                 if (alsprintf(&commande, "select data from data where "                  if (alsprintf(s_etat_processus, &commande,
                         "id = %lld", (*((integer8 *) (*s_objet_argument_2)                          "select data from data where id = %lld",
                         .objet))) < 0)                          (*((integer8 *) (*s_objet_argument_2).objet))) < 0)
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =
                             d_es_allocation_memoire;                              d_es_allocation_memoire;
Line 1429  instruction_read(struct_processus *s_eta Line 1433  instruction_read(struct_processus *s_eta
                 indicateur_48 = test_cfsf(s_etat_processus, 48);                  indicateur_48 = test_cfsf(s_etat_processus, 48);
                 cf(s_etat_processus, 48);                  cf(s_etat_processus, 48);
   
                   (*s_etat_processus).type_en_cours = NON;
                 recherche_type(s_etat_processus);                  recherche_type(s_etat_processus);
   
                 if ((*s_etat_processus).erreur_execution != d_ex)                  if ((*s_etat_processus).erreur_execution != d_ex)
Line 1502  instruction_read(struct_processus *s_eta Line 1507  instruction_read(struct_processus *s_eta
   
                 // Récupération de la position de la clef                  // Récupération de la position de la clef
   
                 if (alsprintf(&commande, "select key from control "                  if (alsprintf(s_etat_processus, &commande,
                         "where id = 1") < 0)                          "select key from control where id = 1") < 0)
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =
                             d_es_allocation_memoire;                              d_es_allocation_memoire;
Line 1576  instruction_read(struct_processus *s_eta Line 1581  instruction_read(struct_processus *s_eta
   
                 // Récupération de l'identifiant de la clef                  // Récupération de l'identifiant de la clef
   
                 if (alsprintf(&commande, "select id from key where key = "                  if (alsprintf(s_etat_processus, &commande,
                         "'{ \"%s\" }'", clef_utf8) < 0)                          "select id from key where key = '{ \"%s\" }'",
                           clef_utf8) < 0)
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =
                             d_es_allocation_memoire;                              d_es_allocation_memoire;
Line 1669  instruction_read(struct_processus *s_eta Line 1675  instruction_read(struct_processus *s_eta
   
                 free(commande);                  free(commande);
   
                 if (alsprintf(&commande, "select data from data where "                  if (alsprintf(s_etat_processus, &commande,
                           "select data from data where "
                         "key_id = %lld order by sequence asc", id) < 0)                          "key_id = %lld order by sequence asc", id) < 0)
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =
Line 1736  instruction_read(struct_processus *s_eta Line 1743  instruction_read(struct_processus *s_eta
                             indicateur_48 = test_cfsf(s_etat_processus, 48);                              indicateur_48 = test_cfsf(s_etat_processus, 48);
                             cf(s_etat_processus, 48);                              cf(s_etat_processus, 48);
   
                               (*s_etat_processus).type_en_cours = NON;
                             recherche_type(s_etat_processus);                              recherche_type(s_etat_processus);
   
                             if ((*s_etat_processus).erreur_execution != d_ex)                              if ((*s_etat_processus).erreur_execution != d_ex)
Line 1798  instruction_read(struct_processus *s_eta Line 1806  instruction_read(struct_processus *s_eta
                                     return;                                      return;
                                 }                                  }
   
                                 if (alsprintf(&tampon2, "{ \"%s\" }",                                  if (alsprintf(s_etat_processus, &tampon2,
                                         (*s_etat_processus)                                          "{ \"%s\" }", (*s_etat_processus)
                                         .instruction_courante) < 0)                                          .instruction_courante) < 0)
                                 {                                  {
                                     (*s_etat_processus).erreur_systeme =                                      (*s_etat_processus).erreur_systeme =
Line 1814  instruction_read(struct_processus *s_eta Line 1822  instruction_read(struct_processus *s_eta
                                 indicateur_48 = test_cfsf(s_etat_processus, 48);                                  indicateur_48 = test_cfsf(s_etat_processus, 48);
                                 cf(s_etat_processus, 48);                                  cf(s_etat_processus, 48);
   
                                   (*s_etat_processus).type_en_cours = NON;
                                 recherche_type(s_etat_processus);                                  recherche_type(s_etat_processus);
   
                                 if ((*s_etat_processus).erreur_execution                                  if ((*s_etat_processus).erreur_execution
Line 2056  instruction_read(struct_processus *s_eta Line 2065  instruction_read(struct_processus *s_eta
                         return;                          return;
                     }                      }
   
                     if ((format_chaine = conversion_majuscule((unsigned char *)                      if ((format_chaine = conversion_majuscule(
                               s_etat_processus, (unsigned char *)
                             (*(*l_element_courant_format).donnee).objet))                              (*(*l_element_courant_format).donnee).objet))
                             == NULL)                              == NULL)
                     {                      {
Line 2065  instruction_read(struct_processus *s_eta Line 2075  instruction_read(struct_processus *s_eta
                         return;                          return;
                     }                      }
   
                     if (strncmp("LENGTH*(", format_chaine, 8) != 0)                      if (strcmp("LINE*(*)", format_chaine) == 0)
                     {                      {
                         liberation(s_etat_processus, s_objet_argument_1);                          format_degenere = d_vrai;
                         liberation(s_etat_processus, s_objet_resultat);                          format_oriente_ligne = d_vrai;
                         free(format_chaine);  
   
                         (*s_etat_processus).erreur_execution =  
                                 d_ex_erreur_format_fichier;  
                         return;  
                     }                      }
                       else
                     longueur = (integer8) strlen(format_chaine);  
   
                     if (format_chaine[longueur - 1] != ')')  
                     {                      {
                         liberation(s_etat_processus, s_objet_argument_1);                          format_oriente_ligne = d_faux;
                         liberation(s_etat_processus, s_objet_resultat);  
                         free(format_chaine);  
   
                         (*s_etat_processus).erreur_execution =                          if (strncmp("LENGTH*(", format_chaine, 8) != 0)
                                 d_ex_erreur_format_fichier;                          {
                         return;                              liberation(s_etat_processus, s_objet_argument_1);
                     }                              liberation(s_etat_processus, s_objet_resultat);
                               free(format_chaine);
   
                     format_chaine[longueur] = d_code_fin_chaine;                              (*s_etat_processus).erreur_execution =
                                       d_ex_erreur_format_fichier;
                               return;
                           }
   
                     if (format_chaine[8] == '*')                          longueur = (integer8) strlen(format_chaine);
                     {  
                         format_degenere = d_vrai;  
                     }  
                     else  
                     {  
                         // Détermination de la longueur  
                         format_degenere = d_faux;  
   
                         if (sscanf(&(format_chaine[8]), "%lld", &longueur) != 1)                          if (format_chaine[longueur - 1] != ')')
                         {                          {
                             liberation(s_etat_processus, s_objet_argument_1);                              liberation(s_etat_processus, s_objet_argument_1);
                             liberation(s_etat_processus, s_objet_resultat);                              liberation(s_etat_processus, s_objet_resultat);
Line 2110  instruction_read(struct_processus *s_eta Line 2107  instruction_read(struct_processus *s_eta
                                     d_ex_erreur_format_fichier;                                      d_ex_erreur_format_fichier;
                             return;                              return;
                         }                          }
   
                           format_chaine[longueur] = d_code_fin_chaine;
   
                           if (format_chaine[8] == '*')
                           {
                               format_degenere = d_vrai;
                           }
                           else
                           {
                               // Détermination de la longueur
                               format_degenere = d_faux;
   
                               if (sscanf(&(format_chaine[8]), "%lld", &longueur)
                                       != 1)
                               {
                                   liberation(s_etat_processus,
                                           s_objet_argument_1);
                                   liberation(s_etat_processus, s_objet_resultat);
                                   free(format_chaine);
   
                                   (*s_etat_processus).erreur_execution =
                                           d_ex_erreur_format_fichier;
                                   return;
                               }
                           }
                     }                      }
   
                     free(format_chaine);                      free(format_chaine);
Line 2156  instruction_read(struct_processus *s_eta Line 2178  instruction_read(struct_processus *s_eta
                                 }                                  }
                             }                              }
                         }                          }
                           else
                           {
                               // Évite un warning de gcc.
                               longueur_questure = 0;
                               index = 0;
                               timeout = 0;
                           }
   
                         do                          do
                         {                          {
Line 2187  instruction_read(struct_processus *s_eta Line 2216  instruction_read(struct_processus *s_eta
   
                                 tampon3[index++] = (unsigned char) c;                                  tampon3[index++] = (unsigned char) c;
                             }                              }
   
                               if (format_oriente_ligne == d_vrai)
                               {
                                   if (c == '\n')
                                   {
                                       break;
                                   }
                               }
                         } while(c != EOF);                          } while(c != EOF);
   
                         if (device == d_faux)                          if (device == d_faux)
Line 2499  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 2506  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 2530  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 2748  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;
   
             indicateur_48 = test_cfsf(s_etat_processus, 48);              indicateur_48 = test_cfsf(s_etat_processus, 48);
             cf(s_etat_processus, 48);              cf(s_etat_processus, 48);
   
               (*s_etat_processus).type_en_cours = NON;
             recherche_type(s_etat_processus);              recherche_type(s_etat_processus);
   
             if ((*s_etat_processus).erreur_execution != d_ex)              if ((*s_etat_processus).erreur_execution != d_ex)
Line 3141  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 3172  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.
   
Line 3507  instruction_read(struct_processus *s_eta Line 3544  instruction_read(struct_processus *s_eta
         }          }
         else          else
         { // FLOW          { // FLOW
 #if 0  
             longueur_questure = 256;              longueur_questure = 256;
   
             do              do
             {              {
                 if ((tampon_lecture = malloc((longueur_questure + 1) *                  if ((tampon_lecture = malloc((((size_t) longueur_questure) + 1)
                         sizeof(unsigned char))) == NULL)                          * sizeof(unsigned char))) == NULL)
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =
                             d_es_allocation_memoire;                              d_es_allocation_memoire;
Line 3541  instruction_read(struct_processus *s_eta Line 3577  instruction_read(struct_processus *s_eta
                         longueur_adresse = sizeof(adresse_unix);                          longueur_adresse = sizeof(adresse_unix);
                         longueur_effective = recvfrom((*((struct_socket *)                          longueur_effective = recvfrom((*((struct_socket *)
                                 (*s_objet_argument_1).objet)).socket,                                  (*s_objet_argument_1).objet)).socket,
                                 tampon_lecture, longueur_questure,                                  tampon_lecture, (long unsigned int)
                                   longueur_questure,
                                 MSG_PEEK | MSG_DONTWAIT, (struct sockaddr *)                                  MSG_PEEK | MSG_DONTWAIT, (struct sockaddr *)
                                 &adresse_unix, &longueur_adresse);                                  &adresse_unix, &longueur_adresse);
                     }                      }
Line 3551  instruction_read(struct_processus *s_eta Line 3588  instruction_read(struct_processus *s_eta
                         longueur_adresse = sizeof(adresse_ipv4);                          longueur_adresse = sizeof(adresse_ipv4);
                         longueur_effective = recvfrom((*((struct_socket *)                          longueur_effective = recvfrom((*((struct_socket *)
                                 (*s_objet_argument_1).objet)).socket,                                  (*s_objet_argument_1).objet)).socket,
                                 tampon_lecture, longueur_questure,                                  tampon_lecture, (long unsigned int)
                                   longueur_questure,
                                 MSG_PEEK | MSG_DONTWAIT, (struct sockaddr *)                                  MSG_PEEK | MSG_DONTWAIT, (struct sockaddr *)
                                 &adresse_ipv4, &longueur_adresse);                                  &adresse_ipv4, &longueur_adresse);
                     }                      }
Line 3562  instruction_read(struct_processus *s_eta Line 3600  instruction_read(struct_processus *s_eta
                         longueur_adresse = sizeof(adresse_ipv6);                          longueur_adresse = sizeof(adresse_ipv6);
                         longueur_effective = recvfrom((*((struct_socket *)                          longueur_effective = recvfrom((*((struct_socket *)
                                 (*s_objet_argument_1).objet)).socket,                                  (*s_objet_argument_1).objet)).socket,
                                 tampon_lecture, longueur_questure,                                  tampon_lecture, (long unsigned int)
                                   longueur_questure,
                                 MSG_PEEK | MSG_DONTWAIT, (struct sockaddr *)                                  MSG_PEEK | MSG_DONTWAIT, (struct sockaddr *)
                                 &adresse_ipv6, &longueur_adresse);                                  &adresse_ipv6, &longueur_adresse);
 #                       else  #                       else
Line 3661  instruction_read(struct_processus *s_eta Line 3700  instruction_read(struct_processus *s_eta
   
                 if (longueur_effective == longueur_questure)                  if (longueur_effective == longueur_questure)
                 {                  {
                       trame_complete = d_faux;
                     free(tampon_lecture);                      free(tampon_lecture);
                     longueur_questure *= 2;  
                       // Taille standard des jumbo frames
                       if (longueur_questure <= 9000)
                       {
                           longueur_questure *= 2;
                       }
                       else
                       {
                           longueur_questure += 9000;
                       }
                 }                  }
             } while(longueur_effective == longueur_questure);                  else
                   {
                       trame_complete = d_vrai;
                   }
               } while(trame_complete == d_faux);
   
             longueur_enregistrement = 1;              longueur_enregistrement = 1;
   
             for(i = 0; i < longueur_effective; i++)              for(i = 0; i < longueur_effective; i++)
             {              {
                 if (isprint(tampon_lecture[i]) != 0)                  if (isprint(tampon_lecture[i]) == 0)
                 {                  {
                     longueur_enregistrement += 4;                      longueur_enregistrement += 4;
                 }                  }
                 else                  else
                 {                  {
                     longueur_enregistrement++;                      if ((tampon_lecture[i] == '"') ||
                               (tampon_lecture[i] == '"'))
                       {
                           longueur_enregistrement += 2;
                       }
                       else
                       {
                           longueur_enregistrement++;
                       }
                 }                  }
             }              }
   
Line 3690  instruction_read(struct_processus *s_eta Line 3751  instruction_read(struct_processus *s_eta
                 return;                  return;
             }              }
   
             if (((*s_objet_type).objet = malloc(longueur_enregistrement *              if (((*s_objet_type).objet = malloc((size_t) longueur_enregistrement
                     sizeof(unsigned char))) == NULL)                      * sizeof(unsigned char))) == NULL)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;                  (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                 return;                  return;
Line 3703  instruction_read(struct_processus *s_eta Line 3764  instruction_read(struct_processus *s_eta
             {              {
                 if (isprint(tampon_lecture[i]) != 0)                  if (isprint(tampon_lecture[i]) != 0)
                 {                  {
                     (*ptr) = tampon_lecture[i];                      if ((tampon_lecture[i] == '"') ||
                     ptr++;                              (tampon_lecture[i] == '"'))
                       {
                           (*ptr) = '\\';
                           ptr++;
                           (*ptr) = tampon_lecture[i];
                           ptr++;
                       }
                       else
                       {
                           (*ptr) = tampon_lecture[i];
                           ptr++;
                       }
                 }                  }
                 else                  else
                 {                  {
Line 3774  instruction_read(struct_processus *s_eta Line 3846  instruction_read(struct_processus *s_eta
                 longueur_adresse = 0;                  longueur_adresse = 0;
                 recvfrom((*((struct_socket *)                  recvfrom((*((struct_socket *)
                         (*s_objet_argument_1).objet)).socket, tampon_lecture,                          (*s_objet_argument_1).objet)).socket, tampon_lecture,
                         position_finale, MSG_DONTWAIT,                          (long unsigned int) longueur_effective, MSG_DONTWAIT,
                         NULL, &longueur_adresse);                          NULL, &longueur_adresse);
   
                 (*s_objet_adresse).objet = NULL;                  (*s_objet_adresse).objet = NULL;
Line 3785  instruction_read(struct_processus *s_eta Line 3857  instruction_read(struct_processus *s_eta
                 longueur_adresse = sizeof(adresse_ipv4);                  longueur_adresse = sizeof(adresse_ipv4);
                 recvfrom((*((struct_socket *)                  recvfrom((*((struct_socket *)
                         (*s_objet_argument_1).objet)).socket, tampon_lecture,                          (*s_objet_argument_1).objet)).socket, tampon_lecture,
                         position_finale, MSG_DONTWAIT,                          (long unsigned int) longueur_effective, MSG_DONTWAIT,
                         (struct sockaddr *) &adresse_ipv4, &longueur_adresse);                          (struct sockaddr *) &adresse_ipv4, &longueur_adresse);
   
                 if (((*s_objet_adresse).objet =                  if (((*s_objet_adresse).objet =
Line 3865  instruction_read(struct_processus *s_eta Line 3937  instruction_read(struct_processus *s_eta
                 longueur_adresse = sizeof(adresse_ipv6);                  longueur_adresse = sizeof(adresse_ipv6);
                 recvfrom((*((struct_socket *)                  recvfrom((*((struct_socket *)
                         (*s_objet_argument_1).objet)).socket, tampon_lecture,                          (*s_objet_argument_1).objet)).socket, tampon_lecture,
                         position_finale, MSG_DONTWAIT,                          (long unsigned int) longueur_effective, MSG_DONTWAIT,
                         (struct sockaddr *) &adresse_ipv6, &longueur_adresse);                          (struct sockaddr *) &adresse_ipv6, &longueur_adresse);
   
                 if (((*s_objet_adresse).objet =                  if (((*s_objet_adresse).objet =
Line 3946  instruction_read(struct_processus *s_eta Line 4018  instruction_read(struct_processus *s_eta
                 longueur_adresse = 0;                  longueur_adresse = 0;
                 recvfrom((*((struct_socket *)                  recvfrom((*((struct_socket *)
                         (*s_objet_argument_1).objet)).socket, tampon_lecture,                          (*s_objet_argument_1).objet)).socket, tampon_lecture,
                         position_finale, MSG_DONTWAIT,                          (long unsigned int) longueur_effective, MSG_DONTWAIT,
                         NULL, &longueur_adresse);                          NULL, &longueur_adresse);
             }              }
   
Line 3957  instruction_read(struct_processus *s_eta Line 4029  instruction_read(struct_processus *s_eta
             {              {
                 return;                  return;
             }              }
 #endif  
         }          }
     }      }
     else      else

Removed from v.1.86  
changed lines
  Added in v.1.122


CVSweb interface <joel.bertrand@systella.fr>