Diff for /rpl/src/formateur.c between versions 1.62 and 1.84

version 1.62, 2013/04/01 15:29:34 version 1.84, 2017/06/30 13:11:25
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.14    RPL/2 (R) version 4.1.27
   Copyright (C) 1989-2013 Dr. BERTRAND Joël    Copyright (C) 1989-2017 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 103  formateur(struct_processus *s_etat_proce Line 105  formateur(struct_processus *s_etat_proce
 --------------------------------------------------------------------------------  --------------------------------------------------------------------------------
 */  */
   
         if (alsprintf(&chaine, "@ %016llX", (*((integer8 *)          if (alsprintf(s_etat_processus, &chaine,
                   "@ %016llX", (*((unsigned long long *)
                 ((*s_objet).objet)))) < 0)                  ((*s_objet).objet)))) < 0)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;              (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
Line 119  formateur(struct_processus *s_etat_proce Line 122  formateur(struct_processus *s_etat_proce
 --------------------------------------------------------------------------------  --------------------------------------------------------------------------------
 */  */
   
         if (alsprintf(&chaine, "Library $ %016llX [%s]",  #       pragma GCC diagnostic push
                 (*((struct_bibliotheque *)  #       pragma GCC diagnostic ignored "-Wpointer-to-int-cast"
   
           if (alsprintf(s_etat_processus, &chaine, "Library $ %016llX [%s]",
                   (unsigned long long) (*((struct_bibliotheque *)
                 (*s_objet).objet)).descripteur, (*((struct_bibliotheque *)                  (*s_objet).objet)).descripteur, (*((struct_bibliotheque *)
                 (*s_objet).objet)).nom) < 0)                  (*s_objet).objet)).nom) < 0)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;              (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
             return(NULL);              return(NULL);
         }          }
   
   #       pragma GCC diagnostic pop
   
     }      }
     else if ((*s_objet).type == SPH)      else if ((*s_objet).type == SPH)
     {      {
Line 137  formateur(struct_processus *s_etat_proce Line 146  formateur(struct_processus *s_etat_proce
 --------------------------------------------------------------------------------  --------------------------------------------------------------------------------
 */  */
   
         if (alsprintf(&chaine, "Semaphore $ %016llX '%s'",  #       pragma GCC diagnostic push
   #       pragma GCC diagnostic ignored "-Wpointer-to-int-cast"
   
           if (alsprintf(s_etat_processus,
                   &chaine, "Semaphore $ %016llX '%s'", (unsigned long long)
                 &((*((struct_semaphore *) (*s_objet).objet)).semaphore),                  &((*((struct_semaphore *) (*s_objet).objet)).semaphore),
                 (*((struct_semaphore *) (*s_objet).objet)).nom) < 0)                  (*((struct_semaphore *) (*s_objet).objet)).nom) < 0)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;              (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
             return(NULL);              return(NULL);
         }          }
   
   #       pragma GCC diagnostic pop
   
     }      }
     else if ((*s_objet).type == SQL)      else if ((*s_objet).type == SQL)
     {      {
Line 158  formateur(struct_processus *s_etat_proce Line 174  formateur(struct_processus *s_etat_proce
                 "MYSQL") == 0)                  "MYSQL") == 0)
         {          {
 #           ifdef MYSQL_SUPPORT  #           ifdef MYSQL_SUPPORT
             if (alsprintf(&chaine, "Sql $ %016llX (%s)",              if (alsprintf(s_etat_processus, &chaine, "Sql $ %016llX (%s)",
                     (logical8) (*((struct_connecteur_sql *)                      (unsigned long long) (*((struct_connecteur_sql *)
                     (*s_objet).objet)).descripteur.mysql,                      (*s_objet).objet)).descripteur.mysql,
                     (*((struct_connecteur_sql *) (*s_objet).objet)).type) < 0)                      (*((struct_connecteur_sql *) (*s_objet).objet)).type) < 0)
             {              {
Line 185  formateur(struct_processus *s_etat_proce Line 201  formateur(struct_processus *s_etat_proce
                 "POSTGRESQL") == 0)                  "POSTGRESQL") == 0)
         {          {
 #           ifdef POSTGRESQL_SUPPORT  #           ifdef POSTGRESQL_SUPPORT
             if (alsprintf(&chaine, "Sql $ %016llX (%s)",              if (alsprintf(s_etat_processus, &chaine, "Sql $ %016llX (%s)",
                     (logical8) (*((struct_connecteur_sql *)                      (unsigned long long) (*((struct_connecteur_sql *)
                     (*s_objet).objet)).descripteur.postgresql,                      (*s_objet).objet)).descripteur.postgresql,
                     (*((struct_connecteur_sql *) (*s_objet).objet)).type) < 0)                      (*((struct_connecteur_sql *) (*s_objet).objet)).type) < 0)
             {              {
Line 227  formateur(struct_processus *s_etat_proce Line 243  formateur(struct_processus *s_etat_proce
         if ((*(*((struct_processus_fils *) (*s_objet).objet)).thread)          if ((*(*((struct_processus_fils *) (*s_objet).objet)).thread)
                 .processus_detache == d_vrai)                  .processus_detache == d_vrai)
         {          {
             if (alsprintf(&chaine, "Process $ %016llX", (integer8)              if (alsprintf(s_etat_processus, &chaine,
                       "Process $ %016llX", (unsigned long long)
                     (*(*((struct_processus_fils *) (*s_objet).objet)).thread)                      (*(*((struct_processus_fils *) (*s_objet).objet)).thread)
                     .pid) < 0)                      .pid) < 0)
             {              {
Line 237  formateur(struct_processus *s_etat_proce Line 254  formateur(struct_processus *s_etat_proce
         }          }
         else          else
         {          {
             if (alsprintf(&chaine, "Light weight process $ %016llX/%016llX",              if (alsprintf(s_etat_processus, &chaine,
                     (integer8) (*(*((struct_processus_fils *)                      "Light weight process $ %016llX/%016llX",
                       (unsigned long long) (*(*((struct_processus_fils *)
                     (*s_objet).objet)).thread).pid,                      (*s_objet).objet)).thread).pid,
                     (integer8) (*(*((struct_processus_fils *)                      (unsigned long long) (*(*((struct_processus_fils *)
                     (*s_objet).objet)).thread).tid) < 0)                      (*s_objet).objet)).thread).tid) < 0)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;                  (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
Line 257  formateur(struct_processus *s_etat_proce Line 275  formateur(struct_processus *s_etat_proce
 --------------------------------------------------------------------------------  --------------------------------------------------------------------------------
 */  */
   
         if (alsprintf(&chaine, "File $ %016llX", (logical8)          if (alsprintf(s_etat_processus,
                   &chaine, "File $ %016llX", (unsigned long long)
                 (*((struct_fichier *) ((*s_objet).objet))).descripteur) < 0)                  (*((struct_fichier *) ((*s_objet).objet))).descripteur) < 0)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;              (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
Line 282  formateur(struct_processus *s_etat_proce Line 301  formateur(struct_processus *s_etat_proce
             cf(s_etat_processus, 45);              cf(s_etat_processus, 45);
         }          }
   
         if ((format_majuscule = conversion_majuscule(format)) == NULL)          if ((format_majuscule = conversion_majuscule(s_etat_processus,
                   format)) == NULL)
         {          {
               (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
             return(NULL);              return(NULL);
         }          }
   
Line 389  formateur(struct_processus *s_etat_proce Line 410  formateur(struct_processus *s_etat_proce
 --------------------------------------------------------------------------------  --------------------------------------------------------------------------------
 */  */
   
         if (alsprintf(&chaine, "Socket $ %016llX", (integer8)          if (alsprintf(s_etat_processus, &chaine,
                   "Socket $ %016llX", (unsigned long long)
                 (*((struct_socket *) ((*s_objet).objet))).socket) < 0)                  (*((struct_socket *) ((*s_objet).objet))).socket) < 0)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;              (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
Line 414  formateur(struct_processus *s_etat_proce Line 436  formateur(struct_processus *s_etat_proce
             cf(s_etat_processus, 45);              cf(s_etat_processus, 45);
         }          }
   
         if ((format_majuscule = conversion_majuscule(format)) == NULL)          if ((format_majuscule = conversion_majuscule(s_etat_processus,
                   format)) == NULL)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;              (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
             return(NULL);              return(NULL);
Line 687  formateur(struct_processus *s_etat_proce Line 710  formateur(struct_processus *s_etat_proce
                                 || ((*s_etat_processus).instruction_courante[1]                                  || ((*s_etat_processus).instruction_courante[1]
                                 == '-')) ? d_vrai : d_faux;                                  == '-')) ? d_vrai : d_faux;
   
                           (*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 744  formateur(struct_processus *s_etat_proce Line 768  formateur(struct_processus *s_etat_proce
                             {                              {
                                 if ((strcmp(chaine_fonction, "AND") == 0) ||                                  if ((strcmp(chaine_fonction, "AND") == 0) ||
                                         (strcmp(chaine_fonction, "XOR") == 0) ||                                          (strcmp(chaine_fonction, "XOR") == 0) ||
                                           (strcmp(chaine_fonction, "EQV") == 0) ||
                                         (strcmp(chaine_fonction, "OR") == 0))                                          (strcmp(chaine_fonction, "OR") == 0))
                                 {                                  {
                                     autorisation_parenthese = d_vrai;                                      autorisation_parenthese = d_vrai;
Line 770  formateur(struct_processus *s_etat_proce Line 795  formateur(struct_processus *s_etat_proce
                                         (strcmp(chaine_fonction, "-") == 0) ||                                          (strcmp(chaine_fonction, "-") == 0) ||
                                         (strcmp(chaine_fonction, "AND") == 0) ||                                          (strcmp(chaine_fonction, "AND") == 0) ||
                                         (strcmp(chaine_fonction, "XOR") == 0) ||                                          (strcmp(chaine_fonction, "XOR") == 0) ||
                                           (strcmp(chaine_fonction, "EQV") == 0) ||
                                         (strcmp(chaine_fonction, "OR") == 0))                                          (strcmp(chaine_fonction, "OR") == 0))
                                 {                                  {
                                     autorisation_parenthese = d_vrai;                                      autorisation_parenthese = d_vrai;
Line 850  formateur(struct_processus *s_etat_proce Line 876  formateur(struct_processus *s_etat_proce
                                 "'%s'", (unsigned char *)                                  "'%s'", (unsigned char *)
                                 (*s_sous_objet_1).objet);                                  (*s_sous_objet_1).objet);
   
                           (*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 905  formateur(struct_processus *s_etat_proce Line 932  formateur(struct_processus *s_etat_proce
                             {                              {
                                 if ((strcmp(chaine_fonction, "AND") == 0) ||                                  if ((strcmp(chaine_fonction, "AND") == 0) ||
                                         (strcmp(chaine_fonction, "XOR") == 0) ||                                          (strcmp(chaine_fonction, "XOR") == 0) ||
                                           (strcmp(chaine_fonction, "EQV") == 0) ||
                                         (strcmp(chaine_fonction, "OR") == 0))                                          (strcmp(chaine_fonction, "OR") == 0))
                                 {                                  {
                                     autorisation_parenthese = d_vrai;                                      autorisation_parenthese = d_vrai;
Line 921  formateur(struct_processus *s_etat_proce Line 949  formateur(struct_processus *s_etat_proce
                                         (strcmp(chaine_fonction, "-") == 0) ||                                          (strcmp(chaine_fonction, "-") == 0) ||
                                         (strcmp(chaine_fonction, "AND") == 0) ||                                          (strcmp(chaine_fonction, "AND") == 0) ||
                                         (strcmp(chaine_fonction, "XOR") == 0) ||                                          (strcmp(chaine_fonction, "XOR") == 0) ||
                                           (strcmp(chaine_fonction, "EQV") == 0) ||
                                         (strcmp(chaine_fonction, "OR") == 0))                                          (strcmp(chaine_fonction, "OR") == 0))
                                 {                                  {
                                     autorisation_parenthese = d_vrai;                                      autorisation_parenthese = d_vrai;
Line 1147  formateur(struct_processus *s_etat_proce Line 1176  formateur(struct_processus *s_etat_proce
                             (*(*l_element_courant).donnee).objet)).nom_fonction,                              (*(*l_element_courant).donnee).objet)).nom_fonction,
                             "XOR") == 0) || (strcmp((*((struct_fonction *)                              "XOR") == 0) || (strcmp((*((struct_fonction *)
                             (*(*l_element_courant).donnee).objet)).nom_fonction,                              (*(*l_element_courant).donnee).objet)).nom_fonction,
                               "EQV") == 0) || (strcmp((*((struct_fonction *)
                               (*(*l_element_courant).donnee).objet)).nom_fonction,
                             "AND") == 0))                              "AND") == 0))
                     {                      {
                         if (depilement(s_etat_processus, &((*s_etat_processus)                          if (depilement(s_etat_processus, &((*s_etat_processus)
Line 1191  formateur(struct_processus *s_etat_proce Line 1222  formateur(struct_processus *s_etat_proce
                                 "'%s'", (unsigned char *)                                  "'%s'", (unsigned char *)
                                 (*s_sous_objet_1).objet);                                  (*s_sous_objet_1).objet);
   
                           (*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 1236  formateur(struct_processus *s_etat_proce Line 1268  formateur(struct_processus *s_etat_proce
                             }                              }
   
                             if (((strcmp(chaine_fonction, "OR") == 0) ||                              if (((strcmp(chaine_fonction, "OR") == 0) ||
                                       (strcmp(chaine_fonction, "EQV") == 0) ||
                                     (strcmp(chaine_fonction, "XOR") == 0)) &&                                      (strcmp(chaine_fonction, "XOR") == 0)) &&
                                     (strcmp((*((struct_fonction *)                                      (strcmp((*((struct_fonction *)
                                     (*(*l_element_courant).donnee).objet))                                      (*(*l_element_courant).donnee).objet))
Line 1266  formateur(struct_processus *s_etat_proce Line 1299  formateur(struct_processus *s_etat_proce
                                 "'%s'", (unsigned char *)                                  "'%s'", (unsigned char *)
                                 (*s_sous_objet_2).objet);                                  (*s_sous_objet_2).objet);
   
                           (*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 1311  formateur(struct_processus *s_etat_proce Line 1345  formateur(struct_processus *s_etat_proce
                             }                              }
   
                             if (((strcmp(chaine_fonction, "OR") == 0) ||                              if (((strcmp(chaine_fonction, "OR") == 0) ||
                                       (strcmp(chaine_fonction, "EQV") == 0) ||
                                     (strcmp(chaine_fonction, "XOR") == 0)) &&                                      (strcmp(chaine_fonction, "XOR") == 0)) &&
                                     (strcmp((*((struct_fonction *)                                      (strcmp((*((struct_fonction *)
                                     (*(*l_element_courant).donnee).objet))                                      (*(*l_element_courant).donnee).objet))
Line 1586  formateur(struct_processus *s_etat_proce Line 1621  formateur(struct_processus *s_etat_proce
 -- Base décimale ---------------------------------------------------------------  -- Base décimale ---------------------------------------------------------------
 */  */
   
             sprintf(tampon, "%llu", (*((logical8 *)              sprintf(tampon, "%llu", (*((unsigned long long *)
                     ((*s_objet).objet))) & masque_binaire);                      ((*s_objet).objet))) & masque_binaire);
             strcpy(base, "d");              strcpy(base, "d");
         }          }
Line 1598  formateur(struct_processus *s_etat_proce Line 1633  formateur(struct_processus *s_etat_proce
 -- Base octale -----------------------------------------------------------------  -- Base octale -----------------------------------------------------------------
 */  */
   
             sprintf(tampon, "%llo", (*((logical8 *)              sprintf(tampon, "%llo", (*((unsigned long long *)
                     ((*s_objet).objet))) & masque_binaire);                      ((*s_objet).objet))) & masque_binaire);
             strcpy(base, "o");              strcpy(base, "o");
         }          }
Line 1609  formateur(struct_processus *s_etat_proce Line 1644  formateur(struct_processus *s_etat_proce
 -- Bases hexadécimale et binaire -----------------------------------------------  -- Bases hexadécimale et binaire -----------------------------------------------
 */  */
   
             sprintf(tampon, "%llX", (*((logical8 *)              sprintf(tampon, "%llX", (*((unsigned long long *)
                     ((*s_objet).objet))) & masque_binaire);                      ((*s_objet).objet))) & masque_binaire);
   
             if (test_cfsf(s_etat_processus, 43) == d_vrai)              if (test_cfsf(s_etat_processus, 43) == d_vrai)
Line 2997  formateur(struct_processus *s_etat_proce Line 3032  formateur(struct_processus *s_etat_proce
     }      }
     else if ((*s_objet).type == MTX)      else if ((*s_objet).type == MTX)
     {      {
         if (alsprintf(&chaine, "Mutex $ %016llX owned by $ %016llX",          if (alsprintf(s_etat_processus, &chaine,
                   "Mutex $ %016llX owned by $ %016llX",
                 &((*((struct_mutex *) (*s_objet).objet)).mutex),                  &((*((struct_mutex *) (*s_objet).objet)).mutex),
                 (logical8) (*((struct_mutex *) (*s_objet).objet)).tid) < 0)                  (logical8) (*((struct_mutex *) (*s_objet).objet)).tid) < 0)
         {          {
Line 3262  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 3272  formateur(struct_processus *s_etat_proce Line 3307  formateur(struct_processus *s_etat_proce
             strcat(chaine, " ]");              strcat(chaine, " ]");
         }          }
     }      }
       else if ((*s_objet).type == EXT)
       {
           if ((__type_disp = dlsym((*s_objet).descripteur_bibliotheque,
                   "__type_disp")) == 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;
               }
   
               strcpy(chaine, "External symbol");
           }
           else
           {
               // Symbole externe affichable
               __type_disp(s_etat_processus, (void **) &chaine);
           }
       }
       else
       {
           BUG(1, uprintf("Unknown symbol type\n"));
       }
   
     return(chaine);      return(chaine);
 }  }

Removed from v.1.62  
changed lines
  Added in v.1.84


CVSweb interface <joel.bertrand@systella.fr>