Diff for /rpl/src/types.c between versions 1.47 and 1.58

version 1.47, 2012/03/30 14:13:17 version 1.58, 2013/03/16 11:31:41
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.7    RPL/2 (R) version 4.1.13
   Copyright (C) 1989-2012 Dr. BERTRAND Joël    Copyright (C) 1989-2013 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
   
Line 1461  recherche_type(struct_processus *s_etat_ Line 1461  recherche_type(struct_processus *s_etat_
                         }                          }
                         else                          else
                         {                          {
                               liberation(s_etat_processus, s_objet_registre);
   
                             (*s_etat_processus).erreur_systeme = d_es_pile_vide;                              (*s_etat_processus).erreur_systeme = d_es_pile_vide;
                             (*s_etat_processus).traitement_interruptible =                              (*s_etat_processus).traitement_interruptible =
                                     registre_interruption;                                      registre_interruption;
Line 2068  recherche_type(struct_processus *s_etat_ Line 2070  recherche_type(struct_processus *s_etat_
                             }                              }
                             else                              else
                             {                              {
                                   liberation(s_etat_processus,
                                           s_objet_registre);
   
                                 (*s_etat_processus).erreur_systeme =                                  (*s_etat_processus).erreur_systeme =
                                         d_es_pile_vide;                                          d_es_pile_vide;
                                 (*s_etat_processus).traitement_interruptible =                                  (*s_etat_processus).traitement_interruptible =
Line 2217  recherche_type(struct_processus *s_etat_ Line 2222  recherche_type(struct_processus *s_etat_
                 if ((*s_etat_processus).definitions_chainees                  if ((*s_etat_processus).definitions_chainees
                         [(*s_etat_processus).position_courante] == '"')                          [(*s_etat_processus).position_courante] == '"')
                 {                  {
                     if (drapeau_chaine == d_faux)                      if ((*s_etat_processus).position_courante > 0)
                     {                      {
                         drapeau_chaine = d_vrai;                          if ((*s_etat_processus).definitions_chainees
                                   [(*s_etat_processus).position_courante - 1]
                                   != '\\')
                           {
                               if (drapeau_chaine == d_faux)
                               {
                                   drapeau_chaine = d_vrai;
                               }
                               else
                               {
                                   drapeau_chaine = d_faux;
                               }
                           }
                     }                      }
                     else                      else 
                     {                      {
                         drapeau_chaine = d_faux;                          if (drapeau_chaine == d_faux)
                           {
                               drapeau_chaine = d_vrai;
                           }
                           else
                           {
                               drapeau_chaine = d_faux;
                           }
                     }                      }
                 }                  }
                 else if (drapeau_chaine == d_faux)                  else if (drapeau_chaine == d_faux)
Line 3523  recherche_type(struct_processus *s_etat_ Line 3547  recherche_type(struct_processus *s_etat_
                     integer8                    conversion_entiere;                      integer8                    conversion_entiere;
                     real8                       conversion_reelle;                      real8                       conversion_reelle;
   
                     if (sscanf((*s_etat_processus).instruction_courante, "%lg",  
                             &conversion_reelle) != 1)  
                     {  
                         (*s_etat_processus).erreur_execution = d_ex_syntaxe;  
                     }  
   
                     if (sscanf((*s_etat_processus).instruction_courante, "%lld",                      if (sscanf((*s_etat_processus).instruction_courante, "%lld",
                             &conversion_entiere) != 1)                              &conversion_entiere) != 1)
                     {                      {
                         (*s_etat_processus).erreur_execution = d_ex_syntaxe;                          (*s_etat_processus).erreur_execution = d_ex_syntaxe;
                     }                      }
   
                     if (abs(nextafter(conversion_reelle, conversion_entiere)                      if (errno != ERANGE)
                             - conversion_reelle) >= abs(conversion_reelle  
                             - conversion_entiere))  
                     {                      {
                         (*s_objet).type = INT;                          (*s_objet).type = INT;
   
Line 3556  recherche_type(struct_processus *s_etat_ Line 3572  recherche_type(struct_processus *s_etat_
                     }                      }
                     else                      else
                     {                      {
                           if (sscanf((*s_etat_processus).instruction_courante,
                                   "%lg", &conversion_reelle) != 1)
                           {
                               (*s_etat_processus).erreur_execution = d_ex_syntaxe;
                           }
   
                         (*s_objet).type = REL;                          (*s_objet).type = REL;
   
                         element = malloc(sizeof(real8));                          element = malloc(sizeof(real8));

Removed from v.1.47  
changed lines
  Added in v.1.58


CVSweb interface <joel.bertrand@systella.fr>