Diff for /rpl/src/instructions_o2.c between versions 1.8 and 1.43

version 1.8, 2010/04/27 15:53:36 version 1.43, 2013/02/27 17:11:43
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.0.15    RPL/2 (R) version 4.1.13
   Copyright (C) 1989-2010 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 20 Line 20
 */  */
   
   
 #include "rpl.conv.h"  #include "rpl-conv.h"
   
   
 /*  /*
Line 463  instruction_obget(struct_processus *s_et Line 463  instruction_obget(struct_processus *s_et
         return;          return;
     }      }
   
     return;  
 }  
   
   
 /*  
 ================================================================================  
   Fonction 'onexit'  
 ================================================================================  
   Entrées :  
 --------------------------------------------------------------------------------  
   Sorties :  
 --------------------------------------------------------------------------------  
   Effets de bord : néant  
 ================================================================================  
 */  
   
 void  
 instruction_onexit(struct_processus *s_etat_processus)  
 {  
     struct_objet        *s_objet_argument;  
   
     (*s_etat_processus).erreur_execution = d_ex;  
   
     if ((*s_etat_processus).affichage_arguments == 'Y')  
     {  
         printf("\n  ONEXIT ");  
   
         if ((*s_etat_processus).langue == 'F')  
         {  
             printf("(exécution d'une fonction à la sortie d'une tâche)\n\n");  
         }  
         else  
         {  
             printf("(register a function to be called on task exit)\n\n");  
         }  
   
         printf("    1: %s, %s\n", d_NOM, d_RPN);  
   
         return;  
     }  
     else if ((*s_etat_processus).test_instruction == 'Y')  
     {  
         (*s_etat_processus).nombre_arguments = 1;  
         return;  
     }  
   
     if (test_cfsf(s_etat_processus, 31) == d_vrai)  
     {  
         if (empilement_pile_last(s_etat_processus, 1) == d_erreur)  
         {  
             return;  
         }  
     }  
   
     if (depilement(s_etat_processus, &((*s_etat_processus).l_base_pile),  
             &s_objet_argument) == d_erreur)  
     {  
         (*s_etat_processus).erreur_execution = d_ex_manque_argument;  
         return;  
     }  
   
     if ((*s_objet_argument).type == NOM)  
     {  
         liberation(s_etat_processus, (*s_etat_processus).on_exit);  
         (*s_etat_processus).on_exit = s_objet_argument;  
     }  
     else if ((*s_objet_argument).type == RPN)  
     {  
         liberation(s_etat_processus, (*s_etat_processus).on_exit);  
         (*s_etat_processus).on_exit = s_objet_argument;  
     }  
     else  
     {  
         liberation(s_etat_processus, s_objet_argument);  
   
         (*s_etat_processus, s_objet_argument);  
         return;  
     }  
   
     return;      return;
 }  }
   

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


CVSweb interface <joel.bertrand@systella.fr>