Diff for /rpl/src/instructions_b1.c between versions 1.43 and 1.55

version 1.43, 2013/03/10 22:15:48 version 1.55, 2015/01/05 15:32:16
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.13    RPL/2 (R) version 4.1.20
   Copyright (C) 1989-2013 Dr. BERTRAND Joël    Copyright (C) 1989-2015 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
   
Line 203  instruction_b_vers_r(struct_processus *s Line 203  instruction_b_vers_r(struct_processus *s
             return;              return;
         }          }
   
         (*((integer8 *) (*s_objet_resultat).objet)) = (*((logical8 *)          (*((integer8 *) (*s_objet_resultat).objet)) = (integer8) (*((logical8 *)
                 (*s_objet_argument).objet));                  (*s_objet_argument).objet));
     }      }
     else      else
Line 243  instruction_backspace(struct_processus * Line 243  instruction_backspace(struct_processus *
 {  {
     struct_descripteur_fichier  *descripteur;      struct_descripteur_fichier  *descripteur;
   
     int                         i;      integer8                    i;
     int                         nombre_octets;      integer8                    nombre_octets;
   
     integer8                    position_finale;      integer8                    position_finale;
     integer8                    position_initiale;      integer8                    position_initiale;
     integer8                    saut;      integer8                    saut;
       integer8                    pointeur;
       integer8                    niveau;
       integer8                    longueur_effective;
       integer8                    longueur_questure;
   
   
     logical1                    guillemets_a_cheval;      logical1                    guillemets_a_cheval;
     logical1                    presence_chaine;      logical1                    presence_chaine;
     logical1                    presence_indicateur;      logical1                    presence_indicateur;
   
     long                        pointeur;  
     long                        niveau;  
   
     size_t                      longueur_effective;  
     size_t                      longueur_questure;  
   
     struct flock                lock;      struct flock                lock;
   
     struct_objet                *s_objet_argument;      struct_objet                *s_objet_argument;
Line 368  instruction_backspace(struct_processus * Line 366  instruction_backspace(struct_processus *
   
                 longueur_questure = 256;                  longueur_questure = 256;
   
                 if ((tampon_lecture = malloc(longueur_questure *                  if ((tampon_lecture = malloc(((size_t) longueur_questure) *
                         sizeof(unsigned char))) == NULL)                          sizeof(unsigned char))) == NULL)
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =
Line 389  instruction_backspace(struct_processus * Line 387  instruction_backspace(struct_processus *
                         longueur_effective = longueur_questure;                          longueur_effective = longueur_questure;
                     }                      }
   
                     if (fseek((*descripteur).descripteur_c, position_initiale,                      if (fseek((*descripteur).descripteur_c,
                             SEEK_SET) != 0)                              (long) position_initiale, SEEK_SET) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme =                          (*s_etat_processus).erreur_systeme =
                                 d_es_erreur_fichier;                                  d_es_erreur_fichier;
                         return;                          return;
                     }                      }
   
                     longueur_effective = fread(tampon_lecture,                      longueur_effective = (integer8) fread(tampon_lecture,
                             (size_t) sizeof(unsigned char), longueur_effective,                              sizeof(unsigned char), (size_t) longueur_effective,
                             (*descripteur).descripteur_c);                              (*descripteur).descripteur_c);
   
                     pointeur = longueur_effective - 1;                      pointeur = longueur_effective - 1;
Line 472  instruction_backspace(struct_processus * Line 470  instruction_backspace(struct_processus *
                         position_finale--;                          position_finale--;
                     }                      }
   
                     if (fseek((*descripteur).descripteur_c, position_initiale,                      if (fseek((*descripteur).descripteur_c,
                             SEEK_SET) != 0)                              (long) position_initiale, SEEK_SET) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme =                          (*s_etat_processus).erreur_systeme =
                                 d_es_erreur_fichier;                                  d_es_erreur_fichier;
                         return;                          return;
                     }                      }
   
                     longueur_effective = fread(tampon_lecture,                      longueur_effective = (integer8) fread(tampon_lecture,
                             (size_t) sizeof(unsigned char), longueur_effective,                              sizeof(unsigned char), (size_t) longueur_effective,
                             (*descripteur).descripteur_c);                              (*descripteur).descripteur_c);
   
                     pointeur = longueur_effective - 1;                      pointeur = longueur_effective - 1;
Line 551  instruction_backspace(struct_processus * Line 549  instruction_backspace(struct_processus *
                     return;                      return;
                 }                  }
   
                 if (fseek((*descripteur).descripteur_c, position_finale,                  if (fseek((*descripteur).descripteur_c, (long) position_finale,
                         SEEK_SET) != 0)                          SEEK_SET) != 0)
                 {                  {
                     liberation(s_etat_processus, s_objet_argument);                      liberation(s_etat_processus, s_objet_argument);
Line 612  instruction_backspace(struct_processus * Line 610  instruction_backspace(struct_processus *
                     return;                      return;
                 }                  }
   
                 if (fseek((*descripteur).descripteur_c, position_finale - 1,                  if (fseek((*descripteur).descripteur_c,
                         SEEK_SET) != 0)                          ((long) position_finale) - 1, SEEK_SET) != 0)
                 {                  {
                     liberation(s_etat_processus, s_objet_argument);                      liberation(s_etat_processus, s_objet_argument);
   
Line 648  instruction_backspace(struct_processus * Line 646  instruction_backspace(struct_processus *
                         return;                          return;
                     }                      }
   
                     if (fseek((*descripteur).descripteur_c, position_finale                      if (fseek((*descripteur).descripteur_c,
                             - nombre_octets, SEEK_SET) != 0)                              ((long) (position_finale - nombre_octets)),
                               SEEK_SET) != 0)
                     {                      {
                         liberation(s_etat_processus, s_objet_argument);                          liberation(s_etat_processus, s_objet_argument);
   
Line 659  instruction_backspace(struct_processus * Line 658  instruction_backspace(struct_processus *
                     }                      }
   
                     if (fread(tampon, (size_t) sizeof(unsigned char),                      if (fread(tampon, (size_t) sizeof(unsigned char),
                             nombre_octets, (*descripteur).descripteur_c)                              (size_t) nombre_octets,
                               (*descripteur).descripteur_c)
                             != (size_t) nombre_octets)                              != (size_t) nombre_octets)
                     {                      {
                         liberation(s_etat_processus, s_objet_argument);                          liberation(s_etat_processus, s_objet_argument);
Line 678  instruction_backspace(struct_processus * Line 678  instruction_backspace(struct_processus *
   
                     for(i = 1; i < (nombre_octets - 1); i++)                      for(i = 1; i < (nombre_octets - 1); i++)
                     {                      {
                         saut |= tampon[i] << (((nombre_octets - 1) - i) * 8);                          saut |= ((integer8) tampon[i]) <<
                                   (((nombre_octets - 1) - i) * 8);
                     }                      }
                 }                  }
   
                 if (position_finale - saut >= 0)                  if (position_finale - saut >= 0)
                 {                  {
                     if (fseek((*descripteur).descripteur_c,                      if (fseek((*descripteur).descripteur_c,
                             position_finale - saut, SEEK_SET) != 0)                              (long) (position_finale - saut), SEEK_SET) != 0)
                     {                      {
                         liberation(s_etat_processus, s_objet_argument);                          liberation(s_etat_processus, s_objet_argument);
   
Line 1508  instruction_bessel(struct_processus *s_e Line 1509  instruction_bessel(struct_processus *s_e
                             }                              }
   
                             (*((real8 *) (*s_objet_resultat).objet)) =                              (*((real8 *) (*s_objet_resultat).objet)) =
                                     gsl_sf_bessel_Yn((double) ((*((real8 *)                                      gsl_sf_bessel_Yn((int) ((*((real8 *)
                                     (*s_objet_argument_2).objet))),                                      (*s_objet_argument_2).objet))),
                                     (double) ((*((real8 *)                                      (double) ((*((real8 *)
                                     (*s_objet_argument_1).objet))));                                      (*s_objet_argument_1).objet))));
Line 1537  instruction_bessel(struct_processus *s_e Line 1538  instruction_bessel(struct_processus *s_e
                             }                              }
   
                             (*((real8 *) (*s_objet_resultat).objet)) =                              (*((real8 *) (*s_objet_resultat).objet)) =
                                     gsl_sf_bessel_In((double) ((*((real8 *)                                      gsl_sf_bessel_In((int) ((*((real8 *)
                                     (*s_objet_argument_2).objet))),                                      (*s_objet_argument_2).objet))),
                                     (double) ((*((real8 *)                                      (double) ((*((real8 *)
                                     (*s_objet_argument_1).objet))));                                      (*s_objet_argument_1).objet))));
Line 1566  instruction_bessel(struct_processus *s_e Line 1567  instruction_bessel(struct_processus *s_e
                             }                              }
   
                             (*((real8 *) (*s_objet_resultat).objet)) =                              (*((real8 *) (*s_objet_resultat).objet)) =
                                     gsl_sf_bessel_Kn((double) ((*((real8 *)                                      gsl_sf_bessel_Kn((int) ((*((real8 *)
                                     (*s_objet_argument_2).objet))),                                      (*s_objet_argument_2).objet))),
                                     (double) ((*((real8 *)                                      (double) ((*((real8 *)
                                     (*s_objet_argument_1).objet))));                                      (*s_objet_argument_1).objet))));

Removed from v.1.43  
changed lines
  Added in v.1.55


CVSweb interface <joel.bertrand@systella.fr>