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

version 1.57, 2013/03/16 20:11:29 version 1.58, 2013/03/20 17:11:43
Line 47  formateur(struct_processus *s_etat_proce Line 47  formateur(struct_processus *s_etat_proce
     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 72  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 103  formateur(struct_processus *s_etat_proce
 --------------------------------------------------------------------------------  --------------------------------------------------------------------------------
 */  */
   
         if (alsprintf(&chaine, "@ %016lX", (*((unsigned long *)          if (alsprintf(&chaine, "@ %016lX", (*((integer8 *)
                 ((*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 121  formateur(struct_processus *s_etat_proce Line 120  formateur(struct_processus *s_etat_proce
 */  */
   
         if (alsprintf(&chaine, "Library $ %016lX [%s]",          if (alsprintf(&chaine, "Library $ %016lX [%s]",
                 (unsigned long) (*((struct_bibliotheque *)                  (integer8) (*((struct_bibliotheque *)
                 (*s_objet).objet)).descripteur, (*((struct_bibliotheque *)                  (*s_objet).objet)).descripteur, (*((struct_bibliotheque *)
                 (*s_objet).objet)).nom) < 0)                  (*s_objet).objet)).nom) < 0)
         {          {
Line 228  formateur(struct_processus *s_etat_proce Line 227  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(&chaine, "Process $ %016lX", (integer8)
                     (*(*((struct_processus_fils *) (*s_objet).objet)).thread)                      (*(*((struct_processus_fils *) (*s_objet).objet)).thread)
                     .pid) < 0)                      .pid) < 0)
             {              {
Line 239  formateur(struct_processus *s_etat_proce Line 238  formateur(struct_processus *s_etat_proce
         else          else
         {          {
             if (alsprintf(&chaine, "Light weight process $ %016lX/%016lX",              if (alsprintf(&chaine, "Light weight process $ %016lX/%016lX",
                     (unsigned long) (*(*((struct_processus_fils *)                      (integer8) (*(*((struct_processus_fils *)
                     (*s_objet).objet)).thread).pid,                      (*s_objet).objet)).thread).pid,
                     (unsigned long) (*(*((struct_processus_fils *)                      (integer8) (*(*((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 811  formateur(struct_processus *s_etat_proce Line 810  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 941  formateur(struct_processus *s_etat_proce Line 940  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 964  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 1045  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 1069  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 1324  formateur(struct_processus *s_etat_proce Line 1323  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 1467  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 1487  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 1515  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 1633  formateur(struct_processus *s_etat_proce Line 1632  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 1779  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 1887  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 1948  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++)
Line 2046  formateur(struct_processus *s_etat_proce Line 2045  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 2153  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)
         {          {
Line 2248  formateur(struct_processus *s_etat_proce Line 2247  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 2355  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(unsigned long) * 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 2377  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 2388  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 2422  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 2433  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 2452  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 2488  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 2515  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 2591  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(unsigned long) *
                     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 2612  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 2622  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 2638  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 2648  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 2680  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 2707  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 2783  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(unsigned long) * 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 2804  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 2814  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 2848  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 2858  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 2876  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 2912  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 2939  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 3046  formateur(struct_processus *s_etat_proce Line 3051  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 3092  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 3159  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 3226  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 3321  formateur_nombre(struct_processus *s_eta Line 3326  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 3364  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 3453  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 3464  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 3514  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 3522  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 3541  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 3695  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 3718  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 3755  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 3764  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 3777  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.58


CVSweb interface <joel.bertrand@systella.fr>