Diff for /rpl/src/formateur.c between versions 1.57 and 1.96

version 1.57, 2013/03/16 20:11:29 version 1.96, 2020/01/10 11:15:42
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.13    RPL/2 (R) version 4.1.32
   Copyright (C) 1989-2013 Dr. BERTRAND Joël    Copyright (C) 1989-2020 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;
     logical4                    presence_signe;      logical4                    presence_signe;
   
     long                        longueur_chaine;      logical8                    masque_binaire;
   
     struct_liste_chainee        *l_atome;      struct_liste_chainee        *l_atome;
     struct_liste_chainee        *l_element_courant;      struct_liste_chainee        *l_element_courant;
Line 72  formateur(struct_processus *s_etat_proce Line 74  formateur(struct_processus *s_etat_proce
     unsigned char               *registre;      unsigned char               *registre;
     unsigned char               tampon[1024 + 1];      unsigned char               tampon[1024 + 1];
   
     unsigned long               i;      integer8                    i;
     unsigned long               j;      integer8                    j;
     unsigned long               k;      integer8                    k;
     unsigned long               longueur_courante;      integer8                    longueur_chaine;
     unsigned long               longueur_decimale_courante;      integer8                    longueur_courante;
     unsigned long               *longueurs_maximales;      integer8                    longueur_decimale_courante;
     unsigned long               nombre_arguments;      integer8                    *longueurs_maximales;
     unsigned long               nombre_arguments_fonction;      integer8                    nombre_arguments;
     unsigned long               nombre_colonnes;      integer8                    nombre_arguments_fonction;
     unsigned long               nombre_elements;      integer8                    nombre_colonnes;
     unsigned long               nombre_lignes;      integer8                    nombre_elements;
     unsigned long               offset;      integer8                    nombre_lignes;
       integer8                    offset;
     integer8                    masque_binaire;  
   
     chaine = NULL;      chaine = NULL;
     chaine_formatee = NULL;      chaine_formatee = NULL;
Line 104  formateur(struct_processus *s_etat_proce Line 105  formateur(struct_processus *s_etat_proce
 --------------------------------------------------------------------------------  --------------------------------------------------------------------------------
 */  */
   
         if (alsprintf(&chaine, "@ %016lX", (*((unsigned long *)          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 120  formateur(struct_processus *s_etat_proce Line 122  formateur(struct_processus *s_etat_proce
 --------------------------------------------------------------------------------  --------------------------------------------------------------------------------
 */  */
   
         if (alsprintf(&chaine, "Library $ %016lX [%s]",  #       pragma GCC diagnostic push
                 (unsigned long) (*((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 138  formateur(struct_processus *s_etat_proce Line 146  formateur(struct_processus *s_etat_proce
 --------------------------------------------------------------------------------  --------------------------------------------------------------------------------
 */  */
   
         if (alsprintf(&chaine, "Semaphore $ %016lX '%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 159  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 $ %016lX (%s)",              if (alsprintf(s_etat_processus, &chaine, "Sql $ %016llX (%s)",
                     (long unsigned int) (*((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 186  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 $ %016lX (%s)",              if (alsprintf(s_etat_processus, &chaine, "Sql $ %016llX (%s)",
                     (long unsigned int) (*((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 228  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 $ %016lX", (unsigned long)              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 238  formateur(struct_processus *s_etat_proce Line 254  formateur(struct_processus *s_etat_proce
         }          }
         else          else
         {          {
             if (alsprintf(&chaine, "Light weight process $ %016lX/%016lX",              if (alsprintf(s_etat_processus, &chaine,
                     (unsigned long) (*(*((struct_processus_fils *)                      "Light weight process $ %016llX/%016llX",
                       (unsigned long long) (*(*((struct_processus_fils *)
                     (*s_objet).objet)).thread).pid,                      (*s_objet).objet)).thread).pid,
                     (unsigned long) (*(*((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 258  formateur(struct_processus *s_etat_proce Line 275  formateur(struct_processus *s_etat_proce
 --------------------------------------------------------------------------------  --------------------------------------------------------------------------------
 */  */
   
         if (alsprintf(&chaine, "File $ %016lX", (unsigned long)          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 283  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 390  formateur(struct_processus *s_etat_proce Line 410  formateur(struct_processus *s_etat_proce
 --------------------------------------------------------------------------------  --------------------------------------------------------------------------------
 */  */
   
         if (alsprintf(&chaine, "Socket $ %016lX",          if (alsprintf(s_etat_processus, &chaine,
                 (unsigned long) (*((struct_socket *)                  "Socket $ %016llX", (unsigned long long)
                 ((*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;
             return(NULL);              return(NULL);
Line 416  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 689  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 746  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 772  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 811  formateur(struct_processus *s_etat_proce Line 835  formateur(struct_processus *s_etat_proce
                             chaine_sauvegarde = (unsigned char *)                              chaine_sauvegarde = (unsigned char *)
                                     (*s_sous_objet_2).objet;                                      (*s_sous_objet_2).objet;
   
                             if (((*s_sous_objet_2).objet = (void *)                              if (((*s_sous_objet_2).objet =
                                     malloc((strlen(chaine_sauvegarde) + 2 + 1)                                      malloc((strlen(chaine_sauvegarde) + 2 + 1)
                                     * sizeof(unsigned char))) == NULL)                                      * sizeof(unsigned char))) == NULL)
                             {                              {
Line 852  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 907  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 923  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 941  formateur(struct_processus *s_etat_proce Line 968  formateur(struct_processus *s_etat_proce
                             chaine_sauvegarde = (unsigned char *)                              chaine_sauvegarde = (unsigned char *)
                                     (*s_sous_objet_1).objet;                                      (*s_sous_objet_1).objet;
   
                             if (((*s_sous_objet_1).objet = (void *)                              if (((*s_sous_objet_1).objet =
                                     malloc((strlen(chaine_sauvegarde) + 2 + 1)                                      malloc((strlen(chaine_sauvegarde) + 2 + 1)
                                     * sizeof(unsigned char))) == NULL)                                      * sizeof(unsigned char))) == NULL)
                             {                              {
Line 965  formateur(struct_processus *s_etat_proce Line 992  formateur(struct_processus *s_etat_proce
                             return(NULL);                              return(NULL);
                         }                          }
   
                         if (((*s_sous_objet).objet = (void *) malloc((strlen(                          if (((*s_sous_objet).objet = malloc((strlen(
                                 (unsigned char *) (*s_sous_objet_1).objet) +                                  (unsigned char *) (*s_sous_objet_1).objet) +
                                 strlen((*((struct_fonction *)                                  strlen((*((struct_fonction *)
                                 (*(*l_element_courant).donnee).objet))                                  (*(*l_element_courant).donnee).objet))
Line 1046  formateur(struct_processus *s_etat_proce Line 1073  formateur(struct_processus *s_etat_proce
                         if (autorisation_parenthese == d_vrai)                          if (autorisation_parenthese == d_vrai)
                         {                          {
                             if (((*s_sous_objet).objet =                              if (((*s_sous_objet).objet =
                                     (void *) malloc((strlen(                                      malloc((strlen(
                                     (unsigned char *) (*s_sous_objet_1).objet) +                                      (unsigned char *) (*s_sous_objet_1).objet) +
                                     strlen((*((struct_fonction *)                                      strlen((*((struct_fonction *)
                                     (*(*l_element_courant).donnee).objet))                                      (*(*l_element_courant).donnee).objet))
Line 1070  formateur(struct_processus *s_etat_proce Line 1097  formateur(struct_processus *s_etat_proce
                         else                          else
                         {                          {
                             if (((*s_sous_objet).objet =                              if (((*s_sous_objet).objet =
                                     (void *) malloc((strlen(                                      malloc((strlen(
                                     (unsigned char *) (*s_sous_objet_1).objet) +                                      (unsigned char *) (*s_sous_objet_1).objet) +
                                     strlen((*((struct_fonction *)                                      strlen((*((struct_fonction *)
                                     (*(*l_element_courant).donnee).objet))                                      (*(*l_element_courant).donnee).objet))
Line 1149  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 1193  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 1238  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 1268  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 1313  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 1324  formateur(struct_processus *s_etat_proce Line 1357  formateur(struct_processus *s_etat_proce
   
                         liberation(s_etat_processus, s_sous_objet_3);                          liberation(s_etat_processus, s_sous_objet_3);
   
                         if (((*s_sous_objet).objet = (void *) malloc((strlen(                          if (((*s_sous_objet).objet = malloc((strlen(
                                 (unsigned char *) (*s_sous_objet_1).objet) +                                  (unsigned char *) (*s_sous_objet_1).objet) +
                                 strlen((*((struct_fonction *)                                  strlen((*((struct_fonction *)
                                 (*(*l_element_courant).donnee).objet))                                  (*(*l_element_courant).donnee).objet))
                                 .nom_fonction) + strlen((unsigned char *)                                  .nom_fonction) + strlen((unsigned char *)
                                 (*s_sous_objet_2).objet) + 2 + 1 +                                  (*s_sous_objet_2).objet) + 2 + 1 +
                                 parentheses_groupe_gauche +                                  ((size_t) parentheses_groupe_gauche) +
                                 parentheses_groupe_droit) *                                  ((size_t) parentheses_groupe_droit)) *
                                 sizeof(unsigned char))) == NULL)                                  sizeof(unsigned char))) == NULL)
                         {                          {
                             (*s_etat_processus).erreur_systeme =                              (*s_etat_processus).erreur_systeme =
Line 1468  formateur(struct_processus *s_etat_proce Line 1501  formateur(struct_processus *s_etat_proce
                             return(NULL);                              return(NULL);
                         }                          }
   
                         (*s_sous_objet).objet = (void *) chaine;                          (*s_sous_objet).objet = chaine;
   
                         if (empilement(s_etat_processus, &((*s_etat_processus)                          if (empilement(s_etat_processus, &((*s_etat_processus)
                                 .l_base_pile), s_sous_objet) == d_erreur)                                  .l_base_pile), s_sous_objet) == d_erreur)
Line 1488  formateur(struct_processus *s_etat_proce Line 1521  formateur(struct_processus *s_etat_proce
                     return(NULL);                      return(NULL);
                 }                  }
   
                 if (((*s_sous_objet).objet = (void *) formateur(                  if (((*s_sous_objet).objet = formateur(
                         s_etat_processus, 0, (*l_element_courant).donnee))                          s_etat_processus, 0, (*l_element_courant).donnee))
                         == NULL)                          == NULL)
                 {                  {
Line 1516  formateur(struct_processus *s_etat_proce Line 1549  formateur(struct_processus *s_etat_proce
                     ptrl = chaine_sauvegarde;                      ptrl = chaine_sauvegarde;
                     ptre = (unsigned char *) (*s_sous_objet).objet;                      ptre = (unsigned char *) (*s_sous_objet).objet;
   
                     for(ptrl++, i = strlen(chaine_sauvegarde) - 2; i > 0;                      for(ptrl++, i = ((integer8) strlen(chaine_sauvegarde)) - 2;
                             i--, *ptre++ = *ptrl++);                              i > 0; i--, *ptre++ = *ptrl++);
   
                     (*ptre) = d_code_fin_chaine;                      (*ptre) = d_code_fin_chaine;
   
Line 1588  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 1600  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 1611  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 1633  formateur(struct_processus *s_etat_proce Line 1666  formateur(struct_processus *s_etat_proce
                 strcpy(chaine, tampon);                  strcpy(chaine, tampon);
                 tampon[0] = 0;                  tampon[0] = 0;
   
                 for(i = 0; i < strlen(chaine); i++)                  for(i = 0; i < (integer8) strlen(chaine); i++)
                 {                  {
                     switch(chaine[i])                      switch(chaine[i])
                     {                      {
Line 1780  formateur(struct_processus *s_etat_proce Line 1813  formateur(struct_processus *s_etat_proce
 --------------------------------------------------------------------------------  --------------------------------------------------------------------------------
 */  */
   
         chaine_formatee = formateur_nombre(s_etat_processus, (void *)          chaine_formatee = formateur_nombre(s_etat_processus,
                 ((struct_complexe16 *) ((*s_objet).objet)), 'C');                  ((struct_complexe16 *) ((*s_objet).objet)), 'C');
   
         if (chaine_formatee == NULL)          if (chaine_formatee == NULL)
Line 1888  formateur(struct_processus *s_etat_proce Line 1921  formateur(struct_processus *s_etat_proce
 --------------------------------------------------------------------------------  --------------------------------------------------------------------------------
 */  */
   
         chaine_formatee = formateur_nombre(s_etat_processus, (void *)          chaine_formatee = formateur_nombre(s_etat_processus,
                 ((integer8 *) ((*s_objet).objet)), 'I');                  ((integer8 *) ((*s_objet).objet)), 'I');
   
         if (chaine_formatee == NULL)          if (chaine_formatee == NULL)
Line 1949  formateur(struct_processus *s_etat_proce Line 1982  formateur(struct_processus *s_etat_proce
         }          }
   
         strcpy(chaine, "<[ ");          strcpy(chaine, "<[ ");
         offset = strlen(chaine) + offset_initial;          offset = ((integer8) strlen(chaine)) + offset_initial;
   
         for(i = 0; i < (*((struct_tableau *) (*s_objet).objet))          for(i = 0; i < (*((struct_tableau *) (*s_objet).objet))
                 .nombre_elements; i++)                  .nombre_elements; i++)
         {          {
             chaine_sauvegarde = chaine;              chaine_sauvegarde = chaine;
             chaine_formatee = formateur(s_etat_processus, offset,              chaine_formatee = formateur(s_etat_processus, (long) offset,
                     (*((struct_tableau *) (*s_objet).objet)).elements[i]);                      (*((struct_tableau *) (*s_objet).objet)).elements[i]);
   
             if (chaine_formatee == NULL)              if (chaine_formatee == NULL)
Line 2046  formateur(struct_processus *s_etat_proce Line 2079  formateur(struct_processus *s_etat_proce
                     chaine_sauvegarde = chaine;                      chaine_sauvegarde = chaine;
   
                     chaine = (unsigned char *) malloc(                      chaine = (unsigned char *) malloc(
                             (strlen(chaine_sauvegarde) + 1 + offset)                              (strlen(chaine_sauvegarde) + 1 + ((size_t) offset))
                             * sizeof(unsigned char));                              * sizeof(unsigned char));
   
                     if (chaine == NULL)                      if (chaine == NULL)
Line 2154  formateur(struct_processus *s_etat_proce Line 2187  formateur(struct_processus *s_etat_proce
   
         l_element_courant = (struct_liste_chainee *) ((*s_objet).objet);          l_element_courant = (struct_liste_chainee *) ((*s_objet).objet);
         nombre_elements = 0;          nombre_elements = 0;
         offset = strlen(chaine) + offset_initial;          offset = ((integer8) strlen(chaine)) + offset_initial;
   
         while(l_element_courant != NULL)          while(l_element_courant != NULL)
         {          {
             chaine_sauvegarde = chaine;              chaine_sauvegarde = chaine;
             chaine_formatee = formateur(s_etat_processus, offset,              chaine_formatee = formateur(s_etat_processus, (long) offset,
                     (*l_element_courant).donnee);                      (*l_element_courant).donnee);
   
             if (chaine_formatee == NULL)              if (chaine_formatee == NULL)
Line 2248  formateur(struct_processus *s_etat_proce Line 2281  formateur(struct_processus *s_etat_proce
                     chaine_sauvegarde = chaine;                      chaine_sauvegarde = chaine;
   
                     chaine = (unsigned char *) malloc(                      chaine = (unsigned char *) malloc(
                             (strlen(chaine_sauvegarde) + 1 + offset)                              (strlen(chaine_sauvegarde) + 1 + ((size_t) offset))
                             * sizeof(unsigned char));                              * sizeof(unsigned char));
   
                     if (chaine == NULL)                      if (chaine == NULL)
Line 2356  formateur(struct_processus *s_etat_proce Line 2389  formateur(struct_processus *s_etat_proce
         if (chaine != NULL)          if (chaine != NULL)
         {          {
             strcpy(chaine, "[[");              strcpy(chaine, "[[");
             offset = strlen(chaine) + offset_initial - 1;              offset = ((integer8) strlen(chaine)) + offset_initial - 1;
   
             if ((longueurs_maximales = malloc(sizeof(unsigned long) * 2 *              if ((longueurs_maximales = malloc(sizeof(integer8) * 2 *
                     nombre_colonnes)) == NULL)                      ((size_t) nombre_colonnes))) == NULL)
             {              {
                 (*s_etat_processus).erreur_systeme =                  (*s_etat_processus).erreur_systeme =
                         d_es_allocation_memoire;                          d_es_allocation_memoire;
Line 2378  formateur(struct_processus *s_etat_proce Line 2411  formateur(struct_processus *s_etat_proce
                     for(j = 0; j < nombre_colonnes; j++)                      for(j = 0; j < nombre_colonnes; j++)
                     {                      {
                         chaine_formatee = formateur_nombre(s_etat_processus,                          chaine_formatee = formateur_nombre(s_etat_processus,
                                 (void *) &(((struct_complexe16 **)                                  &(((struct_complexe16 **)
                                 ((*((struct_matrice *)                                  ((*((struct_matrice *)
                                 ((*s_objet).objet))).tableau))[i][j]), 'C');                                  ((*s_objet).objet))).tableau))[i][j]), 'C');
   
Line 2389  formateur(struct_processus *s_etat_proce Line 2422  formateur(struct_processus *s_etat_proce
                             return(NULL);                              return(NULL);
                         }                          }
   
                         longueur_courante = strlen(chaine_formatee);                          longueur_courante = (integer8) strlen(chaine_formatee);
                         longueur_decimale_courante = 0;                          longueur_decimale_courante = 0;
   
                         if ((ptrl = index(chaine_formatee,                          if ((ptrl = index(chaine_formatee,
Line 2423  formateur(struct_processus *s_etat_proce Line 2456  formateur(struct_processus *s_etat_proce
                 for(j = 0; j < nombre_colonnes; j++)                  for(j = 0; j < nombre_colonnes; j++)
                 {                  {
                     chaine_formatee = formateur_nombre(s_etat_processus,                      chaine_formatee = formateur_nombre(s_etat_processus,
                             (void *) &(((struct_complexe16 **)                              &(((struct_complexe16 **)
                             ((*((struct_matrice *)                              ((*((struct_matrice *)
                             ((*s_objet).objet))).tableau))[i][j]), 'C');                              ((*s_objet).objet))).tableau))[i][j]), 'C');
   
Line 2434  formateur(struct_processus *s_etat_proce Line 2467  formateur(struct_processus *s_etat_proce
                         return(NULL);                          return(NULL);
                     }                      }
   
                     longueur_courante = strlen(chaine_formatee);                      longueur_courante = (integer8) strlen(chaine_formatee);
                     longueur_decimale_courante = 0;                      longueur_decimale_courante = 0;
   
                     if ((ptrl = index(chaine_formatee,                      if ((ptrl = index(chaine_formatee,
Line 2453  formateur(struct_processus *s_etat_proce Line 2486  formateur(struct_processus *s_etat_proce
   
                         chaine = (unsigned char *) malloc(                          chaine = (unsigned char *) malloc(
                                 (strlen(chaine_sauvegarde) +                                  (strlen(chaine_sauvegarde) +
                                 longueur_courante + longueur_decimale_courante +                                  ((size_t) longueur_courante) +
                                 longueurs_maximales[2 * j] +                                  ((size_t) longueur_decimale_courante) +
                                 longueurs_maximales[(2 * j) + 1] + 2)                                  ((size_t) longueurs_maximales[2 * j]) +
                                   ((size_t) longueurs_maximales[(2 * j) + 1]) + 2)
                                 * sizeof(unsigned char));                                  * sizeof(unsigned char));
   
                         if (chaine == NULL)                          if (chaine == NULL)
Line 2488  formateur(struct_processus *s_etat_proce Line 2522  formateur(struct_processus *s_etat_proce
                     {                      {
                         chaine = (unsigned char *) malloc(                          chaine = (unsigned char *) malloc(
                                 (strlen(chaine_sauvegarde) +                                  (strlen(chaine_sauvegarde) +
                                 longueur_courante + longueur_decimale_courante                                  ((size_t) longueur_courante) +
                                   ((size_t) longueur_decimale_courante)
                                 + 2) * sizeof(unsigned char));                                  + 2) * sizeof(unsigned char));
   
                         if (chaine == NULL)                          if (chaine == NULL)
Line 2514  formateur(struct_processus *s_etat_proce Line 2549  formateur(struct_processus *s_etat_proce
                     if (test_cfsf(s_etat_processus, 45) == d_vrai)                      if (test_cfsf(s_etat_processus, 45) == d_vrai)
                     {                      {
                         chaine = (unsigned char *) malloc(                          chaine = (unsigned char *) malloc(
                                 (strlen(chaine_sauvegarde) + 5 + offset)                                  (strlen(chaine_sauvegarde) + 5 +
                                 * sizeof(unsigned char));                                  ((size_t) offset)) * sizeof(unsigned char));
   
                         if (chaine == NULL)                          if (chaine == NULL)
                         {                          {
Line 2590  formateur(struct_processus *s_etat_proce Line 2625  formateur(struct_processus *s_etat_proce
         if (chaine != NULL)          if (chaine != NULL)
         {          {
             strcpy(chaine, "[[");              strcpy(chaine, "[[");
             offset = strlen(chaine) + offset_initial - 1;              offset = ((integer8) strlen(chaine)) + offset_initial - 1;
   
             if ((longueurs_maximales = malloc(sizeof(unsigned long) *              if ((longueurs_maximales = malloc(sizeof(integer8) *
                     nombre_colonnes)) == NULL)                      ((size_t) nombre_colonnes))) == NULL)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;                  (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                 return(NULL);                  return(NULL);
Line 2611  formateur(struct_processus *s_etat_proce Line 2646  formateur(struct_processus *s_etat_proce
                     for(j = 0; j < nombre_colonnes; j++)                      for(j = 0; j < nombre_colonnes; j++)
                     {                      {
                         chaine_formatee = formateur_nombre(s_etat_processus,                          chaine_formatee = formateur_nombre(s_etat_processus,
                                 (void *) &(((integer8 **) ((*((struct_matrice *)                                  &(((integer8 **) ((*((struct_matrice *)
                                 ((*s_objet).objet))).tableau))[i][j]), 'I');                                  ((*s_objet).objet))).tableau))[i][j]), 'I');
   
                         if (chaine_formatee == NULL)                          if (chaine_formatee == NULL)
Line 2621  formateur(struct_processus *s_etat_proce Line 2656  formateur(struct_processus *s_etat_proce
                             return(NULL);                              return(NULL);
                         }                          }
   
                         longueur_courante = strlen(chaine_formatee);                          longueur_courante = (integer8) strlen(chaine_formatee);
                         free(chaine_formatee);                          free(chaine_formatee);
   
                         if (longueurs_maximales[j] < longueur_courante)                          if (longueurs_maximales[j] < longueur_courante)
Line 2637  formateur(struct_processus *s_etat_proce Line 2672  formateur(struct_processus *s_etat_proce
                 for(j = 0; j < nombre_colonnes; j++)                  for(j = 0; j < nombre_colonnes; j++)
                 {                  {
                     chaine_formatee = formateur_nombre(s_etat_processus,                      chaine_formatee = formateur_nombre(s_etat_processus,
                             (void *) &(((integer8 **) ((*((struct_matrice *)                              &(((integer8 **) ((*((struct_matrice *)
                             ((*s_objet).objet))).tableau))[i][j]), 'I');                              ((*s_objet).objet))).tableau))[i][j]), 'I');
   
                     if (chaine_formatee == NULL)                      if (chaine_formatee == NULL)
Line 2647  formateur(struct_processus *s_etat_proce Line 2682  formateur(struct_processus *s_etat_proce
                         return(NULL);                          return(NULL);
                     }                      }
   
                     longueur_courante = strlen(chaine_formatee);                      longueur_courante = (integer8) strlen(chaine_formatee);
                     chaine_sauvegarde = chaine;                      chaine_sauvegarde = chaine;
   
                     if (test_cfsf(s_etat_processus, 45) == d_vrai)                      if (test_cfsf(s_etat_processus, 45) == d_vrai)
                     {                      {
                         chaine = (unsigned char *) malloc(                          chaine = (unsigned char *) malloc(
                                 (strlen(chaine_sauvegarde) + longueur_courante                                  (strlen(chaine_sauvegarde) +
                                 + longueurs_maximales[j] + 2)                                  ((size_t) longueur_courante)
                                   + ((size_t) longueurs_maximales[j]) + 2)
                                 * sizeof(unsigned char));                                  * sizeof(unsigned char));
   
                         if (chaine == NULL)                          if (chaine == NULL)
Line 2678  formateur(struct_processus *s_etat_proce Line 2714  formateur(struct_processus *s_etat_proce
                     else                      else
                     {                      {
                         chaine = (unsigned char *) malloc(                          chaine = (unsigned char *) malloc(
                                 (strlen(chaine_sauvegarde) + longueur_courante                                  (strlen(chaine_sauvegarde) +
                                   ((size_t) longueur_courante)
                                 + 2) * sizeof(unsigned char));                                  + 2) * sizeof(unsigned char));
   
                         if (chaine == NULL)                          if (chaine == NULL)
Line 2704  formateur(struct_processus *s_etat_proce Line 2741  formateur(struct_processus *s_etat_proce
                     if (test_cfsf(s_etat_processus, 45) == d_vrai)                      if (test_cfsf(s_etat_processus, 45) == d_vrai)
                     {                      {
                         chaine = (unsigned char *) malloc(                          chaine = (unsigned char *) malloc(
                                 (strlen(chaine_sauvegarde) + 5 + offset)                                  (strlen(chaine_sauvegarde) + 5 +
                                 * sizeof(unsigned char));                                  ((size_t) offset)) * sizeof(unsigned char));
   
                         if (chaine == NULL)                          if (chaine == NULL)
                         {                          {
Line 2780  formateur(struct_processus *s_etat_proce Line 2817  formateur(struct_processus *s_etat_proce
         if (chaine != NULL)          if (chaine != NULL)
         {          {
             strcpy(chaine, "[[");              strcpy(chaine, "[[");
             offset = strlen(chaine) + offset_initial - 1;              offset = ((integer8) strlen(chaine)) + offset_initial - 1;
   
             if ((longueurs_maximales = malloc(sizeof(unsigned long) * 2 *              if ((longueurs_maximales = malloc(sizeof(integer8) * 2 *
                     nombre_colonnes)) == NULL)                      ((size_t) nombre_colonnes))) == NULL)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;                  (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                 return(NULL);                  return(NULL);
Line 2801  formateur(struct_processus *s_etat_proce Line 2838  formateur(struct_processus *s_etat_proce
                     for(j = 0; j < nombre_colonnes; j++)                      for(j = 0; j < nombre_colonnes; j++)
                     {                      {
                         chaine_formatee = formateur_nombre(s_etat_processus,                          chaine_formatee = formateur_nombre(s_etat_processus,
                                 (void *) &(((real8 **) ((*((struct_matrice *)                                  &(((real8 **) ((*((struct_matrice *)
                                 ((*s_objet).objet))).tableau))[i][j]), 'R');                                  ((*s_objet).objet))).tableau))[i][j]), 'R');
   
                         if (chaine_formatee == NULL)                          if (chaine_formatee == NULL)
Line 2811  formateur(struct_processus *s_etat_proce Line 2848  formateur(struct_processus *s_etat_proce
                             return(NULL);                              return(NULL);
                         }                          }
   
                         longueur_courante = strlen(chaine_formatee);                          longueur_courante = (integer8) strlen(chaine_formatee);
                         longueur_decimale_courante = 0;                          longueur_decimale_courante = 0;
   
                         if ((ptrl = index(chaine_formatee,                          if ((ptrl = index(chaine_formatee,
Line 2845  formateur(struct_processus *s_etat_proce Line 2882  formateur(struct_processus *s_etat_proce
                 for(j = 0; j < nombre_colonnes; j++)                  for(j = 0; j < nombre_colonnes; j++)
                 {                  {
                     chaine_formatee = formateur_nombre(s_etat_processus,                      chaine_formatee = formateur_nombre(s_etat_processus,
                             (void *) &(((real8 **) ((*((struct_matrice *)                              &(((real8 **) ((*((struct_matrice *)
                             ((*s_objet).objet))).tableau))[i][j]), 'R');                              ((*s_objet).objet))).tableau))[i][j]), 'R');
   
                     if (chaine_formatee == NULL)                      if (chaine_formatee == NULL)
Line 2855  formateur(struct_processus *s_etat_proce Line 2892  formateur(struct_processus *s_etat_proce
                         return(NULL);                          return(NULL);
                     }                      }
   
                     longueur_courante = strlen(chaine_formatee);                      longueur_courante = (integer8) strlen(chaine_formatee);
                     longueur_decimale_courante = 0;                      longueur_decimale_courante = 0;
   
                     if ((ptrl = index(chaine_formatee,                      if ((ptrl = index(chaine_formatee,
Line 2873  formateur(struct_processus *s_etat_proce Line 2910  formateur(struct_processus *s_etat_proce
                     {                      {
                         chaine = (unsigned char *) malloc(                          chaine = (unsigned char *) malloc(
                                 (strlen(chaine_sauvegarde) +                                  (strlen(chaine_sauvegarde) +
                                 longueur_courante + longueur_decimale_courante +                                  ((size_t) longueur_courante) +
                                 longueurs_maximales[2 * j] +                                  ((size_t) longueur_decimale_courante) +
                                 longueurs_maximales[(2 * j) + 1] + 2)                                  ((size_t) longueurs_maximales[2 * j]) +
                                   ((size_t) longueurs_maximales[(2 * j) + 1]) + 2)
                                 * sizeof(unsigned char));                                  * sizeof(unsigned char));
   
                         if (chaine == NULL)                          if (chaine == NULL)
Line 2908  formateur(struct_processus *s_etat_proce Line 2946  formateur(struct_processus *s_etat_proce
                     {                      {
                         chaine = (unsigned char *) malloc(                          chaine = (unsigned char *) malloc(
                                 (strlen(chaine_sauvegarde) +                                  (strlen(chaine_sauvegarde) +
                                  longueur_courante + longueur_decimale_courante                                  ((size_t) longueur_courante) +
                                   ((size_t) longueur_decimale_courante)
                                 + 2) * sizeof(unsigned char));                                  + 2) * sizeof(unsigned char));
   
                         if (chaine == NULL)                          if (chaine == NULL)
Line 2934  formateur(struct_processus *s_etat_proce Line 2973  formateur(struct_processus *s_etat_proce
                     if (test_cfsf(s_etat_processus, 45) == d_vrai)                      if (test_cfsf(s_etat_processus, 45) == d_vrai)
                     {                      {
                         chaine = (unsigned char *) malloc(                          chaine = (unsigned char *) malloc(
                                 (strlen(chaine_sauvegarde) + 5 + offset)                                  (strlen(chaine_sauvegarde) + 5 +
                                 * sizeof(unsigned char));                                  ((size_t) offset)) * sizeof(unsigned char));
                                                   
                         if (chaine == NULL)                          if (chaine == NULL)
                         {                          {
Line 2993  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 $ %016lX owned by $ %016lX",          if (alsprintf(s_etat_processus, &chaine,
                 (unsigned long) &((*((struct_mutex *) (*s_objet).objet)).mutex),                  "Mutex $ %016llX owned by $ %016llX",
                 (unsigned long) (*((struct_mutex *) (*s_objet).objet)).tid) < 0)                  &((*((struct_mutex *) (*s_objet).objet)).mutex),
                   (logical8) (*((struct_mutex *) (*s_objet).objet)).tid) < 0)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;              (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
             return(NULL);              return(NULL);
Line 3046  formateur(struct_processus *s_etat_proce Line 3086  formateur(struct_processus *s_etat_proce
 --------------------------------------------------------------------------------  --------------------------------------------------------------------------------
 */  */
   
         chaine_formatee = formateur_nombre(s_etat_processus, (void *)          chaine_formatee = formateur_nombre(s_etat_processus,
                 ((real8 *) ((*s_objet).objet)), 'R');                  ((real8 *) ((*s_objet).objet)), 'R');
   
         if (chaine_formatee == NULL)          if (chaine_formatee == NULL)
Line 3087  formateur(struct_processus *s_etat_proce Line 3127  formateur(struct_processus *s_etat_proce
   
             for(i = 0; i < nombre_colonnes; i++)              for(i = 0; i < nombre_colonnes; i++)
             {              {
                 chaine_formatee = formateur_nombre(s_etat_processus, (void *)                  chaine_formatee = formateur_nombre(s_etat_processus,
                         &(((struct_complexe16 *) ((*((struct_vecteur *)                          &(((struct_complexe16 *) ((*((struct_vecteur *)
                         ((*s_objet).objet))).tableau))[i]), 'C');                          ((*s_objet).objet))).tableau))[i]), 'C');
   
Line 3154  formateur(struct_processus *s_etat_proce Line 3194  formateur(struct_processus *s_etat_proce
   
             for(i = 0; i < nombre_colonnes; i++)              for(i = 0; i < nombre_colonnes; i++)
             {              {
                 chaine_formatee = formateur_nombre(s_etat_processus, (void *)                  chaine_formatee = formateur_nombre(s_etat_processus,
                         &(((integer8 *) ((*((struct_vecteur *)                          &(((integer8 *) ((*((struct_vecteur *)
                         ((*s_objet).objet))).tableau))[i]), 'I');                          ((*s_objet).objet))).tableau))[i]), 'I');
   
Line 3221  formateur(struct_processus *s_etat_proce Line 3261  formateur(struct_processus *s_etat_proce
   
             for(i = 0; i < nombre_colonnes; i++)              for(i = 0; i < nombre_colonnes; i++)
             {              {
                 chaine_formatee = formateur_nombre(s_etat_processus, (void *)                  chaine_formatee = formateur_nombre(s_etat_processus,
                         &(((real8 *) ((*((struct_vecteur *)                          &(((real8 *) ((*((struct_vecteur *)
                         ((*s_objet).objet))).tableau))[i]), 'R');                          ((*s_objet).objet))).tableau))[i]), 'R');
   
Line 3258  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 = d_es_allocation_memoire;
                   return(NULL);
               }
   
               strcpy(chaine, chaine_sauvegarde);
               free(chaine_sauvegarde);
               strcat(chaine, " ]");
           }
       }
       else if ((*s_objet).type == REC)
       {
           chaine = (unsigned char *) malloc(4 * sizeof(unsigned char));
   
           if (chaine == NULL)
           {
               (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
               return(NULL);
           }
   
           strcpy(chaine, "|[ ");
           offset = ((integer8) strlen(chaine)) + offset_initial;
   
           // L'objet se compose de deux tables à une dimension de
           // mêmes tailles.
   
           chaine_sauvegarde = chaine;
   
           if ((chaine_formatee = formateur(s_etat_processus, (long) offset,
                   (*((struct_record *) (*s_objet).objet)).noms)) == NULL)
           {
               (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
               return(NULL);
           }
   
           if ((chaine = (unsigned char *) malloc((strlen(chaine_formatee)
                   + strlen(chaine_sauvegarde) + 1)
                   * sizeof(unsigned char))) == NULL)
           {
               (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
               return(NULL);
           }
   
           sprintf(chaine, "%s%s", chaine_sauvegarde, chaine_formatee);
           free(chaine_sauvegarde);
           free(chaine_formatee);
   
           if (test_cfsf(s_etat_processus, 45) == d_vrai)
           {
               chaine_sauvegarde = chaine;
   
               if ((chaine = (unsigned char *) malloc(
                       (strlen(chaine_sauvegarde) + 2) * sizeof(unsigned char)))
                       == NULL)
               {
                   (*s_etat_processus).erreur_systeme =
                           d_es_allocation_memoire;
                   return(NULL);
               }
   
               strcpy(chaine, chaine_sauvegarde);
               free(chaine_sauvegarde);
               strcat(chaine, "\n");
   
               chaine_sauvegarde = chaine;
   
               chaine = (unsigned char *) malloc(
                       (strlen(chaine_sauvegarde) + 1 + ((size_t) offset))
                       * sizeof(unsigned char));
   
               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 3265  formateur(struct_processus *s_etat_proce Line 3376  formateur(struct_processus *s_etat_proce
   
             strcpy(chaine, chaine_sauvegarde);              strcpy(chaine, chaine_sauvegarde);
             free(chaine_sauvegarde);              free(chaine_sauvegarde);
             strcat(chaine, " ]");              ptre = &(chaine[strlen(chaine)]);
   
               for(k = 0; k < offset; k++, *(ptre++) = ' ');
   
               (*ptre) = d_code_fin_chaine;
           }
           else
           {
               chaine_sauvegarde = chaine;
   
               if ((chaine = (unsigned char *) malloc(
                       (strlen(chaine_sauvegarde) + 2)
                       * sizeof(unsigned char))) == NULL)
               {
                   (*s_etat_processus).erreur_systeme =
                           d_es_allocation_memoire;
                   return(NULL);
               }
   
               strcpy(chaine, chaine_sauvegarde);
               free(chaine_sauvegarde);
               strcat(chaine, " ");
           }
   
           chaine_sauvegarde = chaine;
   
           if ((chaine_formatee = formateur(s_etat_processus, (long) offset,
                   (*((struct_record *) (*s_objet).objet)).donnees)) == NULL)
           {
               (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
               return(NULL);
           }
   
           if ((chaine = (unsigned char *) malloc((strlen(chaine_formatee)
                   + strlen(chaine_sauvegarde) + 1)
                   * sizeof(unsigned char))) == NULL)
           {
               (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
               return(NULL);
           }
   
           sprintf(chaine, "%s%s", chaine_sauvegarde, chaine_formatee);
           free(chaine_sauvegarde);
           free(chaine_formatee);
   
           chaine_sauvegarde = chaine;
           chaine = (unsigned char *) malloc((strlen(chaine_sauvegarde) + 4)
                   * sizeof(unsigned char));
   
           if (chaine == NULL)
           {
               (*s_etat_processus).erreur_systeme =
                       d_es_allocation_memoire;
               return(NULL);
           }
   
           strcpy(chaine, chaine_sauvegarde);
           free(chaine_sauvegarde);
           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);
 }  }
Line 3321  formateur_nombre(struct_processus *s_eta Line 3560  formateur_nombre(struct_processus *s_eta
             strcpy(construction_chaine, "(");              strcpy(construction_chaine, "(");
   
             tampon = formateur_reel(s_etat_processus,              tampon = formateur_reel(s_etat_processus,
                     (void *) &((*((struct_complexe16 *)                      &((*((struct_complexe16 *)
                     valeur_numerique)).partie_reelle), 'R');                      valeur_numerique)).partie_reelle), 'R');
   
             if (tampon == NULL)              if (tampon == NULL)
Line 3359  formateur_nombre(struct_processus *s_eta Line 3598  formateur_nombre(struct_processus *s_eta
             }              }
   
             tampon = formateur_reel(s_etat_processus,              tampon = formateur_reel(s_etat_processus,
                     (void *) &((*((struct_complexe16 *)                      &((*((struct_complexe16 *)
                     valeur_numerique)).partie_imaginaire), 'R');                      valeur_numerique)).partie_imaginaire), 'R');
   
             if (tampon == NULL)              if (tampon == NULL)
Line 3448  formateur_reel(struct_processus *s_etat_ Line 3687  formateur_reel(struct_processus *s_etat_
     long                    correction;      long                    correction;
     long                    dernier_chiffre_significatif;      long                    dernier_chiffre_significatif;
     long                    exposant;      long                    exposant;
       long                    i;
       long                    j;
     long                    longueur_utile;      long                    longueur_utile;
     long                    longueur_utile_limite;      long                    longueur_utile_limite;
   
Line 3457  formateur_reel(struct_processus *s_etat_ Line 3698  formateur_reel(struct_processus *s_etat_
     unsigned char           *ptr;      unsigned char           *ptr;
     unsigned char           tampon[32 + 1];      unsigned char           tampon[32 + 1];
   
     unsigned long           i;  
     unsigned long           j;  
   
     chaine = (unsigned char *) malloc((32 + 1) * sizeof(unsigned char));      chaine = (unsigned char *) malloc((32 + 1) * sizeof(unsigned char));
   
     if (chaine == NULL)      if (chaine == NULL)
Line 3510  formateur_reel(struct_processus *s_etat_ Line 3748  formateur_reel(struct_processus *s_etat_
             exposant = 0;              exposant = 0;
         }          }
   
         mantisse = (*((real8 *) valeur_numerique)) / pow(10, exposant);          mantisse = (*((real8 *) valeur_numerique)) / pow(10, (double) exposant);
     }      }
     else      else
     {      {
Line 3518  formateur_reel(struct_processus *s_etat_ Line 3756  formateur_reel(struct_processus *s_etat_
   
         if (tampon_entier > ((integer8) 0))          if (tampon_entier > ((integer8) 0))
         {          {
             exposant = (long) floor(log10(tampon_entier));              exposant = (long) floor(log10((double) tampon_entier));
         }          }
         else if (tampon_entier < ((integer8) 0))          else if (tampon_entier < ((integer8) 0))
         {          {
             if (tampon_entier != INT64_MIN)              if (tampon_entier != INT64_MIN)
             {              {
                 exposant = (long) floor(log10(-tampon_entier));                  exposant = (long) floor(log10((double) -tampon_entier));
             }              }
             else              else
             {              {
Line 3537  formateur_reel(struct_processus *s_etat_ Line 3775  formateur_reel(struct_processus *s_etat_
             exposant = 0;              exposant = 0;
         }          }
   
         mantisse = (*((integer8 *) valeur_numerique)) / pow(10, exposant);          mantisse = ((real8) (*((integer8 *) valeur_numerique))) /
                   pow(10, (double) exposant);
     }      }
   
     longueur_utile = 0;      longueur_utile = 0;
Line 3690  formateur_reel(struct_processus *s_etat_ Line 3929  formateur_reel(struct_processus *s_etat_
   
         sprintf(format, "%%.%luf", longueur_utile);          sprintf(format, "%%.%luf", longueur_utile);
   
         sprintf(tampon, format, (mantisse * pow(10, exposant)));          sprintf(tampon, format, (mantisse * pow(10, (double) exposant)));
         strcpy(chaine, tampon);          strcpy(chaine, tampon);
     }      }
     else if (strcmp(mode, "ENG") == 0)      else if (strcmp(mode, "ENG") == 0)
Line 3713  formateur_reel(struct_processus *s_etat_ Line 3952  formateur_reel(struct_processus *s_etat_
         longueur_utile -= correction;          longueur_utile -= correction;
         sprintf(format, "%%.%luf", longueur_utile);          sprintf(format, "%%.%luf", longueur_utile);
   
         sprintf(tampon, format, (mantisse * pow(10, correction)));          sprintf(tampon, format, (mantisse * pow(10, (double) correction)));
         strcpy(chaine, tampon);          strcpy(chaine, tampon);
         strcat(chaine, "E");          strcat(chaine, "E");
         sprintf(tampon, "%ld", (exposant - correction));          sprintf(tampon, "%ld", (exposant - correction));
Line 3750  formateur_reel(struct_processus *s_etat_ Line 3989  formateur_reel(struct_processus *s_etat_
   
             sprintf(tampon, format, *((real8 *) valeur_numerique));              sprintf(tampon, format, *((real8 *) valeur_numerique));
   
             i = strlen(tampon) - 1;              i = ((long) strlen(tampon)) - 1;
             while(tampon[i] == '0')              while(tampon[i] == '0')
             {              {
                 tampon[i] = d_code_fin_chaine;                  tampon[i] = d_code_fin_chaine;
Line 3759  formateur_reel(struct_processus *s_etat_ Line 3998  formateur_reel(struct_processus *s_etat_
   
             if (ds_imposition_separateur_decimal == d_faux)              if (ds_imposition_separateur_decimal == d_faux)
             {              {
                 i = strlen(tampon) - 1;                  i = ((long) strlen(tampon)) - 1;
                 if (tampon[i] == '.')                  if (tampon[i] == '.')
                 {                  {
                     tampon[i] = d_code_fin_chaine;                      tampon[i] = d_code_fin_chaine;
Line 3772  formateur_reel(struct_processus *s_etat_ Line 4011  formateur_reel(struct_processus *s_etat_
   
     if (test_cfsf(s_etat_processus, 48) == d_vrai)      if (test_cfsf(s_etat_processus, 48) == d_vrai)
     {      {
         for(i = 0; i < strlen(chaine); i++)          for(i = 0; i < (long) strlen(chaine); i++)
         {          {
             if (chaine[i] == '.')              if (chaine[i] == '.')
             {              {

Removed from v.1.57  
changed lines
  Added in v.1.96


CVSweb interface <joel.bertrand@systella.fr>