Diff for /rpl/src/analyse.c between versions 1.20 and 1.28

version 1.20, 2010/06/24 10:10:39 version 1.28, 2010/08/13 21:01:10
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.0.17    RPL/2 (R) version 4.0.18
   Copyright (C) 1989-2010 Dr. BERTRAND Joël    Copyright (C) 1989-2010 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
Line 20 Line 20
 */  */
   
   
 #include "rpl.conv.h"  #include "rpl-conv.h"
   
   
 /*  /*
Line 715  initialisation_instructions(struct_proce Line 715  initialisation_instructions(struct_proce
     INSTRUCTION("APPEND", instruction_append);      INSTRUCTION("APPEND", instruction_append);
     INSTRUCTION("ARRY->", instruction_array_fleche);      INSTRUCTION("ARRY->", instruction_array_fleche);
     INSTRUCTION("ATEXIT", instruction_atexit);      INSTRUCTION("ATEXIT", instruction_atexit);
       INSTRUCTION("ATPOKE", instruction_atpoke);
     INSTRUCTION("BESSEL", instruction_bessel);      INSTRUCTION("BESSEL", instruction_bessel);
     INSTRUCTION("CLRERR", instruction_clrerr);      INSTRUCTION("CLRERR", instruction_clrerr);
     INSTRUCTION("CLRMTX", instruction_clrmtx);      INSTRUCTION("CLRMTX", instruction_clrmtx);
Line 834  initialisation_instructions(struct_proce Line 835  initialisation_instructions(struct_proce
   
     INSTRUCTION("AUTOSCALE", instruction_autoscale);      INSTRUCTION("AUTOSCALE", instruction_autoscale);
     INSTRUCTION("BACKSPACE", instruction_backspace);      INSTRUCTION("BACKSPACE", instruction_backspace);
       INSTRUCTION("BACKTRACE", instruction_backtrace);
     INSTRUCTION("CLRATEXIT", instruction_clratexit);      INSTRUCTION("CLRATEXIT", instruction_clratexit);
       INSTRUCTION("CLRATPOKE", instruction_clratpoke);
     INSTRUCTION("COPYRIGHT", instruction_copyright);      INSTRUCTION("COPYRIGHT", instruction_copyright);
     //INSTRUCTION("CYLINDRIC");      //INSTRUCTION("CYLINDRIC");
     INSTRUCTION("DAEMONIZE", instruction_daemonize);      INSTRUCTION("DAEMONIZE", instruction_daemonize);
Line 881  initialisation_instructions(struct_proce Line 884  initialisation_instructions(struct_proce
 }  }
   
   
 extern inline void *  #ifndef OS2
   extern inline
   #endif
   void *
 analyse_instruction(struct_processus *s_etat_processus, unsigned char *ptr)  analyse_instruction(struct_processus *s_etat_processus, unsigned char *ptr)
 {  {
     int                             pointeur;      int                             pointeur;
Line 1141  analyse(struct_processus *s_etat_process Line 1147  analyse(struct_processus *s_etat_process
 --------------------------------------------------------------------------------  --------------------------------------------------------------------------------
 */  */
   
   #   ifndef OS2
     if ((*s_etat_processus).pourcentage_maximal_cpu < 100)      if ((*s_etat_processus).pourcentage_maximal_cpu < 100)
     {      {
         getrusage(RUSAGE_SELF, &usage_final);          getrusage(RUSAGE_SELF, &usage_final);
Line 1196  analyse(struct_processus *s_etat_process Line 1203  analyse(struct_processus *s_etat_process
             usage_initial = usage_final;              usage_initial = usage_final;
         }          }
     }      }
   #   endif
   
 /*  /*
 --------------------------------------------------------------------------------  --------------------------------------------------------------------------------
Line 1232  analyse(struct_processus *s_etat_process Line 1240  analyse(struct_processus *s_etat_process
                 ((*s_etat_processus).erreur_systeme != d_es) ||                  ((*s_etat_processus).erreur_systeme != d_es) ||
                 ((*s_etat_processus).exception != d_ep))                  ((*s_etat_processus).exception != d_ep))
         {          {
             if ((*s_etat_processus).instruction_derniere_erreur != NULL)  
             {  
                 free((*s_etat_processus).instruction_derniere_erreur);  
                 (*s_etat_processus).instruction_derniere_erreur = NULL;  
             }  
   
             (*s_etat_processus).niveau_derniere_erreur =              (*s_etat_processus).niveau_derniere_erreur =
                     (*s_etat_processus).niveau_courant;                      (*s_etat_processus).niveau_courant;
   
             if ((*s_etat_processus).mode_execution_programme == 'Y')              if ((*s_etat_processus).mode_execution_programme == 'Y')
             {              {
                   if ((*s_etat_processus).instruction_derniere_erreur != NULL)
                   {
                       free((*s_etat_processus).instruction_derniere_erreur);
                       (*s_etat_processus).instruction_derniere_erreur = NULL;
                   }
   
                 if ((*s_etat_processus).instruction_courante == NULL)                  if ((*s_etat_processus).instruction_courante == NULL)
                 {                  {
                     if (((*s_etat_processus).instruction_derniere_erreur =                      if (((*s_etat_processus).instruction_derniere_erreur =
Line 1274  analyse(struct_processus *s_etat_process Line 1282  analyse(struct_processus *s_etat_process
             }              }
             else              else
             {              {
                 if (((*s_etat_processus).instruction_derniere_erreur =                  if ((*s_etat_processus).objet_courant != NULL)
                         formateur(s_etat_processus, 0,  
                         (*s_etat_processus).objet_courant)) == NULL)  
                 {                  {
                     return;                      if ((*s_etat_processus).instruction_derniere_erreur != NULL)
                       {
                           free((*s_etat_processus).instruction_derniere_erreur);
                           (*s_etat_processus).instruction_derniere_erreur = NULL;
                       }
   
                       if (((*s_etat_processus).instruction_derniere_erreur =
                               formateur(s_etat_processus, 0,
                               (*s_etat_processus).objet_courant)) == NULL)
                       {
                           return;
                       }
   
                       (*s_etat_processus).objet_courant = NULL;
                 }                  }
             }              }
         }          }

Removed from v.1.20  
changed lines
  Added in v.1.28


CVSweb interface <joel.bertrand@systella.fr>