Diff for /rpl/src/instructions_c4.c between versions 1.73 and 1.86

version 1.73, 2018/05/30 09:27:33 version 1.86, 2024/10/28 14:56:58
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.29    RPL/2 (R) version 4.1.36
   Copyright (C) 1989-2018 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 664  instruction_close(struct_processus *s_et Line 664  instruction_close(struct_processus *s_et
   
     struct_objet                *s_objet_argument;      struct_objet                *s_objet_argument;
   
       unsigned char               socket_en_ecoute;
   
     (*s_etat_processus).erreur_execution = d_ex;      (*s_etat_processus).erreur_execution = d_ex;
   
     if ((*s_etat_processus).affichage_arguments == 'Y')      if ((*s_etat_processus).affichage_arguments == 'Y')
Line 778  instruction_close(struct_processus *s_et Line 780  instruction_close(struct_processus *s_et
          * Fermeture du fichier           * Fermeture du fichier
          */           */
   
         if (fclose((*descripteur).descripteur_c) != 0)  
         {  
             free(descripteur);  
             liberation(s_etat_processus, s_objet_argument);  
   
             (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;  
             return;  
         }  
   
         if ((*descripteur).type != 'C')          if ((*descripteur).type != 'C')
         {          {
             if (sqlite3_prepare_v2((*descripteur).descripteur_sqlite,              if (sqlite3_prepare_v2((*descripteur).descripteur_sqlite,
Line 828  instruction_close(struct_processus *s_et Line 821  instruction_close(struct_processus *s_et
   
             free(descripteur);              free(descripteur);
         }          }
           else
           {
               if (fclose((*descripteur).descripteur_c) != 0)
               {
                   free(descripteur);
                   liberation(s_etat_processus, s_objet_argument);
   
                   (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;
                   return;
               }
           }
   
         if ((*((struct_fichier *) (*s_objet_argument).objet)).ouverture == 'S')          if ((*((struct_fichier *) (*s_objet_argument).objet)).ouverture == 'S')
         {          {
Line 852  instruction_close(struct_processus *s_et Line 856  instruction_close(struct_processus *s_et
   
         socket = -1;          socket = -1;
         socket_connectee = d_faux;          socket_connectee = d_faux;
           socket_en_ecoute = 'Y';
   
         while(l_element_courant != NULL)          while(l_element_courant != NULL)
         {          {
Line 863  instruction_close(struct_processus *s_et Line 868  instruction_close(struct_processus *s_et
                         (*(*l_element_courant).donnee).objet)).socket;                          (*(*l_element_courant).donnee).objet)).socket;
                 socket_connectee = (*((struct_socket *)                  socket_connectee = (*((struct_socket *)
                         (*(*l_element_courant).donnee).objet)).socket_connectee;                          (*(*l_element_courant).donnee).objet)).socket_connectee;
                   socket_en_ecoute = (*((struct_socket *)
                           (*(*l_element_courant).donnee).objet)).socket_en_ecoute;
   
                 if (l_element_precedent == NULL)                  if (l_element_precedent == NULL)
                 {                  {
Line 903  instruction_close(struct_processus *s_et Line 910  instruction_close(struct_processus *s_et
   
         if (socket_connectee == d_vrai)          if (socket_connectee == d_vrai)
         {          {
             shutdown(socket, SHUT_RDWR);              if (socket_en_ecoute == 'N')
               {
                   shutdown(socket, SHUT_RDWR);
               }
         }          }
   
         if (close(socket) != 0)          if (close(socket) != 0)

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


CVSweb interface <joel.bertrand@systella.fr>