Diff for /rpl/src/formateur.c between versions 1.80 and 1.89

version 1.80, 2016/09/27 15:29:32 version 1.89, 2018/05/30 09:27:31
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.26    RPL/2 (R) version 4.1.29
   Copyright (C) 1989-2016 Dr. BERTRAND Joël    Copyright (C) 1989-2018 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
   
Line 42  formateur(struct_processus *s_etat_proce Line 42  formateur(struct_processus *s_etat_proce
     int                         parentheses_groupe_gauche;      int                         parentheses_groupe_gauche;
     int                         parentheses_groupe_droit;      int                         parentheses_groupe_droit;
   
       integer8                    (*__type_disp)(struct_processus *, void **);
   
     logical1                    registre45;      logical1                    registre45;
   
     logical4                    autorisation_parenthese;      logical4                    autorisation_parenthese;
Line 3296  formateur(struct_processus *s_etat_proce Line 3298  formateur(struct_processus *s_etat_proce
   
             if (chaine == NULL)              if (chaine == NULL)
             {              {
                 (*s_etat_processus).erreur_systeme =                  (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                         d_es_allocation_memoire;  
                 return(NULL);                  return(NULL);
             }              }
   
Line 3306  formateur(struct_processus *s_etat_proce Line 3307  formateur(struct_processus *s_etat_proce
             strcat(chaine, " ]");              strcat(chaine, " ]");
         }          }
     }      }
       else if ((*s_objet).type == NON)
       {
           if ((chaine = malloc((strlen("System object") + 1)
                   * sizeof(unsigned char))) == NULL)
           {
               (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
               return(NULL);
           }
   
           strcpy(chaine, "System object");
       }
       else if ((*s_objet).type == EXT)
       {
           l_element_courant = (*s_etat_processus).s_bibliotheques;
   
           while(l_element_courant != NULL)
           {
               if ((*((struct_bibliotheque *) (*l_element_courant).donnee))
                       .descripteur == (*s_objet).descripteur_bibliotheque)
               {
                   if ((__type_disp = dlsym((*s_objet).descripteur_bibliotheque,
                           "__type_disp")) == NULL)
                   {
                       // Symbole externe non affichable
   
                       if ((chaine = malloc((strlen(
                               "External symbol (disp function not found)") + 1)
                               * sizeof(unsigned char))) == NULL)
                       {
                           (*s_etat_processus).erreur_systeme =
                                   d_es_allocation_memoire;
                           return(NULL);
                       }
   
                       strcpy(chaine, "External symbol (disp function not found)");
                   }
                   else
                   {
                       // Symbole externe affichable
                       void        **arg;
   
                       arg = (void **) &s_objet;
                       __type_disp(s_etat_processus, arg);
                       chaine = (unsigned char *) (*arg);
                   }
   
                   break;
               }
   
               l_element_courant = (*l_element_courant).suivant;
           }
   
           if (l_element_courant == NULL)
           {
               // Symbole externe non affichable
   
               if ((chaine = malloc((strlen("External symbol") + 1)
                       * sizeof(unsigned char))) == NULL)
               {
                   (*s_etat_processus).erreur_systeme =
                           d_es_allocation_memoire;
                   return(NULL);
               }
   
               strcpy(chaine, "External symbol");
           }
       }
       else
       {
           BUG(1, uprintf("Unknown symbol type\n"));
       }
   
     return(chaine);      return(chaine);
 }  }

Removed from v.1.80  
changed lines
  Added in v.1.89


CVSweb interface <joel.bertrand@systella.fr>